À propos du projet

HotWax Commerce Fulfillment est une application web progressive (PWA) destinée aux équipes de magasin et d’entrepôt pour effectuer les opérations d’exécution des commandes. Son nom de dépôt logique est Fulfillment, et son objectif commercial déclaré est de permettre aux organisations d’expédier les commandes des clients et de déplacer l’inventaire de manière efficace. Les responsabilités principales incluent la localisation des commandes ouvertes, la création de listes de picking, le picking et le scan des articles, l’emballage des envois, la génération d’étiquettes et l’expédition des commandes. Elle traite également les transferts d’ordres entre les installations, y compris le picking, l’expédition et le rejet. Les opérations de transport et d’expédition couvrent les méthodes d’expédition des transporteurs, les étiquettes de suivi et les bons de livraison. L’application gère l’inventaire et les cas d’exception tels que les articles non exécutables, les rejets et les mises à jour du statut des commandes, et résout les permissions des utilisateurs, les installations et le contexte du magasin de produits pour le travail d’exécution. Les workflows documentés commencent par les commandes ouvertes jusqu’au picking : construction de files d’attente de commandes basées sur Solr, création de listes de picking ou de vagues, et scan des articles pour mettre à jour les quantités ramassées avant l’emballage et l’expédition. L’emballage et l’expédition génèrent des bons de livraison, des étiquettes d’expédition et des codes de suivi, et mettent à jour le statut de l’envoi de approuvé à emballé à expédié. Les flux de transferts d’ordres récupèrent les transferts d’ordres, scannent les articles, créent des envois sortants et capturent les raisons de rejet lorsque l’inventaire n’est pas exécutable. Le support de l’impression et des appareils couvre les listes de picking, les bons de livraison et les étiquettes, y compris les flux d’imprimantes Zebra. La pile technologique est Vue 3, Ionic Vue, Vue Router, Pinia et TypeScript, empaquetée en tant qu’application mobile/PWA avec Capacitor, les outils de PWA Ionic et les service workers. Les dépendances de plateforme et d’utilitaires incluent le client API HotWax OMS (@hotwax/oms-api), les composants HotWax DXP, Firebase et le runtime de Module Federation. La carte des dépendances connecte les services HotWax OMS / Maarg pour les commandes, les envois, les listes de picking et le contexte de l’installation/utilisateur ; la recherche basée sur Solr pour les commandes ouvertes et les files d’attente d’exécution ; les services de documents pour l’impression des listes de picking, des bons de livraison, des étiquettes d’expédition et des documents personnalisés ; Firebase pour les notifications et l’hébergement des entrées à distance ; et l’intégration de l’imprimante Zebra. L’application est développée et exécutée à partir de l’espace de travail pnpm accxui plutôt que de son propre dossier. Pour l’exécuter localement, placez l’application dans apps/fulfillment à l’intérieur d’un checkout accxui, copiez .env.example en .env et définissez les valeurs requises, puis lancez pnpm install à partir de la racine accxui et démarrez avec pnpm --filter fulfillment dev. Les prérequis sont Node v22.12.0 ou supérieur et pnpm. La configuration de l’environnement inclut VITE_BASE_URL pour les appels API OMS, VITE_LOGIN_URL pour la connexion HotWax Launchpad, VITE_APP_VERSION_CONFIG pour l’hébergement d’applications multi-versions (requis pour que la configuration Vite se charge), VITE_FIREBASE_CONFIG et VITE_FIREBASE_VAPID_KEY pour les notifications, VITE_REMOTE_ENTRY pour les extensions de module federation, et VITE_DEFAULT_PRODUCT_STORE_SETTINGS pour les flags d’exécution par défaut au niveau du magasin. Les notes de build pour les utilisateurs et les contributeurs utilisent tous deux l’espace de travail accxui, le chemin du contributeur ajoutant un clone git dans apps/fulfillment et une commande de build pnpm --filter fulfillment build. Les directives de contribution demandent aux contributeurs de forker et de cloner la branche main, de choisir un problème, d’utiliser un nom de branche comme fulfillment-pwa/issue-number, d’inclure le numéro de l’issue dans les messages de commit, et de soumettre une PR à main avec le template fourni. Les rapports de bugs et les demandes de fonctionnalités sont distingués, et les questions de support ou de configuration sont dirigées vers les canaux spécifiés. Les ressources UI/UX incluent un fichier de la communauté Figma, et les questions de la communauté peuvent être posées sur le canal Discord du projet. L’application est publiée sous la licence Apache v2.0. Les directives d’automatisation Playwright décrivent l’installation des navigateurs avec npx playwright install, l’exécution des tests avec des commandes telles que npx playwright test, npx playwright test tests/login.spec.js, npx playwright test --headed, npx playwright test --project=chromium, et npx playwright test --debug, puis la visualisation des rapports avec npx playwright show-report.