Skip to content
Log in

Backorders

On this page

By default a product cannot be bought once its Available to Sell reaches zero. A backorder overrides that, letting customers keep ordering while you wait on stock from your supplier.

Use backorders where you restock reliably and would rather take the order than show the product as unavailable. Where the wait is long or uncertain, a POS special order or a quote is usually the better fit.

Before you start

  • Enable Track Inventory (s_c__Track_Inventory__c) on the product. Backorders have no effect on products that do not track inventory.
  • Create the stock levels you want to sell from. See Manage stock levels.

Enable backorders on a stock level

Backorders are set per stock level, so one location can accept backorders while another does not.

  1. Open the Stock Level record for the product and location.
  2. Select Backorderable (sell if out of stock)? (s_c__Backorderable__c).
  3. Click Save.

Customers can now order the product from that location after Available to Sell reaches zero.

Set the default for new stock levels

Setting the checkbox on every new stock level by hand does not scale. Each Stock Location carries a default that new stock levels inherit.

  1. Open the Stock Location record.
  2. Select Backorderable Default (s_c__Backorderable_Default__c).
  3. Click Save.

This applies to stock levels created after the change. Existing stock levels keep their current setting, so update those separately if you need them changed.

:::warning The default is only copied when StoreConnect auto-creates the stock level. It is applied by the job that creates missing stock levels, and only for locations with Create Stock Levels for New Products selected. A stock level you create by hand, or load with Data Loader, gets false regardless of the location’s default.

So if you bulk-load stock levels, set Backorderable in the load file. Setting it on the location afterwards changes nothing for rows that already exist. :::

How backorders interact with the out of stock threshold

Out of Stock Level (s_c__Out_Of_Stock_Level__c) sets the Available to Sell figure at which a stock level stops counting as having stock. When Backorderable is also selected, the product stays purchasable past that threshold.

:::warning A backorderable product does not display as out of stock. product.out_of_stock? is false whenever any backorderable stock level exists for the product, so the storefront shows it as in stock however low Available to Sell has fallen. Setting Out of Stock Level does not change that.

product.on_backorder? is the only signal that a purchase will be a backorder, and the base theme does not use it. If you want customers told before they commit, you have to add it to your theme. See Show backorder status on your storefront. :::

Which stock level an order uses

A stock level is eligible when its Available to Sell covers the quantity ordered, or when Backorderable is selected on it. The threshold is the quantity on the order, not zero, so a level holding two units is not eligible for an order of three unless it is backorderable.

Selection then runs in this order:

  1. The location the customer chose for pickup, if the order is a collection, whatever its stock.
  2. Otherwise the first eligible level in priority order.
  3. Otherwise the level with the most stock, which can take Available to Sell negative.

:::note A backorderable level is a peer in that ordering, not a store-wide fallback. It is considered in its normal priority position, so a backorderable location with a high priority will take orders ahead of locations that hold stock. Set Priority on the Store Stock Location with that in mind. :::

A backorderable level also only counts for the web store if Fulfill Online Orders is selected on that stock level. Without it the level is ignored when the store works out availability, backorderable or not.

For the full selection order, see Manage stock levels.

Show backorder status on your storefront

The product drop exposes whether a purchase will be a backorder, so a theme can tell the customer before they commit.

Liquid Type Notes
product.on_backorder? Boolean Indicates whether the product will be on backorder when purchased. Only applies when product.track_inventory? is true.

```liquid

{%- if product.on_backorder? %}

This item is on backorder. We will ship it as soon as it arrives.

{%- endif %} ```

Pair the message with the lead time you actually expect. Customers accept a wait they were told about, and charge back one they were not. See the Product Liquid object reference.

Backorders and delivery windows

Where your store offers delivery windows, decide whether a backordered item may claim one. The store variable delivery_windows.allow_on_backorder controls this.

Set it to true to let customers pick a delivery window for backordered items, or false to stop them booking a slot you cannot meet. See Delivery windows and Store variables.

When to use a special order instead

A backorder keeps a product on sale online. A special order is a POS transaction for one customer, for an item you do not normally stock, that they collect when it arrives.

Use a special order where the customer is standing in front of you, the item is a one-off, or you want to take a deposit rather than full payment up front. See Process special orders at POS and Special order holds and pickups.

With backorders enabled, the product continues to accept orders after Available to Sell reaches zero, and those orders wait for the receipt that brings stock back in. See Receive stock from a supplier.

Was this article helpful?

Was this article helpful?