Case 02 / 05Custom software for inventory, VAT and consignment2026Live

Collett’s central system for inventory, VAT, lifecycle and allocation. Shopify is only the sales channel; every physical pair is its own record with purchase price, VAT profile, supplier, location and status.

Collett CoreCollett Core
Collett Core
Collett Core: Custom software for inventory, VAT and consignment
Screenshot of the work

The brief

Collett sells new and pre-owned in two stores, online, B2B and on consignment. Shopify counts per variant, the books per item: margin scheme or not, whose pair, and what margin per sale.

What we did

A platform with the item as the source of truth: a 26-screen admin app, a B2B portal and a consignment portal on one design system. A Fastify API with OpenAPI, PostgreSQL and BullMQ queues; business rules live in the state machine, not in a manual.

26screens in the admin app
3apps on one design system
3VAT profiles, including the margin scheme
1record per physical pair

What we built

Collett Core
  • Items and review

    Product groups, variants and physical items in three views. A six-step review wizard records purchase price, VAT profile and condition. Review never changes status; activation is a separate approval.

  • VAT and finance

    A VAT worklist with blockers, profiles for the margin scheme, standard and zero rate, and an export pack per period for the bookkeeper. Everything per item, never summed per variant.

  • Shopify Control Center

    Shopify sits downstream. Every sync runs as a dry-run with a readable log first; writes only happen after explicit confirmation, from this one screen.

  • Allocation and rebalancing

    Orders are allocated per item (FIFO or maximum margin). Rebalancing suggests transfers based on days of cover, with reason and confidence. Stock never moves automatically.

  • Purchasing, transfers and returns

    Purchase orders through a wizard with a printable declaration, transfers between locations and returns with inspection: restock, hold or deny.

  • B2B and consignment

    Partners request, Collett approves per line; nothing is reserved before approval. Consignors only see their own items and payouts, with the sum: €200 sale, 30% commission, €140 payout.

In pictures

Scroll to browse
Collett Core
Items: the source of truth for every physical pair, filtered by status and location.
01Items: the source of truth for every physical pair, filtered by status and location.
Collett Core
The six-step review wizard. Saving doesn’t change status.
02The six-step review wizard. Saving doesn’t change status.
Collett Core
VAT review: a finance worklist with blockers per item.
03VAT review: a finance worklist with blockers per item.
Collett Core
Shopify Control Center: a guided seven-step dry-run.
04Shopify Control Center: a guided seven-step dry-run.
Collett Core
Rebalancing: suggestions with reason and confidence. Nothing moves on its own.
05Rebalancing: suggestions with reason and confidence. Nothing moves on its own.
Collett Core
Purchase orders with lines and a printable declaration.
06Purchase orders with lines and a printable declaration.
Collett Core
The B2B portal for business partners.
07The B2B portal for business partners.
Collett Core
The consignment portal with the payout as a visible sum.
08The consignment portal with the payout as a visible sum.
Collett Core
The design system lives as a page inside the app.
09The design system lives as a page inside the app.

The hardest part

Enforcing rules in the interface instead of a manual. ‘Review is not approve’, ‘UNKNOWN_REVIEW_REQUIRED always blocks’ and ‘stock never moves on its own’ are fixed statuses and fixed copy in the system. Misuse is impossible, even on a busy Saturday.

Under the hood

Languages, frameworks and integrations
Languages
TypeScript, SQL
Monorepo
pnpm workspaces, Turborepo
API
Fastify 5 on Node.js 22, OpenAPI
Frontend
Next.js 15 App Router, React
Data
PostgreSQL 16, Drizzle ORM
Background jobs
Redis, BullMQ
Integrations
Shopify GraphQL Admin API and webhooks, StockX enrichment
Infra
Docker Compose on its own VPS, JWT in an httpOnly cookie
Next case — 03 / 05Care-4 AllCustom website with its own CMS and sign-up routes