/products
Fulfilment API · ProductService
POST
https://api.quiver.london/fulfilment/productsSend your API key in the x-api-key header. See Getting started.
Request body
application/json, shaped as fulfilmentCreateProductRequest.
Responses
| Status | Body | Description |
|---|---|---|
200 | fulfilmentProduct | A successful response. |
default | rpcStatus | An unexpected error response. |
Request and response bodies
Field types that name another model link to all schemas.
fulfilmentCreateProductRequest
| Field | Type | Description |
|---|---|---|
name | string | |
weight | number (double) | |
dimensions | sharedDimensions | |
merchantProductId | string | |
merchantInventoryItemId | string | |
ephemeral | boolean | |
sku | string | |
barcode | string | |
price | number (double) | |
enabled | boolean |
fulfilmentProduct
| Field | Type | Description |
|---|---|---|
productId | integer (int32) | |
createdAt | string (date-time) | |
updatedAt | string (date-time) | |
merchantId | integer (int32) | |
name | string | |
enabled | boolean | |
excluded | boolean | |
ephemeral | boolean | |
sku | string | |
barcode | string | |
price | number (double) | |
weight | number (double) | |
dimensions | sharedDimensions | |
merchantProductId | string | |
merchantInventoryItemId | string | |
inventoryLevel | integer (int32) | |
weightSource | string | Where the measurements came from: PLATFORM (the merchant's store), MERCHANT (typed in by hand) or ESTIMATED (worked out by us when neither supplied one). Absent when the measurement has never been set. |
dimensionsSource | string | |
shopifyStatus | string | Shopify's current listing state, for example ACTIVE, DRAFT, ARCHIVED or UNLISTED. It is absent for non-Shopify merchants and products imported before the status field was introduced. |
shopifyBundle | boolean | True when Shopify marks this specific variant as requiring components. This is intentionally separate from a Quiver stock configuration: a native bundle can still need an ops decision before it has stock mapped here. |
shopifyBundleConfigured | boolean | Set for native Shopify bundles after Quiver has resolved every Shopify component to physical stock. False means the recipe is known but needs an inventory mapping; absent means this is not a Shopify bundle. |
shopifyBundleComponents | fulfilmentShopifyBundleComponent[] | The recipe supplied by Shopify for a native bundle, enriched with each component's current Quiver stock mapping. It is informational: Shopify remains the source of truth for the recipe itself. |
ageCategories | fulfilmentProductAgeCategories | The age-restricted goods in this product, for door age checks. Absent means it has not been classified yet. It is classified when it is first ordered, never as a whole catalogue. |
rpcStatus
| Field | Type | Description |
|---|---|---|
code | integer (int32) | |
message | string | |
details | protobufAny[] |
