About this project

HotWax Commerce Fulfillment is a progressive web app (PWA) for store and warehouse teams to carry out order fulfillment operations. Its logical repository name is Fulfillment, and its stated business purpose is to let organizations ship customer orders and move inventory efficiently. Core responsibilities include locating open orders, creating picklists, picking and scanning items, packing shipments, generating labels, and shipping orders. It also processes transfer orders between facilities, including picking, shipping, and rejecting them. Carrier and shipping operations cover carrier shipment methods, tracking labels, and packing slips. The app handles inventory and exception cases such as unfulfillable items, rejections, and order status updates, and resolves user permissions, facilities, and product store context for fulfillment work. Documented workflows start with open orders to picking: building Solr-backed order queues, creating picklists or waves, and scanning items to update picked quantities before packing and shipping. Packing and shipping generates packing slips, shipping labels, and tracking codes, and updates shipment status from approved to packed to shipped. Transfer order flows retrieve transfer orders, scan items, create outbound shipments, and capture rejection reasons when inventory is not fulfillable. Printing and device support covers picklists, packing slips, and labels, including Zebra printer flows. The tech stack is Vue 3, Ionic Vue, Vue Router, Pinia, and TypeScript, packaged as a mobile/PWA with Capacitor, Ionic PWA tooling, and service workers. Platform and utility dependencies include the HotWax OMS API client (@hotwax/oms-api), HotWax DXP components, Firebase, and Module Federation runtime. The dependency map connects HotWax OMS / Maarg services for orders, shipments, picklists, and facility/user context; Solr-backed search for open orders and fulfillment queues; document services for printing picklists, packing slips, shipping labels, and custom documents; Firebase for notifications and remote entry hosting; and Zebra printer integration. The app is developed and run from the accxui pnpm workspace rather than from its own folder. To run locally, place the app at apps/fulfillment inside an accxui checkout, copy .env.example to .env and set required values, then run pnpm install from the accxui root and start with pnpm --filter fulfillment dev. Prerequisites are Node v22.12.0 or higher and pnpm. Environment configuration includes VITE_BASE_URL for OMS API calls, VITE_LOGIN_URL for HotWax Launchpad login, VITE_APP_VERSION_CONFIG for multi-version app hosting (required for the Vite config to load), VITE_FIREBASE_CONFIG and VITE_FIREBASE_VAPID_KEY for notifications, VITE_REMOTE_ENTRY for module federation extensions, and VITE_DEFAULT_PRODUCT_STORE_SETTINGS for default store-level fulfillment flags. Build notes for users and contributors both use the accxui workspace, with the contributor path adding a git clone into apps/fulfillment and a build command pnpm --filter fulfillment build. Contribution guidelines ask contributors to fork and clone the main branch, pick an issue, use branch naming like fulfillment-pwa/issue-number, include the issue number in commit messages, and submit a PR to main with the provided template. Bug reports and feature requests are distinguished, and support or setup questions are directed to specified channels. UI/UX resources include a Figma community file, and community questions can go to the project Discord channel. The app is released under the Apache v2.0 License. Playwright automation guidelines describe installing browsers with npx playwright install, running tests with commands such as npx playwright test, npx playwright test tests/login.spec.js, npx playwright test --headed, npx playwright test --project=chromium, and npx playwright test --debug, then viewing reports with npx playwright show-report.