How to set up a tiered discount (percentage or amount off) on Shopify
Choose Percentage off or Amount off. Yaco Progress Bar creates a Shopify automatic discount, applied at checkout once the cart reaches the tier, with no code to type.
Create the discount tier
A discount tier is a tier of type Percentage off or Amount off.
- Open Goals & Discounts, tab Goals, click Add a goal and choose Percentage off or Amount off.
- Set the threshold in the tier sentence.
- Enter the value in Percentage off applied (between 1 and 100) or Amount off applied (greater than 0).
- Keep Goal + automatic discount, then click Save: the app creates the discount in Shopify.
With Goal only, the bar shows the tier but the app creates no discount: you create the matching automatic discount yourself in Shopify Discounts.
How the discount is applied at checkout
Each tier becomes a Shopify automatic discount: shoppers don’t type any code.
- On one bar, one tier per kind of discount. Among the percentage tiers of a bar (or among its amount-off tiers), the customer gets the highest tier reached, even if a lower tier would save more: give higher tiers bigger rewards. Example: 5% from $50 and 10% from $100, a $120 cart gets 10% only. If a product discount brings the cart below a threshold, Shopify falls back to the tier below.
- A percentage tier and an amount-off tier add up, even on the same bar, as long as each one combines with the other’s class (the default). The bar’s success message then announces both, for example “10% and $20”. A free gift tier and a discount tier add up too.
- Tiers on different bars can add up. Each bar applies its own tier. When both discounts combine with each other’s class (the default), Shopify applies both; otherwise it keeps the one that saves the customer more. The tier card then shows Can add up with another goal and names the other tier: to keep only the best discount, untick the class it names (for example Order discounts) in Combines with.
- The discount follows the tier’s targeting: a customer the tier is hidden from doesn’t get it.
- Shopify limits each app to 25 automatic discounts. At the limit, the admin shows You've reached the limit of 25 app-based automatic discounts.
Repeat the discount at every step
An Amount off tier can give its discount again for every full step of its threshold, for example $20 off for every $100 spent, with a single tier.
- In the Amount off tier, set the threshold to one step ($100) and Amount off applied to the discount per step ($20).
- Tick Repeat for every full threshold.
- To cap the total, fill Maximum discount, for example $100. Left empty, the discount has no cap.
- Click Save.
The discount is the amount per step times the number of full steps in the cart. With $20 off every $100:
| Cart | Discount | With a $100 maximum |
|---|---|---|
| $99 | none | none |
| $100 | $20 | $20 |
| $230 | $40 | $40 |
| $500 | $100 | $100 |
| $1,500 | $300 | $100 |
The maximum must be at least the discount of one step. In another currency, the threshold follows the exchange rate like any tier, and so do the discount granted and the maximum: steps are counted first, then the amount is converted. The amount per step and the maximum can't be adapted per market.
What the shopper sees
Each time a step is reached, the bar starts again towards the next one. The tier shows no check mark and no success message until the maximum is reached: at the maximum, the bar is full and the success message shows. Without a maximum, the bar keeps heading for the next step. In your statistics, the tier counts as reached from the first step.
Two variables let the shopper follow along:
{discount}in the Goal name: the discount of the step the cart is heading for, or the maximum once it is reached.{earned}in the Goal's text template: the discount already earned.
For example, with the name {discount} off and the text {earned} saved · {amount} more for {name}, a $230 cart reads “$40 saved · $70 more for $60 off”.
The two variables also work on an Amount off tier that doesn’t repeat: {discount} is its discount, {earned} is that discount once the tier is reached, and zero before. On another type of tier, they stay as typed.
At checkout and on the order, the discount shows under its Discount title, with the amount actually granted next to it. When the title is empty, is still the default title (“$20 off”), or holds a variable such as {discount}, which only makes sense on the bar, Shopify shows the rule instead, in the checkout’s language, for example “$20 off every $100, up to $300”. A title you translated yourself is kept. The amounts in the rule are in your store’s currency.
Conditions
The app refuses to save a repeating tier unless:
- its bar counts an amount, not items or weight;
- the discount applies to The whole order, not The counted products only;
- it keeps Goal + automatic discount: not Goal only, and no code under Automatically apply a discount code;
- its threshold is above 0, and the maximum, when set, is at least the discount of one step;
- it is the only active Amount off tier of its bar (a disabled or expired one, one in “Goal only” mode or one with an automatically applied discount code doesn’t count). Percentage, free gift and free shipping tiers can share the bar, and a percentage tier adds up with it, as explained above.
A repeating tier is available on every paid plan and during the 14-day trial. After the trial, the free plan doesn't show it, even when it is your only tier: it stays saved and shows again once you subscribe. See subscription.
Choose what the discount applies to
Discount applies to sets the scope of the discount:
- The whole order (default): an order discount on the subtotal, leaving out the lines the bar doesn’t count.
- The counted products only: a product discount on the counted lines, like an Amount off products discount created by hand.
The two behave differently when another discount lowers the cart. With The whole order, Shopify checks the threshold again on the real subtotal: if a discount code brings the cart below the threshold, the tier is dropped (or the tier below applies). With The counted products only, the threshold is judged on the cart before discounts, so the tier stays granted.
Changing the scope also changes which discounts the tier combines with: check your codes after switching.
Threshold before or after product discounts
Click the threshold in the tier sentence: the menu under the amount sets how the threshold is calculated.
- After product discount (default): the threshold is checked on the subtotal after product discounts (codes or automatic product discounts). Example: a $264.99 item with $40 off gives a $224.99 subtotal, so the “Spend $150” tier applies, not “Spend $240”.
- Before all discounts: the threshold uses original prices. A product discount never makes the customer lose a tier.
The bar counts the same way as checkout: what the bar promises is what checkout applies.
Combine the tier with discount codes
Combining works both ways. Under the discount choice (and under Discount applies to when it shows), the Combines with line lists what the tier combines with: Product, Order, Shipping. A struck-through class doesn’t combine; when none does, the line reads Doesn't combine with other discounts. Click Edit to tick or untick Product discounts, Order discounts and Shipping discounts. All three are ticked by default. The line doesn’t show with Goal only. While a partial Shopify rollout A/B tests a tier of the bar, Order is struck through with “off during the A/B test” and its box is locked.
The code must allow it too. In Shopify Discounts, open the code and tick, under Combinations, the class of your tier: order discounts for The whole order, product discounts for The counted products only. Otherwise Shopify keeps one discount and drops the other.
Discount not showing at checkout? See discount not applied.

Something missing? Write to support@yaco.studio, or try it first in the demo.