Matériel de caisse
- Matériel de base pour la caisse
- Balance
- Tare en libre service
- Peser la tare en caisse
- Tare et pesée en libre service
- Tare en libre service et pesée en caisse
- Pesée en caisse
- Connexion avec le terminal de paiement
- Continuer la vente sans connexion internet
- Connexion avec un scanner
- Imprimante à ticket de caisse
- Connexion Hardware de caisse - note technique
Matériel de base pour la caisse
Plusieurs options sont possibles, selon le besoin de connecter du matériel à la caisse.
- Il faut connecter une imprimante à ticket de caisse, une balance, un scanner fixe (pas une douchette) : dans ce cas, on peut installer une posbox ou une posboxless en caisse (cf. section suivante). On peut également en alternative utiliser la technologie pywebdriver.
- Il ne faut pas connecter de matériel (imprimante à ticket, balance) et on utilisera une douchette USB comme scanner : des PC de récupération sur Linux sous Ubuntu 18.04 sont amplement suffisants. Il suffit d’une connexion internet et d’un navigateur pour se connecter à Odoo.
Matériel
Ce qu’il faut comme matériel :
* PC suffisamment récent (moins de 5 ans) avec minimum 8 Gio de RAM et 128 Gio de stockage, SSD de préférence, avec une bonne connexion à internet
* écran (tactile ou non) (exemple : https://www.philips.be/fr/c-p/172B9T_00/monitor-moniteur-lcd-avec-smoothtouch)
* clavier, souris (optionnels si écran tactile, mais nécessaires pour l’installation)
* (optionnel) lecteur de code-barres USB
* (optionnel) imprimante à reçus compatible ESC/POS avec connexion USB ou Ethernet (par exemple : Epson TM-T20III (https://www.epson.be/fr_BE/produits/r%c3%a9tail/imprimantes-pour-points-de-vente/pc-pos-printers/epson-tm-t20iii-series/p/28271))
* (optionnel) tiroir caisse (pour une ouverture automatique, il faut un modèle qui peut se connecter à l’imprimante à reçus)
* (optionnel) balance Mettler-Toledo Ariva (https://www.mt.com/fr/fr/home/products/retail-weighing-scales/checkout-scales/ariva_family/Ariva_S.html) avec connexion USB (ou RS-232 et adaptateur USB vers RS-232)
Il faut aussi veiller à ce qu’il y ait suffisamment de ports USB sur le PC (ou prévoir un hub USB en plus). Périphériques nécessitant un port USB : clavier, souris (ou écran tactile), lecteur de code-barres, imprimante à reçus (sauf si Ethernet), balance.
Pywebdriver
Pour les caisses, nous travaillons maintenant avec le logiciel pywebdriver (https://github.com/pywebdriver/pywebdriver), qui tourne directement sur le PC de caisse et ne nécessite pas d’IoT Box.
Coop IT Easy fournit le support technique pour installer cet outil sur votre ordinateur de caisse.
Posbox et posboxless
On peut en fait distinguer 3 options :
- iOT box = boite fournie par Odoo. Il s’agit d’une boite noire. Dans ce cas, Coop IT Easy n’interviendra pas pour son installation ou du support. S’il y a des déconnexions, on ne sait pas intervenir à distance ni savoir pourquoi.
- Posbox installée par Coop It Easy : Coop IT Easy se charge d’installer sur un raspberry une version Odoo figée (on ne suit pas l’évolution de l’image posbox proposée par Odoo SA).
- Posboxless installée par Coop IT Easy : c’est la même chose que l’option 2 mais en installant Odoo sur le PC de caisse, pas sur un hardware extérieur. Cela signifie que l'ordinateur qui sert de caisse/point de vente "émule" une POSbox. Concrètement, l'ordinateur fait tourner une instance d'Odoo qui sert uniquement à assurer la communication entre le matériel hardware et l'application POS d'Odoo. Dans ce cas, il faut rajouter sur le PC de caisse 6 ports USB : balance, imprimante, scanner, souris, clavier, extra et respecter la configuration requise propre à Ubuntu : https://help.ubuntu.com/community/Installation/SystemRequirements
Nous recommandons fortement l’usage d’une posboxless (qui nécessite toutefois d’avoir les caisses tournant sous un système d’exploitation Ubuntu).
Installation d'une posbox
Dans le cas d’un choix d’une posbox, nous ne conseillons pas d'utiliser les images IOTbox d’Odoo. Il vous faudra suivre la procédure d’installation d’un Odoo sur la posbox qui devrait aussi tourner sur Ubuntu. Pour installer Odoo sur le raspberry vous pouvez suivre la procédure décrite dans le document ci-joint.
Réinstallation d'une iOT Box
Si on rencontre des difficultés avec une iOT box précédemment installée, on peut suivre les étapes suivantes :
- redémarrer l’iotbox, ce qui lui fait imprimer automatiquement un ticket affichant l’adresse ip de l’iotbox
- modifier la configuration du point de vente pour utiliser cette adresse ip
- ouvrir un onglet dans le navigateur sur https://<l’adresse_ip> et accepter le certificat
- recharger le point de vente, ça devrait marcher
Dans le cas contraire, on ne sait en général pas intervenir à distance ni savoir pourquoi (l'iot box est une boite noire installée par Odoo).
Utilisation d’une tablette pour la caisse (non conseillé)
Pour pouvoir utiliser une tablette, cela ne fonctionne qu’avec une posbox. Nous avons remarqué que l'utilisation de la tablette posait des problèmes de performances.
Installation d'une posboxless
Vous pouvez vous adresser à Coop IT Easy pour être accompagné dans l'installation d'une posboxless sur les PC de caisse.
Une fois l'installation réalisée, il faut configurer les paramètres suivants sur chaque caisse du Point de Vente :
- Case IoT Box à cocher
- Adresse IP : https://localhost
- ou en alternative avec les dernières versions de firefox : http://localhost:8069
- Cocher la case "Balance électronique" si une balance est connectée
Balance
Tare en libre service
Contexte
Le développement d'une solution hybride (tare en libre en service et pesée finale en caisse) a été rendu possible grâce à l'épicerie Bloum basée à Bruxelles et à un subside de la Région bruxelloise dans le cadre de l'appel à projet"Zéro Déchet".
La solution hybride est pertinente pour des magasins qui veulent maintenir la pesée finale et la sélection des articles de vrac en caisse (pour limiter les risques de vols par exemple) et qui dans le même temps ne veulent pas monopoliser la caisse pour faire la pesée de la tare des contenants des clients.
Matériel
Un poste de pesée en libre service doit être installé pour permettre aux clients de peser leurs contenants et d'imprimer une étiquette permanente contenant l'information du poids du contenant.
Le poste de pesée doit se composer de :
- une balance Mettler-Toledo Ariva-S
- un PC avec écran tactile :
- Au moins 4-5* ports USB (clavier / souris / balance / imprimante / [*clé wifi USB)] ;
- 1 carte WiFi intégrée (ou clé wifi USB) si le PC n'a pas de port Ethernet intégré et/ou que la connexion internet ne doit pas être cablée
- 1 port Ethernet si le PC sera connecté à internet via câble
- une imprimante à code barre auto-collants
- des étiquettes (consommables de l'imprimante) répondant aux critères du magasin (par exemple résistantes à l'eau, au chaud, au froid).
Configuration
PC de pesée
Le PC doit tourner sur Ubuntu 18.04 et une posboxless ou pywebdriver doit être installé. Des configurations techniques sont requises pour la connexion avec la balance et l'imprimante. Pour la configuration technique détaillée, vous pouvez vous adresser à l'équipe de Coop IT Easy qui propose ce service.
firefox <url> -foreground --kiosk
Dans Odoo
Les modules suivants doivent être installés :
Il faut créer un compte utilisateur avec les droits les plus réduits possibles (car le PC sera disponible à tout le monde dans le magasin) :
- Type d'utilisateur : Employé
- Point de vente : Utilisateur
Enfin, un point de vente dédié à la pesée en self-service doit être configuré.
- Se rendre dans Point de vente < Configuration < "Point de Vente"
- Créer un nouveau point de vente
- Cocher la case "Is Self-Service" et configurer les paramètres d'impression
Les paramètres de la posboxless doivent également être repris :
Ouvrir une session sur le point de pesée en libre service
L'écran suivant s'affiche :
Placer un contenant vide sur la balance. Le poids est renvoyé par la balance au point de pesée et s'affiche dans le coin supérieur gauche. Le bouton pour imprimer l'étiquette de tare devient vert.
Cliquer sur le bouton à l'aide d'une souris ou de votre doigt s'il s'agit d'un écran tactile.
Le texte affiché sur le bouton peut être modifié grâce aux Traductions.
Une étiquette est imprimée via l'imprimante. Le code barre imprimé contient l'information du poids. Par exemple, un poids de 144g donnera ce code-barre :
Il suffit maintenant d'apposer l'étiquette sur le contenant, de le remplir et de se rendre en caisse pour la suite.
Fermer la session sur le point de pesée en libre service
Il n'est pas nécessaire de fermer la session sur le point de pesée en fin de journée. Elle peut rester ouverte des jours et des jours sans que cela ne pose un problème (contrairement à une session de point de vente classique).
Le PC peut être éteint via le bouton power off/on en fin de journée.
S'il s'avère nécessaire de fermer la session, voici la marche à suivre.
- Se rendre dans Odoo via un navigateur en mode classique (non kiosk).
- Dans le tableau de bord du Menu Point de vente, le point de pesée peut être fermé via le bouton "Fermer" :
- Cliquer sur "Valider la fermeture et les écritures comptables" pour finaliser la fermeture :
Peser la tare en caisse
Un module de l'OCA a été démarré mais non finalisé : https://github.com/OCA/pos/pull/527
Il permet de générer depuis la caisse un code barre (imprimé grâce à une imprimante à code barre connecté à la caisse), qui contient l'information du poids net.
Ce module n'est pas utilisé par Coop IT Easy à l'heure actuelle.
Tare et pesée en libre service
Coop IT Easy commence en 2023 à développer une solution de tare et pesée en libre service, qui devrait aboutir mi-2024, en collaboration avec OpenNet et Le Nid.
SPP a également travaillé sur une solution dont on voit le prototype dans cette vidéo : https://youtu.be/1_BB7V3mVu0
Tare en libre service et pesée en caisse
Contexte
Cf. l'explication sur cette page.
Matériel
La caisse doit être composée au moins de :
- une balance Mettler Toledo Arriva S
- un PC avec écran tactile (optionnel mais conseillé).
Configuration
PC de caisse
Le PC doit tourner sur Ubuntu 18.04 et soit une posboxless soit un outil appelé "pywebdriver" doit être installé. Des configurations techniques sont requises pour la connexion avec la balance. Pour la configuration technique détaillée, vous pouvez vous adresser à l'équipe de Coop IT Easy qui propose ce service.
En utilisant une posboxless sur le PC de caisse, le protocole standard de connexion entre la balance Metler-Toledo et Odoo provoque des latences (délai de 2 ou 3 secondes) entre le moment où un produit est posé sur une balance et le moment où le poids est affiché sur l'écran Odoo.
Une alternative à ce protocole est le checkout dialog06 qui nécessite d'obtenir auprès du fabricant de la balance un nombre secret (secret polynomial). Ce protocole est plus strict et peut être requis selon les obligations légales du pays où la balance sera utilisée (par exemple en France). Voici un lien vers un document qui explique pourquoi un "secret polynomial" est requis :
https://www.manualslib.com/manual/769546/Mettler-Toledo-Ncr-Realscan-7876.html?page=56
Après contact pris avec Metler-Toledo, l'entreprise informe que le protocole checkout dialog06 ne peut être mis en place sur une solution open source.
Coop IT Easy a adapté l'outil "pywebdriver" pour qu'il permette la connexion entre le PC de caisse et la balance Metler-Toledo avec le protocole standard. Cela résout les problèmes de latences décrits plus haut. Les heures de développement ont été réalisées sans être financées par des clients. Lors des prochaines installations de la solution pywebdriver chez les (nouveaux) clients de Coop IT Easy, une contribution libre de 2, 4, 8 heures (ou plus) sera demandée jusqu'à équilibre financier.
Sur Odoo
Le module pos_tare de l'OCA doit être installé. Il est décrit ici.
Choisir l'option de configuration ""Manual input and barcode" afin de permettre le scan de code barres de tare et garder l'option de pouvoir l'encoder manuellement au besoin.
Peser un contenant plein
Se référer à cette section.
Pesée en caisse
Tout le fonctionnement de la partie "pesée en caisse" est similaire au scénario de "tare en libre service et pesée en caisse".
Voir cette page avec le détail.
Connexion avec le terminal de paiement
Il n’y a pas d’interconnexion prévue avec le terminal de paiement (pour paiement par carte). Le caissier doit retaper le montant à payer sur le terminal.
Un module de l’OCA permet cette interconnexion mais n’a pas encore été testé par Coop IT Easy.
Continuer la vente sans connexion internet
Vendre Hors-Ligne
La caisse (point de vente) fonctionne même si la connexion internet est intermittente. Le client POS (chargé dans le navigateur ou sur la posbox(less)) synchronise les données avec le serveur Odoo dès qu'il récupère la connexion.
A l'ouverture d'une session de vente, Odoo stocke toutes les données nécessaires en locale (contacts, produits...). Lorsque le point de vente est hors-ligne suite à une coupure internet ou en cas de vente itinérante, l'interface de caisse continue de fonctionner et d'enregistrer ventes et paiements. Les données sont alors conservées dans le cache du navigateur sur le poste de travail ouvert.
Afin de ne pas perdre les données de vente, tant que le point de vente est hors-ligne :
Sans connexion, ces opérations ne fonctionnent pas et rendront les caisses inutilisables pendant toute la durée de la coupure.
- Passer en mode développeur
- Cliquer sur "exporter les commandes" dans la fenêtre de débogage (voir ci-dessous)
Pistes en cas de problèmes récurrents
Le risque de coupures est à mitiger en fonction de :
- la fiabilité de votre connexion internet (avez vous des coupures récurrentes et/ou pour de longues périodes) ?
- le nombre de caisse que vous avez car si vous ouvrez toutes les caisses le matin et que l'une d'elle devient inopérante après un F5, vous pouvez utiliser les autres en attendant de récupérer la connexion.
- l'affluence que vous avez en magasin (ce qui influe sur la durée de coupure que vous pouvez tolérer)
A la BEES coop, une discussion avait porté sur un dédoublement de ligne. On avait évoqué une solution data par la 4G via un router avec carte SIM qui était la solution la moins onéreuse. Le dédoublement de ligne n'a jamais été mis en place, car il a été jugé que la connexion est au final très fiable et qu'il n'y a eu qu'une seule fois où le magasin avait dû fermer pour un problème de connexion internet.
Connexion avec un scanner
Au départ, on peut démarrer sans problème avec des douchettes connectées en USB, très faciles d’utilisation. Des scans fixes peuvent être ajoutés aux caisses (plus chers mais plus faciles d’utilisation).
Un module (hw_scanner) gère la communication entre le scanner et la posbox.
En posboxless, on peut se passer de ce module car la communication s'effectue directement entre le scanner et l'ordinateur. Le scanner agit comme un clavier.
Imprimante à ticket de caisse
En v12, un module OCA permet d’envoyer les tickets de caisse par email.
Cela dit, il peut être utile d’avoir une imprimante si les clients désirent une version papier.
- Option 1 : Utiliser une imprimante A4 en réseau et imprimer le PDF de ticket de caisse. Dans ce cas, pas besoin d’une posbox ou posboxless.
Si le ticket est envoyé par mail dans la majorité des cas, investir dans une imprimante à ticket n'est pas forcément nécessaire.
- Option 2 : Utiliser une imprimante à tickets version ethernet, par exemple la Epson TMT 20/2 ethernet, ou Espson escpos ethernet. Cela nécessite en général une posbox ou une posboxless.
En v16, avec une imprimante à tickets type escpos réseau, on peut connecter directement le point de vente Odoo avec l’imprimante par réseau, il n'y a donc pas besoin d'une personne technique pour réaliser l'installation.
- Option 3 : Utiliser une imprimante à tickets version usb, par exemple la Espson escpos usb, connectée au PC de caisse avec pywebdriver.
En 16.0, pour le moment, un message s'affiche disant que l’imprimante est hors ligne, mais c’est possible de le corriger.
Un développement a été fait pour BEES coop en v12 afin d'utiliser une seule imprimante à ticket de caisse pour les 4 caisses, ce qui nécessite d'avoir une posbox ou une posboxless en plus à côté.
1) côte posbox[less] : charger le module hw_printer_network :
2) côté POS : installer le module pos_printer_network :
Connexion Hardware de caisse - note technique
Il existe trois manières de connecter le hardware de caisse à l'ordinateur de caisse.
IoT Box
IoT Box (anciennement PosBox) est une solution basée sur un petit ordinateur faisant tourner une instance de Odoo indépendante de l'instance principale. Cette instance contient le module, fait le lien entre le hardware (disons la balance), et le point de vente. Il est vendu par Odoo dans un boitier appelé "IoT Box".
Le boitier est vendu par Odoo SA, avec le code pré-installé dedans.
(voir la doc officielle de Odoo v11 ici https://www.odoo.com/documentation/user/11.0/point_of_sale/overview/setup.html)
Depuis la version 16, odoo propose aussi une iot box virtuelle pour windows.
Posboxless
Posboxless fonctionne de la même manière que Posbox, sauf que le programme tourne dans l'ordinateur de caisse. L'ordinateur de caisse fait donc tourner une instance de Odoo contenant les modules Posboxless.
Cette instance communique avec le POS, qui lui communique avec le serveur (l'instance Odoo principale).
Les modules posboxless ne sont plus disponibles en Odoo CE depuis la version 12. Cependant, il est a priori possible d'avoir une base de donnée Odoo 16 dont le POS communique avec une instance de Odoo de version antérieure.
Pywebdriver
Pywebdriver est un logiciel qui tourne aussi sur l'ordinateur de caisse. C'est une solution beaucoup plus légère qu'une instance Odoo complète.