On this page
  1. Install
  2. API entry points and requirements
  3. Peer dependencies

@playstack/inventory

Transactionally correct finite inventory, locations, reservations, terminal stock transitions, and adjustments.

Pro. Covered by the Playstack Pro License. Registry access is required; check preview availability before installing. See package access.

@playstack/inventory answers whether a quantity can be promised now. Catalog, purchasing, payments, returns, and fulfillment remain outside its boundary.

ts
import { createInventory } from '@playstack/inventory'

const inventory = createInventory({ persistence, events, ids, clock })

await inventory.reserve({
  reservationId: `order:${orderId}`,
  expiresAt: Date.now() + 30 * 60_000,
  lines: [{ itemId: 'stand-black', locationId: 'default', quantity: 1 }],
  idempotencyKey: `order:${orderId}:inventory`,
})

Multi-line reservations are all-or-nothing. Commit consumes on-hand stock; release and expiration restore availability. Repeated identical commands are no-ops, conflicting key reuse is rejected, and refunds never restock automatically.

Operations may join a compatible application transaction so an order and reservation commit atomically. @playstack/inventory/prisma uses PostgreSQL locking, while @playstack/inventory/testing supplies a serialized in-memory adapter.

Install

After confirming preview access, install the package at your application's shared Playstack version:

sh
npm install --save-exact @playstack/inventory@0.1.0-beta.1

Check the peer requirements below before choosing a runtime or provider.

API entry points and requirements

Reference snapshot: @playstack/inventory@0.1.0-beta.1. Import only the entry point your runtime needs. Paths below are relative to the installed package; use Go to Definition in your editor to inspect exact parameters, return types and overloads. Do not import the declaration-file paths directly.

Public entry pointDeclaration file
@playstack/inventory./dist/index.d.ts
@playstack/inventory/errors./dist/errors.d.ts
@playstack/inventory/prisma./dist/prisma.d.ts
@playstack/inventory/testing./dist/testing.d.ts
@playstack/inventory/package.jsonNo TypeScript declaration (asset or metadata export).

Node.js engine requirement: >=20. This is not a claim that every entry point works in browsers or Workers.

Peer dependencies

This package declares no peer dependencies. Its ordinary dependencies are resolved by the package manager.

For a complete first program, start with Getting started. For API lookup and partial-example conventions, see Reading the reference. Provider failures, lifecycle requirements and application responsibilities remain described in the guide above; types alone do not establish production safety.

Go

Playstack Pro tag
OriginsPricingBlogNewsletterChangelogStatusRoadmap
ContributorsCommunityIn Use ShowcaseCase StudiesPartnersSponsors
FAQsSupportContact

© 2026 Playstack. All rights reserved.

With OSS
Terms of ServicePrivacy PolicyCookie PolicyImprint

By

Commune Software