A guide for anyone who teaches

How to stop selling past class dates on Shopify

A seat in last Tuesday's class should not be for sale today. Yet it happens on a lot of class stores, because Shopify has no idea that "Tuesday, March 4" is a date. To Shopify it is just words in a title. This guide covers how to stop selling past class dates on Shopify by hand, how to stop sales the day before a class, and a short weekly routine. The last part shows how Still Works Class Booking does it for you.

1. Why finished classes keep selling

Most class stores are built one of two ways, and neither one expires on its own.

How the store is set upWhat goes wrong
One product per date, like "Wheel Throwing, March 4"The product stays Active after the class. It still shows in collections and search, and anyone with the link can buy it.
One product with a variant per dateOld date variants stay in the picker. If the variant has no inventory tracking, or "Continue selling when out of stock" is on, it sells forever.

Shopify can schedule a product to appear on a sales channel at a future time. It cannot schedule a product or a variant to disappear. So every past date has to be taken down by a person, or it stays up.

2. If each date is its own product

  1. In your Shopify admin, go to Products and open the past class.
  2. In the Status box on the right, change Active to Draft and save. A draft product is hidden from every sales channel, but its orders and history stay put.
  3. Once you no longer need it for reference, you can set it to Archived instead, which also moves it out of your main product list.

To do several at once, tick them in the Products list and choose Set as draft from the bar that appears. Searching the list for the month, like "March", makes this quick if your titles include the date.

Draft is better than deleting. A draft keeps the photos and description, and Duplicate on the product page copies it for the next run of the class.

3. If each date is a variant

  1. Open the class product and scroll to Variants.
  2. For a past date, either delete the variant or set its inventory to 0. Past orders keep their line item, so deleting does not erase who came.
  3. For every date still on sale, open the variant and make sure Track quantity is on, the quantity is the number of seats left, and Continue selling when out of stock is off. That way a full date also stops selling.

Put the date in the variant name the same way every time, like "Tue Mar 4, 6 pm". It shows on the order, in the export, and on the packing slip, so you can always tell which date a guest bought.

4. Stopping sales before the class starts

Most teachers want sales to stop a day or so before the class, to buy supplies or prep the room. Plain Shopify has no setting for this. The only way is to do the steps above early: set the date's inventory to 0, or set the date's product to Draft, the evening before. If you skip it, someone can buy a seat an hour before class, or after it ends.

5. A weekly routine that keeps the store clean

  1. Pick one time each week, like Monday morning, and put it in your calendar.
  2. Take down every date that has happened since last week, using section 2 or 3.
  3. Check the next week's dates: is the seat count right, and is anything already full?
  4. Look at the product page as a customer would, in a private browser window, and make sure only future dates show.

If your plan includes Shopify Flow, it can run a workflow on a schedule. But Flow still has to be told which product or variant belongs to which date, because Shopify does not store a class date as a date. For most small studios, the weekly check is simpler and easier to trust.

The same steps in Still Works Class Booking

Still Works Class Booking changes the setup so there is nothing to take down. You keep one product per class, with no date in the title and no date variants. The dates live in the app, under Classes, on the class's own page, where Add dates puts them up for sale: every week on the days you tick, once a month like the first Tuesday, or a list of single dates.

On the product page, a date picker sits above Add to cart. It lists only dates that have not started yet. Each hour the app checks the clock. When a date reaches the cutoff you set under Settings for this class, in "Stop selling seats this many hours before the start", it shows as sales closed and can no longer be picked. Once the class starts, it leaves the list. A full date is marked full and offers a waiting list instead.

If you close sales early and then change your mind, the date on the class page has a button, Sell seats again until it starts. If a class has no dates left, the product page says "No dates for sale right now", and you can change that wording in the theme editor. If someone still buys a class without a date, for example through a quick-add button, the app emails you the order so you can place them or refund.

Seats are counted per date in the app, so you do not need inventory tracking on the class product at all. When you add a class, the app also turns off shipping on that product, so checkout skips the shipping step. The free plan covers up to 4 class dates a month. It is on the Shopify App Store.

Where to go from here

The Still Works Class Booking page has the plain description of what the app does and does not do. If something here does not match what you see, email the studio and it gets fixed the same business day.