Skip to main content

Warehousing Provider Plugins

A warehousing adapter models stock availability and fulfilment timing. A store can have several; each warehousing provider invokes the adapter it is configured with.

FactoryFor
registerPhysicalWarehousingphysical goods (stock / production / commissioning time)
registerVirtualWarehousingtokenized / NFT products (tokenize)

Example: physical store stock​

import { registerPhysicalWarehousing } from '@unchainedshop/core';

registerPhysicalWarehousing({
adapterId: 'flagship-store',
stock: async (referenceDate, configuration, context) => 99999,
productionTime: 0, // ms; made-to-order lead time
commissioningTime: 0, // ms to prepare for shipping
});

Each option accepts either a literal value or a (…args, configuration, context) => Promise<number> callback.

OptionDescription
stockavailable quantity at a reference date
productionTimems to produce a quantity (made-to-order)
commissioningTimems to prepare a quantity for shipping
orderIndexsorts adapter listings ascending (default 0); each provider still invokes a single adapter

Example: tokenized products​

import { registerVirtualWarehousing } from '@unchainedshop/core';

registerVirtualWarehousing({
adapterId: 'nft-minter',
tokenize: async (configuration, context) => {
// return the token surrogates to mint for the checked-out position
return [{
_id: crypto.randomUUID(),
quantity: 1,
contractAddress: '0x…',
tokenSerialNumber: '1',
meta: {},
}];
},
});

For full control of every IWarehousingAdapter method, build the adapter directly and register it via pluginRegistry.register() — see Plugin System.