All pages
Powered by GitBook
1 of 7

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Inventory

Explore API and data feeds within the 'Inventory' documentation.

Check Inventory

Discover how to retrieve stock details for products at specific locations with the 'Check Inventory' subcategory.

Get the stock details of the product on the specific locations. To get the stock details, you will need to call the /checkInventory endpoint with the POST method.

Request

End Point

https://<host>/api/checkInventory

Example: https://demo-oms.hotwax.io/api/checkInventory

Header

Content-Type: application/json

Body

In case of checking a product's inventory at multiple facility.

In case of checking multiple product's inventory at single facility.

Sample

Parameter Name
Description
Required (Y/N)

Response

Status Code

HTTP/1.1 200 OK

Headers

Content-Type: application/json

Body

Parameter Name
Description

BOPIS Check Inventory

BOPIS Check Inventory API

Overview

The BOPIS (Buy Online, Pick-up In Store) Check Inventory API allows you to retrieve stock details for products at specific locations. By calling the /checkBopisInventory

facilityId_op

The operator to be used for the facility Id

N

sku_op

The operator to be used for the sku field

N

Note: It is required to pass either sku or productId.

sku

The SKU of the product

N

sku_op

The operator to be used for the sku field

N

productId

HotWax Commerce internal product Id

N

facilityId

The HotWax Commerce facility Id where product inventory is located

count

Results count

docs

The array of results found

facilityId

The Id of the facility in HotWax

atp

The available to promise inventory of the product

N

{
  "filters": {
    "sku": "<sku>",
    "facilityId": ["<facilityId1>", "<facilityId2>", "<facilityId3>"],
    "facilityId_op": "in"
  }
}
{
  "filters": {
    "sku": ["<sku1>", "<sku2>", "<sku3>"],
    "sku_op": "in",
    "facilityId": "<facilityId>"
  }
}
{
  "filters": {
    "sku": "MSH02-32-Black",
    "facilityId": "STORE_7"
  }
}
{
  "count": "1",
  "docs": [
    {
      "facilityId": "STORE_7",
      "atp": 1.000000
    }
  ]
}
endpoint with the POST method, you can check the availability of BOPIS inventory.

Request

Endpoint

URL: https://<host>/rest/s1/ofbiz-oms-usl/checkBopisInventory

This API uses our next generation OMS instance. All traditional instances have access to this next generation OMS by replacing "oms" with "maarg" in the host name.

Production

Current Name: demo-oms

Maarg Name: demo-maarg

UAT

Current Name: demo-uat

Maarg Name: demo-maarg-uat

Example: https://demo-maarg.hotwax.io/rest/s1/ofbiz-oms-usl/checkBopisInventory

Method

GET (Recommended if your library supports sending a body in a GET request) POST

Headers

Content-Type: application/json

Sample Request Body

Single product and facility

Multiple products and facilities

Body Parameters

Parameter
Description
Example

productStoreId

The ID of the product store

"STORE"

productIds

HotWax Commerce internal product ID

"11855"

internalNames

The well known ID of a product, usually UPC or SKU based on configuration

"XS-BLACK"

facilityIds

The HotWax Commerce facility ID where product inventory is located

If both productIds and internalNames are passed, the value of productIds will be honored.

Select Products

Products can be queried in the inventory API by both their HotWax ID or their internalName. The internal name refers to the UPC or SKU, whichever one is selected as a primary identifier during product configuration. While both fields are optional, one is required to obtain a result.

productStoreId

Product Store represents a brand in HotWax Commerce. To obtain possible values, log into HotWax Commerce and view the product store list page for possible values.

inventoryGroupId Inventory groups are used to segregate inventory for different channels of sales. Obtain the inventory group ID by logging into HotWax Commerce Facilities App and browsing inventory groups.

Response

Status Code

HTTP/1.1 200 OK

Headers

Content-Type: application/json

Body

ATP zeroed out due to the inventory checks

Possible decisionReason explanation

Decision Reason
Description

ProductStore

The facility is not associated with the product store.

PickUpFacility

The facility does not have PickUp enabled. Add it to the PickUp facility group to enable pickup.

InventoryGroup

The facility where the product is located does not cater its inventory to that channel.

AllowPickupInventoryGroup

Pickup is not allowed globally for the inventory group.

AllowPickupFacility

The facility where the product inventory is located is disabled for catering to BOPIS orders.

Each Decision Reason also comes with a detailed log of why the given check failed.

  1. ProductStore - Facility ${facilityId} is not associated with Product Store ${productStoreId}.

  2. PickUp Facility - Facility ${facilityId} is not a member of a PICKUP Facility Group.

  3. Inventory Group - Facility ${facilityId} is not a member of ${inventoryGroupId} channel.

  4. Product Inventory Group allowPickup - Pickup is not allowed for product ${productId} ${inventoryGroupId} inventory group.

  5. Product Facility allowPickup - Pickup is not allowed for product ${productId} at facility ${facilityId}.

ATP

{
  "productStoreId": "STORE",
  "productIds": "11855",
  "internalNames": "XS-BLACK",
  "facilityIds": "114",
  "inventoryGroupId": "SHOPIFY_FAC_GRP"
}
{
  "productStoreId": "STORE",
  "productIds": ["11855","11856","118557"],
  "internalNames": ["XS-BLACK","S-BLACK","M-BLACK"],
  "facilityIds": ["114","115","116"],
  "inventoryGroupId": "SHOPIFY_FAC_GRP"
}
{
  "atp": 0.0,
  "computedAtp": 0.0,
  "decisionReason": "AllowPickupFacility"
  "decisionReasonDesc": "Pickup is not allowed for product 11855 at facility 115."
}
{
  "atp": 50.0,
  "safetyStock": 5.0,
  "computedAtp": 45.0,
}

"114"

inventoryGroupId

HotWax Commerce inventory group ID

"SHOPIFY_FAC_GRP"

Shipping Check Inventory

Overview

The Shipping Check Inventory API allows to retrieve the inventory details for the products at specific locations. By calling the /checkShippingInventory endpoint of our next generation OMS with the POST/GET method, you can check the availability of the inventory available for shipping.

Request

Endpoint

URL: https://<host>/rest/s1/ofbiz-oms-usl/checkShippingInventory

This API uses our next generation OMS instance. All traditional instances have access to this next generation OMS by replacing "oms" with "maarg" in the host name.

Production

Current Name: demo-oms

Maarg Name: demo-maarg

Example: https://demo-maarg.hotwax.io/rest/s1/ofbiz-oms-usl/checkShippingInventory

UAT

Current Name: demo-uat

Maarg Name: demo-maarg-uat

Methods

  • GET: When passing params in the URL

  • POST: When passing JSON body in the request

Headers

Content-Type: application/json

Sample Request Body

Single product and facility

Using POST Method

Using GET Method

Multiple products and facilities

Using POST Method

Using GET Method

Body Parameters

Parameter
Description
Example

Notes

  • Either productIds and internalNames value is required, If both values are passed, then the value of productIds will be honored.

  • This API does not necessarily require the inventoryGroupId and facilityIds, If both values are not provided API will return an inventory of products at all the locations.

Select Products

Products can be queried in the inventory API by both their HotWax ID or their internalName. The internal name refers to the UPC or SKU, whichever one is selected as a primary identifier during product configuration. While both fields are optional, one is required to obtain a result.

productStoreId

Product Store represents a brand in HotWax Commerce. To obtain possible values, log into HotWax Commerce and view the product store list page for possible values.

inventoryGroupId

are used to segregate inventory for different channels of sales. Obtain the inventory group ID by logging into HotWax Commerce Facilities App and browsing inventory groups.

Response

Status Code

HTTP/1.1 200 OK

Headers

Content-Type: application/json

Body

Success ATP Response

ATP zeroed out due to the inventory checks for products at locations

ATP zeroed out due to brokering being disabled for the channel globally

Possible decisionReason explanation

Decision Reason
Description

Each Decision Reason also comes with a detailed log of why the given check failed.

  1. ProductStore - The facility ${facilityId} is not associated with Product Store ${productStoreId}.

  2. Product Facility - The inventory for product ${productId} at facility ${facilityId} is not available.

  3. Inventory Group - The facility ${facilityId} where the product ${productId} is located does not cater its inventory to that channel.

  4. Inventory Group allowBrokering - Brokering of the product ${productId} for the inventory group ${inventoryGroupId} is not allowed globally.

inventoryGroupId

HotWax Commerce inventory group ID

"SHOPIFY_FAC_GRP"

Product Facility allowBrokering - The facility ${facilityId} where the product ${productId} inventory is located is disabled to cater to shipping orders.

productStoreId

The ID of the product store

"STORE"

productIds

HotWax Commerce internal product ID

"11855"

internalNames

The well-known ID of a product, usually UPC or SKU based on configuration

"XS-BLACK"

facilityIds

The HotWax Commerce facility ID where product inventory is located

ProductStore

The facility is not associated with the product store.

ProductFacility

The facility does not have PickUp enabled. Add it to the PickUp facility group to enable pickup.

InventoryGroup

The facility where the product is located does not cater its inventory to that channel.

AllowBrokeringInventoryGroup

Brokering is not allowed globally for the given inventory group.

AllowBrokeringFacility

The facility where the product inventory is located is disabled for brokering.

Inventory groups

"114"

{
  "productStoreId": "STORE",
  "productIds": "11855",
  "internalNames": "XS-BLACK",
  "facilityIds": "114",
  "inventoryGroupId": "SHOPIFY_FAC_GRP"
}
https://<host>/rest/s1/ofbiz-oms-usl/checkShippingInventory?productStoreId=STORE&productIds=11855&internalNames=XS-BLACK&facilityIds=114&inventoryGroupId=SHOPIFY_FAC_GRP
{
  "productStoreId": "STORE",
  "productIds": ["11855", "11856", "118557"],
  "internalNames": ["XS-BLACK", "S-BLACK", "M-BLACK"],
  "facilityIds": ["114", "115", "116"],
  "inventoryGroupId": "SHOPIFY_FAC_GRP"
}
https://<host>/rest/s1/ofbiz-oms-usl/checkShippingInventory?productStoreId=STORE&productIds=11855,11856,118557&internalNames=XS-BLACK,S-BLACK,M-BLACK&facilityIds=114,115,116&inventoryGroupId=SHOPIFY_FAC_GRP
{
    "resultList": [
        {
            "productId": "10560",
            "totalAtp": 13,
            "totalComputedAtp": 13,
            "totalSafetyStock": 0.0,
            "facilities": [
                {
                    "facilityId": "100",
                    "safetyStock": 0.0,
                    "computedAtp": 6,
                    "atp": 6
                },
                {
                    "facilityId": "57",
                    "safetyStock": 0.0,
                    "computedAtp": 7,
                    "atp": 7
                }
            ]
        }
    ]
}
{
    "resultList": [
        {
            "productId": "10560",
            "totalAtp": 0.0,
            "totalComputedAtp": 0.0,
            "totalSafetyStock": 0.0,
            "facilities": [
                {
                    "decisionReasonDesc": "The inventory for product 10560 at facility RETAIL_WAREHOUSE is not available",
                    "facilityId": "RETAIL_WAREHOUSE",
                    "safetyStock": 0.0,
                    "computedAtp": 0.0,
                    "atp": 0.0,
                    "decisionReason": "ProductFacility"
                }
            ]
        }
    ]
}
{
    "resultList": [
        {
            "productId": "10560",
            "inventoryGroupId": "FAC_GRP",
            "decisionReason": "AllowBrokeringInventoryGroup",
            "decisionReasonDesc": "Brokering of the product 10560 for the inventory group FAC_GRP is not allowed globally."
        }
    ]
}

Reset Inventory

Learn how to sync inventory from an external reference source to HotWax Commerce with the 'Reset Inventory' feature.

Syncs inventory from an external reference source to HotWax. After receiving the inventory file in CSV format, HotWax Commerce calculates the difference in inventory and matches its inventory levels exactly with CSV. CSV files can be imported in HotWax by two methods: using the EXIM menu in HotWax or saving the file at a designated SFTP location for HotWax to automatically download and process.

Sample path for SFTP method: /home/<host_name>-sftp/staging/incoming

CSV example

Here's an example of the CSV file format:

Update Inventory

Learn how to update product inventory in HotWax by logging variances of inputted amounts.

Updates the inventory of products in HotWax by logging a variance of the inputted amount. To update inventory you will need to call the endpoint with the POST method.

Example:

Request

facilityId
locationSeqId
idType
idValue
availableQty

DEMO_HC_STORE_1

TLTLTLLL01

sku

WH09-XL-Green

20

Parameters

The Reset Inventory API accepts the following parameters:

Parameters
Description
Required

facilityId

HotWax Commerce internal facility Id. Generally the same as the facility Id in Shopify.

Yes

locationSeqId

The Id of the designated location in a facility in HotWax Commerce.

Yes

idType

The type of the unique product identifier in the external reference source. Default is shopifyProductId

No

idValue

The value of the product idType in the external reference source.

Note: sku upca and shopifyProductId are commonly used product Identifiers.

End Point

https://<host>/api/service/updateInventoryByIdentification

Example: https://demo-oms.hotwax.io/api/service/updateInventoryByIdentification

Header

Content-Type: application/json

Authentication

To access this endpoint, you need to include the authorization token in the request header.

Authorization: Bearer <access_token>

To learn more about Bearer token authentication, read this document

Body

Sample:

Parameters
Description
Required (Y/N)

idType

The type of product identifier. Currently supported ID types are SKU, UPCA,Shopify_Prod_ID

Y

idValue

The value of product identifier

Y

availableDelta

The variance in inventory quantity(delta)

Y

facilityId

The external facility ID where inventory item needs to be updated

Table of valid variance reasons and their IDs:

Variance Reason ID
Description

MISMATCH

Inventory does not match the available SKU

NOT_IN_STOCK

SKU is not available

NO_VARIANCE_LOG

Use to pass null variance where variance field is required but not used

REJ_RSN_DAMAGED

Ordered SKU is rejected due to inventory damage

POS_SALE

Inventory consumed by sales made on an external point of sale system in the store

VAR_DAMAGED

Reduce damaged inventory from available quantity

Response

Status Code

HTTP/1.1 200 OK

Headers

Content-Type: application/json

Body

Sample:

Inventory in HotWax: 10
Variance: -2
Updated inventory in HotWax: 8
{
  "facilityId": ,
  "availableDelta": ,
  "idType": ,
  "idValue": ,
  "locationSeqId": ,
  "varianceReasonId":
}

{
  "facilityId": "WH",
  "availableDelta": 4,
  "idType": "UPCA",
  "idValue": "30065245099",
  "locationSeqId": "TLTLTLLL01",
  "varianceReasonId": "POS_SALE"
}
{
   {
    "facilityId": ,
    "availableDelta": ,
    "idType": ,
    "idValue": ,
    "locationSeqId": ,
    "varianceReasonId": ,
  },
  "webSiteId": ""
}
{
  {
    "facilityId": "WH",
    "availableDelta": 4,
    "idType": "UPCA",
    "idValue": "30065245099",
    "locationSeqId": "TLTLTLLL01",
    "varianceReasonId": "POS_SALE"
  },
  "webSiteId": "API"
}

Yes

availableQty

The available quantity of the product in the external reference source. This number will overwrite the current ATP level of the product in HotWax Commerce.

Yes

externalFacilityId

The Id of the facility in an external reference source.

No

productId

The internal Id of a product in HotWax Commerce.

No

comments

Optional field to store additional information.

No

Y

locationSeqId

The location ID in the facility where inventory item needs to be updated

Y

varianceReasonId

The ID of the reason that caused variance in inventory

Y

VAR_LOST

SKU inventory is lost

VAR_FOUND

Lost SKU inventory is found

WORN_DISPLAY

SKU inventory is worn and unusable from being on display

VAR_MANUAL

SKU inventory adjustment is done manually

Get Online ATP of Products

Discover how to retrieve online ATP for products at specific locations with the 'getProductOnlineAtp' API

Store Associates need to access the online Available to Promise (ATP) inventory of products on their POS systems for sendsales orders. The getProductOnlineAtp API facilitates retrieving the online ATP of a product from all locations except the one it's being ordered from. The API does not count the Online ATP of a facility in the following scenarios:

  1. Inventory for the store placing the order.

  2. Inventory from stores with sell online turned off.

  3. Inventory for an SKU where the inventory is turned off in specific locations.

To fetch the online ATP details, make a POST request to the /getProductOnlineAtp endpoint.

Request

End Point

https://<host>/api/service/getProductOnlineAtp

Example https://demo-oms.hotwax.io/api/service/getProductOnlineAtp

Header

Content-Type: application/json

Body

Sample

Parameters

Parameter Name
Description

Response

Status Code

HTTP/1.1 200 OK

Headers

Content-Type: application/json

Body

Sample

Parameters

Parameter Name
Description

idType

Specifies the type of identifier being used (e.g., "SKU")

idValue

The specific value of the SKU being referenced

productStoreId

Identifies the store or location within the system where the product is available

conditionMap

Contains conditions for filtering or specifying attributes related to the request

externalFacilityId_value

The value of the external facility ID

externalFacilityId_op

The operation or condition applied to the external facility ID (e.g., "notEqual")

onlineAtp

The online available to promise inventory of the product

{
  "idType": "<SKU>",
  "idValue": "<SKU>",
  "productStoreId": "<STORE_ID>",
  "facilityGroupId": "<FacilityGroupID>",
  "conditionMap": {
    "externalFacilityId_value": "<External Facility ID>",
    "externalFacilityId_op": "<operator>"
  }
}
{
  "idType": "SKU",
  "idValue": "MSH02-32-Black",
  "productStoreId": "DEMO_STORE",
  "facilityGroupId": "FAC_GRP",
  "conditionMap": {
    "externalFacilityId_value": "101",
    "externalFacilityId_op": "notEqual"
  }
}
{
    "onlineAtp": "<Value>"
}
{
    "onlineAtp": 100
}