Skip to main content

Product Inventory Service ((dev))

Download OpenAPI specification:Download

Public per-product stock-rows endpoint. The path lives under /v1/products even though the implementing service is product-inventory-service.

List per-product stock rows

Returns the in-warehouse stock of one of your products, aggregated into rows keyed on (arrival_batch_id, best_before_date, batch_number) — extended with the reserving order id when include_order_breakdown=true. Each row carries available_quantity / reserved_quantity / total_quantity, the earliest on-shelf timestamp, and references to the inbound shipment and (optionally) the reserving order. Articles that have already shipped are excluded.

Authorizations:
idp
path Parameters
productId
required
string^[a-f0-9]{24}$

Logitrail's internal technical ID of the product (24-char hex).

query Parameters
offset
integer [ 0 .. 9007199254740991 ]
Default: 0

Pagination offset into the post-aggregation row list.

limit
integer [ 1 .. 500 ]
Default: 100

Pagination page size (1–500). Default 100. Caps the post-aggregation row list.

include_order_breakdown
boolean
Default: false

When true, split rows by the reserving order id (order.id). When false (default), reserved articles are summed across all reserving orders and order is null on every row.

header Parameters
x-logitrail-merchant-id
required
string non-empty

Logitrail's Merchant ID.

Responses

Response samples

Content type
application/json
{
  • "stock_rows": [
    ]
}

List articles for one of your inbound shipments

Returns the units of one of your inbound shipments, aggregated into rows keyed on (product, in_warehouse_status, batch_number, best_before_date). in_warehouse_status tells you where each unit is in its lifecycle (inbound = expected, arrived = received but not yet shelved, on_shelf, picked, …). Each row carries the total_quantity and the product (id, sku, name). Filter with in_warehouse_status; paginated with offset/limit (up to 500 rows per page). Inbound shipments that do not belong to you return an empty list.

Authorizations:
idp
query Parameters
inbound_shipment_id
required
string^[a-f0-9]{24}$

Inbound shipment ID (24-char hex) whose articles to list. Required. Shipments that do not belong to you return an empty list.

string or Array of strings

Optional in-warehouse status filter — a single value or an array. When omitted, every status present on the shipment is returned. Allowed values: inbound, arrived, on_shelf, picked, packed, sent_out, dropshipped, incident.

offset
integer [ 0 .. 9007199254740991 ]
Default: 0

Pagination offset into the post-aggregation row list.

limit
integer [ 1 .. 500 ]
Default: 100

Pagination page size (1–500). Default 100. Caps the post-aggregation row list.

header Parameters
x-logitrail-merchant-id
required
string non-empty

Logitrail's Merchant ID.

Responses

Response samples

Content type
application/json
{
  • "article_rows": [
    ]
}

List inventory movement history for a product

Returns the chronological inventory movement history for one of your products. Each entry records a timestamp, movement type (e.g. inbound_shipment.to_shelf, order_pickup.picked), article count, and references to the related inbound shipment or order when applicable. Supports time-range and type filters; paginated with offset/limit (up to 500 rows per page). Products that do not belong to your merchant return an empty list.

Authorizations:
idp
path Parameters
productId
required
string^[a-f0-9]{24}$

Logitrail's internal technical ID of the product (24-char hex).

query Parameters
offset
integer [ 0 .. 9007199254740991 ]
Default: 0

Pagination offset into the chronological movement list.

limit
integer [ 1 .. 500 ]
Default: 100

Pagination page size (1–500). Default 100.

ts_min
string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[...

Optional inclusive lower bound on movement ts (ISO 8601). Omit for "all history".

ts_max
string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[...

Optional inclusive upper bound on movement ts (ISO 8601). Omit for "up to now".

string or Array of strings

Optional movement-type filter. Repeat the parameter or supply a comma-separated value to filter to multiple types.

order
string
Default: "asc"
Enum: "asc" "desc"

Chronological order. asc (default) returns oldest first.

header Parameters
x-logitrail-merchant-id
required
string non-empty

Logitrail's Merchant ID.

Responses

Response samples

Content type
application/json
{
  • "movements": [
    ]
}