A Shopify promotion needs an executable offer: which basket qualifies, what saving the customer receives, and what happens when another discount or a return is involved. This guide helps an Online Store team configure and test one campaign before advertising it. It covers the campaign rule sheet, admin setup, checkout cases and a controlled stop procedure.
Official documentation checked on October 4, 2026. Field availability and payment testing depend on the store's current configuration. The sample numbers below are hypothetical planning examples, not customer results or a promised increase in conversion.
Write the campaign rule sheet before configuring it
Choose one business objective and its corresponding constraint: clear a specified stock group without selling below the approved contribution floor, or offer a repeat customer benefit within a fixed promotion allowance. Record the owner, eligible products or baskets, audience, markets, start and end time, budget, exclusions and how customer support will explain the offer.
Use a planning calculation that separates the promotion from the rest of the order:
| Planning field | Hypothetical example, in one currency |
|---|---|
| Product revenue after the campaign discount, excluding tax | 90 |
| Product cost | 45 |
| Packaging and fulfilment | 8 |
| Shipping subsidy and estimated processing costs | 7 |
| Contribution before advertising and overhead | 90 - 45 - 8 - 7 = 30 |
Use your own costs and the processor's current terms. This example does not calculate net profit, account for every tax treatment or predict repeat purchases. If combining offers would push contribution below the team's approved floor, change the combination policy before launch.
Create one clearly bounded discount
For a code-based amount-off campaign, open Discounts > Create discount, choose Amount off products or Amount off orders, then Discount code. Set the code and Value; for a product offer, select the applicable products or collections. Configure Minimum requirements, Eligibility, Maximum discount uses, Combinations and Active dates, then save. Check the expiry in the store's time zone. These fields and purchase-type options are described in Shopify's amount-off discount instructions.
Read the minimum rule for the chosen discount type. Product and order offers have different qualification calculations; shipping and tax do not count towards the amount-off minimum. Do not infer eligibility from a large total that includes delivery. Test a basket just below, exactly at and above your configured threshold against the same official instructions.
The storefront copy should state the code, eligible items or basket, audience restriction and expiry with its time zone. A code being saved in the admin is not proof that the customer's actual basket qualifies.
Decide what can combine, then test both offers
Combination permission must be enabled on each participating discount. Shopify applies product discounts before order discounts, then shipping discounts. Some combinations have eligibility requirements, and multiple product discounts on the same line item require Plus. Check the exact intended combination in Shopify's discount combination guide; a visible checkbox does not justify a blanket claim that every offer stacks.
List each existing offer that could overlap: an automatic product markdown, loyalty code or shipping offer. For each pair, record the permitted classes and the expected line-item saving, order saving and shipping saving separately. When the checkout result differs, inspect both discounts and the actual basket; do not solve the mismatch by changing the public promise first.
For a Buy X get Y campaign, customers must put both the qualifying and reward items in their cart; the reward is not automatically inserted by that admin discount. Plan the page instruction and stock fallback accordingly. See Shopify's Buy X get Y requirements.
Run a checkout acceptance table
Use test customers and a permitted test environment. Include these cases before announcing the offer:
| Case | Expected result to write down before testing |
|---|---|
| Eligible basket and customer | Intended saving appears on the intended items or order |
| Basket below the minimum | Offer does not apply; the page explains the minimum |
| Ineligible product or customer | Restricted offer remains unavailable |
| Existing discount plus campaign code | Allowed combination or exclusion matches the rule sheet |
| Reward item missing or sold out | Customer sees an actionable route; no promised automatic gift |
| Campaign after its configured end | Offer stops applying and the landing page stops promising it |
Keep screenshots, basket contents, market, customer eligibility and test time with each result. A payment gateway can be tested after the store has selected a paid plan. Use Shopify's Test payment gateway, or Shopify Payments test mode when that provider is configured. Shopify's test-order guide explains these simulated transactions and warns that customers cannot place live orders while payment providers are in test mode. Schedule testing accordingly and restore the live setting; test orders do not demonstrate real sales performance.
Check refunds and assign a stop owner
For a discounted test order, open Orders > the order > Refund, select the appropriate item quantities and inspect the proposed amount, shipping and restocking choice before submitting. Compare the amount with what the customer actually paid for the returned items. Shopify refunds are irreversible after initiation, so rehearse in the chosen test setup rather than experimenting on a customer's order. See Shopify's refund procedure.
Record who can stop the campaign if the saving, eligibility or stock promise is wrong. In Discounts, select the affected offer and use the documented deactivation action; then repeat the failing checkout case and update active landing pages or advertisements. Preserve the campaign record for review instead of deleting the evidence. The available edit and deactivation controls are in Managing Shopify discounts.
After the campaign, compare discounted revenue, product cost, fulfilment, paid acquisition, refunds and remaining inventory on the same basis. More orders can coexist with lower contribution. Treat the test record as evidence that the rules worked, and actual trading data as the separate evidence needed to judge the campaign.