How do I build an Advanced discount with product groups and conditions?

Updated · SMART Bundles App & Upsells (E-TRADE PARTNER)

An Advanced discount puts product, order and shipping discounts into one. First you define Product groups, the cart items that match all of a group's conditions. Then you add discounts on the Product, Order and Shipping tabs, each with its own conditions. A discount applies only when every one of its conditions is true.

SMART Bundles App & Upsells is a free Shopify app for bundles, quantity breaks, free gifts and upsells.

Try it free
On this page
  1. Step by step
  2. Conditions you can add to a discount
  3. How conditions combine
  4. How amounts are calculated
  5. Limits
  6. Frequently asked questions

Step by step

  1. In SMART Discounts, click Create new discount and pick Advanced discount under Other discount types. Enter a Discount name and choose Automatic or Code.
  2. In Product groups, the All products group is already there. Click Add product group, give it a Name and set its conditions: Specific product(s), Specific variant(s), Specific collection(s), Product tag, Has selling plan (subscription based), SKU, Has compare at price (on sale), Price per single quantity, Compare at price per single quantity, Product quantity or Variant quantity. Text conditions offer operators such as contains and matches regex.
  3. In Discounts, open the Product, Order or Shipping tab and click Add product discount, Add order discount or Add shipping discount.
  4. Product discount: pick Percentage off, Amount off, Fixed amount or Volume discount, and Apply to: All products, Product groups or All products except product groups. The first three types add Apply to first X amount of products (0 = all) and Application order (Cart order, Lowest priced first, Highest priced first). Percentage off can also Cap discount amount per item and Apply based on compare at price.
  5. Order discount: pick Percentage off, Amount off or Fixed amount, and use Exclude product groups (from calculation) to leave groups out or include only some.
  6. Shipping discount: pick the type, then Delivery method names (a rate qualifies when its name contains one; no names = all methods) and Delivery method types.
  7. Under each discount, click Add condition if it should apply only sometimes. "If no conditions are added, the discount will always apply." Every discount needs a Discount label.
  8. Check Purchase types, Combines with, Eligibility and Active dates, then click Create.

Conditions you can add to a discount

GroupConditionsAvailable on
CustomerCustomer tag (is any / is not any)Product, order, shipping
Product groupProduct group total, Product group quantityProduct, order, shipping
LocalizationCountry (the shopper's store country), LanguageCountry: product, order. Language: all
AddressCity, State/province, Postal code, Country (of the shipping address)Shipping

How conditions combine

  • Inside a product group, an item belongs to the group only if it matches every condition (the editor joins them with "and").
  • On a discount, every condition must be true. There's no "or": for either-or rules, add a separate discount for each case.
  • One item can be in several groups. If two groups overlap, one item can satisfy both. Keep groups apart when you need separate items.
  • Require items from several groups: add one Product group quantity condition per group, such as Shirts at least 1 and Pants at least 1, then apply the discount to those groups.

How amounts are calculated

  • Fixed amount sets the price: each unit, the order subtotal or the shipping rate becomes that amount. It never raises a price.
  • Apply to first X amount of products limits how many units get the discount, in the application order. It can't target cart positions such as "every second item".
  • The Volume discount product type applies the highest tier reached to every unit in its group (All products, Product or Variant), with no first-X limit.
  • Product group total uses item prices before other discounts. Amounts are in your store currency and converted at Shopify's rate.

Limits

  • Data limit. Shopify Functions don't receive settings larger than 10,000 bytes (Shopify developer docs), and list inputs such as tags or collections can't exceed 100 items (Shopify developer docs). The Data limit bar shows how much you use. Near 100%, use fewer products, groups or conditions, or split the discount.
  • "Shipping-only advanced discounts cannot be combined with shipping discounts": with only shipping discounts, untick Shipping discounts under Combines with.
  • Nothing shows on the product page. For a product page bundle of several products, see Complete the bundle.
  • Who can use it: the Eligibility card and Customer tag conditions. See Customer eligibility. For a simple shipping rule, a Shipping discount is quicker.

Build the discount rule you need

SMART Bundles includes an Advanced discount builder alongside bundles, free gifts and cart discounts. Free, with every feature included.

Install free on Shopify

Frequently asked questions

›Can I require products from two collections before the discount applies?

Yes. Make a product group per collection, then add a Product group quantity condition for each group to the discount.

›Can I give free shipping only on standard rates to one country?

Yes. Add a shipping discount at 100%, enter the standard rate's name under Delivery method names, and add the Address Country condition.

Related articles