So, creating a solution for pre-orders (or back-orders) for a small, single Shopify store is generally quite straightforward, you take the orders and then simply wait until the items are available until you then despatch, setting expectations to the user and reporting back as needed. The issue I’m trying to address here is how you can create a solution that scales as you add complexity; namely additional stores, stock locations, volume etc.

The reason I’m writing this blog post is because we’ve faced this a number of times now and it’s the type of requirement / feature that can unravel as you go through a project. I’ve tried to make this as definitive as possible, but please feel free to reach out if you think I’ve missed anything.

What is a pre-order?

When I talk about a pre-order, really this could be a pre order (order of something pre availability) or a back order (order of something that’s coming back to availability) – the principle is the same in theory. Ultimately I’m referring to an order of an item that isn’t yet in stock, but will be soon. 

How does Shopify handle pre-orders natively?

Shopify doesn’t have a native solution to manage these forms of orders, however it’s quite straightforward to build a solution, as briefly detailed above. You’d simply use a standard product and apply the below to the product or specific variants. 

The fundamentals and front-end considerations

Initially when I wrote this post, I steered away from the front-end side of things, but I decided to go back and add this as I know it’ll be important for some users. Ultimately, with pre-orders, you need to communicate the fact it’s a pre-order and when it’s likely to be despatched and received to the user – my suggestion is to do the following:

  • Caveat that the item is being pre-ordered against availability (and ideally on the CTA itself) on the PDP
  • Add the detail of when the item will be available / despatched etc
  • Ensure this information is carried all the way though the cart process (inc push cart) and ideally checkout
  • Ensure this information is also presented in the account and order confirmation emails
  • Ensure you communicate the despatch and add further communication for any delays (setting expectations early)

In order to do this, you’ll need to use some theme logic and either tags or metafield values (we’ve typically used metafields so it’s variant level) and also edit the emails themselves. There are also apps that can handle this, but I’ve typically preferred doing it manually to provide more control.

You can then choose to trigger this based on the item going into negative inventory, based on a flow (using tags based on triggers) or manual intervention. The key here though is ensuring that the offering is removed when you hit the limit of incoming stock – this is where you’ll ideally manage this via a back-office system (be it your ERP or IMS), but you can also use an app. The ones we’ve ended up looking at have included:

It’s worth noting that I’m recommending using these to manage the inventory levels, rather than all features. We’ve still typically stuck to theme logic over the functionality in the apps for changing content etc.

Back-office considerations (ideal world)

There are a lot of back office considerations when it comes to pre-orders and, in an ideal world, the majority of the complexity around the management of inventory, setting stock levels, handling the order management side, the processes around waiting for the stock and then ultimately despatching would be managed via an IMS or ERP (or even 3pl in some instances).

In an ideal world – you’ll be able to do the following outside of Shopify:

  • Trigger the pre-order state in Shopify – could also be done manually – most likely a metafield
  • Set and govern the amount of pre-orders / inventory to avoid over-selling 
  • Manage any considerations around shipping (e.g. multiple shipments, comms around overall delay due to a pre order item etc)
  • Manage the queue for these orders
  • Reporting on pre orders 

What happens when you have multiple stores?

There’s then additional complexity with this for merchants with multiple stores, as you’re likely sharing pre-order inventory between these stores and you need to avoid over-selling as a result of the inventory not being updated frequently enough. Here you have a few routes, depending on how flexible your integration is:

  • Real-time or super regular sync’ing of stock / stock updates (different businesses will have different needs here – essentially you’re pushing the inventory updates between stores or to the other stores as fast as possible)
  • Separate stock out – if you have 100 units and 4 stores, you could feasibly split the stock between the stores and then update as you need to – this is usually a last resort as it needs careful monitoring and more manual work

What if you don’t have back-office systems?

If you have multiple stores and you don’t have a master for inventory, you could look at syncing solutions, but ideally you’d use this for all aspects of inventory to avoid issues and also confusion. 

Conclusion on pre-orders

I think the main thing that needs to be thought about is how you report on pre-orders and finding a way to stop pre-orders when you get to a limit of incoming inventory. Pre-orders cab sound really simple, but with the SaaS platforms, it does get a lot more complex when you’re managing them across multiple stores using a single warehouse. 

If you have any questions around the management side or have anything further to add, please feel free to email me or add to the comments below.