Back to Writing

Engineering Note

How I designed barcode and stall inventory for Mato Crafts

The operational design behind turning product variants into traceable inventory units for warehouse and event-stall sales.

Filed under
  • Inventory
  • E-commerce
  • Operations
  • Next.js
  • Sanity

Mato Crafts began as a straightforward storefront. That model works when a product is simply available or unavailable, but it becomes unreliable when a handmade business sells several physical variants through both a website and event stalls.

The important shift was to separate a product from the individual inventory units that represent it. A product can describe the collection piece, while an inventory unit can carry the exact variant, barcode, and operational state needed to understand where that physical item is in its lifecycle.

I designed the inventory state around real operations: available, reserved, at stall, sold, and void. The goal was not to create a complex dashboard for its own sake. It was to let someone answer practical questions quickly: Is this item sellable? Has it been moved to an event? Was it already sold through another path?

Warehouse-to-stall transfers became a first-class workflow rather than a note outside the system. A transfer manifest records what leaves the warehouse for a physical stall, and the stall-sale flow connects that sale back to the relevant order and inventory record.

Variants needed the same level of care on the customer side. A selected combination has to behave as a distinct purchasable item in the cart, while still staying understandable to the person maintaining stock. That meant treating selection, price, availability, and inventory association as one flow instead of separate screens.

Barcode-label generation and virtual printing made the operational workflow testable before physical hardware was available. The remaining work is deliberately practical: validate printing with the client's chosen barcode and receipt printer, then test the flow during real stall operations rather than assuming code completion proves the process.

The larger lesson is that commerce features become useful when they reflect the way a business actually moves stock. The right design was not another generic inventory count; it was a traceable bridge between online discovery, warehouse stock, and a person selling at a stall.