Skip to main content

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, online, in store or at chosen locations.

Overview

Marketing → Promotions runs every discount your store offers, online at checkout and in store at the point of sale. A promotion can apply by itself, or only when a shopper or your cashier enters a code.

Promotions are on the Growth plan and above.

Step 1: Create a promotion

Click New promotion and fill in the 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 typeWhat it does
Percentage offTakes a percentage off.
Fixed amount offTakes a set amount off.
Buy X get YBuy a quantity, get a quantity at a discount you set.
Volume tiersBigger discounts at higher quantities or subtotals. Add a tier for each step.
Shipping offerTakes 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.

Where it can be used. Choose the Sales channel:

  • Online store only: your storefront checkout, and orders placed by shopping agents. A new promotion starts here.
  • In store only (point of sale): the register, and nowhere online.
  • Online store and in store: both.

Then, optionally, tick the Locations it is limited to, from the stores in Settings → Locations. With none ticked it works at every location and on every online order. With locations ticked:

  • at the register, it applies to sales rung up on a register at one of those stores;
  • online, it applies only to orders the shopper picks up at one of those stores. A shipped order never gets it.

The list shows a promotion's limits beside its offer type, for example "In store only" or "Online only · Downtown".

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. Choose Sold (online or at the register) and the location to see what that sale would get. When nothing applies because a promotion is limited to another channel or location, the preview says so.

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.

An in-store-only promotion never shows or applies online: not in the cart, not at checkout, and not to shopping agents. A shopper who types its code is told "This code can be used in store only." A code limited to locations works online only for pickup at one of them; typed for a shipped order it says "This code applies only to orders picked up at participating stores." If the shopper chose pickup, entered such a code and then switched to shipping, checkout says why and charges nothing until they continue without it.

At the register

The point of sale applies every active promotion that includes the register, at the location of the register's session, and any code the cashier types in Discount code. The till shows each promotion by name, the code's saving and any points beside the total before you charge, and the receipt shows the discount. A code that earns nothing is refused with the reason (online only, not at this location, below its minimum, nothing in the sale it covers, or not valid) and the till does not charge until you remove it.

A promotion or code with a Per-customer limit needs a customer on the sale: without one it could be used again on every sale. Until you add the customer, the till lists such a promotion as needing a customer, with the reason, and takes nothing off for it; a code like that is refused with "This code is limited per customer. Add the customer to the sale to use it."

A shipping offer that includes the register takes the shipping charge off a sale you ship to the customer from the till. Usage limits count register sales and online orders together. A sale rung up while the register was offline is priced when it syncs, with the promotions that apply then. It already happened at the counter, so when it goes over a usage limit (or used a per-customer promotion with no customer on the sale) it is still recorded, the audit log shows which limit, and you are told (see Notifications). Layaways are priced without promotions.

The register's location is the one its store Sells stock from in Settings → POS setup. A register whose store sells from no location gets only promotions with no location ticked.

Promotions and discount codes made before 24 November 2026 apply online only, exactly as they did. Edit one and choose Online store and in store to use it at the register too.

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. The Where column shows where each code can be used, and the store button beside it changes the sales channel and locations, the same choices as on a promotion. Codes your automations create work online only. Create new offers in Promotions.