Skip to content
Get started

Store Products

List Store Products Stock
GET/api/v2/public/storeproducts/stock
Retrieve Store Product Stock
GET/api/v2/public/stores/{store_number}/products/{product_number}/stock
Retrieve Store Product Surrounding
GET/api/v2/public/stores/{store_number}/storeproducts/{product_number}/surrounding
Update Store Products
PUT/api/v2/public/stores/{store_number}/storeproducts
Create Store Products
POST/api/v2/public/stores/{store_number}/storeproducts
ModelsExpand Collapse
StoreProductListStoreProductsStockResponse object { id, is_replenishment, is_stock, 52 more }

Store product entry returned by the public store products list endpoint, with stock and optional location breakdown.

id: number

Identifier of the store product record.

formatint64
is_replenishment: boolean

true when the product is replenished automatically.

is_stock: boolean

true when stock is tracked for this product in this store.

most_likely_quantity: number

Current stock level. This is the system’s best estimate, not a counted figure.

formatdouble
adjusted_order_level: optional number

Order level after adjustment, for example for a promotion.

formatdouble
attention_codes: optional string

Attention codes on the product that flag special handling.

average_array: optional string

Average sales per period.

barcode: optional string

Primary barcode for the product.

category_code: optional string

Category the product belongs to.

category_name: optional string

Name of that category.

category_order: optional number

Position of the category in the ordering sequence.

formatint32
delivery_datetimes: optional array of string

All upcoming delivery moments.

demand_until_delivery: optional number

Expected demand between now and the next delivery.

formatdouble
forecast: optional number

Forecast demand for the product in this store.

formatdouble
forecast_array: optional string

Forecast demand per upcoming period.

group_code: optional string

Group the product is ordered in.

history_array: optional string

Sales history per past period.

last_counted_datetime: optional string

When the product was last counted in this store.

formatdate-time
last_expiry_datetime: optional string

Expiry date last recorded for this product.

formatdate-time
last_expiry_updatedby: optional string

User who last recorded an expiry date.

last_loss_updatedby: optional string

User who last booked a loss.

last_minmax_updatedby: optional string

User who last changed the minimum or maximum level.

last_receipt_updatedby: optional string

User who last booked a receipt.

max: optional number

Maximum stock level. Replenishment does not order above this.

formatint32
min: optional number

Minimum stock level. Replenishment aims to keep stock above this.

formatint32
most_likely_datetime: optional string

When that stock level was last worked out.

formatdate-time
most_likely_pool_1: optional number

Current stock held in stock pool 1.

formatdouble
most_likely_pool_10: optional number

Current stock held in stock pool 10.

formatdouble
most_likely_pool_2: optional number

Current stock held in stock pool 2.

formatdouble
most_likely_pool_3: optional number

Current stock held in stock pool 3.

formatdouble
most_likely_pool_4: optional number

Current stock held in stock pool 4.

formatdouble
most_likely_pool_5: optional number

Current stock held in stock pool 5.

formatdouble
most_likely_pool_6: optional number

Current stock held in stock pool 6.

formatdouble
most_likely_pool_7: optional number

Current stock held in stock pool 7.

formatdouble
most_likely_pool_8: optional number

Current stock held in stock pool 8.

formatdouble
most_likely_pool_9: optional number

Current stock held in stock pool 9.

formatdouble
next_delivery_datetime: optional string

Next moment a delivery is expected.

formatdate-time
next_ordering_datetime: optional string

Next moment an order can be placed for this product.

formatdate-time
order_level: optional number

Stock level at which the product is reordered.

formatdouble
ordering_datetimes: optional array of string

All upcoming ordering moments.

original_max: optional number

Maximum level before any local change.

formatint32
original_min: optional number

Minimum level before any local change, so an override can be seen.

formatint32
price: optional number

Sales price in this store.

formatdouble
product_description: optional string

Product name.

product_number: optional string

Product this stock belongs to.

promotion_week: optional string

Week a promotion runs for this product.

purchase_unit_name: optional string

Name of the unit the product is ordered in.

purchase_unit_quantity: optional number

How many base units are in one purchase unit.

formatdouble
referral_product: optional string

Product number this product refers to, when it replaces another.

smallest_item_quantity: optional number

How many of the smallest unit this product contains.

formatdouble
smallest_product_number: optional string

Product number of the smallest sellable unit.

store_locations: optional array of object { quantity, carrier_code, default_stock_pool, 12 more }

Stock split per location. Only present when include_locations is set.

quantity: number

Stock held at this location.

formatdouble
carrier_code: optional string

Carrier the stock sits on at this location.

default_stock_pool: optional string

Stock pool this location books to by default.

stock_pool_1: optional number

Stock held in stock pool 1 at this location.

formatdouble
stock_pool_10: optional number

Stock held in stock pool 10 at this location.

formatdouble
stock_pool_2: optional number

Stock held in stock pool 2 at this location.

formatdouble
stock_pool_3: optional number

Stock held in stock pool 3 at this location.

formatdouble
stock_pool_4: optional number

Stock held in stock pool 4 at this location.

formatdouble
stock_pool_5: optional number

Stock held in stock pool 5 at this location.

formatdouble
stock_pool_6: optional number

Stock held in stock pool 6 at this location.

formatdouble
stock_pool_7: optional number

Stock held in stock pool 7 at this location.

formatdouble
stock_pool_8: optional number

Stock held in stock pool 8 at this location.

formatdouble
stock_pool_9: optional number

Stock held in stock pool 9 at this location.

formatdouble
store_location_code: optional string

Code of the location. Matches location_code on the locations endpoint.

tags: optional array of string

Tags on this location.

store_number: optional string

Store this stock is held in.

storeproduct_attention_codes: optional string

Attention codes set on this product for this store only.

validate_expiry_datetime: optional string

When the expiry date should next be checked.

formatdate-time
StoreProductRetrieveStoreProductStockResponse object { products }

Wrapper containing a list of store product stock entries.

products: optional array of object { most_likely_stock, delivery_datetimes, edit_min_max_percentage, 19 more }

The list of products with stock data.

most_likely_stock: number

Current stock level. This is the system’s best estimate, not a counted figure.

formatdouble
delivery_datetimes: optional array of string

All upcoming delivery moments.

edit_min_max_percentage: optional number

How far store staff may move the minimum and maximum levels, as a percentage. Comes from the product’s category.

formatint32
is_edit_min_max: optional boolean

true when store staff may change the minimum and maximum levels.

max: optional number

Maximum stock level. Replenishment does not order above this.

formatint32
min: optional number

Minimum stock level. Replenishment aims to keep stock above this.

formatint32
next_delivery_datetime: optional string

Next moment a delivery is expected.

formatdate-time
next_ordering_datetime: optional string

Next moment an order can be placed for this product.

formatdate-time
ordering_datetimes: optional array of string

All upcoming ordering moments.

product_number: optional string

Product this stock belongs to.

stock_pool_1: optional number

Stock held in stock pool 1.

formatdouble
stock_pool_10: optional number

Stock held in stock pool 10.

formatdouble
stock_pool_2: optional number

Stock held in stock pool 2.

formatdouble
stock_pool_3: optional number

Stock held in stock pool 3.

formatdouble
stock_pool_4: optional number

Stock held in stock pool 4.

formatdouble
stock_pool_5: optional number

Stock held in stock pool 5.

formatdouble
stock_pool_6: optional number

Stock held in stock pool 6.

formatdouble
stock_pool_7: optional number

Stock held in stock pool 7.

formatdouble
stock_pool_8: optional number

Stock held in stock pool 8.

formatdouble
stock_pool_9: optional number

Stock held in stock pool 9.

formatdouble
store_locations: optional array of object { quantity, carrier_code, default_stock_pool, 12 more }

Stock split per location. Only present when include_locations is set.

quantity: number

Stock held at this location.

formatdouble
carrier_code: optional string

Carrier the stock sits on at this location.

default_stock_pool: optional string

Stock pool this location books to by default.

stock_pool_1: optional number

Stock held in stock pool 1.

formatdouble
stock_pool_10: optional number

Stock held in stock pool 10.

formatdouble
stock_pool_2: optional number

Stock held in stock pool 2.

formatdouble
stock_pool_3: optional number

Stock held in stock pool 3.

formatdouble
stock_pool_4: optional number

Stock held in stock pool 4.

formatdouble
stock_pool_5: optional number

Stock held in stock pool 5.

formatdouble
stock_pool_6: optional number

Stock held in stock pool 6.

formatdouble
stock_pool_7: optional number

Stock held in stock pool 7.

formatdouble
stock_pool_8: optional number

Stock held in stock pool 8.

formatdouble
stock_pool_9: optional number

Stock held in stock pool 9.

formatdouble
store_location_code: optional string

Code of the location. Matches location_code on the locations endpoint.

tags: optional array of string

Tags on this location.

store_number: optional string

Store this stock is held in.

StoreProductRetrieveStoreProductSurroundingResponse = array of object { is_warehouse, most_likely_quantity, area_description, 13 more }
is_warehouse: boolean
most_likely_quantity: number
formatdouble
area_description: optional string
area_id: optional string
most_likely_pool_1: optional number
formatdouble
most_likely_pool_10: optional number
formatdouble
most_likely_pool_2: optional number
formatdouble
most_likely_pool_3: optional number
formatdouble
most_likely_pool_4: optional number
formatdouble
most_likely_pool_5: optional number
formatdouble
most_likely_pool_6: optional number
formatdouble
most_likely_pool_7: optional number
formatdouble
most_likely_pool_8: optional number
formatdouble
most_likely_pool_9: optional number
formatdouble
store_name: optional string
store_number: optional string
StoreProductUpdateStoreProductsResponse object { success, data, message }

Standard success response returned by mutation endpoints.

success: boolean

Indicates whether the operation completed successfully.

data: optional string

Optional data payload returned by the operation.

message: optional string

Human-readable message describing the result.

StoreProductCreateStoreProductsResponse object { success, data, message }

Standard success response returned by mutation endpoints.

success: boolean

Indicates whether the operation completed successfully.

data: optional string

Optional data payload returned by the operation.

message: optional string

Human-readable message describing the result.