Guides

Pre-orders in WooCommerce: sell products before they are in stock

By Mariusz Szatkowski · Updated: 2026-06-22

Two things stop a shopper from buying: a product that has not launched yet, and a bestseller that just sold out. In both cases WooCommerce blocks the sale and the shopper leaves. A pre-order keeps the product purchasable so you can collect the order now and fulfil it when stock arrives. This guide explains what a pre-order is, why core WooCommerce cannot do it, and what to look for in a plugin.

What a Pre-order Is and Why It Matters

A pre-order is a sale made before the product is available to ship. It fits two common situations:

  • Upcoming releases. You announce a product before it exists and let shoppers reserve it ahead of the launch.
  • Sold-out restocks. A popular product is out of stock, and rather than lose the shopper you let them reserve it for when it returns.

The point is to capture demand at the moment of interest instead of asking the shopper to come back later. That only works if the product can still be added to the cart and the shopper understands they are reserving, not buying something that ships today.

Why Default WooCommerce Cannot Do It

Out of the box, WooCommerce treats stock as a hard gate. When a product is out of stock, the add-to-cart button disappears and the sale is blocked. There is no built-in flag to say “this product is a pre-order”, no way to keep it purchasable on purpose, and no marking that survives into the cart and the order. So an in-stock sale and a pre-order would look identical to your fulfilment team, which is exactly the data you need to keep separate.

A pre-order needs three things core does not provide: keep the product purchasable when out of stock, tell the shopper clearly that they are reserving, and flag the line all the way through to the order.

What to Look For

A pre-order tool should cover the whole path from product page to fulfilment:

  • A per-product flag. You decide which products are pre-orders, not the whole catalogue at once.
  • Purchasable when out of stock. The flagged product stays buyable even with an out-of-stock status.
  • A clear shopper signal. A custom button label and a note so the shopper knows the item is reserved.
  • Line flagging end to end. The pre-order marker should appear in the cart, at checkout and on the order so fulfilment can tell pre-orders apart.
  • A global switch. A way to pause all pre-orders without editing every product.

How Preorder Does It

Preorder for WooCommerce is a free, open-source plugin that adds pre-orders to WooCommerce. It is built around the path above.

You mark any simple product as a pre-order with a flag in Product data, General. Once flagged, the product stays purchasable even when its stock status is out of stock, and the add-to-cart button shows your custom pre-order text, set globally or per product. A reservation note on the product page tells the shopper the item is reserved as a pre-order rather than shipping right away.

From there the flag follows the item. The cart and checkout show a clear pre-order line, and the order line item carries a Pre-order Yes marker stored as order item meta, so your team can pick and fulfil pre-orders separately from in-stock items.

A settings screen under WooCommerce, Pre-orders gives you a global on/off toggle and the default button text. Turning the toggle off makes every flagged product behave normally at once, which is the simple way to pause a launch without un-flagging products. Preorder stores the flag as product meta, the line marker as order item meta and the settings as a single WordPress option, with no custom database tables, and a clean uninstall that removes its settings option. Output is escaped, input is sanitised, forms are nonce-protected and a POT file is included for translation.

Some pre-order extras are paid. Preorder Pro is a separate add-on that extends the free plugin with an incentive discount on pre-order lines, a checkout deposit, per-variation pre-orders and automatic release emails. The free edition on its own is the complete pre-order flow.

Preorder Versus Default WooCommerce

WooCommerce has no built-in pre-order support. Here is the difference for pre-orders specifically:

CapabilityDefault WooCommercePreorder
Sell a product before it is in stockBlocked when out of stockStays purchasable with the pre-order flag
Mark which products are pre-ordersNonePer-product flag in Product data, General
Custom add-to-cart button textNoneGlobal or per-product label
Tell the shopper it is a reservationNoneReservation note on the product page
Flag the line for fulfilmentNonePre-order Yes in cart, checkout and order
Pause all pre-orders at oncen/aGlobal on/off toggle
Database footprintn/aProduct meta, order item meta, one option, no tables
CostFree (core has no pre-orders)Free; PRO adds discount, deposits, per-variation, release emails

The Short Version

A WooCommerce pre-order means a product stays purchasable before it is in stock, with the shopper told they are reserving and the line flagged all the way to the order. Core WooCommerce blocks out-of-stock sales and offers none of this. Preorder is a free, open-source plugin that adds a per-product flag, a custom button, a reservation note and end-to-end line flagging, with a global toggle to pause it. The paid Pro add-on layers on discounts, deposits, per-variation pre-orders and release emails.

Preorder for WooCommerce