---
schema_version: "1"
id: e1e54200b7890908f465d8e76a8dc6d45cd4696d069503076e34d258009306e2
title: Store Product Management API
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/commerce-cloud/retail-cloud/reference/generated-api-specs/store-product-management-api.md
canonical_url: https://developer.salesforce.com/docs/commerce/retail-cloud/references/store-product-management-api
source_site: developer.salesforce.com
content_type: documentation
content_hash: 1003a89c9c4af9e89d56193712ded860a95da71cd98edd13e6b583e7a0161ebe
products:
  - Point of Sale for Developers
  - Salesforce APIs
---
Store Product Management API

# Store Product Management API

[Download specification](https://developer.salesforce.com/static/commercecloud/retail-cloud/store-product-management-api/store-product-management-api-oas-public.yaml)

POS Merchant API to manage store inventory.

**Version:** 2.3.4

## Tags

### Store Product Management API

[Download specification](https://developer.salesforce.com/static/commercecloud/retail-cloud/store-product-management-api/store-product-management-api-oas-public.yaml)

POS Merchant API to manage store inventory.

## Operations

### GET Retrieve store inventory.

`GET /merchant/{version}/storeproducts/inventory`

Operation ID: `getMultiStoreInventory`. Tags: Store Product Management API.

Return store inventory details for queried store and product ID. This API accepts multiple product IDs and store IDs in one call. - **productIds** (Required): Product IDs to search. Use commas to separate values. Number of IDs range is 0 to 20. - **storeIds**: Store IDs to search. Number of store IDs: 0 to 1000. Use commas to separate values. If empty or null, search in all stores by default.

#### Parameters

*   `version` (path, string, required) Supported: v1.  
    Pattern: v1|v2.
*   `storeIds` (query, string)
*   `productIds` (query, string, required)

#### Responses

*   **default** Default response.
    
    Media type: `application/json`. Schema: `PSResponse`.
    

### PUT Update inventory.

`PUT /merchant/{version}/storeproducts/inventory`

Operation ID: `updateStoreInventory`. Tags: Store Product Management API.

Update store or ecommerce inventory of products.

#### Parameters

*   `PredictSpring-Secret` (header, string)
*   `version` (path, string, required) Supported: v1.  
    Pattern: v1|v2.

#### Request body

Media type: `application/json`. Schema: `array of InventoryAdjustRequest`.

Array of `InventoryAdjustRequest`.

#### Responses

*   **default** Default response.
    
    Media type: `application/json`. Schema: `array of InventoryAdjustResponse`.
    
    Array of `InventoryAdjustResponse`.
    

### POST Create inventory.

`POST /merchant/{version}/storeproducts/inventory`

Operation ID: `addStoreInventory`. Tags: Store Product Management API.

Create store or ecommerce inventory of products.

#### Parameters

*   `PredictSpring-Secret` (header, string)
*   `version` (path, string, required) Supported: v1.  
    Pattern: v1|v2.

#### Request body

Media type: `application/json`. Schema: `array of InventoryAdjustRequest`.

Array of `InventoryAdjustRequest`.

#### Responses

*   **default** Default response.
    
    Media type: `application/json`. Schema: `array of InventoryAdjustResponse`.
    
    Array of `InventoryAdjustResponse`.
    

### DELETE Delete store inventory.

`DELETE /merchant/{version}/storeproducts/inventory`

Operation ID: `deleteStoreInventory`. Tags: Store Product Management API.

Delete store inventory with last updated date older than the given date. This API deletes store inventory records that have not been updated for a long time.

#### Parameters

*   `PredictSpring-Secret` (header, string)
*   `version` (path, string, required) Supported: v1.  
    Pattern: v1|v2.
*   `lastUpdated` (query, integer (int64))

#### Responses

*   **default** Default response.
    
    Media type: `application/json`. Schema: `PSResponse`.
    

### GET Retrieve store inventory CSV.

`GET /merchant/{version}/storeproducts/inventory/{storeId}`

Operation ID: `getStoreInventory`. Tags: Store Product Management API.

Provide the URL for a CSV file containing store inventory. - **delimiter**: Optional query parameter that accepts two values: csv and tsv. - **fullInventory**: Optional (true/false) to get full inventory. Default is false. If fullInventory is false, inventory updates that happened in a day are provided.

#### Parameters

*   `version` (path, string, required) Supported: v1.  
    Pattern: v1|v2.
*   `storeId` (path, string, required)
*   `delimiter` (query, string)  
    Default: `csv`.
*   `fullInventory` (query, boolean)  
    Default: `false`.
*   `useMapping` (query, boolean)  
    Default: `false`.

#### Responses

*   **default** Default response.
    
    Media type: `application/json`. Schema: `DownloadResponse`.
    

### PUT Update store product details.

`PUT /merchant/{version}/storeproducts`

Operation ID: `updateStoreProducts`. Tags: Store Product Management API.

Update store product details including item's list price, sale price, quantity, and promo banner text.

#### Parameters

*   `PredictSpring-Secret` (header, string)
*   `version` (path, string, required) Supported: v1.  
    Pattern: v1|v2.

#### Request body

Media type: `application/json`. Schema: `array of StoreProductDetails`.

Array of `StoreProductDetails`.

#### Responses

*   **default** Default response.
    
    Media type: `application/json`. Schema: `array of StoreProductUpdateResponse`.
    
    Array of `StoreProductUpdateResponse`.
    

### PATCH Update store product details.

`PATCH /merchant/{version}/storeproducts`

Operation ID: `patchStoreProducts`. Tags: Store Product Management API.

Update store product details. The request can include any or all details of the store inventory product. **Limit:** 100 store products per request.

#### Parameters

*   `PredictSpring-Secret` (header, string)
*   `version` (path, string, required) Supported: v1.  
    Pattern: v1|v2.

#### Request body

Media type: `application/json`. Schema: `array of StoreProductDetails`.

Array of `StoreProductDetails`.

#### Responses

*   **default** Default response.
    
    Media type: `application/json`. Schema: `StoreInventoryProductsUpdateResponse`.
    

## Schemas

### PSResponse

*   `errorMessage` (_string_, nullable) Error message shown to the user.  
    Example: `Invalid request. Please check the request and try again.`.
*   `errorCode` (_string_, nullable) Error code shown to the user.  
    Example: `INTERNAL_ERROR`.
*   `error` (_boolean_)

### InventoryAdjustRequest

*   `productId` (_string_, required)
    
    productId
    
    Product ID.
    
      
    Example: `123456`.
*   `storeId` (_string_, required)
    
    storeId
    
    Store ID.
    
      
    Example: `1`.
*   `quantity` (_integer (int32)_, required)
    
    quantity
    
    Quantity adjustment for the product.
    
      
    Example: `10`.
*   `reason` (_string_, required)
    
    reason
    
    Adjustment reason.
    
      
    Example: `Restock`.
*   `overlay` (_boolean_)
    
    overlay
    
    Specifies whether to adjust inventory as a delta (incremental change) or an absolute value. If the value is missing or false, the adjustment will be made as a delta; if the value is true, the adjustment will be made as an absolute value.
    
      
    Example: `true`.

### InventoryAdjustResponse

*   `productId` (_string_, required)
    
    productId
    
    Product ID.
    
      
    Example: `123456`.
*   `storeId` (_string_, required)
    
    storeId
    
    Store ID.
    
      
    Example: `1`.
*   `quantity` (_integer (int32)_, required)
    
    quantity
    
    Quantity adjustment for the product.
    
      
    Example: `10`.
*   `reason` (_string_, required)
    
    reason
    
    Adjustment reason.
    
      
    Example: `Restock`.
*   `overlay` (_boolean_)
    
    overlay
    
    Specifies whether to adjust inventory as a delta (incremental change) or an absolute value. If the value is missing or false, the adjustment will be made as a delta; if the value is true, the adjustment will be made as an absolute value.
    
      
    Example: `true`.
*   `inventoryAdjustStatus` (_string_)  
    Allowed values: `COMPLETE`, `FAILED`.
*   `errorMessage` (_string_)

### DownloadResponse

*   `errorMessage` (_string_, nullable) Error message shown to the user.  
    Example: `Invalid request. Please check the request and try again.`.
*   `errorCode` (_string_, nullable) Error code shown to the user.  
    Example: `INTERNAL_ERROR`.
*   `url` (_string_) URL for the artifact to be downloaded.
*   `fileName` (_string_) File location for the artifact to be downloaded.
*   `error` (_boolean_)

### StoreProductDetails

Provide details about products in the store. This includes store-level inventory, store level pricing, store level promotions, etc. You must provide a value if store inventory tracking is enabled in CMS (**CMS** > **Store Settings** > **Inventory**).

*   `storeId` (_string_) Store or warehouse ID.
*   `productId` (_string_) Product ID.
*   `storeInventory` (_integer (int32)_) Product sellable quantity.
*   `storePrice` (_number_) Product price at the store.
*   `storePromoText` (_string_) Product promotion text applicable to this store.
*   `listPrice` (_number_) Product list price.
*   `salesPrice` (_number_) Product sale price.
*   `storePromoBanner` (_string_) Product promotion banner text.
*   `clearanceItems` (_array of ClearanceItem_) Product location within the store.
*   `allocatedQuantity` (_integer (int32)_) Product quantity allocated for shipment or BOPIS orders.
*   `safetyStockQuantity` (_integer (int32)_) Product safety stock quantity.
*   `quantityOnHand` (_integer (int32)_) Product quantity on hand.
*   `quantityInTransit` (_integer (int32)_) Product quantity in transit to this store.
*   `quantityOnOrder` (_integer (int32)_) Product quantity on order for this store.
*   `notForSaleQuantity` (_integer (int32)_) Damaged product quantity that isn't for sale.
*   `returnedItemsQuantity` (_integer (int32)_) Returned product quantity that isn't for sale.
*   `floorDemoQuantity` (_integer (int32)_) Floor/Demo product quantity that isn't for sale.
*   `fullPriceSerialNumbers` (_array of string_) Full price serial numbers.
*   `storeOnlineQuantity` (_integer (int32)_) Online product quantity available for sale in store.
*   `customString0` (_string_) Custom string attribute of the product for the store.
*   `customString1` (_string_) Custom string attribute of the product for the store.
*   `quantity` (_integer (int32)_)

### StoreProductUpdateResponse

*   `storeId` (_string_) Store or warehouse ID.
*   `productId` (_string_) Product ID.
*   `storeInventory` (_integer (int32)_) Product sellable quantity.
*   `storePrice` (_number_) Product price at the store.
*   `storePromoText` (_string_) Product promotion text applicable to this store.
*   `listPrice` (_number_) Product list price.
*   `salesPrice` (_number_) Product sale price.
*   `storePromoBanner` (_string_) Product promotion banner text.
*   `clearanceItems` (_array of ClearanceItem_) Product location within the store.
*   `allocatedQuantity` (_integer (int32)_) Product quantity allocated for shipment or BOPIS orders.
*   `safetyStockQuantity` (_integer (int32)_) Product safety stock quantity.
*   `quantityOnHand` (_integer (int32)_) Product quantity on hand.
*   `quantityInTransit` (_integer (int32)_) Product quantity in transit to this store.
*   `quantityOnOrder` (_integer (int32)_) Product quantity on order for this store.
*   `notForSaleQuantity` (_integer (int32)_) Damaged product quantity that's not for sale.
*   `returnedItemsQuantity` (_integer (int32)_) Returned product quantity that's not for sale.
*   `floorDemoQuantity` (_integer (int32)_) Floor/Demo product quantity that's not for sale.
*   `fullPriceSerialNumbers` (_array of string_) Full price serial numbers.
*   `storeOnlineQuantity` (_integer (int32)_) Online product quantity available for sale in the store.
*   `customString0` (_string_) Custom string attribute of the product for the store.
*   `customString1` (_string_) Custom string attribute of the product for the store.
*   `quantity` (_integer (int32)_)

### StoreInventoryProductsUpdateResponse

*   `errorMessage` (_string_, nullable) Error message shown to the user.  
    Example: `Invalid request. Please check the request and try again.`.
*   `errorCode` (_string_, nullable) Error code shown to the user.  
    Example: `INTERNAL_ERROR`.
*   `products` (_array of StoreProductUpdateResponse_)
*   `error` (_boolean_)

### ClearanceItem

Product location within the store.

*   `serialNumber` (_string_) Serial number of the item (if applicable).
*   `clearancePrice` (_number_)
*   `itemLocationWithinStore` (_string_)
*   `instructionText` (_string_)