# Bundle discount not applying at checkout on Shopify

> The cart says one price and checkout charges another. The cause is almost always one of a handful. Here is how to find yours, and how Luxe prices bundles so the two agree.

Source: https://www.luxesets.com/guides/bundle-discount-not-applying-at-checkout

## Why cart and checkout can disagree

Shopify checkout works out every price again from the products in the order and the discounts that apply to them. It does not read the price a theme or an app drew on the page. So when a bundle's price exists only on the page, or a discount's conditions are not met at checkout, the shopper sees one number in the cart and pays another.

## The usual causes

| What you see                                                         | Likely cause                                                                                                               | Where to look                                                                                          |
| -------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
| The bundle shows its saving in the cart, then full price at checkout | The price was changed only in the browser, by theme code or an app's script, and nothing on Shopify's side applies it      | The bundle app's settings: does it price through a discount or a Shopify Function, or only on the page |
| A discount applies to the products but not the bundle                | With Shopify Bundles, a product or collection discount must include the bundle's own product                               | **Discounts** > the discount > Applies to                                                              |
| A code removes the bundle's saving, or is refused                    | The discounts are not set to combine, so Shopify applies only the ones its combination settings allow                      | **Discounts** > each discount > Combinations                                                           |
| A threshold reward shows in the cart but not at checkout             | The threshold is counted differently: after another discount, without a removed or excluded line, or in another currency   | The reward's minimum requirement, and the order's lines at checkout                                    |
| The discount works for some shoppers only                            | Eligibility: dates, usage limits, customer segments, or a market or B2B catalog with its own prices                        | The discount's eligibility and active dates; Markets and B2B settings                                  |
| Buy it now skips the bundle                                          | An express or Buy it now button goes straight to checkout with that product, so a bundle assembled in the cart never forms | The product page's buttons, and whether the bundle has its own product                                 |
| A one-cent difference                                                | Rounding: a percentage taken per item rather than per order, or a currency conversion                                      | The discount's type and the market's rounding                                                          |

## How to find the cause

1. **Reproduce it once, simply.** In a private window, add one bundle and nothing else, with no code. Note the price in the cart and at checkout.
2. **Take away one thing at a time.** Remove the discount code, then any other items, then switch the bundle app's app embed off in the theme editor. The step that changes the result names the cause.
3. **Read the discount in Shopify.** In **Discounts**, check the discount is active, what it applies to, its minimum requirement, its eligibility and its combinations.
4. **Ask who owns the price.** If the bundle's price comes from a script on the page, checkout cannot know it. Prices that hold at checkout come from the product's own price, a Shopify discount or a Shopify Function.
5. **Try a second market or currency** if you sell abroad. Fixed market prices and conversion can change a total.

## How Luxe keeps one price

Luxe was built so that the builder quotes the price and checkout charges it.

- **One core.** A single pricing engine with no dependencies defines every bundle set and rewards rule.
- **Everywhere.** The same engine prices the admin preview, the Bundle set builder, the collection tray and the Luxe cart drawer.
- **At checkout.** A port of that engine runs inside Shopify Functions: Luxe's Cart Transform prices each bundle set, and one automatic discount, **Luxe Rewards**, applies Collection set pricing, every rewards rung and every upsell discount. The storefront only predicts; only the Functions change prices.
- **Pinned.** Golden test vectors check every case to the cent in the admin, the storefront and the Functions on every change.
- **Watched.** The Luxe cart drawer shows Shopify's own numbers after the Functions have run, and reports any difference from what Luxe expected so it can be fixed.

What that means in practice:

| Question                                         | In Luxe                                                                                                                |
| ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------- |
| Who changes the price?                           | Only Shopify Functions at checkout; the storefront predicts                                                            |
| Does the price depend on theme JavaScript?       | No. Without JavaScript, checkout still prices the set                                                                  |
| What if a shopper edits the cart some other way? | Checkout checks every set again through the Functions, so the price is still right                                     |
| Do discount codes still work?                    | Yes. Shopify combines them with Luxe Rewards as you set in **Settings > Checkout and pricing > Discount combinations** |

## If a Luxe price looks different

When a Luxe price differs, it is usually expected and explained in the help centre's [Prices look different](https://www.luxesets.com/help/troubleshooting#prices-look-different): a set bought without choosing (by your theme's own add-to-cart button, an AI agent or with JavaScript off) sells with its default picks at the set product's price; item prices inside a set are converted from your store currency; B2B buyers pay the set product's price in their catalog. The bundle set editor's **Preview** shows what checkout will charge and the price for shoppers who buy without choosing, with one button to align them.

If something still looks wrong, contact support with the cart and the checkout total.
