La caisse d'Odoo encaisse bien et se contrôle mal : le caissier voit le montant attendu avant de compter, le fonds de caisse crée un écart à chaque session, le rapport de session a disparu du logiciel, et tout caissier accède à tous les points de vente.
Douze modules communautaires corrigent ces quatre points.
Résumé
Cinq modules traitent la session : le comptage à l'aveugle par masquage des montants attendus, le fonds de caisse permanent évitant un écart systématique entre ouverture et fermeture, une séquence de numérotation par point de vente, le rapport de session réintroduit après son retrait du cœur du logiciel, et le règlement d'une facture depuis une session ouverte.
Trois modules traitent les droits : les caissiers restreints aux points de vente qui leur sont assignés, le masquage des informations fournisseur dans la fiche produit de l'interface caisse aux non-responsables, et la marge commerciale affichée sous chaque ligne et sous le total.
Quatre modules enfin traitent le fonctionnement : l'intégration d'automates de gestion d'espèces comme terminal de paiement, le maintien des bons de livraison d'une commande de vente réglée en caisse, la modification d'une ligne de commande, et un conteneur technique dans le résumé de commande dont dépendent deux modules d'affichage.
L'essentiel
- Le comptage à l'aveugle : montants attendus masqués à la fermeture.
- Un fonds de caisse permanent, sans écart systématique.
- Une séquence de session par point de vente.
- Le rapport de session, retiré du cœur d'Odoo depuis la version 10.
- Les caissiers restreints à leurs points de vente.
- Les informations fournisseur masquées aux non-responsables.
- La marge affichée sous chaque ligne et sous le total.
- Une facture réglée depuis une session ouverte.
Ce que ces modules ajoutent à l'instance
| Module | Version | Ce qu'il apporte |
|---|---|---|
pos_blind_session_closing | 18.0.1.0.0 | Montants attendus masqués à la fermeture de session |
pos_cash_control_extension | 18.0.1.0.0 | Fonds de caisse permanent, sans écart systématique |
pos_session_sequence | 18.0.1.0.0 | Une séquence de session par point de vente |
pos_report_session_summary | 18.0.1.0.0 | Le rapport PDF de session réintroduit (LGPL-3) |
pos_session_pay_invoice | 18.0.1.0.0 | Régler ou encaisser une facture depuis une session ouverte (LGPL-3) |
pos_user_restriction | 18.0.1.1.0 | Caissiers restreints aux points de vente assignés (LGPL-3) |
pos_user_restrict_provider_info | 18.0.1.0.0 | Informations fournisseur masquées aux non-responsables |
pos_margin | 18.0.1.1.0 | Marge affichée sous chaque ligne et sous le total |
pos_payment_method_cashdro | 18.0.1.0.2 | Automates d'espèces comme terminal de paiement |
pos_sale_picking_keep | 18.0.1.0.2 | Bons de livraison préservés sur une commande réglée en caisse |
pos_edit_order_line | 18.0.1.0.0 | Modification d'une ligne de commande (README minimal, LGPL-3) |
pos_divide_order_summary | 18.0.1.0.1 | Conteneur technique dans le résumé de commande |
Le contrôle de caisse
Montrer au caissier le montant attendu avant qu'il compte annule le contrôle : la tentation de saisir le montant théorique plutôt que le montant compté est trop forte, et l'écart affiché vaut zéro à chaque session. Le comptage à l'aveugle est la seule façon de rendre un écart significatif.
pos_blind_session_closing masque les montants attendus dans la fenêtre de fermeture. Le caissier compte, saisit, et l'écart se révèle après.
pos_cash_control_extension traite un autre défaut : le fonds de caisse. Dans le standard, le fonds laissé en caisse d'une session à l'autre produit un écart apparent systématique. Le module permet de conserver un fonds permanent et d'éviter cet écart.
C'est une correction importante : un écart systématique habitue les équipes à ignorer les écarts, et un écart réel passe alors inaperçu.
pos_session_sequenceconfigure une séquence par point de vente, là où Odoo utilise une séquence commune. Deux magasins ont alors deux numérotations distinctes et lisibles.pos_report_session_summary(LGPL-3) réintroduit le rapport PDF de session, présent dans Odoo avant la version 10 et retiré du cœur du logiciel depuis.pos_session_pay_invoice(LGPL-3) permet de régler une facture fournisseur ou un avoir client, ou d'encaisser une facture client, depuis une session ouverte en back-office. Il s'appuie sur un module de facture en espèces.
Le dernier répond à un flux de commerce de proximité : un client règle en espèces une facture émise la semaine précédente, et cet encaissement doit entrer dans la caisse du jour — pas dans un journal de banque.
Les droits et ce qu'on montre
pos_user_restriction (LGPL-3) restreint des utilisateurs aux points de vente qui leur sont explicitement assignés. Dans le standard, un caissier accède à tous les points de vente de la société.
Pour un réseau de magasins, c'est une correction nécessaire : un caissier qui ouvre par erreur la session d'un autre magasin fausse deux caisses à la fois.
pos_user_restrict_provider_info masque la section fournisseur dans la fenêtre d'informations produit de l'interface caisse, pour les utilisateurs sans le rôle de responsable.
L'écran d'information produit de la caisse affiche le fournisseur et son prix d'achat. Un caissier n'a pas à connaître la marge de chaque article, et un client qui regarde l'écran encore moins.
pos_margin fait l'inverse, volontairement : il affiche la marge commerciale — montant et taux — sous chaque ligne de commande et sous le total général, pour le vendeur ou le gérant. Les deux modules répondent à deux organisations : l'un cache, l'autre montre, et le choix dépend de qui tient la caisse.
Le fonctionnement et les automates
pos_payment_method_cashdro intègre les automates de gestion d'espèces — encaissement et rendu de monnaie automatisés — comme terminal de paiement du point de vente.
pos_sale_picking_keep empêche la caisse de manipuler les bons de livraison d'une commande de vente quand une commande de caisse règle des lignes issues de cette commande.
Sans ce module, régler en caisse une commande déjà préparée fait que la caisse recrée ou modifie les transferts — et le stock se décale de la quantité déjà sortie. C'est le défaut classique du retrait en magasin d'une commande passée en ligne.
pos_edit_order_line(LGPL-3) permet de modifier une ligne de commande. Son README se limite à son nom.pos_divide_order_summarycrée un conteneur technique dans le résumé de commande de l'interface caisse. Il ne fait rien de visible seul : c'est la dépendance de deux modules d'affichage traités séparément.
Limites connues
pos_edit_order_linea un README réduit à son nom : son comportement est à évaluer sur instance, et modifier une ligne de commande de caisse touche une pièce de recette.- Le comptage à l'aveugle change une habitude : prévenir les équipes, sinon la fermeture de session devient un point de blocage.
- Le fonds de caisse permanent modifie le calcul d'écart : vérifier la cohérence avec la procédure de remise en banque.
- Changer la séquence de session en cours d'exploitation produit deux numérotations dans l'historique.
pos_user_restrictionest en LGPL-3 version 1.1.0 : à éprouver sur un réseau réel avant de s'y fier comme contrôle.- La marge affichée en caisse est visible de qui regarde l'écran : à réserver aux configurations où l'écran n'est pas face au client.
- L'intégration d'automates d'espèces dépend d'un matériel précis : vérifier le modèle et sa version de micrologiciel.
pos_session_pay_invoicedépend deaccount_cash_invoice, un module externe à ce dépôt.
Identité technique
Les douze modules viennent du dépôt OCA pos, branche 18.0 — 27 modules au total. Huit sont en AGPL-3, quatre en LGPL-3. Les dépendances : point_of_sale pour la plupart, pos_sale pour le maintien des livraisons, account_cash_invoice pour le règlement de facture, pos_divide_order_summary pour les modules d'affichage.
Voir aussi la caisse : codes-barres, lots et recherche produit pour le reste du dépôt, et la caisse Odoo et ses modules OCA pour le socle.
Questions fréquentes
Comment faire un comptage de caisse à l'aveugle dans Odoo ?
pos_blind_session_closing masque les montants attendus dans la fenêtre de fermeture de session. Montrer le théorique avant le comptage annule le contrôle : la tentation de saisir le montant attendu est trop forte, et l'écart affiché vaut zéro à chaque session.
Pourquoi ma caisse affiche-t-elle un écart à chaque session ?
Souvent à cause du fonds de caisse laissé d'une session à l'autre, que le standard compte comme un écart. pos_cash_control_extension permet un fonds permanent sans écart apparent. C'est une correction importante : un écart systématique habitue les équipes à les ignorer tous.
Peut-on limiter un caissier à son magasin ?
Oui, avec pos_user_restriction : les utilisateurs sont restreints aux points de vente explicitement assignés. Dans le standard, un caissier accède à tous les points de vente de la société — et celui qui ouvre par erreur la session d'un autre magasin fausse deux caisses à la fois.
Odoo a-t-il un rapport de session de caisse ?
Plus depuis la version 10, où il a été retiré du cœur du logiciel. pos_report_session_summary le réintroduit sous forme de rapport PDF sur les sessions du point de vente.
Pourquoi le stock se décale quand on encaisse une commande en magasin ?
Parce que la caisse recrée ou modifie les transferts de la commande de vente déjà préparée. pos_sale_picking_keep l'en empêche. C'est le défaut classique du retrait en magasin d'une commande passée en ligne.
Se faire accompagner
Une caisse mal contrôlée coûte peu par jour et beaucoup par an. Les deux réglages qui changent tout sont gratuits : compter à l'aveugle, et sortir le fonds de caisse du calcul d'écart. À partir de là, un écart veut dire quelque chose.
Nous posons donc ces deux réglages avant toute formation des caissiers, puis nous restreignons les accès par magasin et nous décidons ce que l'écran montre — la marge est une information de gérant, pas de comptoir. Voir les prestations d'Atalios Consulting ou demander un rappel.
Pour aller plus loin
En résumé
La caisse d'Odoo encaisse bien et se contrôle mal : le caissier voit le montant attendu avant de compter, le fonds de caisse crée un écart à chaque session, et tout caissier accède à tous les magasins. Douze modules corrigent ces points. Parlons de votre caisse.