Skip to content
Docs

Sale

A sale discount is one Shopify product discount that holds a list of offers. Each offer pairs a collection with a discount, such as 30% off dresses, 20% off swimwear and 15% off eyewear. At checkout, every item in an offer’s collection gets that offer’s discount.

Use it for seasonal or storewide sales where different collections get different markdowns, and you’d rather manage one discount than one per collection.

  1. Open your store’s Discounts page and click Create discount

    Create new discount image

  2. Scroll down to the Discount Kit section and click Sale

    Sale in Shopify’s Select discount type list

  3. Choose the discount type, add an offer for each collection, and click Save

    Sale discount settings

The first group of settings applies to the whole sale, and so to every offer in it.

Discount type and Apply discount to

How every offer’s value is read:

  • Percentage off takes a percentage off the item, from 0 to 100.
  • Amount off takes a fixed amount off each item, never more than the item’s price.
  • Fixed price sets the price of each item. It never raises a price: items already cheaper than the fixed price are left alone.

Because the type applies to the whole sale, one sale can’t mix percentage and fixed-price offers. To do that, create two sales.

The price the discount is worked out from:

  • Current price, the item’s price in your store (the default).
  • Compare-at price, so “30% off” means 30% off the compare-at price. Items without a compare-at price use their current price.
  • Price from metafield, a reference price you store on each product or variant, such as an RRP. Choose it, then pick the metafield under Reference price metafield. Items without a value, or whose value is below the current price, use their current price.

When the discount is worked out from a higher price, the customer pays the result. For example, with 30% off the compare-at price, a $100 item with a $120 compare-at price sells for $84. If the result is above the current price, as with a $150 compare-at price ($105), the item keeps its current price: a sale never raises a price.

Fixed price can only be applied to the current price.

Whether the sale applies to one-time purchases, subscriptions, or both. Choosing subscriptions shows Shopify’s own Recurring payments for subscriptions settings.

Skips any item that already has a compare-at price. This can’t be combined with Apply discount to: Compare-at price, because that would leave nothing to discount.

Offers

Each offer is one row: the discount on the left, the collection it applies to on the right.

  • Discount is the offer’s value, a percentage or an amount depending on the discount type. Amounts are in your store’s currency and converted at the checkout rate.
  • Collection is the one collection the offer covers. Click Browse to pick it. To give several collections the same discount, add an offer for each.
  • Customer message (automatic discounts only) is what customers see in the cart and at checkout for that offer. If your store has more than one language, the button at the end of the field translates it.

Click Add offer to add a row. A sale always keeps at least one offer, so the first offer can’t be removed. A sale can target up to 100 collections.

If your store sells in more than one currency, offers taking an amount off or setting a fixed price show a Change currency button. Use it to set an exact amount for a currency instead of converting it. That amount is used as entered.

Instead of typing a value, an offer can read it from a metafield on each variant or product, so every item can have its own markdown. Click the metafield button in the Discount field, choose Variant or Product, then pick the metafield.

Picking a metafield for an offer’s value

The list only shows metafields that suit the discount type:

  • Percentage off reads a number metafield, such as an integer or a decimal.
  • Amount off and Fixed price read a money value. That can be a money metafield, an integer metafield read as cents (1999 means 19.99), or a JSON metafield of cents for each currency, such as {"USD": 1999, "EUR": 1799}.

Each item reads only the metafield you picked. A product metafield is read from the product and a variant metafield from the variant, with no fallback between the two. Items without a value don’t get the offer.

A product can be in more than one of the sale’s collections. The editor warns you when it finds offers that share products:

Some offers share products

Where offers overlap, the better discount always applies. If two offers save the same amount, the one listed first applies, along with its customer message. Overlap isn’t checked for sales with more than 10 collections, but the same rule still applies at checkout.

The sale is applied at checkout. Product prices on your storefront don’t change.

To show what the sale takes off a product, add a Sale Badge (“Save up to 30%”). Build it in Discount Kit → Components for this sale, then place it with the Component block.

  • An offer whose collection has been deleted applies to nothing. The editor tells you to pick another.
  • Combinations with other discounts are set in Shopify’s own Combinations section on the same page.
  • A sale is a product discount. It doesn’t discount shipping or the order total.