Minimum Purchase Rules: Qualify Before or After Other Discounts?
Choosing the qualifying total per benefit, and what each campaign can actually measure: the basis follows the combination toggle, and Shopify codes are not seen.
When a coupon drops a $120 cart below a $100 threshold, decide per benefit which total counts: the built basket or the payable amount. In Discount Prime there is no separate before/after setting; each campaign's combination toggle sets the basis, the mapping differs between Free Shipping and Tiered Spend, and Shopify discount codes are not visible to either. Test the exact coupon.
At a glance
- Challenge
- A $120 cart with a $30 Shopify loyalty code left marketing and finance disagreeing over whether the $100 free shipping threshold was met.
- Approach
- A policy per benefit, the combination toggle set to match it in Free Shipping and Tiered Spend, and a native Shopify code setting where the app cannot see the coupon.
- Discount Prime campaign types used
- Free ShippingTiered Spend Discount
Scenario-based case study: the merchant is fictional and modeled on patterns across Discount Prime stores. Prices, costs and outcome figures are illustrative assumptions for teaching, not measured results from a real store.
Short Answer
When a customer reaches a $100 threshold and then applies a coupon that brings the payable total to $90, someone has to decide which number counts. There are two defensible policies:
- Before other discounts: reward the basket the customer built. Good for perks whose cost does not grow with the order (a loyalty tier, a percentage that is already budgeted).
- After other discounts: reward what the customer actually pays. Good for benefits with a real per-order cost, such as shipping.
The harder part is knowing what your tools can actually measure. In Discount Prime there is no separate "before/after" setting: the basis is derived from each campaign's combination toggle, the mapping differs between Tiered Spend and Free Shipping, and neither campaign can see a Shopify discount code. This study walks through what that means for a real coupon dispute.
Scenario
Consider Summit Outdoor Supply, a fictional Shopify merchant selling hiking and camping gear. It runs a $100 free shipping threshold and a loyalty program that issues 25% off Shopify discount codes. Illustrative assumptions: average shipping cost $9, gross margin 45%.
| Checkout line | Amount |
|---|---|
| Cart value | $120.00 |
| Free shipping threshold | $100.00 |
| Loyalty code (25%, a Shopify discount code) | -$30.00 |
| Payable before shipping | $90.00 |
Marketing argues the customer built a $120 basket and earned free shipping. Finance argues a $90 order should not carry a $9 subsidy. Both are describing a policy choice.
What each policy costs here
| Policy | Free shipping? | Gross profit on $90 payable (45%) | Shipping subsidy | Gross profit after shipping |
|---|---|---|---|---|
| Before other discounts | ✓Yes | $40.50 | $9 | $31.50 |
| After other discounts | No (customer pays $9 or adds items) | $40.50 | $0 | $40.50 |
The cost of the "before" policy is the subsidy on orders that only qualified before the coupon. Multiply $9 by the number of such orders in a month to see what the policy is worth to you.
What Each Tool Can Measure
Native Shopify
Shopify applies product discounts first, then order discounts on the subtotal after product discounts, then shipping discounts (Shopify Help Center: combining discounts). Whether two discounts apply together depends on each discount's combination settings; when they cannot combine, Shopify applies the best discount for the customer. Test how a native minimum requirement behaves with your specific codes before you promise either policy.
Discount Prime Free Shipping
| Combination toggle ("Allow this discount to combine with other discounts") | Minimum is measured on |
|---|---|
| Off (default) | Cart price before discounts |
| On | "After other discounts": the line totals Shopify passes to the shipping function |
Important limit: Shopify runs each discount function without the results of other discounts, so the line totals the shipping function reads may not include a Shopify discount code or another campaign's checkout discount. Do not assume "after" will see the loyalty code. Test it with the exact code. Price changes made by Flat Product Discount or Bulk Price Update are different: they change the product's actual price, so both bases see the lower price.
Discount Prime Tiered Spend Discount (order level)
| Combination toggle ("Combine with other campaigns") | Threshold and percentage are measured on |
|---|---|
| On | The cart subtotal before Discount Prime's product discounts |
| Off | The subtotal after Discount Prime's own product and Buy X Get Y discounts |
Note that the mapping is the reverse of Free Shipping: turning the toggle on means before here. "Other discounts" means Discount Prime's own product-level discounts calculated in the same checkout run, not Shopify discount codes. Tiered Spend also has no customer eligibility at checkout, so it cannot be limited to VIP customers, and it cannot be delivered by code.
List price at checkout
At checkout, free gift thresholds, Buy X Get Y minimum spend, and cross-sell trigger spend are measured at list price; they have no before/after option. Storefront widgets can read a different number: the free gift widget, for example, adds or removes the gift based on the cart total after line discounts, so a discounted cart can reach the gift later than checkout would allow. See the free gift progress bar case study for that edge case.
Worked Example: Tiered Spend Basis
Illustrative cart: two sleeping bags at $80 each, with a Discount Prime Tiered Quantity Discount of 15% for 2 or more ($24 off). Tiered Spend campaign: 10% off orders of $150 or more.
| Toggle on (before) | Toggle off (after) | |
|---|---|---|
| Subtotal measured | $160 | $136 ($160 − $24) |
| Threshold $150 met? | ✓Yes | ✕No |
| Order discount | $16 (10% of $160) | $0 |
| Customer pays (before shipping) | $120 | $136 |
| Total discount | $40 (25% of list) | $24 (15% of list) |
With the toggle on, the order percentage is calculated on the pre-discount subtotal, so the two campaigns together give 25% off list. If your margin plan assumed "15% plus 10% of what is left", you budgeted $37.60, not $40. If several Tiered Spend campaigns qualify at once, the function keeps the smallest order discount, not the largest.
Recommendation for Summit
- Decide the policy per benefit. Shipping has a per-order cost, so finance's "payable value" view is reasonable for shipping. A spend-tier discount whose cost scales with the order can reasonably use the built basket.
- For free shipping vs the loyalty code, Discount Prime's threshold alone cannot enforce "after the Shopify code". Choose one of:
- Accept the "before" policy and budget for it: estimate how many orders fall below $100 after the code, times the average shipping cost.
- In Shopify, edit the loyalty code's combination settings so it does not combine with shipping discounts. The customer then gets one or the other, and Shopify picks the better one for the customer. Test this in checkout, because the outcome depends on cart contents and both discounts' settings.
- Raise the threshold so that typical coupon users still pay enough after the code to justify the subsidy.
- For the Tiered Spend campaign, pick the toggle by intent, then run the worked example above with your own tiers to see the combined discount.
- Say the rule to customers. If free shipping is measured before coupons, the bar and banner can say "on orders over $100 before discounts". If you choose the other policy, say "after discounts".
Pre-Launch Tests
| Test input | Expected result |
|---|---|
| Cart $120, no code | Free shipping |
| Cart $120 + 25% loyalty code | Note whether free shipping still applies; this shows which basis your setup actually uses |
| Cart $99.99 | No free shipping |
| Two sleeping bags + Tiered Spend, toggle on | Order discount on $160 |
| Same cart, toggle off | No order discount (measured on $136) |
| Two Tiered Spend campaigns both qualifying | The smaller discount applies |
Measurement
- Primary metric: shipping subsidy per order and the number of subsidized orders whose payable total was below the threshold.
- Guardrail: gross profit per order after discounts and shipping (Estimated Profit in Discount Prime analytics covers cost of goods, discounts, and shipping).
- Customer signal: support contacts about eligibility, and abandonment after a code is applied.
- Change the policy or threshold if below-threshold subsidies exceed what you budgeted, or if complaints concentrate on one rule the storefront does not explain.
Takeaway
"Before or after discounts" is a business policy, but it only works if the tool can see the discount in question. Decide the policy per benefit, check what each campaign actually measures (the combination toggle sets it, and Shopify codes are outside what Discount Prime's thresholds can see), and test the exact coupon before launch.
Frequently asked questions
Should a free shipping threshold count the cart before or after a coupon?
It is a policy choice. Counting after the coupon matches the subsidy to what the customer pays, which suits shipping because it has a real per-order cost. Counting before rewards the basket the customer built. Estimate the cost of the before policy as the number of orders that fall below the threshold after coupons times your average shipping cost, then check that your tools can enforce the policy you pick.
Does Discount Prime's free shipping threshold see Shopify discount codes?
Do not assume it does. With the combination toggle off (the default), the minimum is measured on cart prices before discounts. With it on, the function reads the line totals Shopify passes it, and Shopify runs each discount function without other discounts' results, so a Shopify code may not be reflected. Test with the exact code. Real price changes from Flat Product Discount or Bulk Price Update are seen either way.
How does the before or after setting work for Tiered Spend Discount?
It follows the Combine with other campaigns toggle: on measures the threshold and the percentage on the subtotal before Discount Prime's product discounts; off measures them after Discount Prime's own product and Buy X Get Y discounts. This is the reverse of Free Shipping's mapping. Shopify codes are not part of either basis, and Tiered Spend cannot be restricted to specific customers.
How do I stop free shipping applying when a loyalty code takes the cart under the threshold?
Since the shipping threshold may not see a Shopify code, use Shopify's settings on the code: set it not to combine with shipping discounts, so the customer gets one or the other and Shopify applies the better one for the customer. Alternatively raise the threshold so coupon users still pay enough, or accept and budget the subsidy. Test the outcome in checkout.
Why can stacked spend discounts cost more than planned?
With a Tiered Spend campaign measured before other discounts, the order percentage is calculated on the pre-discount subtotal. On a $160 cart with a $24 product discount, 10% off adds $16, for $40 in total, not the $37.60 you get by taking 10% of what is left. If several Tiered Spend campaigns qualify, the smallest order discount applies.
Go deeper
Run this architecture in your store
Every campaign type in this case study is included in Discount Prime, with profit analytics to verify the margin impact.