Seller Profit Guard

What mistakes distort Shopify discount-stack contribution?

Last updated: 2026-07-29

Written and reviewed by Seller Profit Guard Editorial Team.

Common errors include applying order discounts before product discounts, stacking unconfirmed classes, using more than one shipping discount, changing the cart between scenarios, and deriving an unsupported payment-fee base. Preserve dated class, eligibility, checkout, cost, fee, ownership, conflict, and restoration evidence before using the result in a promotion decision.

discount exception log product order shipping discount sequence contribution and decision flow
Original discount exception log diagram using invented cart values only.

Applying order savings first

Common errors include applying order discounts before product discounts, stacking unconfirmed classes, using more than one shipping discount, changing the cart between scenarios, and deriving an unsupported payment-fee base. At checkpoint 1, the discount exception log records the cart grain, discount identity, product, order, or shipping class, automatic, code, or app method, value, active dates, eligibility, exclusions, combination setting, channel, plan, checkout observation, accepted input, rejected alternative, owner, reviewer, and restoration pointer. Do not substitute a favorable margin for missing eligibility evidence.

For applying order savings first, preserve protected Shopify and seller records while publishing invented aggregates only. Identify whether the issue changes the product-first, order-second, shipping-last sequence; the eligible base; the customer total; the payment-fee assumption; the contribution result; or the release authority.

Assuming discounts combine

Common errors include applying order discounts before product discounts, stacking unconfirmed classes, using more than one shipping discount, changing the cart between scenarios, and deriving an unsupported payment-fee base. At checkpoint 2, the discount exception log records the cart grain, discount identity, product, order, or shipping class, automatic, code, or app method, value, active dates, eligibility, exclusions, combination setting, channel, plan, checkout observation, accepted input, rejected alternative, owner, reviewer, and restoration pointer. Do not substitute a favorable margin for missing eligibility evidence.

For assuming discounts combine, preserve protected Shopify and seller records while publishing invented aggregates only. Identify whether the issue changes the product-first, order-second, shipping-last sequence; the eligible base; the customer total; the payment-fee assumption; the contribution result; or the release authority.

Stacking two shipping discounts

Common errors include applying order discounts before product discounts, stacking unconfirmed classes, using more than one shipping discount, changing the cart between scenarios, and deriving an unsupported payment-fee base. At checkpoint 3, the discount exception log records the cart grain, discount identity, product, order, or shipping class, automatic, code, or app method, value, active dates, eligibility, exclusions, combination setting, channel, plan, checkout observation, accepted input, rejected alternative, owner, reviewer, and restoration pointer. Do not substitute a favorable margin for missing eligibility evidence.

For stacking two shipping discounts, preserve protected Shopify and seller records while publishing invented aggregates only. Identify whether the issue changes the product-first, order-second, shipping-last sequence; the eligible base; the customer total; the payment-fee assumption; the contribution result; or the release authority.

Mixing sale prices and discount rows

Common errors include applying order discounts before product discounts, stacking unconfirmed classes, using more than one shipping discount, changing the cart between scenarios, and deriving an unsupported payment-fee base. At checkpoint 4, the discount exception log records the cart grain, discount identity, product, order, or shipping class, automatic, code, or app method, value, active dates, eligibility, exclusions, combination setting, channel, plan, checkout observation, accepted input, rejected alternative, owner, reviewer, and restoration pointer. Do not substitute a favorable margin for missing eligibility evidence.

For mixing sale prices and discount rows, preserve protected Shopify and seller records while publishing invented aggregates only. Identify whether the issue changes the product-first, order-second, shipping-last sequence; the eligible base; the customer total; the payment-fee assumption; the contribution result; or the release authority.

discount exception log: mixing sale prices and discount rows
Original diagram for mixing sale prices and discount rows without private checkout data.

Changing eligible products

Common errors include applying order discounts before product discounts, stacking unconfirmed classes, using more than one shipping discount, changing the cart between scenarios, and deriving an unsupported payment-fee base. At checkpoint 5, the discount exception log records the cart grain, discount identity, product, order, or shipping class, automatic, code, or app method, value, active dates, eligibility, exclusions, combination setting, channel, plan, checkout observation, accepted input, rejected alternative, owner, reviewer, and restoration pointer. Do not substitute a favorable margin for missing eligibility evidence.

For changing eligible products, preserve protected Shopify and seller records while publishing invented aggregates only. Identify whether the issue changes the product-first, order-second, shipping-last sequence; the eligible base; the customer total; the payment-fee assumption; the contribution result; or the release authority.

Ignoring Buy X get Y limits

Common errors include applying order discounts before product discounts, stacking unconfirmed classes, using more than one shipping discount, changing the cart between scenarios, and deriving an unsupported payment-fee base. At checkpoint 6, the discount exception log records the cart grain, discount identity, product, order, or shipping class, automatic, code, or app method, value, active dates, eligibility, exclusions, combination setting, channel, plan, checkout observation, accepted input, rejected alternative, owner, reviewer, and restoration pointer. Do not substitute a favorable margin for missing eligibility evidence.

For ignoring buy x get y limits, preserve protected Shopify and seller records while publishing invented aggregates only. Identify whether the issue changes the product-first, order-second, shipping-last sequence; the eligible base; the customer total; the payment-fee assumption; the contribution result; or the release authority.

Ignoring channel or plan context

Common errors include applying order discounts before product discounts, stacking unconfirmed classes, using more than one shipping discount, changing the cart between scenarios, and deriving an unsupported payment-fee base. At checkpoint 7, the discount exception log records the cart grain, discount identity, product, order, or shipping class, automatic, code, or app method, value, active dates, eligibility, exclusions, combination setting, channel, plan, checkout observation, accepted input, rejected alternative, owner, reviewer, and restoration pointer. Do not substitute a favorable margin for missing eligibility evidence.

For ignoring channel or plan context, preserve protected Shopify and seller records while publishing invented aggregates only. Identify whether the issue changes the product-first, order-second, shipping-last sequence; the eligible base; the customer total; the payment-fee assumption; the contribution result; or the release authority.

Deriving the wrong fee base

Common errors include applying order discounts before product discounts, stacking unconfirmed classes, using more than one shipping discount, changing the cart between scenarios, and deriving an unsupported payment-fee base. At checkpoint 8, the discount exception log records the cart grain, discount identity, product, order, or shipping class, automatic, code, or app method, value, active dates, eligibility, exclusions, combination setting, channel, plan, checkout observation, accepted input, rejected alternative, owner, reviewer, and restoration pointer. Do not substitute a favorable margin for missing eligibility evidence.

For deriving the wrong fee base, preserve protected Shopify and seller records while publishing invented aggregates only. Identify whether the issue changes the product-first, order-second, shipping-last sequence; the eligible base; the customer total; the payment-fee assumption; the contribution result; or the release authority.

Hiding costs below revenue

Common errors include applying order discounts before product discounts, stacking unconfirmed classes, using more than one shipping discount, changing the cart between scenarios, and deriving an unsupported payment-fee base. At checkpoint 9, the discount exception log records the cart grain, discount identity, product, order, or shipping class, automatic, code, or app method, value, active dates, eligibility, exclusions, combination setting, channel, plan, checkout observation, accepted input, rejected alternative, owner, reviewer, and restoration pointer. Do not substitute a favorable margin for missing eligibility evidence.

For hiding costs below revenue, preserve protected Shopify and seller records while publishing invented aggregates only. Identify whether the issue changes the product-first, order-second, shipping-last sequence; the eligible base; the customer total; the payment-fee assumption; the contribution result; or the release authority.

Calling contribution campaign profit

Common errors include applying order discounts before product discounts, stacking unconfirmed classes, using more than one shipping discount, changing the cart between scenarios, and deriving an unsupported payment-fee base. At checkpoint 10, the discount exception log records the cart grain, discount identity, product, order, or shipping class, automatic, code, or app method, value, active dates, eligibility, exclusions, combination setting, channel, plan, checkout observation, accepted input, rejected alternative, owner, reviewer, and restoration pointer. Do not substitute a favorable margin for missing eligibility evidence.

For calling contribution campaign profit, preserve protected Shopify and seller records while publishing invented aggregates only. Identify whether the issue changes the product-first, order-second, shipping-last sequence; the eligible base; the customer total; the payment-fee assumption; the contribution result; or the release authority.

Applying order savings first: failure test 1

Change only the applying order savings first evidence in an invented checkout fixture. Hold merchandise, eligible subtotal, shipping, costs, fee base, currency, period, and every other discount constant. Record whether the defect creates Block, Review, or no state change and show the affected intermediate value.

Repair the source or configuration, rerun the same cart, compare the observed checkout savings with the model, preserve both versions, and verify restoration. The calculator cannot create a code, activate an automatic discount, change an app, select Shopify's best combination, process payment, or expose a private order.

discount exception log: applying order savings first: failure test 1
Original diagram for applying order savings first: failure test 1 without private checkout data.

Assuming discounts combine: failure test 2

Change only the assuming discounts combine evidence in an invented checkout fixture. Hold merchandise, eligible subtotal, shipping, costs, fee base, currency, period, and every other discount constant. Record whether the defect creates Block, Review, or no state change and show the affected intermediate value.

Repair the source or configuration, rerun the same cart, compare the observed checkout savings with the model, preserve both versions, and verify restoration. The calculator cannot create a code, activate an automatic discount, change an app, select Shopify's best combination, process payment, or expose a private order.

Stacking two shipping discounts: failure test 3

Change only the stacking two shipping discounts evidence in an invented checkout fixture. Hold merchandise, eligible subtotal, shipping, costs, fee base, currency, period, and every other discount constant. Record whether the defect creates Block, Review, or no state change and show the affected intermediate value.

Repair the source or configuration, rerun the same cart, compare the observed checkout savings with the model, preserve both versions, and verify restoration. The calculator cannot create a code, activate an automatic discount, change an app, select Shopify's best combination, process payment, or expose a private order.

Mixing sale prices and discount rows: failure test 4

Change only the mixing sale prices and discount rows evidence in an invented checkout fixture. Hold merchandise, eligible subtotal, shipping, costs, fee base, currency, period, and every other discount constant. Record whether the defect creates Block, Review, or no state change and show the affected intermediate value.

Repair the source or configuration, rerun the same cart, compare the observed checkout savings with the model, preserve both versions, and verify restoration. The calculator cannot create a code, activate an automatic discount, change an app, select Shopify's best combination, process payment, or expose a private order.

Changing eligible products: failure test 5

Change only the changing eligible products evidence in an invented checkout fixture. Hold merchandise, eligible subtotal, shipping, costs, fee base, currency, period, and every other discount constant. Record whether the defect creates Block, Review, or no state change and show the affected intermediate value.

Repair the source or configuration, rerun the same cart, compare the observed checkout savings with the model, preserve both versions, and verify restoration. The calculator cannot create a code, activate an automatic discount, change an app, select Shopify's best combination, process payment, or expose a private order.

Ignoring Buy X get Y limits: failure test 6

Change only the ignoring buy x get y limits evidence in an invented checkout fixture. Hold merchandise, eligible subtotal, shipping, costs, fee base, currency, period, and every other discount constant. Record whether the defect creates Block, Review, or no state change and show the affected intermediate value.

Repair the source or configuration, rerun the same cart, compare the observed checkout savings with the model, preserve both versions, and verify restoration. The calculator cannot create a code, activate an automatic discount, change an app, select Shopify's best combination, process payment, or expose a private order.

Ignoring channel or plan context: failure test 7

Change only the ignoring channel or plan context evidence in an invented checkout fixture. Hold merchandise, eligible subtotal, shipping, costs, fee base, currency, period, and every other discount constant. Record whether the defect creates Block, Review, or no state change and show the affected intermediate value.

Repair the source or configuration, rerun the same cart, compare the observed checkout savings with the model, preserve both versions, and verify restoration. The calculator cannot create a code, activate an automatic discount, change an app, select Shopify's best combination, process payment, or expose a private order.

Deriving the wrong fee base: failure test 8

Change only the deriving the wrong fee base evidence in an invented checkout fixture. Hold merchandise, eligible subtotal, shipping, costs, fee base, currency, period, and every other discount constant. Record whether the defect creates Block, Review, or no state change and show the affected intermediate value.

Repair the source or configuration, rerun the same cart, compare the observed checkout savings with the model, preserve both versions, and verify restoration. The calculator cannot create a code, activate an automatic discount, change an app, select Shopify's best combination, process payment, or expose a private order.

discount exception log: deriving the wrong fee base: failure test 8
Original diagram for deriving the wrong fee base: failure test 8 without private checkout data.

Hiding costs below revenue: failure test 9

Change only the hiding costs below revenue evidence in an invented checkout fixture. Hold merchandise, eligible subtotal, shipping, costs, fee base, currency, period, and every other discount constant. Record whether the defect creates Block, Review, or no state change and show the affected intermediate value.

Repair the source or configuration, rerun the same cart, compare the observed checkout savings with the model, preserve both versions, and verify restoration. The calculator cannot create a code, activate an automatic discount, change an app, select Shopify's best combination, process payment, or expose a private order.

Calling contribution campaign profit: failure test 10

Change only the calling contribution campaign profit evidence in an invented checkout fixture. Hold merchandise, eligible subtotal, shipping, costs, fee base, currency, period, and every other discount constant. Record whether the defect creates Block, Review, or no state change and show the affected intermediate value.

Repair the source or configuration, rerun the same cart, compare the observed checkout savings with the model, preserve both versions, and verify restoration. The calculator cannot create a code, activate an automatic discount, change an app, select Shopify's best combination, process payment, or expose a private order.

Shopify Discount Stack Mistakes: controlled cart lab 1

Reperform applying order savings first for the automatic-only and combined invented packets. Show merchandise, eligible product base, product saving, revised subtotal, order saving, shipping saving, customer total before tax, fee assumption, cost, contribution, margin, and signed B-minus-A result without skipping a step.

Stress one driver at a time: fixed versus percentage, eligible base, order minimum, shipping cap, combination flag, channel, plan, app compatibility, checkout observation, cost, fee base, target, conflict, reviewer, backup, or restore result. Exact cents cannot make stale promotion evidence current.

Shopify Discount Stack Mistakes: controlled cart lab 2

Reperform assuming discounts combine for the automatic-only and combined invented packets. Show merchandise, eligible product base, product saving, revised subtotal, order saving, shipping saving, customer total before tax, fee assumption, cost, contribution, margin, and signed B-minus-A result without skipping a step.

Stress one driver at a time: fixed versus percentage, eligible base, order minimum, shipping cap, combination flag, channel, plan, app compatibility, checkout observation, cost, fee base, target, conflict, reviewer, backup, or restore result. Exact cents cannot make stale promotion evidence current.

Shopify Discount Stack Mistakes: controlled cart lab 3

Reperform stacking two shipping discounts for the automatic-only and combined invented packets. Show merchandise, eligible product base, product saving, revised subtotal, order saving, shipping saving, customer total before tax, fee assumption, cost, contribution, margin, and signed B-minus-A result without skipping a step.

Stress one driver at a time: fixed versus percentage, eligible base, order minimum, shipping cap, combination flag, channel, plan, app compatibility, checkout observation, cost, fee base, target, conflict, reviewer, backup, or restore result. Exact cents cannot make stale promotion evidence current.

Shopify Discount Stack Mistakes: controlled cart lab 4

Reperform mixing sale prices and discount rows for the automatic-only and combined invented packets. Show merchandise, eligible product base, product saving, revised subtotal, order saving, shipping saving, customer total before tax, fee assumption, cost, contribution, margin, and signed B-minus-A result without skipping a step.

Stress one driver at a time: fixed versus percentage, eligible base, order minimum, shipping cap, combination flag, channel, plan, app compatibility, checkout observation, cost, fee base, target, conflict, reviewer, backup, or restore result. Exact cents cannot make stale promotion evidence current.

Shopify Discount Stack Mistakes: controlled cart lab 5

Reperform changing eligible products for the automatic-only and combined invented packets. Show merchandise, eligible product base, product saving, revised subtotal, order saving, shipping saving, customer total before tax, fee assumption, cost, contribution, margin, and signed B-minus-A result without skipping a step.

Stress one driver at a time: fixed versus percentage, eligible base, order minimum, shipping cap, combination flag, channel, plan, app compatibility, checkout observation, cost, fee base, target, conflict, reviewer, backup, or restore result. Exact cents cannot make stale promotion evidence current.

Shopify Discount Stack Mistakes: controlled cart lab 6

Reperform ignoring buy x get y limits for the automatic-only and combined invented packets. Show merchandise, eligible product base, product saving, revised subtotal, order saving, shipping saving, customer total before tax, fee assumption, cost, contribution, margin, and signed B-minus-A result without skipping a step.

Stress one driver at a time: fixed versus percentage, eligible base, order minimum, shipping cap, combination flag, channel, plan, app compatibility, checkout observation, cost, fee base, target, conflict, reviewer, backup, or restore result. Exact cents cannot make stale promotion evidence current.

Coercion defect register

Record how formatted currency, percent signs, words, negative values, and invalid dates previously appeared usable after conversion. The strict parser now rejects each source defect before contribution arithmetic.

Convenient conversion is not evidence that the discount record, reviewer, or checkout meant the resulting number.

Limit and scope misquotation

Separate current active-automatic and code limits, eligible combination types, plan or checkout requirements, and same-line behavior from the calculator's narrower rows and seller target.

Never present a platform limit as a ranking factor, pricing recommendation, conversion claim, legal safe harbor, or permission to activate.

Official rule boundary for discount exception log

Shopify documents product, order, and shipping discount classes; eligible combinations; product-first, order-second, shipping-last calculation order; one shipping discount code per order; a current maximum of 25 active automatic discounts and five product or order codes; channel, plan, checkout, and app considerations; best-combination selection; and checkout testing. Record acquisition dates because current behavior and eligibility can change.

This one-product, one-order, one-shipping model deliberately excludes Buy X get Y allocation, multiple same-line product discounts, multiple order-discount arithmetic, complex app functions, scripts, taxes, duties, refunds, gift cards, store credit, subscriptions, draft-order exceptions, and market-specific payment treatment unless a separate protected calculation reconciles them.

Privacy, release, and restoration for discount exception log

Use invented cart fixtures and aggregate evidence summaries only. Keep unpublished codes, customers, orders, addresses, payment details, staff identities, credentials, app settings, promotion calendars, cost records, private screenshots, and raw exports out of public content.

Before indexing, pass type, unit, integration, build, content, similarity, metadata, images, links, privacy, mobile, backup, deployment, and live checks. Search signals are later measurements; failed eligibility, checkout, or rollback evidence still stops release.

Sources and further reading

Related Seller Profit Guard tools

Next step: Open Seller Profit Guard.

This is operational planning help, not tax, accounting, legal, financial, or platform-policy advice. Review the Terms and disclaimer, and verify current platform rules and fee assumptions before changing prices.