← All packages

@lacspace/inventory

v1.0.0Commerce & Ledger0 deps

Stock-tracking engine that prevents overselling — reserve, release, commit & restock over a plain { onHand, reserved } state. Immutable, bring-your-own-store, throws before it oversells. Isomorphic.

npm i @lacspace/inventory

Usage

inventory.ts
import { createStock, reserve, commit, available, InventoryError } from "@lacspace/inventory";

let stock = createStock({ onHand: 10 });
stock = reserve(stock, 2);   // checkout hold — THROWS InventoryError before it oversells
stock = commit(stock, 2);    // order paid: reserved -> fulfilled

available(stock);            // 8  (onHand minus still-reserved)

Exports 10

createStockreservereleasecommitrestockadjustavailableisLowisOutOfStockInventoryError

Keywords

inventorystockreservationoversellecommercefulfilment

More in Commerce & Ledger