3 min readOct 16, 2026by jakub

Advanced Options Suite

Magento's custom options already hold the answer to "what exactly do you want?" — they just ask it badly. Advanced Options turns those same options into swatches, questions that appear only when they apply, add-ons priced by the character or by the unit, and values that carry their own stock, so shoppers configure what they actually want and the price they see is the price they pay.

Latest version: 1.1.1 — changelog

Advanced options on a product page

Who it's for

  • Stores that sell personalised products. Engraving and gift messages can be priced by their length, and a character limit stops the shopper at the limit instead of failing at checkout.
  • Stores with configurations that branch. A brand choice can narrow the model list to that brand's models, and a question that doesn't apply stays hidden — including required ones, which never block the cart while hidden.
  • Stores whose option choices are real stock. Each value can hold its own quantity, or be backed by a real product whose stock and SKU travel onto the order.
  • Luma, Hyvä and headless storefronts. On Luma the options sit beside configurable, bundle and downloadable selectors; a dedicated Hyvä module renders every surface natively, including Hyvä CSP storefronts; and the option data is published on Magento's own GraphQL product query.

Why it matters

  • Fewer abandoned configurations. Swatches, buttons and grid layouts replace long native lists, so a shopper sees the choice instead of reading it.
  • Fewer wrong orders. Dependent options hide what doesn't apply, so nobody picks an engraving font for an unengraved product.
  • Sell what you actually have. A sold-out value is shown disabled with your message and refused at add-to-cart, instead of becoming a refund.
  • Charge for the work you do. Setup fees are billed once per cart line whatever the quantity, and appear as their own taxed Options Fee row on the cart, checkout, invoices, credit memos and PDFs.
  • Set it up once. Option templates apply one option set to many products, and a live link carries later edits to all of them.

See it in action

  • A question that appears only when it applies. You make a Gift message field depend on Add gift? being Yes → it stays hidden until the shopper answers Yes, then appears and is required.

    Answering Yes reveals the Gift message field

  • A one-off charge kept out of the line price. You charge handling of $7 once per cart line on a $120 plan → the cart shows Subtotal $120.00, Options Fee $7.00, Order Total $127.00.

    The Options Fee row in the cart totals

  • The product photo follows the choice. You attach a photo of the black hoodie to the Black value as Replace main image → the shopper picks Black and the gallery shows the black hoodie.

    Choosing Black swaps the product photo to the black hoodie

What it does

FeatureBenefit
Options and swatchesColour, image and text swatches, buttons, styled dropdowns, multi-checkbox add-ons, grids, and date, time, colour and range inputs — choices look like choices, so shoppers pick faster and ask fewer questions. Each value is edited in one Advanced options dialog
Conditional optionsOption- and value-level rules mean the form only asks what applies, and a hidden required option never blocks the sale
Pricing and feesBill the way you quote — per unit, per cart line, absolute, per character, per entered quantity, setup fees — with the same price on the product page and in the cart, in the shopper's display currency, and on GraphQL, REST and admin orders alike. Per-value cost and weight follow the choice onto the order item
Option stockA sold-out value says so and is refused at add-to-cart and at checkout; stock comes back when an order is cancelled, or refunded with Return to Stock
Linked productsA value can be a real product: it joins the order at $0 under its parent and draws down its own stock
Order SKUsConfigured products reach the order with SKUs your warehouse can pick against
Value imagesChoosing a value swaps the product photo and shows the value's description
Option templatesOne option set, many products, still editable in one place

Competing solutions

The right-hand column describes common practice across the Magento extension market, not any particular vendor.

QoliberTypical marketplace extension
Packagist installationInstalled and updated with Composer from our private Packagist (qoliber.repo.packagist.com)Varies by vendor
Slack access to the development teamA shared Slack channel with the developers who build and maintain the moduleUsually ticket-based
Unit tests1,231 PHPUnit unit tests (320 classes) in the repositoryNot typically published
Integration tests345 Magento integration tests (108 classes), run before every releaseNot typically published
E2E Playwright tests181 Playwright end-to-end tests (77 spec files) on Luma and Hyvä, run before every releaseNot typically published
DocumentationFull docs portal: install, configuration, usage, troubleshooting, developer guide and API referenceVaries by vendor
Hyvä supportqoliber/advanced-options-hyva: every renderer, the cart price breakdown and the Options Fee row, on standard and CSP storefrontsVaries by vendor
PHP / Magento rangePHP 8.1 – 8.5, Magento Open Source and Mage-OS with magento/framework >= 103.0.0Varies by vendor

Built for Magento, not bolted onto it

  • Hyvä-native. qoliber/advanced-options-hyva ships Alpine and Tailwind templates for every renderer, the cart price breakdown and the Options Fee row, and its components run on Hyvä's CSP build of Alpine, so CSP storefronts work out of the box.
  • API-first. Every option, value, stock state and dependency rule is readable through Magento's own GraphQL products query — no new endpoint to learn.
  • Nothing leaves your store. Pricing, stock checks and rule evaluation run inside Magento; the suite calls no third-party service.

Good to know

  • Value images on Luma swap only to images already in the product gallery. "Replace main image" finds its image in the product's own gallery; "Add to gallery" does not add, and "Tooltip only" is not rendered yet.
  • Content Staging support is not part of the 1.x suite. qoliber/advanced-options-inventory-staging is an Adobe Commerce bridge at a 0.1.0 pre-release.

Supported versions

PHP 8.1 – 8.5. Magento Open Source / Mage-OS with magento/framework >= 103.0.0 and magento/module-catalog >= 104.0.0.

Next steps

Advanced Options Suite — Catalog & Products — Extensions | qoliber Docs