Shopify offer mechanics, verified on a real store
Shopify's documentation says how discounts, discount functions, cart transforms, selling plans and the cart are meant to behave. These pages show what a store returned: each statement is a real cart, built through the Storefront API and read back as Shopify priced it, or the answer Shopify gave at a limit.
49 carts and 3 recorded runs at a limit, last taken 3 November 2026 on Shopify’s 2026-10 API. A suite takes them again; a page whose records no longer show what it says comes down until it is corrected, and no record stands for more than 90 days without being taken again.
Building blocksWhat each one returns in a real cart
- Shopify discount functions in a real cartWhat a Shopify discount function's output looks like in a real Storefront cart: where the allocation lands, a line split by a partial discount, and one discount with a product and a shipping class.5 carts
- Shopify selling plans in a real cartWhat a Storefront cart returns for a line bought on a Shopify selling plan: the allocation, a plan with no pricing policy, an app discount on the subscription line and a one-time code refused on it.4 carts
- Where each discount shows up in a Shopify Storefront cartWhere 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.6 carts
- A Shopify cart transform in a real cartWhat a Shopify cart transform's price looks like in a real Storefront cart: the line's own price changes with no discount allocation, a function that returns nothing leaves no trace, and discount codes are taken from the new price.9 carts
Discount combinationsTwo discounts in one cart, and which applied
- A Shopify product discount and an order discount in one cartReal 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.4 carts
- Two Shopify product discounts on the same lineReal 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.3 carts
- A Shopify product discount and a shipping discount in one cartReal 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.5 carts
- A Shopify order discount and a shipping discount in one cartReal carts with a Shopify order discount and a free-shipping discount together: both applied when each allowed the other, the free-shipping code was refused when either side combined with nothing, and one cart carried all three classes.4 carts
- A Shopify automatic discount beside an app's automatic discountReal carts with one of Shopify's own automatic discounts beside an app's automatic discount: both applied on separate lines when each allowed product discounts, and one set to combine with nothing was dropped without a warning.8 carts
- A Shopify selling plan's price beside each class of discountReal carts with a line priced by a Shopify selling plan's pricing policy and a product, order or shipping discount on top: each was taken from the plan's price, all three applied together, and one-time discounts did not reach the line.8 carts
LimitsWhat Shopify answered at a limit, and one step past it
- Shopify's automatic discount limit: 25 active, and what the 26th returnsWhat a Shopify store answered at its limit of 25 active automatic discounts: which discounts count, the error the next create returns, and what a scheduled or a deactivated discount does to the count.1 recorded run
- Shopify's cart line limit: 500 lines, 250 per mutationWhat the Storefront API answered as a cart was built to 500 lines and past: the 250-item limit on one mutation's input, the 500-line limit on the cart, and the two different places the errors arrive.1 recorded run
- Shopify's cart line quantity limit: 1,000,000 unitsWhat the Storefront API answered for a cart line of 1,000,000 units and of 1,000,001: the largest quantity a line takes, the error past it, and a message that states the limit one unit low.1 recorded run
- How many discount codes a Shopify cart applies: five, and the sixth is set asideWhat a Storefront API cart did with six discount codes: a valid code in sixth place is not honoured, codes the store does not have still take places, the order of the list decides, and a free-shipping code is counted apart.4 carts
TroubleshootingA symptom, and the carts that show each cause
- Shopify discounts not combining: what to checkA 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.5 carts
- Shopify automatic discount not working: what to checkA 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.5 carts