Dev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunitySubmit a ticketLog In
GitHubNuGetDev CommunitySubmit a ticket

The Inventory Management system within Optimizely <<product-name>> can be managed manually or is flexible enough to accommodate a company's Enterprise Resource Program (ERP). Inventory is clearly displayed on the website to show customers whether a product is In Stock, Low Stock, or Out of Stock.

## Inventory availability

Product availability displays in a variety of locations on the website. If fulfillment method of pick up is selected, inventory throughout the storefront displays for the currently selected warehouse only (excluding alternate warehouses). When changing from pickup at a warehouse to ship, inventory availability displays based on the ship to record's default warehouse (including alternate warehouses, if configured and supported).

### Global inventory availability messages

To correctly show availability, the Inventory Management system displays one of three messages: **In Stock**, **Low Stock**, and **Out of Stock**. These messages can be configured by going to **Admin Console** > **Administration** > **Site Messages** and searching for "inventory".

The messaging can be updated to return simple text, or they can return the actual availability. To show the available quantity amount, add "{0}" in the **Message** box. For example, if "{0} in stock." is entered into the field, the "{0}" is converted to display the actual quantity available, controlled by the product's **Warehouses** tab or via a real-time call to the ERP. See the Real-Time inventory article for more information.


For the {0} quantity to display accurately, the item's **Track Inventory** toggle must = **YES**.


When a site message is configured to show the exact quantity AND a product has alternate units of measure assigned, the quantity available changes based on the selected unit of measure. For example, "Each" and "Case" are units of measure for the same product, a case = 10 units of the product, and 50 total units of the product are in stock. If "Each" is selected, the site message shows 50 in stock. If "Case" is selected, the site message shows 5 in stock.

Inventory site messages display when the **Show Inventory Availability** Setting is set to **Always** or **Secure**. If this Setting's value is set to **Never**, inventory site messages do not display on the website; if the setting is set to **Secure**, only users who are signed into the website will see the current inventory. Users not signed in get a message called **Inventory_SignInForAvailability**.

#### Inventory_AvailableStock

This site message replaces the **Translation Dictionary** record for the **Available** label. The default message is **In Stock**.

**In Stock** means the product is available in greater quantity than the value set for **Low Stock**. For example, if the **Low Stock** value is set at 5, any quantity of stock at 6 or greater is considered **In Stock**.

#### Inventory_LowStock

This site message replaces the translation dictionary record for the "Low Stock" label. The default message is "Low Stock."

Low Stock shows that the product has a low amount of inventory remaining. Building on the example above, if the product quantity falls between five and one, then the status changes to Low Stock. The threshold for this availability status is controlled by the Low Stock Threshold Setting.


If there is a Low Stock Level set on a specific product (**Catalog** \> **Products** \> edit a **Product** \> **Details** finger tab), this overrides the global Low Stock Threshold.

#### Inventory_OutofStock

This site message replaces the translation dictionary record for the "Out of Stock" label. The default message is "Out of Stock."

**Out of Stock** shows that the product has no inventory allocated; however, the product still appears on the website. If the Setting **Allow Backorders** is set to **ON**, users on the website still can order the product, even if there is no remaining inventory. To prevent users from purchasing an out of stock item, change **Allow Backorders** to **OFF**.

#### Non-tracked inventory

Products can be marked as untracked in the Admin Console. If not tracked, <<product-name>> assumes the product always is available. Use non-tracked inventory for products like special orders, or for non-inventoried items like services. Go to **Catalog** \> **Products** \> select **Edit** for the desired **Product** \> **Details** tab and change the **Track Inventory** toggle to **NO** to use non-tracked inventory.

### Product-specific inventory availability messages

Set up a custom availability message for a specific product by going to **Catalog** \> **Products**, then select **Edit** for the desired **Product**. Click the **Details** tab. Scroll down to the **Inventory & Fulfillment** section and add the desired text in the **Custom Availability Message** field. If this field is populated, this message displays as the availability message for the product throughout the site. For example, "Call for availability."

Set a **Low Stock Level** value for products that require a different stock threshold than the global default. Very popular items, for example, might need a higher Low Stock Level value because they are replenished so frequently. Set this value by going to **Catalog** \> **Products** \> select **Edit** for the desired **Product** \> **Details** tab, and scrolling down to the **Inventory & Fulfillment** section.

### Availability message workflow

  1. First, the system checks the product for a **Custom Availability Message**.

  2. If a custom message does not exist, the system checks if there is a **Safety Stock** value set for the product's default warehouse (**Catalog** \> **Products** \> select **Edit** for the desired **Product** \> **Warehouses** tab).


    The **Safety Stock** value is assessed for the product's default warehouse only, not for any alternate warehouses that may belong to the product.

  3. If there is no **Safety Stock** value set, the system checks the product for a **Low Stock Level** value.

  4. Finally, if all of the above = False, the system uses the **Low Stock Threshold** setting to determine the appropriate availability message.



To limit inventory visibility to only those users who are signed into the website, set the **Show Inventory Availability** Setting to **Secure**. Users not signed in get an **Inventory_SignInForAvailability** message.

## Real-time inventory

On eCommerce websites, it is often desirable to provide customers with pricing and inventory information in real-time. This real-time data, called from the ERP, is displayed both on the **Product** page and the **Review and Pay** page to provide customers with accurate price and inventory information. This is in contrast to the **Generic** pricing and inventory services, which are dependent on pricing refresh or inventory refresh integration jobs that typically run over night and therefore can be less accurate.