Skip to content
Flow Discounts

Shopify discounts, without the regret

Put it on sale.Put it back.

Flow Discounts runs price drops, volume tiers, buy-one-get-one, cart goals, shipping offers and code campaigns across catalogues of any size. Before it changes a price it writes the old one down, and when the sale ends it puts every one back.

Changing prices is easy. Changing them back is not.

Shopify keeps no history of what a product used to cost. An app that edits your prices is writing over the only copy you had, and if it loses track of what it wrote, or you uninstall it mid-sale, the original price is simply gone.

That is the reason merchants end a sale and find products still marked down weeks later, at prices nobody chose. It is the single most common complaint in this category, and it is an architecture problem, not a bug.

So we built the ledger first

Flow Discounts records the price and compare-at price of every variant before it touches it. Ending a sale is a second pass over that record, not a guess. If a price no longer matches what we wrote, we do not overwrite it: we leave your change alone and tell you which products they were.

Try the undo

Run the sale on five products. Then change one price yourself, the way you would in the Shopify admin on a Tuesday afternoon, and end the sale.

Your products

no sale

  • Merino crew neck

    Charcoal · M

    $129.00

  • Waxed field jacket

    Olive · L

    $249.00

  • Oxford shirt

    White · 16

    $89.00

  • Leather belt

    Tan · 34

    $65.00

  • Wool scarf

    Navy

    $55.00

What we recorded

Every line here is a row in the price ledger. It is what makes the undo possible, and what tells you when someone else got there first.

  1. waiting for a sale…

Seven kinds of sale, one ledger

One app for the sale you are running this week and the one you are running next month. They share the same product picker, the same schedule, and the same record of what changed.

Price sale

Edits the real price, so the product simply costs less on every sales channel, with the old price struck through. No checkout discount, no discount slot used.

This is the only kind that rewrites your catalogue, which is why every original price is recorded before it does.

  • Percentage off, a fixed amount off, or a new price
  • Discount from the current price or the compare-at price
  • Round endings to .99, .95 or .00
  • Skip products already marked down
  • Floors: minimum margin, a multiple of cost, or a fixed amount
  • Caps: maximum discount, maximum saving, leave expensive items alone
What your shopper sees

Merino crew neck

$90.30$129.00

Shown at the sale price everywhere, with the old price struck through

Built for catalogues that do not fit on one screen

Applying a sale across a catalogue that big is a queue, not a request. Work runs in the background in resumable chunks, respects Shopify's rate limits, and reports honest progress. A sale that is half applied says so.

Unlimited
discounted variants on the top plan
7
kinds of sale, one price ledger
10,000
discount codes per campaign
0
customer records read

Say it on the storefront, if you want to

Countdowns, a volume table, a shipping bar and a saving line. They run in your shopper’s browser, talk only to your own store, set no cookies, and send nothing to us.

  • Sale ends in

    Countdown

    On the home page as a bar, on product pages as a card.

  • Buy more, save more
    Buy 2 – 410% off each
    Buy 5 – 918% off each
    Buy 10+25% off each

    Volume table

    On the product page, with a badge on collection cards.

  • Add $18.40 more to unlock free shipping

    Shipping progress

    On the product page, in the cart, or both.

  • Total
    $300.00
    Saving
    $42.00

    Cart saving

    Above the cart totals. Works with any discount, not just ours.

Widgets are optional and off until you switch them on in your theme. A price sale needs none of them: the new price is the real price, so it shows everywhere on its own, including the Shop app and your product feeds.

Priced on how much you run, not on how many variants you own

Every plan has every feature. What changes is how many sales you can run at once, and how many variants can be discounted at the same time.

Every sale type

The price ledger and full restore

Scheduled sales in your store's time zone

Product selection by file

Storefront widgets

Version history on every sale

  • Free to start

    Prove it on a real sale before you pay anything.

    $0forever

    Sales at once
    3
    Discounted variants
    10
    Support
    Email support
  • Starter

    A small catalogue running a handful of sales.

    $9.90per month

    Sales at once
    10
    Discounted variants
    150
    Support
    Email support
  • Most stores land here

    Growth

    The plan most stores settle on.

    $24.90per month

    Sales at once
    30
    Discounted variants
    1,000
    Support
    Email support
  • Scale

    Seasonal sales across a deep catalogue.

    $39.90per month

    Sales at once
    100
    Discounted variants
    10,000
    Support
    Priority email and live chat
  • Enterprise

    No ceilings, for catalogues in the hundreds of thousands.

    $99.90per month

    Sales at once
    Unlimited
    Discounted variants
    Unlimited
    Support
    Priority email and live chat

Paid plans include a 3-day free trial. Billing runs through Shopify and appears on your Shopify invoice; we never see a card. Ending a sale and restoring your prices always works, on every plan, even if a payment fails.

Questions merchants actually ask

What happens to my prices if I uninstall while a sale is running?

They stay at the sale price. Shopify cancels an app's access the moment you uninstall, before it tells the app anything, so nothing can write to your store after that. End your sales first: the app's home page always shows how many prices it is currently holding down. If you reinstall within 48 hours we can still put them back from the ledger.

Do you read my customers' details?

No. The app never opens a customer record and never asks Shopify for one. It can list your customer groups by name so you can limit a sale to one, and it stores only the reference number of the group you picked. It does not request access to orders at all.

What if I change a price myself while a sale is running?

Your change wins. When the sale ends, the app compares each price against what it wrote. If they match, it restores the original. If they do not, it leaves your price alone and lists that product as changed elsewhere, with a downloadable file of every one.

Does a price sale use up one of my discount slots?

No. A price sale edits the product price itself, so there is no discount object and no slot consumed. The other six kinds create one Shopify discount each, and Shopify allows twenty-five automatic discounts per store across every app you have installed.

Can I see what a sale did?

Every save is a version you can open, compare and restore. Every sale keeps a record of each variant it touched, what the price was before, what it set, and how it turned out. You can download the original prices at any time, and a copy is saved into your own store's Files after each price sale.

How do I pick products?

By product, by variant, by collection, by tag, by vendor, by product type, by search, or by uploading a CSV keyed on SKU, barcode, handle or title. Rule-based selections can keep themselves up to date, so products that start matching join the sale and products that stop matching leave it.

Does it slow my storefront down?

There is no storefront JavaScript unless you switch a widget on. A price sale shows the new price natively, because it is the real price. The optional widgets are small, load only on the pages that need them, and talk only to your own store.

Which countries can a shipping offer cover?

Any set you choose, or everywhere except a list. If the shopper has not entered an address yet, the offer is withheld rather than guessed, so nobody is promised free shipping that checkout then refuses.

Run the sale. Keep the receipt.

Install it, point it at a collection, and end the sale whenever you like. Every price goes back exactly where it was.