---
title: "Shopify discounts not combining, verified November 2026"
description: "A checklist for Shopify discounts that will not combine, each step backed by a real cart: what the cart's warnings say, the combination settings on both sides, two product discounts on one line, and purchase type. Verified 3 November 2026 on Shopify's 2026-10 API."
url: https://offersuite.io/shopify/troubleshooting/discounts-not-combining
updated: 2026-11-03
---

# Shopify discounts not combining: what to check

Two discounts that should both apply, and a cart that shows one. Each step below is a cause, with the cart that shows it. Start with what the cart itself says.

Verified 3 November 2026 on Shopify’s 2026-10 API, in carts built on a real store. Each statement marked with a tick is checked against the cart Shopify returned.

## 1. Read the cart's warnings before the discount settings

A Storefront cart tells you when it set a code aside. Ask the mutation for its warnings and read each code's applicable flag. A code refused because of another discount reads DISCOUNT_CODE_NOT_HONOURED.

A checkout that silently drops a code looks like a bug in the discount. The warning says it was a decision.

**An automatic product discount and an order code that combines with nothing** Verified 3 November 2026 · API 2026-10

#### Into the cart

- 1 × Single Bag at $40.00, bought once
- The cart attribute the app discount's function reads
- Code VERIFY-ORDER10-SOLO: 10% off the order, one-time purchases only, combines with nothing

#### What Shopify returned

The cart Shopify returned: An automatic product discount and an order code that combines with nothing

| Line | Quantity | Price | Discounts on the line | Line total |
| --- | --- | --- | --- | --- |
| Single Bag | 1 | $40.00 | −$10.00 automatic, “Offer Suite” | $30.00 |
| Discounts on the cart | none |  |  |  |
| Cart total | $30.00 |  |  |  |

- `VERIFY-ORDER10-SOLO` applicable: false
- warning `DISCOUNT_CODE_NOT_HONOURED` “The VERIFY-ORDER10-SOLO discount code is not honoured”

#### What that shows

- The automatic discount stayed: the line cost $30.00 and so did the cart.
- The code was listed as not applicable, with the warning DISCOUNT_CODE_NOT_HONOURED.

## 2. Check the combination settings on both discounts

Each discount lists the classes it combines with: product, order, shipping. Both discounts have to allow the other's class. The first cart has that and gets both; the cart in step 1 is the same pair with one side set to combine with nothing.

**An automatic product discount and an order code that combines with product discounts** Verified 3 November 2026 · API 2026-10

#### Into the cart

- 1 × Single Bag at $40.00, bought once
- The cart attribute the app discount's function reads
- Code VERIFY-ORDER10: 10% off the order, one-time purchases only, combines with product and shipping discounts

#### What Shopify returned

The cart Shopify returned: An automatic product discount and an order code that combines with product discounts

| Line | Quantity | Price | Discounts on the line | Line total |
| --- | --- | --- | --- | --- |
| Single Bag | 1 | $40.00 | −$10.00 automatic, “Offer Suite” | $30.00 |
| Discounts on the cart | −$3.00 code VERIFY-ORDER10 |  |  |  |
| Cart total | $27.00 |  |  |  |

- `VERIFY-ORDER10` applicable: true

#### What that shows

- Both applied: the line cost $30.00 after the automatic discount, and the cart total was $27.00.
- The order code took 10% of the discounted $30.00, not of the $40.00 price: $3.00.
- The order discount was in the cart's own list of allocations and not on the line.

## 3. Two product discounts on the same line do not stack

If both are product discounts and they target the same item, the settings are not the cause. Both of these allow product discounts, and the line still got one.

**Two product discounts on one line, each allowing product discounts** Verified 3 November 2026 · API 2026-10

#### Into the cart

- 1 × Single Bag at $40.00, bought once
- The cart attribute the app discount's function reads
- Code VERIFY-BAG5: $5.00 off the bag, one-time purchases only, combines with product, order and shipping discounts

#### What Shopify returned

The cart Shopify returned: Two product discounts on one line, each allowing product discounts

| Line | Quantity | Price | Discounts on the line | Line total |
| --- | --- | --- | --- | --- |
| Single Bag | 1 | $40.00 | −$10.00 automatic, “Offer Suite” | $30.00 |
| Discounts on the cart | none |  |  |  |
| Cart total | $30.00 |  |  |  |

- `VERIFY-BAG5` applicable: false
- warning `DISCOUNT_CODE_NOT_HONOURED` “The VERIFY-BAG5 discount code is not honoured”

#### What that shows

- They did not stack: the line cost $30.00, the automatic discount's price, not $25.00.
- The $5.00 code was listed as not applicable, with the warning DISCOUNT_CODE_NOT_HONOURED.

## 4. A free-shipping code needs the same permission

A shipping discount set to combine with nothing is refused beside a product discount, even when it is the larger saving.

**A free-shipping code that combines with nothing, and a product code** Verified 3 November 2026 · API 2026-10

#### Into the cart

- 1 × Single Bag at $40.00, bought once
- No cart attribute, so the app's functions return no operations
- Code VERIFY-SHIPFREE-SOLO: free shipping, one-time purchases only, combines with nothing
- Code VERIFY-BAG5: $5.00 off the bag, one-time purchases only, combines with product, order and shipping discounts
- A US delivery address, with the cheapest rate selected

#### What Shopify returned

The cart Shopify returned: A free-shipping code that combines with nothing, and a product code

| Line | Quantity | Price | Discounts on the line | Line total |
| --- | --- | --- | --- | --- |
| Single Bag | 1 | $40.00 | −$5.00 code VERIFY-BAG5 | $35.00 |
| Discounts on the cart | none |  |  |  |
| Delivery: Standard selected Quoted: Standard $8.00, Express $15.00 | none | $8.00 |  |  |
| Cart total | $43.00 |  |  |  |

- `VERIFY-BAG5` applicable: true
- `VERIFY-SHIPFREE-SOLO` applicable: false
- warning `DISCOUNT_CODE_NOT_HONOURED` “The VERIFY-SHIPFREE-SOLO discount code is not honoured”

#### What that shows

- Only the product code applied: $5.00 off the line, shipping charged at $8.00, a cart total of $43.00.
- The free-shipping code was listed as not applicable. The saving kept was the smaller one: $5.00 against the $8.00 the shipping code would have taken.

## 5. Check the purchase type before blaming the combination

A code set to one-time purchases does nothing on a subscription line, whatever it combines with. The warning is a different one: DISCOUNT_NO_ENTITLED_LINE_ITEMS.

**A one-time-purchase code on a selling plan line** Verified 3 November 2026 · API 2026-10

#### Into the cart

- 1 × Single Bag at $40.00, on the selling plan “Every 30 days”
- No cart attribute, so the app's functions return no operations
- Code VERIFY-BAG5: $5.00 off the bag, one-time purchases only, combines with product, order and shipping discounts

#### What Shopify returned

The cart Shopify returned: A one-time-purchase code on a selling plan line

| Line | Quantity | Price | Discounts on the line | Line total |
| --- | --- | --- | --- | --- |
| Single Bag Selling plan “Every 30 days”, no price adjustments | 1 | $40.00 | none | $40.00 |
| Discounts on the cart | none |  |  |  |
| Cart total | $40.00 |  |  |  |

- `VERIFY-BAG5` applicable: false
- warning `DISCOUNT_NO_ENTITLED_LINE_ITEMS` “The VERIFY-BAG5 discount code is not valid for the items in your cart”

#### What that shows

- The cart was created and listed the code as not applicable.
- The cart's warning was DISCOUNT_NO_ENTITLED_LINE_ITEMS, and the line cost its full $40.00.

## How this was verified

Every cart on this page was built through the Storefront API on a Shopify Plus development store we keep for this, on API version 2026-10, and read back as Shopify priced it. The store sells one product in these carts: Single Bag, at $40.00, also sold on a selling plan named “Every 30 days” that has no pricing policy. It quotes two delivery rates to a US address.

It has one automatic app discount, titled “Offer Suite”, with a product class and a shipping class, set to combine with product, order and shipping discounts. Its function reads a cart attribute: with it, the function takes 25% off one unit of Single Bag bought once, or $8.00 off the unit on its selling plan, and makes the cheapest delivery rate free. Without it, the function returns no operations.

The other discounts in these carts, as they are set on the store

| Discount | Class | Gives | Combination setting |
| --- | --- | --- | --- |
| Code VERIFY-ORDER10-SOLO | Order | 10% off the order, one-time purchases only | combines with nothing |
| Code VERIFY-ORDER10 | Order | 10% off the order, one-time purchases only | combines with product and shipping discounts |
| Code VERIFY-BAG5 | Product | $5.00 off the bag, one-time purchases only | combines with product, order and shipping discounts |
| Code VERIFY-SHIPFREE-SOLO | Shipping | free shipping, one-time purchases only | combines with nothing |

A suite builds these carts again and reads the discount settings from the store before it does. A statement that no longer matches the cart takes this page down until it is corrected, and no cart stands for more than 90 days without being built again. This is what one store returned on one API version: your store’s plan, markets and other apps can change the result, so build the cart.

Seen something different on your store? Write to [privacy@offersuite.io](mailto:privacy@offersuite.io) with the cart and we’ll run it.

## Related

- [Shopify, verified **Shopify offer mechanics, verified on a real store** How Shopify discounts, discount functions, cart transforms, selling plans, the Storefront cart and their limits behave, shown in real carts built on a Shopify store and built again at least every 90 days.](https://offersuite.io/shopify)
- [Shopify, verified **Shopify product and order discounts combined, verified November 2026** Real carts with a Shopify product discount and an order discount together: both applied when each allowed the other, the order discount was taken from the discounted subtotal, and a code that combines with nothing was refused. Verified 3 November 2026 on Shopify's 2026-10 API.](https://offersuite.io/shopify/discount-combinations/product-and-order)
- [Shopify, verified **Two Shopify product discounts on one line, verified November 2026** Real carts with two Shopify product discounts aimed at one line: they did not stack even when both allowed product discounts, and a larger code that combines with nothing replaced the automatic discount. Verified 3 November 2026 on Shopify's 2026-10 API.](https://offersuite.io/shopify/discount-combinations/product-and-product)
- [Shopify, verified **Shopify product and shipping discounts combined, verified November 2026** Real carts with a Shopify product discount and a shipping discount together: one automatic discount carrying both, two codes that allow each other, and a free-shipping code refused in favour of a smaller product discount. Verified 3 November 2026 on Shopify's 2026-10 API.](https://offersuite.io/shopify/discount-combinations/product-and-shipping)
- [Shopify, verified **Shopify Storefront cart discounts, verified November 2026** Where a Shopify Storefront API cart reports each kind of discount: product discounts on the line, order discounts on the cart, shipping discounts on the delivery group, and codes it did not apply in warnings. Verified 3 November 2026 on Shopify's 2026-10 API.](https://offersuite.io/shopify/storefront-cart)
- [Shopify, verified **Shopify automatic discount not working, verified November 2026** A checklist for a Shopify automatic discount that does not show in the cart, each step backed by a real cart: where to look, a function that returned nothing, a code or another automatic discount that displaced it, and a line discounted in part. Verified 3 November 2026 on Shopify's 2026-10 API.](https://offersuite.io/shopify/troubleshooting/automatic-discount-not-working)
