---
title: Product Stock - Backorder
slug: oms/product-stock-backorder
docTags: 
createdAt: 2022-09-17T12:06:50.000Z
---



::::ExpandableHeading
## Introduction



When discussing backorder, we always ask ourselves, "What's the difference between backorder and out-of-stock?"

The answer is pretty simple. "Out of stock" means an item has no stock available for purchase and no current date for resupply. 

In contrast, 'backorder' means an item is unavailable but already has a resupply date.

Unlike stock items, back-ordered items will eventually come back to your store for your customers to purchase

In the OMS, when the count\_on\_hand drops to zero, a product will be listed as **Out Of Stock** (**OOS**) in your store IF the **Back-orderable flag is NOT checked.**

****

**OMS Store Stock**

****

::Image[]{src="https://api.archbee.com/api/optimize/TmutqdeXiIw-V3gBZXVjd/PiapbmI3FonCp3NCze4aF_image-8.jpeg" size="66" width="2000" height="320" position="flex-start" showCaption="false"}

****

:::hint{type="info"}
In our SDK starter, you can also create a product/variant that is OOS and not Back-orderable as a Waitlist, so your customers can sign up and be notified when the item is back in stock. For your customers to be notified, navigate to your Store Settings and add this Variable: STOCK\_REQUESTS\_NOTIFICATION\_ENABLED and mark the value as "enabled" To validate that an item is back in stock, we check that the previous quantity was \<= 0 AND the currently updated quantity is > 0, AND The stock item is not back-orderable
:::



:::hint{type="info"}
If there is stock available in your OMS and the variant is marked "Out Of Stock" in Contentful, the OMS bypasses whatever settings are in Contentful.
:::



When the **count\_on\_hand** drops to zero AND the **Back-orderable flag is checked,** your customers can still complete orders for items with no available inventory. The order/product will be listed as **Backordered,** and the **Count on hand** will be decremented to a negative number.



::Image[]{src="https://api.archbee.com/api/optimize/TmutqdeXiIw-V3gBZXVjd/47R16Fs3SK0sWB58YB07C_image-9.jpeg" size="68" width="1304" height="296" position="flex-start" showCaption="false"}

****

**Stock**

::Image[]{src="https://api.archbee.com/api/optimize/TmutqdeXiIw-V3gBZXVjd/QCjND-rNScdnBDjwjliWc_image-9.png" size="68" width="1322" height="238" position="flex-start" showCaption="false"}
::::

:::ExpandableHeading
## Backorder Limits

Stores can limit the number of backorders the OMS will accept by specifying a backorder limit. When the **Count On Hand** equals the **Backorder Limit**, the OMS will reject orders for that product.



For example, a product has a backorder limit of 5, and the current count on hand is -4. The OMS will complete an order for one unit of the product, bringing the current count on hand to -5. If another order for the product is submitted, the OMS will reject it (count on hand -5 equals the backorder limit of 5).

If a product is assigned a backorder limit of 0, then the backorder limit *will not* be enforced. The OMS will accept unlimited backorders for the product.



Example:

This product is back-orderable with 5 units on hand and a backorder limit of 5.



::Image[]{src="https://api.archbee.com/api/optimize/TmutqdeXiIw-V3gBZXVjd/Mwd3HI0-BX2SFjhel45n3_image-14.jpeg" size="68" width="2000" height="234" position="flex-start" showCaption="false"}



Orders for 9 units are completed, reducing the count on hand from 5 to -4. Because the product is back-orderable and the number of backorders is within the backorder limit, the OMS will continue to accept orders. The product will also be in stock in the store.



::Image[]{src="https://api.archbee.com/api/optimize/TmutqdeXiIw-V3gBZXVjd/zDmLNAYRP3wbLK-8rnuFh_image-13.jpeg" size="66" width="2000" height="231" position="flex-start" showCaption="false"}



An order is completed for one more unit of the product. The count on hand is -5, but still within the backorder limit. However, since the number of backorders equals the backorder limit, the product can no longer be backordered, so back-orderable is false.



::Image[]{src="https://api.archbee.com/api/optimize/TmutqdeXiIw-V3gBZXVjd/vpkWeFoI7QKghuYX8sEwW_image-12.jpeg" size="66" width="2000" height="232" position="flex-start" showCaption="false"}



The product is now shown as **Out of Stock** in the store.

::Image[]{src="https://api.archbee.com/api/optimize/TmutqdeXiIw-V3gBZXVjd/rwaORTjWHUfz3VremMAgz_image-11.jpeg" size="72" width="1598" height="614" position="flex-start" showCaption="false"}



If three orders are canceled, or stock arrives, and some backorders are processed, the count on hand increments by three from -5 to -2, and the product is again back-orderable.



The product is back in stock in the store.



::Image[]{src="https://api.archbee.com/api/optimize/TmutqdeXiIw-V3gBZXVjd/GihlD1eX77_iXsC6NztS4_image-10.jpeg" size="66" width="1494" height="606" position="flex-start" showCaption="false"}

## Advanced Stock Availability Logic

Chord's `GET /api/variants/:id/stock_availabilities`[API endpoint](https://chord.stoplight.io/docs/chord-oms/359fc5352bdd1-return-the-variant-availability) is primarily used to determine whether a given variant is in or out of stock and can thus be used to  reflect in the storefront the status and stock availability of a given variant.&#x20;

In addition to the `in_stock` and `is_backorderable` attributes, this endpoint can return an additional property called `total_on_hand` which will return the actual stock level count

**NOTE:&#x20;**&#x54;o ensure that `total_on_hand` is added to the payload response, make sure the `INCLUDE_STOCK_AVAILABILITY_COUNT` store environment variable is **enabled.**

Example response:

![](https://api.archbee.com/api/optimize/TmutqdeXiIw-V3gBZXVjd/UzZTSxZo3-81slN5JtR9J_image.png)

There are also additional modifications that can be configured for storefronts that rely solely on the `total_on_hand` value, specifically with variants listed as *backorderable*.

Previously, variants configured as *backorderable* with a stock count of less than 1 would be  flagged as ***"out of stock."&#x20;***&#x54;he `INCLUDE_BACKORDERABLE_IN_STOCK` store environment, can control how backorderable products with zero stock are reported in stock availability APIs. When enabled, backorderable variants with 0 stock will report as in-stock with a quantity of 1.

![](https://private-user-images.githubusercontent.com/46425993/531054787-042ddedd-614b-4a30-b8b5-9f04983adad1.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Njc5MDYxMTEsIm5iZiI6MTc2NzkwNTgxMSwicGF0aCI6Ii80NjQyNTk5My81MzEwNTQ3ODctMDQyZGRlZGQtNjE0Yi00YTMwLWI4YjUtOWYwNDk4M2FkYWQxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMDglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTA4VDIwNTY1MVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTIzYTU1ZjQ5NWUxYzMxZDIxMDc5NjJhYTNlNDdjMjNiMTg2OTgyNjIxMDEzYWFlOTY5ODNlNGUzNzQ5MTZjZjgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.FqoaidK-uClfD5tw-wzNODhJgCYwD8A1a1mDWAVjolI)

![](https://private-user-images.githubusercontent.com/46425993/531054871-196b5580-88fb-4f4a-8ca1-7cea08261d09.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Njc5MDYxMTEsIm5iZiI6MTc2NzkwNTgxMSwicGF0aCI6Ii80NjQyNTk5My81MzEwNTQ4NzEtMTk2YjU1ODAtODhmYi00ZjRhLThjYTEtN2NlYTA4MjYxZDA5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMDglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTA4VDIwNTY1MVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTYwMzhkOTBlYWNhYjI5MmQzNjA2NDlmYTBiOTNiY2MwMmI0MjQ0ZmNhMTg4NGE5MGFiNWJiNzk3YTNkNDE2MzImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.SDX4lKZKHDklBIODLtTKDZuM1HjhmbzUOHvctrMtGnE)
:::

:::hint{type="success"}
If you have any questions or need help, please get in touch with us at [help@chord.co.](#)
:::

