Was/Now Pricing Rules for Australian Shopify Stores
How the ACCC tests a was/now price, how Shopify's compare-at price and discount end dates behave, and a one-afternoon audit so a sale never becomes permanent.
Quick answer: In Australia, a “was” or strikethrough price is likely to tell shoppers they will save the difference, and the ACCC says that can mislead if the product was not sold at the “was” price for a reasonable period right before the sale, or only a very small proportion sold at it. There is no official number of days (the ACCC’s guide says it depends on the product and the market), and a sale price left running for an extended period may stop being a sale at all. In Shopify, a compare-at price stays until you clear it and a discount only ends if you set an end date, so check that real orders happened at the reference price, put a true end date on every sale, and keep records. This is general information, not legal advice.
Compare-at price is how a Shopify store shows a crossed-out price. You type the old price in, your theme crosses it out, and a sale appears. The question the Australian Competition and Consumer Commission (ACCC) asks about it takes longer to answer: was that old price real?
That question is not theoretical for online stores. In 2026 the ACCC announced that an online seller of health, personal care and household products (HSK United, June 2026) and a camera retailer (digiDirect, September 2026) had paid penalties over strikethrough prices, and the Federal Court ordered penalties against a direct-to-consumer mattress brand (Emma Sleep, April 2026). All three involved a crossed-out price on a website.
This guide explains the ACCC’s test in plain English, shows how compare-at price and discounts behave in Shopify, and gives you an afternoon audit to find where a “temporary” sale has quietly become permanent.
Read this first. I am not a lawyer, and the ACCC says it does not give legal advice to businesses about how they display prices. This is general information from the sources named in the text, read on 31 October 2026. I will not tell you any particular wording is compliant, because that depends on your products, your price history and the facts. For a big sale, or if you are unsure, ask a lawyer who knows the Australian Consumer Law.
What the law says, in short
The rules sit in the Australian Consumer Law (ACL), Schedule 2 of the Competition and Consumer Act 2010. I read the compiled Act on the Federal Register of Legislation (the latest compilation I could open was dated 16 September 2026, and the register showed a later version from 27 October 2026 not yet compiled, so check the live text). Five sections matter:
- Section 18: no conduct in trade or commerce that is misleading or deceptive, or likely to be.
- Section 29(1)(i): no false or misleading representation with respect to the price of goods or services.
- Section 35 (bait advertising): do not advertise goods or services at a specified price if there are reasonable grounds to believe you cannot offer them at that price for a reasonable period and in reasonable quantities, and you are or ought reasonably to be aware of those grounds. If you advertise a price, offer them at it for a reasonable period and in reasonable quantities.
- Section 47 (multiple pricing): if goods have more than one displayed price, do not sell them for a price that is not the lowest of those prices.
- Section 48 (single price): where you state an amount that is part of the price, you must also state the single price prominently.
Two points from the ACCC’s own pages: it makes no difference whether a business intends to mislead, and the rule covers any communication by a business, including advertising, social media and websites.
How the ACCC tests a was/now price
The ACCC’s price displays page lists the ways a displayed price can mislead. For was/now pricing, three apply: saying a price is marked down from an earlier price when the item was not sold at that price for a reasonable period right before the sale; the same when only a very small proportion of items sold at it; and comparing with a recommended retail price (RRP) the product was never sold at, or not for a reasonable period before the sale. It also lists promoting a normal price as a “sale” price, and leaving an item on a sale price for an extended time, because that price has effectively become the new selling price.
The ACCC’s Advertising and selling guide (published 5 July 2021) explains the reasoning. From its section on two-price comparisons:
- A was/now or strikethrough price is likely to tell shoppers they will save the difference. The critical issue is whether shoppers would have paid the “was” price for a reasonable period before the sale.
- What counts as reasonable varies. It depends on the type of product, the market, and how often prices for that product usually change.
- Offering the product at the “was” price is not the end of the enquiry. If you rarely or never sold it at that price, be careful. The guide says that is hard to get around if you routinely discount, and calls was/now pricing with very few or no sales at the “was” price a risky choice.
- It applies equally to a dollar or percentage saving (“60% off”), not only to a crossed-out price.
- Keep records that substantiate any two-price claim. The guide says ACL regulators can compel you to substantiate one.
The guide’s page says it does not reflect later ACL changes, including higher maximum penalties, and that the ACCC will update it, so look for a newer edition.
There is no magic number of days
The obvious question is how long you must sell at the full price first. No official number exists. The guide gives one court example: in the Zamel’s jewellery case, the Federal Court found the advertising misleading where the item had not sold at or near the “was” price, or had sold in limited numbers, in the four months before the sale (a shorter stretch applied where the item had been in an earlier sale). A footnote adds that every case differs. Treat four months as a window for your review, not a safe harbour.
Three questions for every compare-at price
This is my working rule, not the ACCC’s:
- Did people buy at that price? Look at orders, not at what the admin says the price was. A price that sat on the page but almost never sold is the digiDirect pattern.
- Recently, and for long enough? If the product has spent most of the last few months on promotion, the “was” price is a weak reference.
- Does the sale really end? If the “now” price is still there long after the sale was meant to finish, the ACCC says it may have become the new selling price. It gives no number of days for this either.
If any answer is no, remove the crossed-out price or change the claim. You can still sell at a lower price; you just cannot describe the saving as something it is not.
What the ACCC has pursued in 2026 and before
Penalty amounts below come from the ACCC release pages. Infringement notice payments are not admissions of a breach, which is why several releases say “allegedly”.
| Case | What the ACCC says happened | What it means for your store |
|---|---|---|
| HSK United, 26 June 2026 | Two online stores used strikethrough prices; some products had not sold at the higher price since at least 1 January 2025. $79,200 paid after four notices (two on pricing, two on returns wording) | A reference price not charged since early 2025 is the pattern the ACCC pursued. Returns wording counts too |
| digiDirect, 21 September 2026 | ”Price slashed” products were rarely advertised and almost never sold at the higher price. $99,000 paid after five notices; digiDirect admitted the claims were misleading in an undertaking | A price on a page is not enough if it almost never sells. The ACCC first noticed it in a Black Friday sweep |
| Emma Sleep, 24 April 2026 | Federal Court ordered $15 million in total penalties. All 74 products showed a strikethrough; 58 had not previously been for sale at it and 16 almost never. A countdown timer reset and “Ending Soon” ran while the discount continued | A direct-to-consumer store, a strikethrough on every product and a timer that reset. The court found a deliberate marketing strategy |
| James Lane and Vuly, 29 September 2026 | James Lane advertised a sale ending 3 December 2025 but had decided in advance to extend it ($19,800). Vuly’s countdown timers restarted with the same or a higher discount ($39,600 over two notices) | “Ends today” has to be true on the day |
| Charles Tyrwhitt, 16 September 2016 | A London-based retailer showed a shirt on its website as was $160, now $69. The “was” price sat in a hard-to-find part of the site and no one had bought at it | Overseas stores selling to Australians are covered, which matters if you ship here from the US |
One more point on method: in December 2024 the ACCC said it was collecting price data before, during and after sales to check whether businesses had inflated prices to make a sale look bigger. Your own order history is the record of what you really charged.
Is the ACCC watching this season?
According to its digiDirect release, the ACCC swept Black Friday and Boxing Day advertising in 2024 and 2025. It announced the 2025 Black Friday sweep on 10 November 2025, and on 14 April 2026 said around half of the 50 retailers reviewed made concerning claims. In a 19 February 2026 speech it said misleading pricing in retail remains a priority for 2026-27. I could not find an announcement of a 2026 sweep as at 31 October 2026, so check accc.gov.au. If you sell through the Black Friday to Boxing Day period, plan for that scrutiny.
How compare-at price works in Shopify
This is what Shopify’s Help Center says, read on 31 October 2026.
The mechanics. Set the Compare-at price field to the original price and lower the Price field to the sale price. Compare-at must be higher than Price for the sale to display. It works per product or variant, and you can bulk edit.
Where it shows. Both prices can appear on product and collection pages; checkout shows only the sale price. Your theme controls whether and where sale prices and badges appear.
Variants. If compare-at prices are inconsistent across a product’s variants, the collection page may not show the product as on sale. A compare-at of $0.00 is not the same as an empty field, so clear the field completely where a variant should have none.
Markets. Fixed prices in Shopify Markets override the prices and compare-at prices set in the admin, and sale prices for international markets are set by CSV import. If you sell in several markets, check each one’s reference price.
AI channels. For Shopify’s AI channels (Shopify Catalog), your theme does not control the display. If eligible, you choose whether price or compare-at price is the list price, and each channel decides whether to show it. Your reference price can travel beyond your theme; see product data for AI shopping agents.
What Shopify does not do. The steps ask only that compare-at is higher than the price. I found no check on whether you ever charged the old price, and no end date on the field. In the steps Shopify describes, you type a number and it stays until someone clears it. That is the first way a temporary sale becomes permanent.
Discounts are a separate system
Shopify treats discounts and compare-at sale pricing as different things. Discounts reduce the price in the cart and at checkout, automatically or with a code, and always show a crossed-out price at checkout. Showing a crossed-out discount price on product and collection pages needs a third-party discount app or a Shopify Partner build.
Two details matter for timing. You set a start date under Active dates and can click Set end date; with no end date the discount does not expire, and start and end times follow the time zone in your admin. And when you reactivate an expired discount, Shopify sets it to Active with no set end date, including in bulk.
| Shopify feature | What it does | The trap |
|---|---|---|
| Compare-at price | Crossed-out original beside the sale price on product and collection pages | No end date; an unsold “was” price stays until cleared |
| Automatic discount or code | Reduces the price in cart and checkout | No end date unless you set one; reactivating removes it |
| Markets fixed price | Overrides admin prices and compare-at | A reference price not checked in each market |
How a sale becomes permanent on Shopify
Emma Sleep’s was a deliberate strategy, according to the court. Yours does not have to be. A permanent sale can also build up through ordinary admin habits:
- A compare-at price is added for a launch promotion and never cleared.
- An automatic discount is created without an end date, because the date is optional.
- An expired discount is reactivated for another weekend and now has no end date.
- A countdown timer is built to restart, so it always shows a deadline.
- A supplier’s RRP is entered as the compare-at price and never reviewed.
The fix for an always-on sale is not clever copy. Make the sale price the real price and remove the crossed-out one.
You still have options. Show the price without a comparison, or run a dated sale that really ends and let the price go back up afterwards. This is also where discount dependency shows up: if shoppers only buy when a strikethrough is on the page, the discount is doing work your product page should do, and that costs margin as well as legal risk.
A worked example (illustrative numbers)
These figures are made up to show the arithmetic. They are not a legal test and not from any store.
A serum has a $120 price in the admin. Over the last 16 weeks: weeks 1 to 6 sold at $120 (60 units); weeks 7 to 8 sold at $96 in a 20% sale (40 units); weeks 9 to 16 sold at $90 because an automatic discount was never switched off (100 units). The $120 compare-at price stayed on the page throughout.
Of 200 units, 60 (30%) sold at $120. Now a sale banner says “Was $120, now $84, 30% off”. The advertised saving is $36. Measured against the $90 shoppers have paid for the last eight weeks, the real saving is $6, about 6.7%. The page says 30% and the history says 7%.
What would I do? Stop treating $120 as the reference. Drop the strikethrough and show $84 with no savings claim. The only other comparison with any basis is the $90 the product has actually been selling at, and a $6 saving is probably too small to be worth advertising. When the sale ends, set the real price and clear the compare-at field so the next sale starts from a clean record. For anything bigger than this, ask a lawyer.
Sale claims that travel with the price
The ACCC checks the comparison together with everything else a sale page says:
- “Sitewide” and “storewide”. In June 2025, Michael Hill, MyHouse and Hairhouse Online each paid $19,800 after notices over allegedly misleading “sitewide” Black Friday claims; the ACCC said more than a quarter of Hairhouse Online’s products were left out of its sale. The ACCC’s guidance says a “storewide” promotion with exclusions mentioned only in fine print may mislead.
- “Up to X% off”. The concern is where “up to” is not prominent, or few products are on sale at X% off.
- Time claims. When it announced its 2025 sweep on 10 November 2025, the ACCC listed phrases such as “3 days only” and countdown timers that do not match the true length of the sale as misleading time representations. If you decide to extend a sale, change what you say before the end date, and do not run “ends tonight” for a sale you have already decided to extend.
For a fuller pre-sale list covering the offer, the page and tracking, see the Shopify Black Friday checklist.
Price rules that sit next to was/now
Total price. The ACCC lists advertising a price that is not the total a shopper will pay, including one that leaves out GST or other costs, as a way a price can mislead. It describes the minimum total cost as a single figure including taxes and any unavoidable or pre-selected fees (prices shown only to other businesses need not include GST). Section 48 also says that if you leave delivery out of a single price and already know the minimum delivery charge when you make the price representation, you must state that minimum, subject to the exceptions in the section. How that applies to your shipping set-up is a question for your lawyer, but it is a reason to show shipping early. See surprise checkout costs.
Two prices on one product. The ACCC says that if a business shows different prices for the same item, even by mistake, it must sell at the lowest displayed price or stop selling until it is corrected. The same applies when the checkout price differs from the displayed one. On Shopify, a collection page, product page, feed or app badge can disagree, so check them against each other, including your product data.
Card surcharges. The ACCC’s price displays page says that from 1 October 2026 businesses can no longer charge a surcharge on payments with Visa, Mastercard, American Express or eftpos credit, debit or prepaid cards. See the RBA card surcharge post.
Drip pricing. The ACCC describes drip pricing as advertising a price and then adding fees during the purchase. A Treasury release of 2 July 2026 says the Competition and Consumer Amendment (Unfair Trading Practices) Bill 2026 passed Parliament that day and that unfair trading practices and subscription traps will be banned from 1 July 2027, after a 12-month lead-in. The release names last-minute “service” and “handling” fees at checkout among the practices behind the reform. I did not read the final Act, so I am not describing its detail. Put the date in your diary if you add handling or service fees at checkout.
An afternoon audit for your Shopify store
Allow a few hours for a store with a few hundred products, and repeat it before each major sale.
1. List every product with a compare-at price. In Products, click Export. Shopify’s product CSV format has a “Variant Price” column followed by a “Variant Compare-at Price” column. Filter to rows where compare-at is not empty, and save a dated copy. Shopify says the CSV can only export saved data, so treat the file as a snapshot of the admin on the day you export it.
2. Check what actually sold at that price. In Orders, click Export and choose Orders by date, for the last four months (my starting window, from the Zamel’s case). The order CSV has “Lineitem price” and “Lineitem compare-at price” columns, and Shopify says it shows data from when each order was created, so later edits do not change it. For each product, count units sold at or near the compare-at price against units sold below it. Shopify warns the compare-at column can be blank for reasons such as a regional regulation, a fixed market price or a third-party checkout app that did not pass it through. Where it is blank, fall back on your price log or dated product exports.
3. Sort products into three piles.
| Situation | What to do |
|---|---|
| Real sales at the reference price in the weeks before, and the sale has a real end | Keep it. Record the dates and sales evidence |
| Mostly sold below the reference, or on sale for most of the review window | Clear compare-at and sell at the real price. No “was” or ”% off” |
| New product, or never sold at the reference price | Show no comparison at all |
4. Find every discount without an end date. Open Discounts and read the status and end date of each active discount, especially any you reactivated. Confirm your store time zone, because start and end times follow it.
5. Check what the customer sees about timing. Compare your banner, countdown timer, email copy and discount end date. They should describe the same real end. If a timer restarts, remove it or tie it to the real end date.
6. Compare prices on every surface. Product page, collection page, cart, checkout, structured data, feeds and app badges should agree. Section 47 and the ACCC’s multiple-price rule are about the lowest displayed price, so a stale price in one place can mean you have to sell at the lower one. Which of these surfaces counts as a “displayed price” is a question for your lawyer.
7. Read your returns and clearance wording. The HSK United release also covered returns: the ACCC alleged the policy said clearance items and items bought with store credit were non-refundable, when consumer guarantees can provide refunds for faulty goods in those cases. Check your returns messaging too.
8. Start a price log. One row per change: date, product, price, compare-at price, sale name, start and end, who changed it and why. Keep dated order exports.
Do not use the audit to lift prices. If it shows a weak reference price, stop claiming a saving. Raising a price shortly before a sale to create a “was” price is what the ACCC said in December 2024 it was checking for, after consumers reported prices rising ahead of major sales.
If you also sell in the United States
This article covers Australian law and Australian shoppers. The US Federal Trade Commission’s Guides Against Deceptive Pricing (16 CFR 233.1(a), read on 31 October 2026) say a former price comparison can have a legitimate basis where the former price was the actual, bona fide price at which the article was offered on a regular basis for a reasonably substantial period. US states have their own rules, so check the current text and get US advice.
Measuring honestly
Removing a strikethrough price can change how a page converts. I do not have a primary-source figure for how much a crossed-out price lifts or lowers conversion, so I will not give you one. Test it on your own store. If traffic is modest, a clean before-and-after comparison is more realistic than a split test, and A/B testing on low traffic explains when each is reliable. Keep sale periods apart from your normal reporting.
Prism3 sells Shopify SEO, GEO and CRO, and does not run ads, email or SMS. But the ACCC says the accuracy rule applies to any communication by a business, and the Emma Sleep case involved emails to more than 4 million consumers and SMS messages to nearly half a million individuals. Whoever runs those channels for you needs your price log and sale end dates before they write copy.
Key takeaways
- A “was” price is a claim about savings. The ACCC says it can mislead if the item was not sold at it for a reasonable period right before the sale, or only a very small proportion sold at it.
- No official number of days exists. The Zamel’s case looked at four months; treat that as a review window, not a safe harbour.
- A sale price that runs for an extended period has effectively become the new selling price, and calling it a sale may mislead.
- In Shopify, the compare-at steps describe no end date, discounts expire only if you set an end date, and a reactivated discount has none.
- Orders are your evidence. Shopify’s order export keeps the prices from when each order was placed.
- Make timers and “ends today” claims true, and do not raise a price just before a sale to make the saving look bigger.
- Keep a price log; regulators can require you to substantiate two-price claims.
FAQs
Is a strikethrough price allowed in Australia?
The ACCC’s guide treats a strikethrough price as a claim that shoppers will save the difference, so the claim has to be true. The ACCC says a was/now price may mislead if the item was not sold at the higher price for a reasonable period right before the sale, or sold at it only in small amounts. This is general information, not legal advice.
How long must a product be sold at the original price before a sale?
There is no official number. The ACCC’s guide says a reasonable period depends on the product, the market and how often prices usually change. It cites one case where the Federal Court looked at four months, and adds that other cases can differ.
Can I leave a sale price on permanently?
You can charge a price for as long as you like, but the ACCC says a sale price offered for an extended period has effectively become the new selling price, so calling it a sale may mislead. Make it the real price and clear the compare-at price.
Does Shopify check that my compare-at price is real?
Not that I could find. Shopify asks only that compare-at is higher than the price for the sale to show. Whether the old price was ever charged is your responsibility.
Do these rules apply if my store is overseas?
They apply to supplying Australian consumers. In the 2016 Charles Tyrwhitt matter, the ACCC said overseas businesses supplying Australian consumers must comply with the Australian Consumer Law.
Can I use the supplier’s RRP as my “was” price?
Only with care. The ACCC says an RRP comparison may mislead if the product was never sold at the RRP, or not for a reasonable period before the sale.
Do countdown timers count?
Yes. The ACCC has named countdown timers and phrases like “3 days only” that do not match the real length of a sale as misleading time representations, and the James Lane and Vuly penalties in September 2026 were about sale end dates and timers.
Keep reading
- Shopify Black Friday checklist
- Discount dependency on Shopify: the signs, the cost and the fix
- Surprise checkout costs and cart abandonment on Shopify
Are your sales bringing in new buyers?
Pricing rules tell you what you may say about a price; they do not show whether a sale brings in new buyers or only discounts the ones you would have had anyway. Book a free 30-minute diagnostic: we look at where your store loses buyers after the click, using your own numbers, and tell you what to fix first. We do not run ads or email. No pitch. No email gate. Whether your wording meets the law is a question for your lawyer, not for us. If the leak turns out to be on the product page or in checkout, see how our Shopify CRO service works.
Free 30-min diagnostic
Seen enough?
Book a free diagnostic.
We'll look at where your store loses buyers after the click and what to fix first. No pitch. No email gate. 30 minutes.
More from Prism3
Afterpay vs Zip vs Shop Pay Instalments: Shopify AU
Afterpay, Zip and Shop Pay Instalments compared for Australian Shopify stores: merchant fees, payouts, approval, checkout placement and a worked margin example.
AI-Referred Orders on Shopify: What Is Real and What Is Hype
What Shopify has disclosed about AI-referred orders, why the 13x headline needs context, how to find AI traffic in GA4 and Shopify, and what to do now.
AI Visibility Tools for Shopify: What They Measure and Miss
What AI visibility tools for Shopify stores really count: mentions, share of voice and citations, where the data is sampled or unstable, and how to use them.