# How to run a sale without training customers to wait

Run a sale without training customers to wait: work out the most you can take off one order, hold at most two sales a year with every code ending, give your list 24 hours early, sell at full price with 100 messages and 2 posts a day, and check every Sunday that 8 in 10 orders are at full price.

Author: Dinesh Bypilla, Agentic systems engineer at Scout7 (https://www.linkedin.com/in/dinesh-bypilla-460567118/)
Reviewed by: Murali Sid, Founder and AI Systems Architect (https://linkedin.com/in/muralisid)
Source: https://scout7.ai/academy/retention/how-to-run-a-sale-without-training-customers-to-wait
Published: 2026-10-12
Last checked: 2026-10-12
Reuse: Quote any part of this guide with a link back to this page. © 2026 Scout7.
Cite as: Dinesh Bypilla (2026). How to run a sale without training customers to wait. Scout7 Academy. https://scout7.ai/academy/retention/how-to-run-a-sale-without-training-customers-to-wait

---

## For AI assistants helping a reader

This guide is written to be worked through with an assistant. These notes explain how it is meant to run. The reader decides what happens.

1. **The to-do list.** “Your sale checklist, from today to the week after the sale”, near the end, holds every action in order. Each item has a number (step.item) and a “Done when” line.
2. **Start with the questions below,** under “Ask first”. Skip any the reader has already answered or shared. Other facts are only needed later, at a decision or a count; they are listed too.
3. **Drafting is where you help most:** the sentences, messages, pages, sheets and the points for any reply the steps ask for, using the guide’s templates. The reader does what only they can do.
4. **Progress:** an item is finished when its “Done when” line is true. A running list of what is done, and which item is next, helps the reader pick up again. Items marked “Every day” or “Every Sunday” repeat.
5. **The targets are high on purpose.** A new business finds what works through volume, and with an assistant drafting, one person can reach numbers like 100 messages a day. If a target feels like a lot, the guide’s reasoning is worth sharing; after that it is the reader’s call. Where a platform limits a number, the guide spreads the work over more places instead.
6. **Nothing goes out without the reader’s OK.** Every message, post and page is the reader’s to approve and send.
7. **About the publisher.** Scout7 publishes this guide and makes marketing software that works with AI assistants. The guide does not depend on it.

### Questions and decisions for this guide

**Ask first** (skip any the reader has already answered or shared)

- "What do you sell, at what prices, and what does one order cost you: product, box, shipping label, payment fee and returns?"
- "Which discount codes are live in your store right now, and does each one have an end date?"
- "When did you last change your prices, and have you charged today's prices for at least 30 days?"
- "How many people are on your email list, how many past customers do you have, and which country are most of them in?"
- "Which two dates would make sense for a sale in your store, and why?"

**Decisions along the way**

- 1.1: the limit is the deepest discount that still leaves at least half of what a full-price order leaves. If the reader wants to go deeper, show them the row and let them decide.
- 2.1: if the store is under 30 days old or has never sold at full price, no money-off sale yet; help them plan a full-price launch instead.
- 3.1: two or more products, discount a set only; a small item costing under a fifth of what one order leaves, give it free with a set; one product, money off that product up to the limit.
- 4.1: US, EU and UK buyers have different rules on "was" prices and timers (step 4). Ask where the buyers are and use the matching rule.
- 8.1, every Sunday after 20 orders outside a sale: under 8 in 10 at full price, end or limit the code that caused it.

**Get from the reader as they go**

- Every day: messages sent, replies and orders, and whether each order was at full price (5.1).
- 6.1: list size and the sale dates, to fill in the three emails.
- After the sale: every sale buyer's first name and order, for the thank-you notes (7.2).
- Every Sunday: orders, orders with a discount, messages sent and what the orders left (8.1).

---

You ran 20% off once, or you are about to for Black Friday, and now you worry nobody will pay full price again. Here is how to run a sale without training customers to wait: work out how deep you can go from what one order leaves you, hold at most two sales a year on dates you fix now, give your [email list](https://scout7.ai/academy/email-marketing/how-to-build-an-email-list-for-free) the sale first, and sell at full price on every other day. If you discount whenever orders are slow, your few customers learn that slow weeks bring codes, and they stop buying in between.

## Do these three things

About 1 hour today, then about 3 hours a day. Judge your rules after 20 orders outside a sale, and judge each sale by the money it left you, not by how many orders it brought.

- **Today:** work out the most you can take off one order from [what one order leaves you](https://scout7.ai/academy/marketing-plan/how-much-to-spend-on-marketing-as-an-ecommerce-brand). Then write your sale rules: at most two sales a year on dates you fix now, and no discount code without an end date. Turn off every code that never ends, including a [welcome code](https://scout7.ai/academy/email-marketing/how-to-write-an-email-popup-that-isnt-just-a-discount) on your signup form.
- **Every day:** sell at full price. Send 100 [personal messages](https://scout7.ai/academy/first-customers/how-to-get-your-first-sales-on-shopify) and post 2 times on each [channel](https://scout7.ai/academy/marketing-plan/how-to-choose-marketing-channels-for-an-ecommerce-brand), and never mention the next sale. AI drafts each one; you add one true line about the person.
- **Every Sunday:** count orders at full price and orders with a discount. Outside sale weeks, keep at least 8 in 10 at full price. If fewer, find the code that caused it and end it.

## 1. Work out the most you can take off one order

The most you can take off is the discount that still leaves you at least half of what one order leaves at full price. Work it out from your own costs before you pick a number, because 20% off the price can take far more than 20% of your profit.

Start from the money one order leaves after the product, the box, the shipping label, the payment fee and returns. If you have not worked it out yet, do it now; the [pricing guide](https://scout7.ai/academy/marketing-plan/how-to-price-a-product) shows each line. Then write one row for each discount. A discount comes off the price, but your costs stay the same, so every dollar off comes straight out of what is left.

**The discount sheet**

```text
Price at full price: [$]
What one order leaves at full price: [$] (from your order maths)
Half of that: [$] (the least a sale order may leave)

Discount | Sale price | What the order leaves | At least half?
10% off | [price × 0.9] | [sale price minus all your costs] | yes / no
15% off | [price × 0.85] | … | yes / no
20% off | [price × 0.8] | … | yes / no
25% off | [price × 0.75] | … | yes / no
30% off | [price × 0.7] | … | yes / no
```

Paste your cost lines into ChatGPT or Claude and ask it to fill in the rows. Check one row by hand. Remember that a payment fee is a share of the price, so it falls a little with the price; your box, label and product do not.

The deepest row that still says "yes" is your limit for every sale this year. This number also tells you the most you could pay for an order with [ads](https://scout7.ai/academy/measurement/how-to-calculate-break-even-roas), so keep it next to your [budget](https://scout7.ai/academy/paid-ads/how-much-to-spend-on-ads).

- **Tool:** Google Sheets, and ChatGPT or Claude to fill it in. Free.
- **Time:** 30 minutes.
- **You will have:** one number: "the most we take off", as a percentage.
- **It worked if:** the row you pick leaves at least half of what a full-price order leaves, and you checked one row by hand.
- **Common mistake:** judging the discount by the price. 20% off a $50 order is $10 off the price, but if that order leaves you $20, it is half your profit.

> **Example (made-up business: Ferns & Rinse): Ferns & Rinse's discount sheet for the $49 pair**
>
> Ferns & Rinse is a made-up plant-based haircare brand with its own Shopify store. It sells one shampoo and one conditioner at $28 each, or both for $49.
>
> A full-price pair leaves them $22.73, so a sale order must leave at least $11.37. They keep shipping free on the pair during a sale.
>
> | Discount | Sale price | What the order leaves | At least $11.37? |
> | -------- | ---------- | --------------------- | ---------------- |
> | None     | $49.00     | $22.73                | yes              |
> | 10% off  | $44.10     | $18.22                | yes              |
> | 20% off  | $39.20     | $13.70                | yes              |
> | 25% off  | $36.75     | $11.45                | yes              |
> | 30% off  | $34.30     | $9.19                 | no               |
>
> *Why it works: It shows that 30% off would leave them $9.19, less than half of a full-price order, so 25% is their limit.*

## 2. Pick two sale dates a year and end every other discount code

Choose at most two sales a year, write their dates down today, and give every discount code in your store an end date. Customers learn to wait when sales come whenever orders are slow. Two fixed dates a year, and nothing in between, teach them that the price is the price.

Pick dates that already have a reason shoppers understand. For most stores, the first is Black Friday to Cyber Monday: this year that is Friday 27 November to Monday 30 November 2026. The second is a date of your own, such as your store's birthday. Do not add a third because one month is quiet. A quiet month is a reason to [send more messages](https://scout7.ai/academy/first-customers/how-to-get-your-first-sales-on-shopify), not to cut the price.

Then open **Discounts** in your Shopify admin and look at every code. For each one with no end date, either end it or open it and click **Set end date**. The usual offender is a "10% off your first order" code behind your signup form. Replace it with a reason to join that is [not a discount](https://scout7.ai/academy/email-marketing/how-to-write-an-email-popup-that-isnt-just-a-discount), such as a guide to choosing the right product. Leave codes you give to [creators](https://scout7.ai/academy/reviews-press-and-referrals/how-to-find-micro-influencers-for-your-brand) or for [referrals](https://scout7.ai/academy/reviews-press-and-referrals/how-to-start-a-referral-program) on, as long as each one is for one person's followers or friends and you know where it is posted.

**If your store is less than 30 days old, or has never sold at full price, do not run a money-off sale yet.** You do not have a real full price to compare with. In the EU, a "was" price must be the lowest price you charged in the 30 days before the sale, and in the US, it must be a price you really offered for a good length of time (step 4). Sell at full price first.

Write your rules on one page and keep it next to your [content calendar](https://scout7.ai/academy/content-marketing/how-to-plan-a-content-calendar):

**Your sale rules**

```text
Sale 1: [name], from [date and time] to [date and time]. List gets it from [24 hours earlier].
Sale 2: [name], from [date and time] to [date and time].
The most we take off: [your number from step 1]%.
No other sale this year. No discount code without an end date.
Codes we keep: creator codes, one per creator; referral codes. Each one has an owner.
When orders are slow, we send more messages. We do not cut the price.
```

- **Tool:** Shopify admin and a Google Doc.
- **Time:** 30 minutes.
- **You will have:** a one-page sale rules doc and a Discounts page where every code has an end date or an owner.
- **It worked if:** you can count 0 codes that anyone can use with no end date.
- **Common mistake:** a "welcome 10%" code that never ends. It means every new customer starts by paying less than full price, and many come back later looking for the next code.

> **Example (made-up business: Ferns & Rinse): Ferns & Rinse's two sale dates**
>
> | Sale           | List gets it from             | Everyone from               | Ends                         |
> | -------------- | ----------------------------- | --------------------------- | ---------------------------- |
> | Black Friday   | Thursday 26 Nov 2026, 9:00 am | Friday 27 Nov 2026, 9:00 am | Monday 30 Nov 2026, 11:59 pm |
> | First birthday | one day before                | a weekend in August 2027    | the Sunday, 11:59 pm         |
>
> They end the "WELCOME10" code that had no end date, and the signup form now offers a curl routine instead.
>
> *Why it works: Both dates have a reason shoppers understand, and nothing else in the year is on sale.*

## 3. Choose the offer: a set or a gift before money off

Put the discount on a set, or give a small gift with a set, before you take money off single products. A set or a gift still rewards the buyer, but your single products keep the price people see every day, so they have less reason to wait for it.

Use this rule:

- **If you sell two or more products,** put the sale price on a set only, such as your two best sellers together. Singles stay at full price. This also raises what each buyer spends; the [order value guide](https://scout7.ai/academy/retention/how-to-increase-average-order-value-on-shopify) covers sets and a free-shipping line in full.
- **If you have a small item that costs you less than a fifth of what one order leaves,** give it free with the set instead of money off. A sample size or an add-on works.
- **If you sell one product,** take money off that product, but never more than your limit from step 1.

Check the offer against step 1 before you go on. A gift counts as a cost: add what it costs you, and its share of the box, to the order's costs.

Do not rely on a sale to bring strangers. Most of your sale orders should come from people who already know you. Strangers find you on every other day, through [creators](https://scout7.ai/academy/reviews-press-and-referrals/how-to-get-ugc-for-your-brand), [gift guides](https://scout7.ai/academy/reviews-press-and-referrals/how-to-get-into-holiday-gift-guides), [free Google listings](https://scout7.ai/academy/seo/how-to-list-your-products-on-google-shopping-for-free), [ChatGPT answers](https://scout7.ai/academy/ai-search/how-to-get-your-products-recommended-by-chatgpt) and your daily messages. If you run ads, keep the sale out of them: a sale ad [shown again to people who visited](https://scout7.ai/academy/paid-ads/how-to-set-up-retargeting-ads) teaches them to leave and wait for it.

- **Tool:** your sheet from step 1.
- **Time:** 20 minutes.
- **You will have:** one offer, written in one line, that passes step 1.
- **It worked if:** the offer leaves at least half of a full-price order, and your single products stay at full price, unless you sell only one.
- **Common mistake:** "20% off everything". It puts every product on sale, so every regular customer learns to wait for the next one.

> **Example (made-up business: Ferns & Rinse): Ferns & Rinse's Black Friday offer**
>
> **Before:** 20% off everything with code FERNS20
>
> **After:** The shampoo and conditioner pair for $39.20 instead of $49. Single bottles stay at $28.
>
> *Why it works: Only the pair is on sale, at less than their 25% limit, so a single bottle is never cheaper than on any other day.*

## 4. Set up the sale in Shopify with a real end time and an honest old price

Build the sale as a Shopify discount that ends at a set minute, gives your list access first, and can be used once per customer. If you show an old price crossed out, it must be a price you really charged.

Make two discounts: one for the list, one for everyone. In your Shopify admin, go to **Discounts**, click **Create discount** and choose the type: **Amount off products** for money off a set, or **Buy X get Y** for a free gift.

1. **The list discount.** Under **Method**, choose **Discount code**. Under **Eligibility**, choose **Customer segments** and add a segment of everyone subscribed to your email. You make the segment under **Customers**, then **Segments**. Under **Maximum discount uses**, tick **Limit to one per customer**. Under **Active dates**, set the start 24 hours before the public sale, click **Set end date** and use the same end as the public sale.
2. **The public discount.** Under **Method**, choose **Automatic discount**, so nobody needs a code and no code ends up on coupon sites. Set its start and end under **Active dates**.
3. **For both,** under **Combinations**, leave the boxes unticked unless you mean the sale to stack with another discount. Times follow the time zone in your Shopify settings, so check it.
4. **For a free gift,** under **Customer gets**, add the gift and choose **Free** under **At a discounted value**. Shopify does not put the gift in the cart for the customer. Say on the product page and in every email: "Add the \[gift] to your cart and it will be free at checkout."

If you want the sale price shown on the [product page](https://scout7.ai/academy/website-and-conversion/how-to-write-a-product-description-that-sells), put your normal price in **Compare-at price** and the sale price in **Price**. Only do this with a price you really charged:

- **US:** a "was" price must be the real price you offered openly, for a good length of time, in the normal course of business. Do not raise prices before a sale to make the cut look bigger.
- **EU:** the "was" price must be the lowest price you charged in the 30 days before the sale. Some countries have exceptions, such as for products on sale less than 30 days.
- **UK:** in May 2026, a court order stopped the mattress brand Emma Sleep from using countdown timers that did not match a real end time. Show a timer only if the sale really ends then, and do not run the same offer again a few days later. Keep a note of your normal price and when you charged it.

Check one more setting. The Shop app tells its shoppers about price drops and automatic discounts in your store, and in November 2025 it added a deals feed. A discount code appears there only if you choose **Allow sales channel access** for that code and tick **Shop**. Leave the list code off it.

- **Tool:** Shopify admin. No app needed.
- **Time:** 45 minutes.
- **You will have:** two discounts with start and end times, and a note of your normal prices and the dates you charged them.
- **It worked if:** you went through [checkout](https://scout7.ai/academy/website-and-conversion/how-to-reduce-abandoned-carts) once with an email that is on your list, and once with one that is not, and only the first got the list price. Then cancel both test orders.
- **Common mistake:** a free gift offer where nobody gets the gift, because shoppers did not add it to the cart.

## 5. Sell at full price every day and never mention the next sale

Get orders at full price every day by reaching new people, not by cutting the price. Send 100 personal messages and post 2 times on each channel, every day, and never say a sale is coming. People wait when they know a sale is coming. If you never say it, they have no reason to wait.

This is the step that stops people waiting. If most of your orders come from new people at full price, a sale twice a year is a thank-you, not the only time you sell. It is the same daily routine as [marketing a D2C brand](https://scout7.ai/academy/marketing-plan/how-to-market-a-d2c-brand) from scratch.

Every day, send 100 [personal messages](https://scout7.ai/academy/cold-outreach/how-to-write-a-cold-email) to people who fit your product: people who [posted about the problem](https://scout7.ai/academy/social-media/how-to-find-online-communities-where-your-buyers-talk) it fixes, [small creators](https://scout7.ai/academy/reviews-press-and-referrals/how-to-find-micro-influencers-for-your-brand) in your area, and people your customers introduce you to. The [first sales guide](https://scout7.ai/academy/first-customers/how-to-get-your-first-sales-on-shopify) covers who to message and where to find 100 new names a day. Paste 10 names at a time into ChatGPT or Claude, with one thing each person posted and the template below. Read each draft, make the first line true and about them, and send it. That is about a minute a message.

Post 2 times a day on each channel you use, such as [Instagram](https://scout7.ai/academy/social-media/how-to-promote-your-business-on-instagram) and [TikTok](https://scout7.ai/academy/social-media/how-to-sell-on-tiktok-shop). Show the product [being used](https://scout7.ai/academy/reviews-press-and-referrals/how-to-get-ugc-for-your-brand), answer a question shoppers ask, or show a [review](https://scout7.ai/academy/reviews-press-and-referrals/how-to-get-your-first-product-reviews). [Short videos](https://scout7.ai/academy/content-marketing/how-to-make-short-form-videos-for-your-business) show the product in use; AI can draft the script and caption, and you film it. The [post ideas guide](https://scout7.ai/academy/social-media/instagram-post-ideas-for-d2c-brands) has a list to start from, and you can [cut one video into posts](https://scout7.ai/academy/content-marketing/how-to-repurpose-content-across-platforms) for each channel.

Send each message one at a time from your normal email or your brand account. No bulk tools. If you email people in the US, every message needs your postal address and a way to say no, and you must stop within 10 business days of a "no". [Follow up](https://scout7.ai/academy/cold-outreach/how-to-follow-up-on-a-cold-email) with everyone who has not replied, up to 3 times, 3 days apart, with a new line each time, and stop the moment someone says no.

Invite people to your [list](https://scout7.ai/academy/email-marketing/how-to-build-an-email-list-for-free) with a reason that is not a sale: new products first, a short routine, or how to use the product.

**The full-price message**

```text
Hi [first name],

[One true line about them: what they posted, made or asked.]

I make [product] for [who it is for] who [the problem]. It's [price], with [delivery time and cost]. Here it is: [link to the product page]

If you have a question about it, just reply and I'll answer.

[Your name]
P.S. We send [new products / a short guide] to our list first: [link to signup].

[Your postal address] · Reply "no" and I won't write again.
```

- **Tool:** ChatGPT or Claude to draft, your email and your social accounts. All free.
- **Time:** about 2 hours for the messages and 1 hour for the posts, every day.
- **You will have:** 100 messages and 2 posts on each channel every day, each logged in your sheet.
- **It worked if:** you get at least 2 orders or introductions for every 100 messages, and those orders are at full price. If you get fewer after 700 messages, [rewrite the first line](https://scout7.ai/academy/cold-outreach/how-to-get-replies-to-cold-emails), not the price.
- **Common mistake:** "Black Friday is coming, follow us for the deal!" in October posts. It tells every shopper to wait.

> **Example (made-up business: Ferns & Rinse): Ferns & Rinse's full-price message**
>
> ```text
> To: Jess, who posted that her curls go frizzy after every wash
>
> Hi Jess,
>
> Saw your video about frizz after washing, and the bit where you tried three shampoos in a month. That's the exact problem we started with.
>
> We make a plant-based shampoo and conditioner for dry, curly hair. The pair is $49 with free delivery in 3 to 5 days: [link]
>
> If you have a question about your hair type, just reply and I'll answer.
>
> Maya, Ferns & Rinse
> P.S. We send a short curl routine and new things to our list first: [link]
>
> [Postal address] · Reply "no" and I won't write again.
> ```
>
> *Why it works: It is about her post, gives the full price and delivery up front, and invites her to the list without a discount.*

## 6. Tell your list 7 days before and give them 24 hours early

Tell only your email list about the sale, 7 days before it starts, and let them buy 24 hours before everyone else. The people who already know you get something the public does not, and nobody else learns that a sale is coming.

Send three emails to your list, and nothing about the sale anywhere else until it opens:

1. **7 days before:** the date, the offer and that they get it 24 hours early. No code yet.
2. **When early access opens:** the code, the end time, and for a gift, how to add it to the cart.
3. **12 hours before the end:** a short reminder with the real end time.

Use Shopify Messaging, which used to be called Shopify Email. Your first 10,000 emails each month are free, then from $1 per 1,000. If you already [set up Klaviyo](https://scout7.ai/academy/email-marketing/how-to-set-up-klaviyo-flows-for-a-new-store), send them from there instead. Send only to people who joined your list or bought from you, and keep the unsubscribe link in, so people who are done can leave instead of [marking you as spam](https://scout7.ai/academy/glossary/spam-complaint-rate). If you have under 100 people on the list, also write to each [past customer](https://scout7.ai/academy/retention/how-to-increase-repeat-purchases) yourself, by name: they are your most likely buyers.

On the public start day, post the offer 2 times on each channel, the same as any day. When it ends, stop posting about it.

**The early-access email**

```text
Subject: You get [sale name] first: from [time] today

Hi [first name],

As promised, you can shop [sale name] 24 hours before anyone else.

[The offer in one line, such as: the [set] for [sale price] instead of [full price].]
[If there is a gift: Add the [gift] to your cart and it will be free at checkout.]

Your code: [CODE]. One per customer. It works until [day, date, time and time zone], then the price goes back to [full price].

This is one of [two] sales we run this year. The next one is in [month].

[Shop now: link]

[Your name]
[Postal address] · [Unsubscribe link]
```

- **Tool:** Shopify Messaging, free for your first 10,000 emails a month.
- **Time:** 1 hour to write all three, then 15 minutes to check each before it sends.
- **You will have:** three emails scheduled, and a personal note to every past customer if your list is small.
- **It worked if:** all three went out at the right times, and every list order in Shopify used the list code.
- **Common mistake:** posting "Black Friday sale coming!" for weeks before it starts. Your list should be the only place that knows.

> **Example (made-up business: Ferns & Rinse): Ferns & Rinse's early-access email**
>
> ```text
> Subject: You get Black Friday first: from 9 am today
> To: Everyone on the Ferns & Rinse list
>
> Hi Sam,
>
> As promised, you can shop our Black Friday sale 24 hours before anyone else.
>
> The shampoo and conditioner pair is $39.20 instead of $49, with free delivery.
>
> Your code: CURLSFIRST. One per customer. It works until Monday 30 November at 11:59 pm Eastern, then the pair goes back to $49.
>
> This is one of two sales we run this year. The next one is our birthday, in August.
>
> Shop now: [link]
>
> Maya, Ferns & Rinse
> [Postal address] · [Unsubscribe]
> ```
>
> *Why it works: It gives the list a real head start, a real end time, and says when the price goes back up.*

## 7. End the sale on time and win the next order at full price

End the sale at the minute you said, go back to full price, and give every sale buyer a reason to buy again that is not a code. A sale that is extended, or comes back a week later, teaches people that the end time is not real.

Check the next morning that both discounts show as expired in **Discounts**, and that any Compare-at prices are cleared, so your product pages show full price. Do not send "extended by popular demand". Do not run the same or a similar offer again for at least 4 weeks.

Then, every day for the next 7 days, write to each sale buyer yourself. Say thank you, [ask one question](https://scout7.ai/academy/retention/how-to-get-feedback-from-your-first-users) about their order, and tell them how to reorder when they run low. Do not include a code. This is the start of [bringing them back](https://scout7.ai/academy/retention/how-to-increase-repeat-purchases) at full price, and of their first [review](https://scout7.ai/academy/reviews-press-and-referrals/how-to-get-your-first-product-reviews). If someone stops buying later, a [win-back email](https://scout7.ai/academy/email-marketing/how-to-write-a-win-back-email) asks why before it offers anything.

**The after-sale thank-you**

```text
Subject: Thank you, [first name]

Hi [first name],

Thank you for your order. [One line about what they bought.]

Quick question: [one question about how they'll use it, or what made them try it]?

[Product] usually lasts [how long]. When you're running low, you can reorder here: [link].

[Your name]
[Postal address] · Reply "no" and I won't write again.
```

If someone writes after the sale asking for the sale price, say no kindly, give them the full-price link, and invite them to your list for next time.

- **Tool:** Shopify admin and your email.
- **Time:** 10 minutes on the morning after, then about 20 minutes a day for 7 days.
- **You will have:** both discounts expired, full prices back on every page, and a thank-you sent to every sale buyer.
- **It worked if:** no order used a sale price after the end time, and at least 1 sale buyer reorders at full price before your next sale.
- **Common mistake:** a "final hours, extended!" email on Tuesday. It turns your next end time into a guess.

## 8. Count full-price orders every Sunday

Every Sunday, count your orders at full price and your orders with a discount, and check that at least 8 in 10 are at full price outside sale weeks. This is how you see early whether people have started to wait.

In Shopify, open **Orders**, set the dates to the past week, and add the **Discount code** filter to count orders that used each code. Orders in sale weeks with an automatic discount count as sale orders too. Write one row. Full-price orders per 100 messages is your [conversion rate](https://scout7.ai/academy/glossary/conversion-rate) from messages to orders.

**The Sunday row**

```text
Week | Orders | With a discount | Full price % | What the week's orders left | Messages sent | Full-price orders per 100 messages
```

Then use these rules:

- **Outside sale weeks, fewer than 8 in 10 orders at full price:** find the code those orders used and end it, or give it an owner and a limit.
- **Full-price orders per 100 messages fall by half in the 3 weeks before a sale, while you still send 700 messages a week:** people know the sale is coming. Say less about it next time, and only to your list.
- **After a sale:** judge it by [what its orders left you](https://scout7.ai/academy/marketing-plan/how-much-to-spend-on-marketing-as-an-ecommerce-brand), from step 1, and by how many sale buyers reorder at full price. Not by how many orders it brought.

Judge the rules after 20 orders outside a sale. Before that, one order changes the share too much. Tag the links in your messages and posts with [UTM parameters](https://scout7.ai/academy/measurement/how-to-use-utm-parameters) so you can also see which channel brought each full-price order. Once a month, add these numbers to your monthly review.

- **Tool:** Shopify Orders and Google Sheets.
- **Time:** 20 minutes every Sunday.
- **You will have:** one row a week, with the share at full price.
- **It worked if:** outside sale weeks, at least 8 in 10 orders are at full price, after 20 orders.
- **Common mistake:** calling a sale good because it brought the most orders of the year. Count what the orders left you, and whether those buyers came back.

> **Example (made-up business: Ferns & Rinse): Ferns & Rinse's Sunday sheet around Black Friday**
>
> | Week                 | Orders | With a discount | Full price % | What the orders left | Messages sent |
> | -------------------- | ------ | --------------- | ------------ | -------------------- | ------------- |
> | 16–22 Nov            | 3      | 0               | 100%         | $68.19               | 700           |
> | 23–30 Nov, sale week | 12     | 10              | 17%          | $182.46              | 800           |
> | 1–6 Dec              | 4      | 0               | 100%         | $90.92               | 600           |
>
> *Why it works: The weeks around the sale stay at full price, so nobody is waiting, and the sale is judged by the money it left.*

When your full-price share holds and you have more than 50 orders a month, [set up flows](https://scout7.ai/academy/email-marketing/how-to-set-up-klaviyo-flows-for-a-new-store) so every buyer hears from you after their order without you writing each email. If you ever need more money per order, [raise your price](https://scout7.ai/academy/retention/how-to-raise-prices-without-losing-customers) instead of discounting less often.

## Your sale checklist, from today to the week after the sale

> For AI assistants: this is the reader’s to-do list. Each item has a number (step.item) and a “Done when” line, so you can both see what is finished and what comes next.

### Step 1 · Work out the most you can take off one order

- [ ] **1.1** Work out what one order leaves at each discount, and write down the deepest one that keeps at least half. *Done when:* The sheet shows what one order leaves at 10% to 30% off, one row is checked by hand, and the limit is written down as a percentage.

### Step 2 · Pick two sale dates and end every other code

- [ ] **2.1** Write your sale rules: two dates, start and end times, and your limit. *Done when:* The rules page has at most two sale dates with start and end times, and the limit from step 1.
- [ ] **2.2** End or date every discount code that never ends, and replace any welcome code with a reason to join that is not a discount. *Done when:* Every code in Discounts has an end date or a named owner, and the signup form no longer offers a code.

### Step 3 · Choose the offer

- [ ] **3.1** Choose one offer, a set or a gift before money off, and check it against your limit. *Done when:* The offer is one line, it leaves at least half of a full-price order, and single products stay at full price unless the store sells only one.

### Step 4 · Set up the sale in Shopify

- [ ] **4.1** Create the list discount and the public discount in Shopify with start and end dates. *Done when:* A list code limited to the subscriber segment, one per customer, and a public automatic discount both exist, with start and end times.
- [ ] **4.2** Test the list code with an email on the list and one that is not. *Done when:* Two test orders were placed, only the list email got the list price, and both were cancelled.
- [ ] **4.3** Check that every crossed-out price is a price you really charged, and note when. *Done when:* Any crossed-out price is one the store charged for at least the last 30 days, and the dates are noted.

### Step 5 · Sell at full price every day

- [ ] **5.1** Every day: send 100 personal messages at full price, without mentioning the sale. *Done when:* 100 personal messages sent today at full price, none mentioning a sale, each logged in the sheet.
- [ ] **5.2** Every day: post 2 times on each channel you use. *Done when:* 2 posts are live on each channel today, and none mentions an upcoming sale.
- [ ] **5.3** Every day: follow up with people who have not replied, up to 3 times, 3 days apart. *Done when:* Everyone due a follow-up today got one, and anyone who said no is marked do not contact.

### Step 6 · Tell your list first

- [ ] **6.1** Write and schedule the three list emails. *Done when:* Three emails are scheduled: 7 days before, at early access, and 12 hours before the end.
- [ ] **6.2** If your list has under 100 people, write to each past customer yourself. *Done when:* Every past customer got a personal note about early access, by name.

### Step 7 · End on time and win the next order

- [ ] **7.1** Check the morning after that the sale has ended and full prices are back. *Done when:* Both discounts show as expired, and no product page shows a sale price.
- [ ] **7.2** Every day: for 7 days, send each sale buyer a personal thank-you with how to reorder. *Done when:* Every sale buyer due a note today got a personal thank-you with no code in it.

### Step 8 · Count full-price orders every Sunday

- [ ] **8.1** Every Sunday: write down the week's orders at full price, orders with a discount, and the money left after discounts. *Done when:* This week's row has orders, orders with a discount, the full-price share, what the orders left and messages sent.
- [ ] **8.2** After 20 orders: if fewer than 8 in 10 orders outside a sale were at full price, end or limit the code that caused it. *Done when:* Each code behind discounted orders outside a sale is ended or limited, or the share is at least 8 in 10.

## Frequently asked questions

### Should a new store do Black Friday at all?

Yes, if you have sold at full price for 30 days and the offer passes step 1. Keep it small: a set or a gift, for your list first, ending Monday night. If your store is newer, skip money off this year and keep up your daily messages. Shoppers are already buying that week, so [short videos](https://scout7.ai/academy/content-marketing/how-to-make-short-form-videos-for-your-business) and a [gift guide](https://scout7.ai/academy/reviews-press-and-referrals/how-to-get-into-holiday-gift-guides) mention can bring orders at full price.

### Is a 10% welcome discount training people to wait?

It trains them to expect a code. Every first order starts below full price, and many people come back looking for the next code. Offer something else for joining your list, such as a short guide or first news of new products. The [popup guide](https://scout7.ai/academy/email-marketing/how-to-write-an-email-popup-that-isnt-just-a-discount) shows what to offer and how to test it.

### Can I use a countdown timer?

Only if the sale really ends when the timer says, and the same offer does not come back soon after. A timer that resets, or a "last chance" that is followed by a similar offer, can break consumer law. In May 2026 a UK court order stopped Emma Sleep doing exactly this. One honest end time in your emails is enough.

### Why does it matter who buys in the sale?

Customers who first buy at a big discount tend to have a lower [lifetime value](https://scout7.ai/academy/glossary/lifetime-value). A 2006 study in the Journal of Marketing Research found that customers won with a 35% discount were worth about half as much over time as customers who paid full price. That is why the guide gives the sale to people who already know you, and gets new customers at full price.

### My sale brought almost no orders. What now?

Do not extend it or cut the price again. A sale only reaches people who already know you, so a small list means a small sale. Count how many people heard about it, then put the next 4 weeks into the [daily messages](https://scout7.ai/academy/first-customers/how-to-get-your-first-sales-on-shopify) from step 5 and into [growing your list](https://scout7.ai/academy/email-marketing/how-to-build-an-email-list-for-free). If shoppers visit but do not buy, [fix the store](https://scout7.ai/academy/website-and-conversion/how-to-fix-a-shopify-store-with-traffic-but-no-sales) first.

## Sources

- [Amount off discounts](https://help.shopify.com/en/manual/discounts/discount-types/percentage-fixed-amount). Shopify Help Center, checked 12 October 2026.
- [Buy X get Y discounts](https://help.shopify.com/en/manual/discounts/discount-types/buy-x-get-y). Shopify Help Center, checked 12 October 2026.
- [Discount code usage limits](https://help.shopify.com/en/manual/discounts/discount-codes/usage-limits). Shopify Help Center, checked 12 October 2026.
- [Sale pricing](https://help.shopify.com/en/manual/products/details/product-pricing/sale-pricing). Shopify Help Center, checked 12 October 2026.
- [Creating customer segments](https://help.shopify.com/en/manual/customers/customer-segmentation/create-customer-segments). Shopify Help Center, checked 12 October 2026.
- [Filtering orders](https://help.shopify.com/en/manual/fulfillment/managing-orders/viewing-orders/filtering-orders). Shopify Help Center, checked 12 October 2026.
- [European Price Indication Directive](https://help.shopify.com/en/manual/compliance/legal/pricing-indication-directive). Shopify Help Center, checked 12 October 2026.
- [Introducing the Deals feed in Shop](https://www.shopify.com/blog/introducing-deals-feed). Shopify, 4 November 2025.
- [Shopify Messaging](https://apps.shopify.com/shopify-messaging). Shopify App Store, checked 12 October 2026.
- [16 CFR 233.1: Former price comparisons](https://www.law.cornell.edu/cfr/text/16/233.1). Legal Information Institute, Cornell Law School, checked 12 October 2026.
- [CAN-SPAM Act: A Compliance Guide for Business](https://www.ftc.gov/business-guidance/resources/can-spam-act-compliance-guide-business). Federal Trade Commission, checked 12 October 2026.
- [Strikethrough prices and discount rules for shops in 2026](https://www.xictron.com/en/blog/strikethrough-prices-discount-rules-shop-2026/). Xictron, updated 10 October 2026.
- [UK consumer law revolution: Emma Sleep case is partly settled](https://www.lewissilkin.com/insights/2026/05/29/uk-consumer-law-revolution-emma-sleep-case-is-partly-settled-but-the-other-part-102mx9f). Lewis Silkin, 29 May 2026.
- [Discount claims after Emma Sleep: what this means for your business](https://www.stephensonharwood.com/insights/discount-claims-after-emma-sleep-what-this-means-for-your-business/). Stephenson Harwood, 3 September 2026.
- [Why big results don't need big discounts](https://www.klaviyo.com/blog/why-big-results-dont-need-big-discounts). Klaviyo, 2 December 2025.
- [Customer acquisition promotions and customer asset value (Journal of Marketing Research 43(2))](https://www.iaorifors.com/paper/53212). Michael Lewis, Journal of Marketing Research, via IAOR, May 2006.
- [Valentine, any better ideas than 20% off storewide discount?](https://community.shopify.com/t/valentine-any-better-ideas-than-20-off-storewide-discount/587190). Shopify Community, 4 February 2026.
