The KornitX Platform includes a stock management system.
Any product in the catalog that have Stock set as its type automatically gets tracked by the stock system.
Generally stock products would not be customisable. They may however have variants, in this case they need to be set with Type “Configurable Stock” and have additionally a stock product created for each variant and set on the variant under “Stock Product”.
Instead, customisable products in the catalog should be linked to a base stock product via the Base Stock Product field.
The reverse is also true, customisable products would generally not have the stock type set.
This means that hundreds of customisable catalog products can be linked to a single stock base product.
In the case of customisable products that make use of variants, and in the case of configurable stock products, each variant must link to its own base stock product.
In the case of virtual products, the base stock product is derived from the virtual product’s base product.
Let’s say that Fulfiller A sells T-shirt T01
which comes in 2 sizes, S
and L
.
In the catalogue, the fulfiller would create 3 separate products.
ID | SKU | Type | Variant 1 SKU | Variant 1 Base Stock Product ID | Variant 2 SKU | Variant 2 Base Stock Product ID |
---|---|---|---|---|---|---|
100 | T01-S | Stock | N/a | N/a | ||
101 | T01-L | Stock | N/a | N/a | ||
102 | T01 | Customisable | T01-S | 100 | T01-L | 101 |
When KornitX receives orders from a retailer for product 102
, it will automatically adjust the stock levels for either product 100
or 101
, depending on which variant of 102
was ordered.
ID | SKU | Type | Base Stock Product ID |
---|---|---|---|
200 | S7 | Stock | N/a |
201 | S7 | Customisable | 200 |
Taking a shortcut, it would also be possible to create a single product.
ID | SKU | Type | Base Stock Product ID |
---|---|---|---|
202 | S7 | Stock & Customisable | N/a |
However with the shortcut, if the product is duplicated then the fulfiller will end up with 2 separate stock products that represent the same physical unit.
Retailers are able to register a webhook URL that allows them to receive stock level updates.
The webhook will be called whenever the stock level of a base stock product changes (at a maximum frequency of once every 15 minutes for each base stock product).
The webhook can be set in the V3 advanced company settings section, under "Webhooks" or "Webhooks /Order Status" as shown below.
In addition, the webhook will list all non stock products that the retailer has access to and that are associated with the base stock product.
For example, if Retailer A had their own version of product 102
(lets say the ID of their own version is 300
), the webhook data for updates for product 100
will look something like:
{
"stock": [
"quantity_availble": 10,
"linked" [
{
"product": {
"id": 100,
"sku": "T01-S"
},
"variant": null
},
{
"product": {
"id": 300,
"sku": "T01"
},
"variant": {
"attribute_1": {
"name": "Size",
"value": "Small"
},
"sku": "T01-S"
}
}
]
]
}
The base stock product is always the first product listed.
sku | quantity_available |
ABC | 1 |