Odoo 18 a son application d'inventaire sur terminal. Elle convient à un entrepôt simple. Dès que les opérations se spécialisent — réception avec mesure des colis, prélèvement groupé avec remballage, expédition par avis d'expédition —, elle ne suffit plus.
Vingt-trois modules communautaires composent Shopfloor : une application de terminal à scénarios, et terminent le dépôt stock-logistics-shopfloor.
Résumé
Deux modules forment le socle : une interface de programmation pour les opérations à la douchette — avec ses dix-sept dépendances —, et l'interface mobile qui la consomme.
Quatre modules fournissent les scénarios : la réception, le transfert d'un article d'un emplacement à un autre, le remballage en fin de prélèvement groupé, et l'expédition par avis d'expédition. Chacun a son module mobile.
Trois modules traitent l'amont du prélèvement groupé : la création automatique de lots de transfert, la synchronisation du point de contrôle, et la lecture des codes-barres GS1.
Six modules traitent la mesure et les emballages à la réception : les dimensions du colis, les dimensions du conditionnement, l'usage d'un appareil de mesure, les conditionnements fournisseur — en général et à la réception —, et l'affichage du fabricant du produit.
Deux modules enfin traitent les matières dangereuses, en reliant Shopfloor au référentiel de marchandises dangereuses du stock.
L'essentiel
- Une application de terminal à scénarios, pas un écran unique.
- Un scénario de réception avec mesure des colis.
- Le remballage en fin de prélèvement groupé.
- L'expédition par avis d'expédition.
- La lecture des codes-barres GS1.
- L'usage d'un appareil de mesure à la réception.
- Les conditionnements fournisseur reconnus au scan.
- Les matières dangereuses signalées à l'opérateur.
Ce que ces modules ajoutent à l'instance
| Famille | Modules | Nombre |
|---|---|---|
| Socle | shopfloor, shopfloor_mobile | 2 |
| Scénarios | shopfloor_reception, shopfloor_reception_mobile, shopfloor_single_product_transfer, shopfloor_single_product_transfer_mobile, shopfloor_cluster_picking_repack, shopfloor_cluster_picking_repack_mobile, shopfloor_delivery_shipment, shopfloor_delivery_shipment_mobile | 8 |
| Prélèvement groupé | shopfloor_batch_automatic_creation, shopfloor_checkout_sync, shopfloor_gs1 | 3 |
| Mesure et emballages | shopfloor_reception_package_dimension, shopfloor_reception_package_dimension_mobile, shopfloor_reception_packaging_dimension, shopfloor_reception_packaging_dimension_mobile, shopfloor_reception_measuring_device, shopfloor_vendor_packaging, shopfloor_reception_vendor_packaging, shopfloor_product_manufacturer | 8 |
| Matières dangereuses | shopfloor_dangerous_goods, shopfloor_dangerous_goods_mobile | 2 |
Le dépôt suit une règle constante : un module de logique, un module mobile. Installer le premier sans le second ne change rien sur le terminal.
Le socle, et ce qu'il coûte
Dix-sept dépendances déclarées pour un seul module. C'est le signal à lire avant tout : Shopfloor n'est pas une application qu'on installe, c'est une pile qu'on assemble — interface de programmation, champs creux, livraison, lots, dimensions de colis, progression des transferts, modification de lot sur ligne de mouvement.
shopfloor (version 18.0.1.4.1) fournit l'interface de programmation qui expose les opérations d'entrepôt à un terminal. Il ne fournit aucune interface : c'est la couche de service.
shopfloor_mobile (version 18.0.1.7.0) est l'interface mobile qui la consomme. Les deux ensemble donnent l'application ; séparément, rien d'utilisable.
Le découpage a une raison : un intégrateur peut brancher son propre terminal — un appareil industriel, une application interne — sur la même interface de programmation.
Les briques de stock dont il dépend sont traitées dans regrouper, scinder et suivre les transferts et emballages, poids et unités.
Les quatre scénarios
Shopfloor fonctionne par scénarios : un parcours guidé pour une opération donnée, et non un écran générique où l'opérateur choisit.
| Scénario | Module | Version |
|---|---|---|
| Réception | shopfloor_reception | 18.0.1.11.0 — le plus travaillé du dépôt |
| Transfert d'un article | shopfloor_single_product_transfer | 18.0.1.6.0 |
| Remballage après prélèvement groupé | shopfloor_cluster_picking_repack | 18.0.1.3.0 |
| Expédition par avis d'expédition | shopfloor_delivery_shipment | 18.0.1.2.0 |
Le parcours guidé est ce qui distingue un terminal utilisable d'un terminal abandonné : un opérateur qui doit choisir entre douze actions à chaque étape se trompe ; un opérateur à qui l'écran dit quoi scanner ensuite ne se trompe pas.
shopfloor_cluster_picking_repack dépend de quatre modules, dont le nombre de paquets par type de colis et le filtrage des types de colis — parce que remballer suppose de choisir un contenant valide.
shopfloor_delivery_shipment s'appuie sur les avis d'expédition : le scénario construit l'expédition, pas seulement le transfert.
shopfloor_batch_automatic_creationcrée automatiquement les lots de transfert pour le prélèvement groupé — sans quoi quelqu'un les constitue à la main avant que l'équipe démarre.shopfloor_checkout_syncest une colle synchronisant le point de contrôle avec le module de synchronisation de sortie.shopfloor_gs1intègre la lecture des codes-barres GS1 : un code qui encode à la fois la référence, le lot, la date et la quantité.
Le GS1 est décisif en agroalimentaire et en pharmacie : un seul scan renseigne le produit, son lot et sa date de péremption, là où trois saisies seraient nécessaires.
Mesurer et reconnaître à la réception
Un colis dont on ne connaît ni les dimensions ni le poids ne peut pas être rangé par un système de stockage, ni facturé au bon tarif de transport, ni palettisé correctement. Mesurer à la réception est le seul moment où c'est possible sans manipulation supplémentaire.
shopfloor_reception_package_dimensioncollecte les dimensions du colis pendant la réception. Il dépend du type de stockage, donc du rangement.shopfloor_reception_packaging_dimension(version 18.0.1.4.0) collecte les dimensions du conditionnement — le carton type, non le colis reçu.shopfloor_reception_measuring_devicepermet d'utiliser un appareil de mesure pour les relever automatiquement, au lieu de les saisir.
La distinction colis / conditionnement compte : le premier est l'objet reçu, le second la définition réutilisable. Mesurer un conditionnement une fois évite de mesurer mille colis.
shopfloor_vendor_packaginggère le comportement du terminal face aux conditionnements fournisseur, etshopfloor_reception_vendor_packagingl'applique au scénario de réception.shopfloor_product_manufacturer(version 18.0.2.0.0) affiche le fabricant du produit sur le terminal.
Les conditionnements fournisseur répondent à un cas quotidien : le fournisseur livre par cartons de douze, l'entrepôt stocke à l'unité, et le code-barres scanné est celui du carton.
Le fabricant affiché sert au contrôle visuel : deux références proches, deux fabricants différents, et l'opérateur voit immédiatement s'il tient le bon article.
Les matières dangereuses
shopfloor_dangerous_goods et son module mobile relient Shopfloor au référentiel de marchandises dangereuses du stock.
L'enjeu est de signaler à l'opérateur, au moment du scan, qu'il manipule une matière réglementée — avant qu'il la place dans le mauvais contenant ou à côté d'un produit incompatible.
Les contrôles de conformité transporteur liés aux matières dangereuses sont traités dans expédier au quotidien.
Limites connues
- Dix-sept dépendances pour le socle : Shopfloor est le projet le plus lourd à installer et à maintenir du catalogue logistique communautaire. À n'envisager qu'avec un entrepôt dont les opérations le justifient.
- Chaque scénario exige son module mobile : installer la logique sans l'interface ne change rien sur le terminal.
- La version 18.0 de l'application d'inventaire d'Odoo couvre les cas simples : comparer avant de s'engager, car l'écart de coût d'exploitation est considérable.
- Les scénarios ne sont pas interchangeables : chacun impose son parcours. Un besoin qui ne rentre dans aucun demande un développement.
shopfloor_reception_measuring_devicesuppose un appareil de mesure compatible et son module de pilotage.- Le GS1 exige des codes GS1 conformes côté fournisseur : un code propriétaire ne se lit pas.
- Les colles — synchronisation de sortie, matières dangereuses — supposent les modules cibles installés : vérifier la pile complète avant de commencer.
- La montée de version d'une pile de vingt-trois modules se prépare : c'est le domaine où un dépôt communautaire coûte le plus en maintenance.
Identité technique
Les vingt-trois modules viennent du dépôt OCA stock-logistics-shopfloor, branche 18.0 — dont tous les modules sont désormais documentés ici —, tous en licence AGPL-3. Les dépendances externes notables : base_rest et jsonifier pour l'interface de programmation, stock_picking_batch et stock_picking_batch_creation pour les lots, shipment_advice pour les avis d'expédition, stock_dangerous_goods pour les matières réglementées, stock_measuring_device pour l'appareil de mesure, product_manufacturer, product_packaging_level et stock_storage_type pour les référentiels.
Voir aussi regrouper, scinder et suivre les transferts.
Questions fréquentes
Shopfloor remplace-t-il l'application d'inventaire d'Odoo 18 ?
Pas systématiquement. L'application d'Odoo 18 couvre les cas simples ; Shopfloor apporte des scénarios spécialisés — réception avec mesure, prélèvement groupé avec remballage, expédition par avis. Mais son socle déclare dix-sept dépendances : l'écart de coût d'exploitation est considérable, et la comparaison se fait avant de s'engager.
Pourquoi chaque module Shopfloor existe-t-il en deux versions ?
Le dépôt sépare systématiquement la logique et l'interface mobile. Installer le module de logique sans son module mobile ne change rien sur le terminal. Ce découpage permet aussi à un intégrateur de brancher son propre terminal — appareil industriel, application interne — sur la même interface de programmation.
Qu'apportent les codes-barres GS1 ?
Un code GS1 encode à la fois la référence, le lot, la date et la quantité : shopfloor_gs1 le lit en un seul scan, là où trois saisies seraient nécessaires. C'est décisif en agroalimentaire et en pharmacie. Il exige des codes conformes côté fournisseur — un code propriétaire ne se lit pas.
Peut-on mesurer les colis à la réception ?
Oui, par trois modules : dimensions du colis reçu, dimensions du conditionnement réutilisable, et usage d'un appareil de mesure pour les relever automatiquement. Un colis sans dimensions ni poids ne peut être ni rangé par un système de stockage, ni facturé au bon tarif de transport, ni palettisé.
Shopfloor gère-t-il les matières dangereuses ?
Oui : shopfloor_dangerous_goods et son module mobile relient le terminal au référentiel de marchandises dangereuses du stock. L'enjeu est de signaler la matière réglementée au moment du scan, avant un mauvais contenant ou un voisinage incompatible.
Se faire accompagner
Shopfloor est le seul projet communautaire où nous recommandons régulièrement de ne pas l'installer : dix-sept dépendances pour le socle, vingt-trois modules pour la pile complète, et une montée de version à préparer. Il se justifie à partir d'une certaine complexité d'opérations, pas d'une certaine taille.
Nous comparons donc d'abord vos opérations réelles avec ce que couvre l'application d'inventaire d'Odoo 18 — et nous ne proposons Shopfloor que si un scénario spécialisé est réellement en jeu. Voir les prestations d'Atalios Consulting ou demander un rappel.
Pour aller plus loin
En résumé
Odoo 18 a son application d'inventaire sur terminal, qui convient à un entrepôt simple. Shopfloor apporte des scénarios spécialisés — mais son socle déclare dix-sept dépendances, et la pile complète vingt-trois modules. C'est le projet qu'il faut parfois refuser. Parlons de vos opérations.