Overview
An independent Medusa 2 plugin that adds a lightweight WMS workflow without moving order operations out of the commerce platform. It combines operator screens, an order widget and a warehouse domain model.
Problem
A standard order lifecycle does not guide a worker through physical picking and packing. The operation needs authenticated work reservations, quantity validation and a clear audit trail.
Solution
The plugin introduces warehouse and bin locations, baskets, workstations, picking waves, cartons and packages. It supports EAN/SKU scanning, overscan protection, quantity checks and private packing photos.
My role
I designed the domain, warehouse-specific lifecycle, backend modules, workflows, versioned warehouse.* events, and the Polish/English Admin and operator interfaces.
Architecture
The solution ships as an independent Medusa 2 plugin. Domain services and workflows coordinate authenticated reservations, picking and multi-package packing; File Module protects photos, while an order widget exposes operational context.
Engineering challenges
The main challenges were reservation concurrency boundaries, quantity consistency between scanning and packing, evidence privacy and extension compatibility with Medusa's lifecycle. Builds and tests validate the implemented scope.
Results and current status
The verified flow covers reservation through picking to cartons and multiple packages, with scanning, operation history and PL/EN UI. Full PostgreSQL integration/e2e validation, stronger transactional concurrency protection and some Admin CRUD polish remain hardening work.