Selling
Promotions and Discount Codes
Create automatic offers and code-based promotions: percentage or fixed amount off, buy X get Y, volume tiers and shipping offers, with targeting, scheduling, limits and stacking.
Overview
Marketing → Promotions runs every discount your store offers at checkout. A promotion can apply by itself, or only when a shopper enters a code.
Promotions are on the Growth plan and above.
Step 1: Create a promotion
Click New promotion and fill in the four sections.
Basics. Give it a name and choose How it applies: Automatic (no code) or Requires a code. For a code, type it (for example SUMMER20), or use Generate codes to create a batch of codes, with an optional prefix and a limit on uses per code.
Offer. Choose the offer type:
| Offer type | What it does |
|---|---|
| Percentage off | Takes a percentage off. |
| Fixed amount off | Takes a set amount off. |
| Buy X get Y | Buy a quantity, get a quantity at a discount you set. |
| Volume tiers | Bigger discounts at higher quantities or subtotals. Add a tier for each step. |
| Shipping offer | Takes the shipping charge off the order. |
Amounts are in your store's currency, which the form names beside each amount.
Then choose the Scope: the entire order, specific products or specific collections. A Minimum order amount is optional.
Specific collections lists the collections you made in Catalog → Collections, picked by hand or filled by rules. A collection filled by rules is checked at checkout, so the promotion follows the rule as products change. A hidden collection discounts nothing until you show it again.
A promotion saved before 26 October 2026 may name homepage sections here instead, because the list used to show those. They keep applying to the products in that section, exactly as before. The editor shows each one as a homepage section; you can remove it, but you cannot add a section to a promotion.
Targeting & schedule. Offer it to All customers or one customer segment, and set when it Starts and Ends. A promotion with a start date in the future shows as Scheduled.
Limits & stacking. Set a Total usage limit, a Per-customer limit, and whether it may Stack with other promotions. When two promotions cannot stack, Priority decides which one wins.
Step 2: Preview it
Preview runs the promotion against a sample cart with a sample unit price, and shows the subtotal, the discount and the total after discount before any shopper sees it.
Step 3: Turn it on
Save it and click Activate. Pause stops it without deleting it. The list shows each promotion's status (Draft, Scheduled, Active, Paused or Ended), and the page totals redemptions across all of them.
What shoppers see at checkout
A shopper enters a code in the cart or at checkout, and checkout charges exactly what the code was shown to save. The cart checks a code with the same rules checkout uses: the same reasons for refusing it, and the same saving, worked out after any bundle saving. Spaces around a pasted code are ignored.
A reward code that belongs to one customer works for that customer when they are signed in.
When checkout cannot use a code, it says why and charges nothing until the shopper continues without it, instead of quietly leaving the code off:
- an unknown, expired, used-up or paused code: "Invalid or expired code";
- the order is below the code's minimum (gift cards and partner items do not count toward it);
- a reward code that belongs to another customer's account;
- a basket with nothing the code can discount (only gift cards or partner items), or no item the promotion covers.
A code promotion beaten by a better automatic promotion is not refused: the better offer applies, and the cart tells the shopper the code adds nothing.
On the payment step the code is fixed, because the payment was set up for that total. Change details or codes takes the shopper back a step to change it.
Pricing rules
Catalog → Pricing rules changes a price automatically while a condition holds. Each rule applies to one product or to all of them, by a percentage or a fixed amount (a negative number lowers the price), and can be paused without deleting it:
- Time window (happy hour): between a start and an end hour each day, on your store's clock (the time zone of your store, Toronto time if none is set). The editor names the zone beside the hours. A rule saved before 25 October 2026 keeps the UTC hours it was saved with, and the list shows UTC beside it. A window that ends before it starts runs through midnight: 22 to 2 is ten at night until two in the morning.
- Quantity discount (bulk): when a line in the cart has at least the number of units you set.
- Demand spike limit: while the product has between 1 and 5 units in stock. The rule's adjustment applies, and the price never goes above the multiple of its price you set (1.5 is one and a half times).
Shoppers see the rule's price on the product page, in listings and collections and in the cart, with a line saying why, for example "Happy hour price until 20:00 EDT", and checkout charges the same price. A quantity rule shows in the cart once the quantity is reached. The price saved on the product does not change.
When several rules match, each one applies to the price the one before it left, starting with the lowest Priority number, so the highest priority applies last. Your product feeds include a rule that raises a price, but not one that lowers it: the feed shows your regular price, and checkout charges the lower one.
Pricing rules are on the Growth plan and above. For a markdown that steps down on a schedule and never goes below a floor, use Clearance.
Discount codes made before Promotions
Marketing → Discount codes (legacy) lists the older discount codes, including the ones your automations create, so existing codes can still be seen, edited and deleted. Create new offers in Promotions.
Related
- Flash sales for time-boxed sale prices with a countdown.
- Clearance and markdown scheduler for step-down markdowns with a price floor.