Magento bundle product price questions: what to check first

Kira
Written by

Kira

Katelin Teen
Reviewed by

Katelin Teen

Last edited November 6, 2026

Expert Verified
Hand-drawn illustration of three people around an open box holding a shirt, a shoe and a folder, with price tags and question marks in speech bubbles, on an orange background
TL;DR

A Magento bundle has no single price. Dynamic bundles add up the options the customer picks, fixed bundles charge one set price, and the listing only shows a minimum ("As low as") or a range ("From X To Y"). That is why the cart, the order and the product page can all disagree. Answer from three facts: the pricing type, the options and quantities chosen, and any special or tier price, which Magento treats as a percentage. The order then puts the price on the child lines (dynamic) or the parent line (fixed). eesel's Magento integration reads those lines live. With the eesel CLI, a coding agent can upload your approved pricing policy and test questions like "why is my bundle dearer in the cart?" before go-live. Connecting the store still needs a Magento admin.

What is the customer saying about the bundle price?

Pick the sentence closest to the ticket. Each answer starts at a different place in the admin.

Start at Price View
  1. Open the bundle and read Price View. Price Range shows cheapest to dearest, As Low As shows only the cheapest.
  2. Check Dynamic Price. If it is Yes, the price is built from the options, so the range is real.
  3. Look at the Bundle Items. Required options set the floor, and the dearest choice in each sets the ceiling.
Start at the options
  1. Compare the exact options and quantities in the cart with what the listing's minimum assumed.
  2. Check the item's Default Quantity and whether it is User Defined. A default of 2 with a quantity of 4 means 8.
  3. Check tax. Dynamic bundles are taxed per item, fixed bundles as one product.
Start at the percentage
  1. Open Advanced Pricing on the bundle. For bundles, special price and tier price are percentages.
  2. In the source, a special price value is the share the customer pays, so 80 means 20% off.
  3. Then check cart price rules, which can add a second discount on the same bundle.
Start at the priced line
  1. Open the order and find which line carries the price: the children (dynamic) or the parent (fixed).
  2. Open the credit memo. A fixed-price bundle's children have no refundable quantity of their own.
  3. Check Adjustment Refund and Adjustment Fee, which change the total without touching a line.

Pick a ticket type to get the first three checks. They follow Adobe's docs and Magento's open source code, covered below.

Why does a Magento bundle show "From X To Y" or "As low as"?

Because a bundle can cost different amounts depending on what the customer picks, so the listing has to show something. I'm Alicia, and I work on eesel's product and its AI agents, which means I read a lot of what store APIs and open source code actually do behind a help article. Bundle pricing is a good example of a screen that looks simple and is not.

Adobe's bundle product guide describes the Price View field with two options: Price Range, which shows the product price "from the least expensive to the most expensive", and As Low As, which shows only the least expensive. The storefront template in the open source magento2 repository (the 2.4-develop branch, read on 6 November 2026, so a given release may differ) adds a detail support should know: even with Price Range set, it shows a range only when the minimum and maximum actually differ. A bundle with one fixed choice per option shows a single price.

The template also shows a struck-through regular price next to the minimum when a discount makes the minimum lower than the regular minimum. So "As low as $42, was $50" is the store working as designed.

The listing price is a floor or a range, never a promise of what the cart will say. If a customer quotes "From $42", the useful reply starts with which options give $42.

What is the difference between dynamic and fixed price bundles?

Dynamic bundles are priced from the items inside. Fixed bundles carry their own price. It is one setting, and almost every later answer depends on it.

Adobe's guide puts it plainly. Set Dynamic Price to Yes and leave Price blank, and "a bundle product does not have its own price from the catalog", because the price comes from the individual products. Set it to No and enter a price, and the bundle charges that amount.

Magento Admin New Product form for a bundle with SKU, Dynamic SKU set to No, a greyed Price field, Advanced Pricing and Dynamic Price set to Yes, as taken from Adobe's bundle product guide
Magento Admin New Product form for a bundle with SKU, Dynamic SKU set to No, a greyed Price field, Advanced Pricing and Dynamic Price set to Yes, as taken from Adobe's bundle product guide

Three other settings follow from that choice, per the same guide:

  • Tax. With dynamic pricing, tax is worked out for each bundle item. With fixed pricing, it is worked out for the whole bundle, using the bundle's own Tax Class.
  • Weight and SKU. Each can be fixed or dynamic separately from price, so a bundle can have a fixed price and a dynamic weight.
  • Minimum Advertised Price. Adobe notes it is not available for bundles that use dynamic pricing.

For a support agent, the first fact to write on the ticket is "dynamic" or "fixed". It decides whether to look at the item prices (dynamic) or one bundle price (fixed), and it decides which order line holds the money later.

Why is the cart price different from the listing price?

Because the cart prices a specific selection, and the listing shows a minimum. The gap is usually one of five things.

Magento storefront Customize page for a yoga kit with option lists, an Add to Cart button, a total of $61.00 and a Summary of chosen items, as taken from Adobe's bundle product guide
Magento storefront Customize page for a yoga kit with option lists, an Add to Cart button, a total of $61.00 and a Summary of chosen items, as taken from Adobe's bundle product guide
  1. A dearer option. Each option (drop-down, radio buttons, checkbox or multiple select) lists items with their own price. The minimum assumes the cheapest in each required option. The customer picked the 75 cm ball, not the 55 cm one.
  2. A quantity multiplier. Adobe's example: if a bundle item's Default Quantity is 2 and the customer orders 4 of that bundle, the customer gets 8 of the item. A default quantity inside the bundle multiplies with the quantity in the cart.
  3. A user-defined quantity. An item marked User Defined lets the customer change its quantity. Adobe warns not to use it on checkbox or multiple-select options.
  4. Tax. Per item on a dynamic bundle, on the whole product on a fixed one. A store showing prices without tax in the listing and with tax in the cart will also show a gap that has nothing to do with the bundle.
  5. A cart price rule. I come to these below.

The check that settles most of these is the Summary on the Customize page, which lists exactly what is in the selection. Ask the customer for a screenshot of it, or rebuild the selection yourself on the storefront. The WooCommerce order status guide makes a similar point for another platform: rebuild what the customer saw before you explain it.

How do special price, tier price and catalog rules hit a bundle?

All three discount a bundle, but as percentages, and the arithmetic surprises people. Start with what Adobe says, then what the code does.

Adobe's bundle page lists, under things to remember: "Special Price and Customer Group Price (Tier Price) are always set as the discount percentage for all bundle product types." Its advanced pricing guide says advanced pricing applies to simple, virtual, downloadable and bundle products, and sends other types to a catalog price rule.

Now the code. In the bundle price class, a special price is applied by multiplying the price by the stored value divided by 100, then taking the lower of that and the current price. A tier price is applied the other way: it subtracts the stored percentage from the price. A tier row that is not a percentage is skipped.

Hand-drawn flow: a Special Price field of 80 leads to the customer paying 80% of the price, which is 20% off, with a note to check the storefront price before replying
Hand-drawn flow: a Special Price field of 80 leads to the customer paying 80% of the price, which is 20% off, with a note to check the storefront price before replying

So the same bundle can use two different percentage conventions: a tier price of 20 takes 20% off, and a special price of 80 charges 80%. I could not confirm from Adobe's docs how the admin labels the special price field for bundles in every version, so I would test one bundle on a staging store and read the storefront price before writing a macro. If a customer says "my 20% bundle discount came out as 80% off", this is the first place to look.

Discount typeWhere it is setBundle behaviourWhat to check
Special priceAdvanced Pricing on the bundlePercentage; in code, a share of the priceThe stored value, and the from and to dates
Tier or group priceAdvanced Pricing, per customer groupPercentage only; fixed-amount rows are skippedThe customer group and quantity break
Catalog price ruleMarketing, catalog rulesApplied by rule conditionsA Category condition on a bundle only works if all children share the category
Cart price ruleMarketing, cart rulesApplied to children or parentSee the next section

Dates matter too. In Magento Open Source, per Adobe's special price guide, a special price starts just after midnight at the start date (00:01) and runs to just before midnight (23:59) on the day before the end date. A "the sale was still on yesterday" ticket is often a one-day boundary. Adobe Commerce adds scheduled updates, which set start and end by time of day instead.

Adobe also gives the general formula for the final price: the minimum of the regular price, group or tier price, special price and catalog price rule, plus the cheapest required custom options. For catalog rules, Adobe's catalog rule guide warns that a Category condition on a bundle or grouped product works correctly only when all child items share the category, and otherwise recommends a cart price rule.

Do cart price rules treat bundles differently?

Yes, and the difference depends on dynamic or fixed pricing. Adobe's cart rule pages do not mention bundles, so this part comes from Magento's source code, which I read in the RulesApplier class on the same 2.4-develop branch.

For a bundle whose children carry the price (dynamic), the rule is tested against each child. Children that match the rule's conditions get the discount. If none match, Magento checks the bundle parent itself, and if that matches, it works out the discount at the parent level and spreads it across the children in proportion. A fixed-price bundle, where the parent carries the price, is handled as one item.

What that means for a ticket: a coupon that "only works on one thing in my bundle" is not a bug. With a dynamic bundle, a rule keyed on a child's SKU or attribute discounts just that child. Before you promise a code works on a bundle, check what the rule's conditions test. The Magento credit memo guide covers what happens when that discounted line is refunded later.

How does a bundle appear on a Magento order?

As a parent line and one child line per selected item, with the price on one side or the other. This is the single most useful thing to know when reading a bundle order, and the code is explicit about it.

In Magento's Order\Item class, an item is a "dummy" for calculation when it has children and its children are calculated, or when it is a child and the parent is calculated. The bundle type decides which: when the bundle's price type is dynamic, the order records the calculation as CALCULATE_CHILD, and when it is fixed, as CALCULATE_PARENT.

Hand-drawn comparison: a Dynamic price card with a faded zero on the bundle line and dollar marks on three item lines, a Fixed price card with a dollar mark on the bundle line and faded zeros on the items, and a note to refund the line that carries the price
Hand-drawn comparison: a Dynamic price card with a faded zero on the bundle line and dollar marks on three item lines, a Fixed price card with a dollar mark on the bundle line and faded zeros on the items, and a note to refund the line that carries the price

In plain terms:

  • Dynamic price. The child lines carry the prices. The parent line is the container, with no price of its own.
  • Fixed price. The parent carries the one price. The child lines show what is inside, but they are not priced lines.

I would check this on a test order before building a macro, because it is read from the code and not from an Adobe order screen. Adobe's order view page was not available to me when I wrote this, so I could not confirm how the admin labels the lines. The same code also keeps the shipping choice. Ship Bundle Items (Together or Separately) is saved on the order, and Adobe notes that Together requires all items to share one inventory source.

For the grouped product version of "what did the order actually record?", see grouped product orders. A bundle keeps its parent line, which a grouped product never has.

How do shipping, invoices and refunds work on a bundle?

By line, following the same dummy logic. The line that is not a dummy is the one you act on, and that depends on whether you are shipping or pricing.

  • Shipping. If items ship separately, the child lines are what gets shipped and the parent is the container. If they ship together, the parent is what ships and the children are along for the ride. A customer who got "half a bundle" may simply have a separate-shipment bundle part-way through.
  • Refunds. In the same class, the quantity available to refund is zero for a dummy line. So the line that carries the price is the one with a refundable quantity: the children on a dynamic bundle, the parent on a fixed one.
  • The credit memo screen. Adobe's credit memo guide gives each line a Qty to Refund box and a Return to Stock checkbox, plus Refund Shipping, Adjustment Refund and Adjustment Fee for the order as a whole. It does not mention bundles.
Magento Admin Items to Refund table with Price, Qty, Return to Stock checkbox, Qty to Refund box and totals for one line, as taken from Adobe's credit memo guide
Magento Admin Items to Refund table with Price, Qty, Return to Stock checkbox, Qty to Refund box and totals for one line, as taken from Adobe's credit memo guide

So "refund just the mug from my bundle" has a clean answer on a dynamic bundle, where the mug is a priced line, and a harder one on a fixed bundle, where the mug has no price of its own. For a fixed bundle, the honest options are a partial quantity of the bundle or an adjustment refund, and which one the shop wants is a policy call, not a Magento default. I could not verify from Adobe's docs how a partial refund behaves on a fixed bundle, so run one on a test order first. For the money side, including why a memo can say Refunded before the money moves, see the credit memo questions post and the AI for refund requests guide.

What should support check in admin before replying?

Check six things in this order, and write the answer to each on the ticket. They take a couple of minutes once you know where they are.

Customer saysLook at firstSafe reply stance
"The listing said $42, I paid more"Price View, Dynamic Price, the options and quantities in the orderSay which options give the floor price and which the customer picked
"The cart is higher than the page"Default Quantity, User Defined, tax and any cart ruleCompare the Summary to the order; name the line that differs
"My 20% off came out wrong"Special price vs tier price, stored value, datesQuote the percentage actually applied; do not assume 80 means 80% off
"The coupon only took one item off"Cart rule conditions, dynamic or fixedExplain the rule applies to matching children
"Refund only the mug"Which line carries the price, Return to Stock, payment methodOffer the lines that are priced; hand a fixed-bundle split to a person
"Half my bundle arrived"Ship Bundle Items, shipment per child lineGive per-line shipment status before promising a resend

Three rules cover people and bots alike. Quote option names and line prices, never "the bundle price" on its own. Never say a bundle was refunded or shipped without naming the lines. And hand over to a person when the lines do not explain the gap, which the AI escalation and agent handoff guides cover.

The same line-by-line habit helps with BigCommerce modifier questions, variant inventory and pre-order availability.

For the where-is-it side of these tickets, see order tracking and WISMO automation.

What can a helpdesk or AI agent see about a bundle order?

The order's lines, status, payment and tracking, plus the product by SKU. That is enough to answer most of the table above, and the docs are clear about what it does not cover.

eesel's Magento docs list the read actions: Get Order by ID, Get Orders by Email, Get Order Tracking, Get Payment Status, Search Products, Get Product (full details from a SKU) and Check Stock Status. The Products source holds the catalogue "with SKUs, pricing, descriptions and variants", and an order answer includes customer, items, status, payment, shipment tracking and current stock for each item.

eesel answering in a Slack thread about a Magento order with the customer, items, status, payment, shipment tracking and current stock for each item, from eesel's Magento docs
eesel answering in a Slack thread about a Magento order with the customer, items, status, payment, shipment tracking and current stock for each item, from eesel's Magento docs

The limits matter for bundles. The docs do not say the agent can read a bundle's Price View, its option list or its special-price percentage, and they do not mention bundles at all, so I would not assume it can explain a range or a percentage. Test it on a real bundle order and see which lines come back. Customer orders are found by exact order number or email, with no name or phone search, and a stock check reads one SKU at a time. For refunds, the agent can refund specific items, but only on orders paid offline (check, bank transfer or cash on delivery), and a card refund has to be issued by a person in the Magento admin.

That is why I read the lookup as "evidence for a person or a draft", not a full answer on a bundle. A careful pattern is Question Beauty, a cosmetics brand that runs on Shopify and Gorgias, not Magento. Many of its messages are a product name and "price?", and eesel answers a price only from the current product page or shares the link instead. It also checks the Shopify order before answering any order question. Between 8 August and 8 September 2026, eesel handled about 990 Gorgias tickets for it, sent about 960 replies and looked up about 290 orders. Refunds, returns and complaints go to a person with a note. The same rule works for bundles: the price comes from the live record, and a person owns anything that moves money.

How eesel handles bundle price tickets in Magento

eesel works on Magento 2, Open Source and Adobe Commerce, and answers in your helpdesk, in Slack or in the storefront chat bubble. For a bundle ticket, the read-only actions look up the order, read its lines and payment, fetch the product by SKU, and draft a reply that names each line. The setup docs say read-only access is a valid setup, and granting the Sales and Catalog read resources is what lets it work.

If you want to script the setup, the eesel CLI lets a coding agent start the Magento connection, upload your approved refund and pricing policy, and ask test questions such as "why is my bundle more in the cart than on the page?", so you can compare answers with real orders before anything goes live. Creating the Magento integration and pasting its keys still needs someone with Magento admin access.

Pricing is by credit, not per seat: a free plan with 100 credits, then from $299 a month for 500 credits, per eesel pricing. Test it on past tickets first, as the simulation testing guide describes.

For setup and the wider picture, see add AI to Magento and the Magento chat widget guide.

Comparing tools? See best AI for Magento, Magento AI and Gorgias and Magento.

Related reading on Magento pricing, the Magento review and Magento alternatives.

Support teams will also like ecommerce support contact rates and ticket routing.

On macros, see refund macros and ecommerce FAQ examples fill in the rest.

Try eesel for Magento order questions

If your queue has "why is my bundle price different?" tickets, eesel can read each Magento order's lines and payment before anyone opens the ticket, and draft the answer from your own pricing and refund policy, with a person still sending anything that makes a promise. It works inside your Gorgias queue, or Zendesk or Freshdesk, and the free plan's 100 credits are enough to try it on a batch of real order tickets. Try eesel and see how it does on yours.

eesel Magento integration page showing Connected with the store URL and the Read and Write action groups, from eesel's Magento docs
eesel Magento integration page showing Connected with the store URL and the Read and Write action groups, from eesel's Magento docs

Frequently Asked Questions

Why does a Magento bundle show a price range or As low as?
It is the bundle's Price View setting. Per Adobe, Price Range shows the cheapest to the most expensive combination and As Low As shows only the cheapest. The storefront template shows a range only when those two numbers differ. Teams answering these in pre-purchase questions should quote the options, not one number.
Why is the Magento bundle price in the cart different from the listing?
The listing shows a minimum (or a range), while the cart prices the exact options, quantities and customer group. Default quantity, a user-defined quantity, tax and a cart price rule can all move it. The configurable product stock guide covers the other product type that changes with options.
Is a Magento bundle special price a percentage?
Yes. Adobe says special price and customer group (tier) price are always a percentage for bundles. In Magento's source the special price value is multiplied against the price as a share, so a value of 80 reads as 80% of the price, not 80% off. Confirm on a test bundle, then see the WooCommerce coupon restrictions guide for a platform that behaves differently.
How does a Magento bundle product appear on an order?
As a parent line plus one child line per selected item. Which line carries the price depends on the bundle: with dynamic pricing the child lines carry it, with fixed pricing the parent does. The grouped product orders guide shows the contrast, since a grouped product has no parent line at all.
Can I refund one item from a Magento bundle order?
On a dynamic-price bundle, yes, because each child is a priced line you can refund. On a fixed-price bundle the price sits on the parent, so a single-item refund usually needs a manual adjustment. Read the Magento credit memo guide first, and check the order on a test refund.
Do customer group and tier prices work on Magento bundles?
Yes, as percentage discounts only. Magento's bundle price code skips any tier row that is not a percentage. Adobe's advanced pricing page lists bundles among the types that support them, which matters when you compare with BigCommerce customer group access.
Can an AI agent answer Magento bundle price questions?
It can read the order's lines, status and payment live, and look up a product by SKU, through eesel's Magento integration. The docs do not mention bundle options or price view, so test it on a real bundle before relying on it, as with any Magento AI chatbot.
What should I check before replying to a Magento bundle price ticket?
Check whether the bundle is dynamic or fixed, its Price View, the options and quantities the customer picked, any special price, tier price or rule, and which order line holds the price. A good AI escalation rule hands over when those do not explain the gap.

Share this article