Matériel de caisse v16

Matériel de base pour la caisse

Plusieurs options sont possibles, selon le besoin de connecter du matériel à la caisse.

 

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 :

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 :

  1. redémarrer l’iotbox, ce qui lui fait imprimer automatiquement un ticket affichant l’adresse ip de l’iotbox
  2. modifier la configuration du point de vente pour utiliser cette adresse ip
  3. ouvrir un onglet dans le navigateur sur https://<l’adresse_ip> et accepter le certificat
  4. 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 :

image-1636379666276.png

Balance

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 :

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.

Idéalement, le navigateur depuis lequel Odoo sera lancé sur le PC doit être lancé en mode "kiosk". La commande à lancer pour ce faire est :

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) :

image-1622726600675.png

Enfin, un point de vente dédié à la pesée en self-service doit être configuré.

image-1622726921650.png

Les paramètres de la posboxless doivent également être repris :

image-1622726968146.png

Ouvrir une session sur le point de pesée en libre service

Depuis le menu Point de Vente, ouvrir une session sur le point de vente dédié à la pesée en self-service (comme une session de vente normale) en cliquant sur "Nouvelle session" :image-1622727071537.png

L'écran suivant s'affiche :

image-1622727146560.png

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.image-1622727241080.png

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 :

image-1622727403466.png

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.

image-1622728106874.png

Balance

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.

Balance

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

Balance

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 :

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.

Balance

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.

Dès que la connexion internet est rétablie, Odoo récupèrera les données et les ventes effectuées seront synchronisées automatiquement dans l'interface back-end. Il devient alors possible de clôturer la session de vente et valider les écritures comptables.
Si l'on a fermé intempestivement l'interface de caisse, le navigateur ou le PC, on peut parfois récupérer des transactions malgré tout. Pour cela, commencer par rouvrir le point de vente sur le même navigateur et le même PC, et continuer la vente sur la même caisse. Normalement, les ventes payées se synchroniseront automatiquement et les ventes non payées s'afficheront. Pour vérifier si des ventes payées ou non sont toujours stockées dans le cache :
  1. Passer en mode développeur
  2. Cliquer sur "exporter les commandes" dans la fenêtre de débogage (voir ci-dessous)

pos_orders_export.png

Pistes en cas de problèmes récurrents

Le risque de coupures est à mitiger en fonction de :

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.

Si le ticket est envoyé par mail dans la majorité des cas, investir dans une imprimante à ticket n'est pas forcément nécessaire.

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.

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)

posbox.png

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.

posboxless.png

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.

pywebdriver.png