Skip to content
Last updated

Availability Structures in Norce Commerce

This page explains how Norce Commerce manages and displays product availability. It covers the data model, configuration, and best practices for integrating and presenting availability information in applications.

Why is this important?
Accurate availability data helps customers make informed purchasing decisions and supports business processes like inventory management and order fulfillment.


Overview: How Availability Works in Norce Commerce

Norce Commerce provides a flexible system for displaying product availability. You can integrate on-hand product information from multiple warehouses and use business rules to determine what data is shown to applications. This ensures customers see the most accurate availability promise.


Product Availability Data Model

Each product or variant in Norce Commerce exposes three main availability elements:

OnHand Model Diagram
The following image shows the on-hand part of the Product model: On hand model

  • OnHand: Aggregated stock from all warehouses and locations configured for the application and price list.
  • OnHandStore: Aggregated stock from all stores specified in the storeSeed parameter (store IDs can be retrieved via ListStores2).
  • OnHandSupplier: Availability from the primary supplier, selected based on Norce rules for the price list.

Key Availability Fields

Each on-hand object contains several important fields:

  • Value: Number of units currently available (excluding reserved units if reservations are enabled).
  • IncomingValue: Number of units on the way from the supply chain.
  • NextDeliveryDate: Estimated arrival date for the next purchase.
  • LeadTimeDayCount: Estimated time to ship items to the customer (unit defined in setup).
  • IsReturnable: Indicates if the item can be returned (set by the source, e.g., supplier).
  • Info: Used for extended information when querying specific warehouse data.

Additional Product Fields

  • StockDisplayBreakPoint: Threshold for displaying "low stock" messages instead of exact numbers.
  • IsDropShipOnly: If true, availability is determined by supplier stock, not local stock.

Interpreting Availability Data

Norce Commerce provides raw availability data and supporting fields. How you present this data is up to your application logic.

Note:
The examples below are suggestions. You can use fields like LeadTimeDayCount, IncomingValue, and NextDeliveryDate to create custom availability messages.

For more on extending availability data, see Extending Availability.


Example Availability Display Logic

Example 1: B2C Use Case

ScenarioCriteriaLead TimeSuggested Display
Plenty in local stock, short lead timeOnHand > Stock BreakpointLead time = 1“deliver in 1-3 days”
Plenty in local stock, longer lead timeOnHand > Stock BreakpointLead time > 1“deliver in 4-10 days”
Short supply in local stockOnHand ≤ Stock Breakpoint-“only few left, 1-3 days” or “only few left, 4-10 days”
No local stock, units incomingOnHand ≤ 0, Incoming > 0, NextDeliveryDate existsLead time exists“estimated delivery [nextdeliverydate + lead time]”
No local stock, no incoming, supplier has stockOnHand ≤ 0, Incoming = 0, Supplier OnHand > 0Supplier lead time = X“estimated delivery [X]-[X+5] days”
Dropshipping only, supplier has stockDropShipping Only = true, any OnHand, any Incoming, Supplier OnHand > 0Supplier lead time = X“estimated delivery [X]-[X+5] days”
Dropshipping only, supplier has no stockDropShipping Only = true, any OnHand, any Incoming, Supplier OnHand = 0-“estimated delivery over 3 weeks”

Example 2: B2B Use Case

ScenarioCriteriaLead TimeSuggested Display
Local stock, lead timeOnHand = XLead time = 1 or >1 (Y)“X in stock, deliver in 1 day” or “X in stock, deliver in Y days”
No local stock, units incomingOnHand ≤ 0, Incoming > 0, NextDeliveryDate existsLead time exists“Not in stock, estimated delivery [nextdeliverydate + lead time]”
No local stock, no incoming, supplier has stockOnHand ≤ 0, Incoming = 0, Supplier OnHand > 0Supplier lead time = Y“X in stock, estimated delivery in [Y] days”

Retrieving On Hand Data

You can get availability data in two ways:

  1. With product data: OnHand fields are included in product responses.
  2. Direct on-hand checks: Use these methods to get warehouse-specific data (no aggregation, and bypasses API cache):
    • GetProductOnHandByPartNo
    • GetProductOnHandByProductId
    • ListProductOnHandByBasket

Warehouse/Store Input Example:

[
  { "WarehouseId": 529, "LocationId": 529 },
  { "StoreId": 268 },
  { "StoreId": 269 },
  { "WarehouseId": 4131, "LocationId": 4131 }
]

Note:
Extended info types are only returned by these methods, since aggregation is not possible.

Warehouse and Store IDs can be found using Listwarehouseinfo.


Reservations

Norce Commerce can reserve stock for orders. When enabled, reservations reduce the available on-hand value for the standard warehouse on the price list.

Reservation Workflow:

  1. Order is created; reservation is made in the standard warehouse.
  2. Reservation is visible in the admin interface.
  3. On-hand value is reduced by the reservation amount. The warehouse/location marked as "standard" for the active price list will get the reservation.
  4. When a new on-hand update is imported, the reservation is cleared.

How to enable:
Set UseOnHandSubstraction in client settings, default is true.

Note: Only physical product types have reservation functionality. Service, Fee, Virtual product types will never run out on stock.

An reservation example

Step 1. A product purchased on the Standard pricelist. The warehouse set as “Standard” for the used price list gets the reservation (in this example it is the European standard warehouse/location).

Step 2. These reservations are shown in the admin. This client has reservation enabled and in this case, 3 pcs are reserved for a product:

Figure of the onhand information in Admin, showing 3 reserved.

On hand info

Note: that 515 is not the stored Onhand value, it is actually 518, but admin will show the same value as the API.

Step 3. When getting OnHand using the API, for the specific warehouse from Norce we get (from GetProduct):

Figure of the onhand information in the API result.

On hand result

Step 4. Later, a new OnHand value updated in Norce from a WMS using Connect:

Figure of the onhand information imported to the Connect API.

On hand import

The reservation is then cleared, while Onhand is set to the new value 510 from the Import.


Configuring Availability in Norce Admin

Setting Up Warehouses and Locations

Image: Example warehouse configuration screen warehouse configuration

Key configuration fields:

  • Code: Identifier for integrations/imports (should match source systems).
  • Type: Warehouse, Store, Transport, or Other.
  • Primary: Default warehouse for the client (only one allowed).
  • Lead time: Estimated shipping time (can be overridden per product/variant).
  • Primary pricelist: Main price list for the warehouse.
  • Included in stock calculation: If enabled, warehouse is included in aggregated availability.

Warehouse Types and Their Use

  • Warehouse and Store: Used in aggregated availability (OnHand, OnHandStore).
  • Other and Transport: Not aggregated; only available via direct on-hand checks.
  • Status rules: Only use "Warehouse" type for in-stock-based status changes.

Connecting Warehouses to Price Lists

To control which warehouses are aggregated for each application, connect price lists to warehouses.

Image: Example price list configuration screen price list configuration

  • Only one warehouse can be marked as "standard" (receives reservations).
  • Add warehouses to all price lists used by the application (including campaign/customer price lists).

Supplier On Hand Configuration

To show supplier availability:

Image: Example supplier on-hand configuration screen supplier onhand configuration

  1. Enable the supplier as the chosen supplier.
  2. Connect the supplier price list to the supplier warehouse.
  3. Connect the supplier price list to the main price list.

Importing and Integrating On Hand Data

You can update on-hand data via:

  • Admin UI: Manual updates.
  • Excel import: Bulk updates.
  • Norce Commerce Connect: Automated integration.

API Methods:

  • ImportOnhands (product service): For client on-hand data.
  • ImportProducts (supplier service): For supplier on-hand data.

Further Reading