Help
Workstyling Discounts & Sales schedules sales in your Shopify store: prices drop when a sale starts and go back exactly when it ends.
Your first sale, step by step
- Choose products. On Sales, use Quick start, or open Schedule. Under Products to discount, pick Products and collections I pick (then Select products or Select collections), Entire catalog or One collection; Pro adds one vendor, one product type, products with a tag and overstock. You can switch between them at any time before saving. Or start from Shopify admin: select products on the Products page (or open one) and choose Add to sale under More actions; the form opens with them picked.
- Set the discount: a percentage off, an amount off, or a set price for every variant. Tick Round sale prices to end them in .99, .95 or a whole amount, rounding down or up (100.24 → 99.99, 100.99, 99.95, 100.95, 100.00 or 101.00). Under Products already on sale, choose what happens to products that are already marked down outside this app (see What happens to your prices).
- Pick the start and end, or click Use dates on an upcoming holiday or shopping event (Black Friday, Memorial Day, Mother's Day…). Times are in the timezone from Settings (your store's timezone unless you change it). To run it regularly, choose Repeat: every week, every 2 weeks or every month, optionally until a date.
- Choose the Storefront display: the original price crossed out, or only the sale price.
- Check the preview. It lists every variant with its old and new price, and says why any variant will be skipped. Pause in the Action column keeps a product out of the sale.
- Click Schedule sale (or Save in Shopify's bar at the top of the page, which appears once you've filled something in). Turn on Require approval if you want to approve it in the Sales list before it can start.
Not sure what to enter? Auto-fill on the New sale page fills in the discount, dates and name with a ready-made plan that you can change. Plan sale on any holiday (Sales page or Sales calendar) opens the form with that event's dates and suggested discount filled in.
The Sales page
At the top: how many sales are live and scheduled, how many variants are at a sale price right now, and how many sales ended in the last 30 days. Running means the app is checking every minute, so sales start and end on their own; it also says when sales are waiting for your approval.
- What's new
- After an update, a short What's new note at the top of the Sales page says what changed. It shows once: Got it hides it for good, for everyone in your store. More in Help opens this page.
- Active and scheduled
- Every sale that isn't finished, with its status, discount and period. Under the period a countdown says how long until it starts or ends ("Starts in 2 days 1 h", "Ends in 20 days"), and adds "needs approval" when it's waiting for you. The buttons on the right depend on the status (see Editing, pausing and cancelling).
- Timeline
- Below the list, each sale is a bar on a calendar of the coming weeks, in the same order as the list (hover a bar for its name). The vertical line is Today; the shaded band shows the sale's whole period and its length. A sale that started before the visible range shows "since" its start date, one that runs past it shows "until" its end date. Colours: Live, Scheduled, Needs approval, Paused, Failed. Small marks on the axis are holidays and shopping days (hover for the name). Click a bar to open the sale. To change dates, drag: a bar moves as a whole, and its edges change just the start or the end (also for a running sale: an end dragged to now ends it, and a start moved later than now puts prices back until the new start). Dates move in whole hours and show while you drag; nothing changes until you click Save (Undo puts it back). It works with a mouse or a finger.
- Coming up
- The next few holidays and shopping days for your country, each with Plan sale. If one of your sales already runs on those days, it says so; you can still plan another sale for different products. Full calendar opens the Sales calendar.
- Quick start
- Start a sale from a ready selection: picked products, the entire catalog or a collection (Pro: vendor, product type, tag, overstock). Each option shows how many active products it covers.
- Past
- Ended and cancelled sales. Open one to see its report, run it again or delete it.
Sales calendar
Open it with Full calendar on the Sales page. It lists holidays and shopping days for the next 12 months, each with a suggested sale window and discount.
- Country: your store's country is picked for you (marked Your store); switch to any other to plan for customers there. International shows the global shopping days.
- Show: all events, or only shopping events, holidays, gift-giving days or observances.
- The twelve month tiles show how many events each month has; click one to jump to it.
- Plan sale opens a new sale with that event's dates and suggested discount filled in. A note shows when one of your sales already covers those days.
- Countries covered: the United States, Canada, the United Kingdom, Ireland, Australia, New Zealand, Germany, France, Spain, Italy, the Netherlands, Mexico and Brazil, including local sale seasons such as France's soldes, El Buen Fin and Sinterklaas.
- Don't want holidays on the Sales page? Turn them off in Settings → Holidays and shopping events. The Sales calendar stays available.
What happens to your prices
- Before any price changes, the app saves each variant's price and compare-at price. A copy is also kept on the variant itself while it's discounted (a metafield, smart_sale.backup), removed as soon as the price is back.
- When the sale starts, the price drops and the compare-at price is set to the original, so your store shows the usual strike-through. It works in every sales channel, with no discount code.
- When the sale ends, the saved prices are put back exactly.
- If you change a price by hand during the sale, your price wins: the app leaves it (also when you edit the sale later), the sale's page says so right away, and the sale report notes it when the sale ends.
- Markets and B2B: prices that follow your store price (a market's percentage adjustment) get the sale too. A fixed price set for a market or a B2B catalog stays as it is, so customers there don't see the sale. The preview lists those price lists and how many products they cover.
- With Round sale prices on, a rounded price never drops below your price protection and always stays below the original; if neither direction fits, the exact price is used.
- Storefront display (per sale): show the original price crossed out, or only the sale price.
- Products already on sale: a product whose compare-at price is above its price was marked down outside this app (by you or another app). By default the sale leaves it as is, so there's no discount on top of a discount. You can instead choose Discount from the compare-at price (the sale replaces that markdown, priced from the crossed-out price; a price that's already lower is kept) or Discount them further. Either way, the original price and compare-at come back when the sale ends. The preview marks these products.
- Checkout discounts: automatic discounts and codes from Shopify's Discounts section apply at checkout on top of any sale price. Before you launch, the preview lists the ones that reach your sale's products (or the whole order), with when they run. The app only reads them and never changes them.
- Gift cards are never discounted.
- Start and end happen on their own; you don't need to keep the app open.
Price protection
Every variant has a lowest allowed price, worked out in this order:
- Variant has a Cost per item: cost plus your margin (from a floor rule if one applies, otherwise the default margin in Settings).
- No cost, but a floor rule applies: the rule's lowest price or maximum discount, whichever is stricter. Product rules win over collection rules, which win over store-wide rules.
- Otherwise: the default maximum discount in Settings.
If a discount would go below that price, the app either skips the variant (it keeps its full price) or sells it at the lowest allowed price instead. Choose which in Settings → Price protection.
Tip: protection is most accurate with Cost per item filled in (Products → a product → Pricing). Settings shows how many of your variants have it.
In the preview, products with Cost per item show their cost and profit per unit at the sale price (or how far below cost a discount would go), and the counts above the table say how deep a percentage discount can go while every product stays above its lowest allowed price.
Editing, pausing and cancelling
- Approve
- A sale with Require approval waits in the list until you click Approve. If its start time has already passed, approving starts it right away and it runs until its end.
- Edit
- Works for scheduled, paused and running sales. Editing a running sale updates prices right away without pausing it; products you remove go back to full price. Moving the start into the future puts all prices back until then; setting the end to a time that has passed ends the sale now.
- Save / Save and exit
- When editing, Save keeps you on the form and Save and exit takes you back to Sales. Both stay greyed out until you change something, so you can tell at a glance whether there are unsaved changes. If saving fails, the reason shows next to the buttons and at the top of the page.
- Unsaved changes
- As soon as you change something in the sale form or in Settings, Shopify's bar at the top of the page shows Save and Discard. Discard puts everything back as it was. Leaving the page with unsaved changes asks you first.
- Pause
- Puts the original prices back now. Resume discounts them again; if a price changed while paused, the new price becomes the original. A sale waiting for approval can't be paused: approve or cancel it.
- Pause one product
- On the sale's page, under Products, Pause puts just that product back at full price while the rest stays on sale; Resume discounts it again. In the sale form, Pause in the preview does the same when you save. It works for collection, tag and catalog sales too.
- Cancel
- Puts the original prices back and closes the sale for good. For a repeating sale, it also stops the series.
- Repeat
- In the sale form, under the dates. When a run ends on its schedule, the same sale is scheduled again for its next window, at the same local times: a week, 2 weeks or a month later (on the 29th–31st, shorter months use their last day). Each run saves fresh originals, so price changes you made between runs are kept. Collections and groups are looked up again, so new products join; if nothing matches any more, that run discounts nothing and the sale says so. The sale's report keeps every run. A run can't be longer than the gap between starts. Repeat until (optional) ends the series after that day; Cancel ends it now; Doesn't repeat stops it after the current run.
- Stock limit
- Optional, in the sale form under Launch. While the sale runs, the app checks stock every few minutes: when a product's stock (its sale variants together, all locations) falls to the limit, the product goes back to full price for the rest of the sale, as if you paused it, and the report says why. Products that don't track inventory aren't affected. You can resume the product on the sale's page; if its stock is still at the limit it's paused again. If Shopify refuses to put a price back, the sale says so and the app keeps trying every few minutes.
- Run again
- An ended or cancelled sale can run again: click Run again next to it under Past, pick new dates and click Schedule again. Original prices are saved afresh at the new start.
- Delete
- Removes an ended or cancelled sale from the list. It's only possible once every price is back.
Sale statuses
- Pending approval
- Waiting for you to click Approve. Nothing changes until you do, even after the start time has passed.
- Scheduled
- Starts on its own at the start time.
- Active
- Running: sale prices are live.
- Paused
- Original prices are back until you resume. If its end time passes while it's paused, it simply ends.
- Applying… / Reverting…
- Prices are being changed right now. This takes seconds to a few minutes for large sales.
- Ended / Cancelled
- Finished, and prices are back. The report keeps the full history.
- Failed
- Shopify rejected the price changes (the sale's message says how many). Open the sale report to see which products and why. Click Cancel to put back every price that's still discounted. If Shopify refused a pause or cancel, the app keeps retrying it on its own every 15 minutes until every price is back; otherwise it retries every 15 minutes once the sale's end time has passed. A brief hiccup at the start (Shopify busy for a moment) isn't a failure: the sale stays scheduled and starts on the next try.
The sale report
Click a sale's name to see every variant: applied, restored, skipped by price protection, skipped because it was already on sale outside this app, left alone because its price was changed by hand, or failed with Shopify's reason. The counts at the top cover the latest start and the latest end. While a sale runs, a price someone changed in Shopify shows up on its page right away, with a note that it will be left as it is.
The same page lists the sale's products with Pause and Resume, and shows how many original prices are still held to restore. A sale that ran several times keeps every run; Clear older entries removes all but the latest start and end (you're asked to confirm). Export CSV downloads every entry for a spreadsheet.
Results, on the same page once the sale has started: units sold, revenue and orders for the sale's products while it ran (or so far), each compared with the same length of time just before it, plus Markdown given: what the sale took off the original prices of the units sold. Cancelled and test orders aren't counted. A repeating sale shows its latest run. Editing a running sale doesn't restart the count. Each unit counts at the price it sold at, and a product removed from a running sale keeps what it sold while it was in it. The app reads orders only for these totals; it doesn't read or keep customer details.
Settings
Timezone, holidays and price protection save together: change anything and click Save in Shopify's bar at the top of the page (Discard undoes your changes). Floor rules are added and deleted on their own.
- Language
- The app follows each person's Shopify admin language: English, Español, Français, Deutsch, Português (Brasil), 日本語 or Italiano (any other admin language sees English). To use one language for everyone in your store, pick it in App language under Settings → Language; Same as Shopify admin goes back to each person's own. It applies at once, without Save.
- Full width
- Every page has a Full width / Standard width button at the top right, next to the page's other actions: pages use the whole width of the admin, or the usual narrower column. Saved for your store, on every page.
- Timezone
- The timezone for sale start and end times. It follows your store's timezone unless you pick another.
- Holidays and shopping events
- Show holidays and shopping events turns Coming up, the holiday marks on the timeline and the calendar in the sale form on or off. On by default.
- Price protection
- Default maximum discount, default margin over cost, and what happens when a discount goes below the lowest allowed price (skip the variant or sell it at the lowest allowed price). Also shows how many variants have Cost per item.
- Floor rules
- A lowest price, maximum discount or margin over cost for a product, a collection or the whole store. See Price protection above for which rule wins.
Shopify admin and Flow
- Add to sale
- In Shopify admin, on the Products page select products and choose Add to sale, or open a product and find Add to sale under More actions. The New sale form opens with those products (up to 50 at a time).
- Shopify Flow
- Three triggers for your own workflows: Sale started, Sale ended and Sale failed. Each passes the sale's name, link, discount, start, end and timezone (Sale failed also passes the reason). For example: post to your team chat when a sale starts, or tag products when it ends. They fire when the app starts or ends a sale on its schedule.
- Get support
- Shopify's Get support link for this app opens this Help page.
Plans
- Free: 1 sale at a time (scheduled, running or paused), up to 25 products per sale, targeting by picked products, entire catalog or collection.
- Pro: $9.99 a month after a 7-day free trial. No limits, plus targeting by vendor, product type, tag and overstock.
- Billing goes through Shopify, on your regular Shopify invoice. Change or cancel any time on the Plan page.
- Changing plans never touches running sales. New sales, and approving or resuming sales, follow the current plan. A scheduled sale that the plan no longer covers when it's due (for example after Pro ends) doesn't start: it waits under Pending approval with the reason.
Questions
- Can two sales discount the same product?
- Not at the same time. The app refuses overlapping sales on the same variant, and won't discount a variant until another sale has put its price back.
- What if my server or Shopify has an outage at start or end time?
- The app catches up as soon as it can: a missed start is applied (if the sale is still running) and a missed end is restored.
- What if I uninstall during a sale?
- Shopify stops apps from changing prices once they're uninstalled, so a running sale's prices stay as they are while the app is gone. Just install it again, any time later: running sales carry on, ones that are over get their prices back, and scheduled sales return to the schedule. Even after a long time, prices still discounted by the app are put back from the copy kept on each product, unless you changed them yourself (the result appears under Past as "Prices restored after reinstall"). If Shopify refuses some of them, they're kept and retried every 15 minutes. Nothing to do by hand.
- Which holidays does the calendar show?
- Public holidays plus the big shopping and gift-giving days for 13 countries; other countries see the international shopping days. See Sales calendar above.
- Will customers get a discount code on top of the sale price?
- Yes, if the code (or an automatic discount) covers those products: Shopify applies it at checkout to the sale price. The preview warns you about every such discount before launch, so you can exclude the products from it in the Discounts section or keep both on purpose.
- Do I need Cost per item?
- No. Without it the app uses your floor rules and default maximum discount.
Need a hand?
Contact us through the support link on our App Store listing. Privacy: privacy policy.