---
title: "Shopify offer mechanics, verified on a real store"
description: "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."
url: https://offersuite.io/shopify
updated: 2026-11-03
---

# 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 blocks What each one returns in a real cart

- [**Shopify discount functions in a real cart** What 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.](https://offersuite.io/shopify/discount-functions)5 carts
- [**Shopify selling plans in a real cart** What 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.](https://offersuite.io/shopify/selling-plans)4 carts
- [**Where each discount shows up in a Shopify Storefront cart** 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.](https://offersuite.io/shopify/storefront-cart)6 carts
- [**A Shopify cart transform in a real cart** What 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.](https://offersuite.io/shopify/cart-transform)9 carts

## Discount combinations Two discounts in one cart, and which applied

- [**A Shopify product discount and an order discount in one cart** 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.](https://offersuite.io/shopify/discount-combinations/product-and-order)4 carts
- [**Two Shopify product discounts on the same line** 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.](https://offersuite.io/shopify/discount-combinations/product-and-product)3 carts
- [**A Shopify product discount and a shipping discount in one cart** 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.](https://offersuite.io/shopify/discount-combinations/product-and-shipping)5 carts
- [**A Shopify order discount and a shipping discount in one cart** Real 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.](https://offersuite.io/shopify/discount-combinations/order-and-shipping)4 carts
- [**A Shopify automatic discount beside an app's automatic discount** Real 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.](https://offersuite.io/shopify/discount-combinations/automatic-and-app-discount)8 carts
- [**A Shopify selling plan's price beside each class of discount** Real 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.](https://offersuite.io/shopify/discount-combinations/selling-plan-price-and-discounts)8 carts

## Limits What Shopify answered at a limit, and one step past it

- [**Shopify's automatic discount limit: 25 active, and what the 26th returns** What 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.](https://offersuite.io/shopify/limits/automatic-discounts)1 recorded run
- [**Shopify's cart line limit: 500 lines, 250 per mutation** What 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.](https://offersuite.io/shopify/limits/cart-lines)1 recorded run
- [**Shopify's cart line quantity limit: 1,000,000 units** What 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.](https://offersuite.io/shopify/limits/line-quantity)1 recorded run
- [**How many discount codes a Shopify cart applies: five, and the sixth is set aside** What 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.](https://offersuite.io/shopify/limits/discount-codes-per-cart)4 carts

## Troubleshooting A symptom, and the carts that show each cause

- [**Shopify discounts not combining: what to check** 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.](https://offersuite.io/shopify/troubleshooting/discounts-not-combining)5 carts
- [**Shopify automatic discount not working: what to check** 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.](https://offersuite.io/shopify/troubleshooting/automatic-discount-not-working)5 carts
