GuideSérie Odoo 20, partie 16 sur 2522 septembre 2026Par Olivia, Architecte Odoo Senior

Point de vente d'Odoo 20 :
étiquettes électroniques, application Android native et commande autonome plus futée

Étiquettes, Android et commande autonome : capture d'écran d'Odoo 20 derrière le titre de l'article
INTRODUCTION

La caisse quitte le comptoir : le rayon, la tablette et le téléphone du client

Odoo 20 étend le Point de vente dans trois directions. En rayon, le connecteur Pricer pour les étiquettes électroniques devient un module autonome, si bien qu'un détaillant qui utilise Inventaire sans caisse peut quand même mettre à jour les prix affichés sur les étiquettes. Dans la poche, une couche Android native permet à une tablette d'ouvrir la caisse depuis le lanceur et de joindre les imprimantes du réseau local. Sur le téléphone du client, la commande autonome gagne un code QR lié à une seule commande de table, un indicatif de pays sur le champ téléphone, un reçu WhatsApp et davantage de plateformes de livraison derrière UrbanPiper. Cet article s'adresse aux chaînes de commerce de détail, aux restaurants qui ont des tablettes en salle et aux cuisines alimentées par plusieurs applications de livraison.

Nous avons parcouru la configuration Pricer, le parcours de commande autonome dans une fenêtre de téléphone, le préréglage WhatsApp et les écrans UrbanPiper sur la version préliminaire. Nous n'avons pas pu tester du matériel Pricer réel, l'application Android sur une tablette ni une commande de livraison en direct, et nous le disons là où cela compte. Le matériel Obox fait l'objet de l'article 5 de cette série et l'écran de préparation redessiné de l'article 15.

Observé sur la version préliminaire d'Odoo 20.0 Enterprise du 23 septembre 2026. Les noms, menus et disponibilités peuvent changer avant la version finale ; nous mettrons cette page à jour le cas échéant.

Les étiquettes électroniques Pricer n'ont plus besoin de l'application Point de vente

Les étiquettes électroniques sont les petites étiquettes de prix en papier électronique qui, en rayon, se mettent à jour depuis un système central. Jusqu'à Odoo 19, le connecteur Pricer vivait dans l'application Point de vente. Dans Odoo 20, c'est un module autonome pricer accompagné de stock_pricer, de sorte qu'un détaillant qui utilise Inventaire sans caisse peut quand même pousser noms de produits, prix et codes-barres vers les étiquettes Pricer. La configuration se trouve sous Inventaire > Configuration > Pricer ; le même menu apparaît sous Point de vente > Configuration > Pricer quand cette application est installée.

Formulaire de magasin Pricer avec le tenant « odoo », l'identifiant, le mot de passe masqué, l'ID de magasin « odoo-pricer-store » et un onglet Étiquettes listant cinq codes-barres d'étiquettes et leurs produits.
Inventaire > Configuration > Pricer > Magasins Pricer : nom du tenant, identifiant, mot de passe et ID du magasin, avec les étiquettes liées dans un onglet Étiquettes.

Un magasin Pricer porte quatre champs : Nom du tenant Pricer, Identifiant Pricer, Mot de passe Pricer et ID du magasin Pricer. Odoo dialogue avec le service Pricer grâce à ces identifiants, pas avec les étiquettes directement. En dessous, un onglet Étiquettes liste chaque étiquette par code-barres avec son Produit associé. Il n'y a pas de bouton intelligent pour les étiquettes, contrairement à ce que dit le guide : la liste est un onglet du formulaire. Mettre à jour les étiquettes pousse les données courantes ; une action planifiée fait de même dès qu'un produit est marqué à rafraîchir. Notre magasin de démo a des identifiants factices, donc son statut indique Erreur : vérifiez les identifiants Pricer ; un envoi raté est visible, pas silencieux.

Liste de cinq codes-barres d'étiquettes Pricer avec les meubles qui leur sont associés.
Étiquettes Pricer : chaque code-barres d'étiquette électronique est lié à un produit.

Le prix en magasin est l'endroit où le README a corrigé le guide. Le guide dit qu'une liste de prix se choisit par magasin. Sur la version testée, le champ est sur le produit : onglet Ventes, bloc Pricer, avec Magasin Pricer associé, Étiquettes Pricer et Liste de prix des étiquettes Pricer. Laissez-la vide et l'étiquette affiche le prix de base ; choisissez-en une et l'étiquette affiche le prix de cette liste. Pour une chaîne dont les prix varient d'une ville à l'autre, la liste de prix se règle produit par produit, ou en masse par une importation.

Fiche du produit Office Chair montrant la section Pricer : magasin Pricer associé, identifiants des étiquettes Pricer et une liste de prix des étiquettes Pricer vide et surlignée.
Fiche produit, onglet Ventes : le bloc Pricer avec le magasin, les étiquettes et la « Liste de prix des étiquettes Pricer » utilisée pour le prix en magasin.

Une couche Android native pour la caisse et la borne

Odoo 20 livre aussi une couche Android native pour le Point de vente. Selon le diff des sources 20.0, pos_mobile_android ajoute un pont natif, des requêtes sur le réseau local et des raccourcis d'écran d'accueil, pos_self_order_mobile fait de même pour la borne de commande autonome, et obox_pos_mobile relie l'Obox à ce parcours mobile. Pour une boutique, la promesse est une tablette qui ouvre la caisse en un geste et parle à l'imprimante de reçus, à la balance ou au terminal de paiement sur le réseau de la boutique. L'Obox lui-même, et la possibilité de laisser une tablette Android jouer le rôle du boîtier, fait l'objet de notre article sur l'Obox.

Nous n'avons rien pu capturer de tout cela : l'application native exige une tablette Android physique qui exécute l'application Odoo. Lisez ce paragraphe comme ce que les modules déclarent, pas comme quelque chose que nous avons parcouru.

Payer après le repas avec un code QR lié à une seule commande

Dans un restaurant où les clients paient après le repas, le code QR de commande autonome était statique : un code par table, imprimé sur un chevalet. Odoo 20 ajoute une option QR dynamique. Dans les paramètres du PdV, bloc Commande mobile et borne, réglez Commande autonome sur Menu QR + Commande et Service à sur QR dynamique. La version testée force alors Payer après sur Repas, parce qu'un code lié à une commande n'a de sens que tant que cette commande reste ouverte.

En caisse, le serveur ouvre la commande de la table, ouvre le menu des actions supplémentaires (le bouton à trois points à côté de Plat) et clique sur QR dynamique. Une fenêtre intitulée Scannez pour rejoindre la commande affiche un code généré pour cette commande précise, avec les boutons Imprimer et Fermer et un lien Ouvrir la commande autonome sur cet appareil. Imprimer envoie un petit ticket QR dynamique à l'imprimante de reçus. Le code n'est pas ajouté à l'addition habituelle.

Commande PdV de la table 9 avec une fenêtre affichant un code QR intitulé « Scannez pour rejoindre la commande », avec les boutons Imprimer et Fermer.
En caisse, « QR dynamique » génère un code lié à cette commande de table précise (« Scannez pour rejoindre la commande »).
Étape 1: Tutoriel animé générant un QR dynamique pour une commande de table.Étape 2: Tutoriel animé générant un QR dynamique pour une commande de table.Étape 3: Tutoriel animé générant un QR dynamique pour une commande de table.
4 étapes : ouvrir la table, ouvrir les actions supplémentaires, cliquer sur QR dynamique, afficher le code QR.

Le client scanne le code et arrive sur la page d'accueil de la commande autonome : une photo de plat, la mention COMMANDEZ ICI et deux boutons, Ma commande et Commander. Ma commande liste ce que le serveur a déjà saisi, sur notre démo un Pasta Bolognese et un Coca-Cola pour 7,71 $. Commander ouvre le menu pour que le client ajoute un dessert à la même commande. Comme le code appartient à une commande et non à la table, il ne se transmet pas au groupe suivant.

Écran de téléphone avec « COMMANDEZ ICI », une photo de plat et les boutons Ma commande et Commander.
Le client scanne le code et arrive sur la page d'accueil de la commande autonome sur son téléphone.
Écran de téléphone « Votre commande » listant Pasta Bolognese et Coca-Cola, total 7,71 $.
« Ma commande » affiche les lignes déjà saisies à la table, prêtes à être payées après le repas.

Un indicatif de pays sur le numéro de téléphone et un reçu dans WhatsApp

Deux changements plus modestes rendent le passage à la caisse moins sujet aux erreurs. Le premier concerne le numéro de téléphone. Quand un préréglage demande au client de s'identifier, par exemple Livraison, le champ téléphone a désormais un sélecteur d'indicatif de pays. Le client touche le drapeau, choisit le pays et tape le numéro local. Sur notre démo, une touriste italienne qui commande une livraison voit un drapeau italien et +39 devant les chiffres. Le numéro arrive dans Odoo avec le bon indicatif, ce qui compte quand le restaurant rappelle ou envoie un message WhatsApp.

Formulaire de téléphone « Nous avons besoin de plus d'informations » avec le nom Giulia Bianchi, un drapeau italien et l'indicatif +39, le numéro de téléphone et un champ d'adresse.
Passage à la caisse en commande autonome pour une livraison : le champ téléphone a désormais un sélecteur d'indicatif de pays (ici l'Italie, +39).
Étape 1: Tutoriel animé sur téléphone d'une commande autonome en livraison jusqu'au champ téléphone et son sélecteur de pays.Étape 2: Tutoriel animé sur téléphone d'une commande autonome en livraison jusqu'au champ téléphone et son sélecteur de pays.Étape 3: Tutoriel animé sur téléphone d'une commande autonome en livraison jusqu'au champ téléphone et son sélecteur de pays.
5 étapes sur un téléphone : Commander, Livraison, ajouter des plats et Payer, Commander, choisir l'indicatif et taper le numéro. (Réencodé à 480 px de large.)

Le second est le reçu WhatsApp. Quand l'application WhatsApp est installée, un préréglage gagne un champ Confirmation WhatsApp à côté de Confirmation par courriel, dans son onglet Commande autonome sous Point de vente > Configuration > Préréglages. Choisissez un modèle, sur la démo POS Receipt du compte WhatsApp de démo, et le client reçoit la confirmation et le reçu dans WhatsApp plutôt que par courriel ou sur papier. Le champ n'apparaît que si Disponible en autonome est activé et si Identification n'est pas sur Non requis, ce qui explique pourquoi le préréglage Sur place de la démo ne l'a pas.

Formulaire du préréglage À emporter avec Disponible en autonome activé, Confirmation par courriel, et Confirmation WhatsApp réglée sur « POS Receipt [Demo WhatsApp Account] ».
Point de vente > Configuration > Préréglages > À emporter > onglet Commande autonome : le nouveau modèle « Confirmation WhatsApp ».

Des préréglages, pas des types de commande

Le guide parle d'un préréglage « de type Sur place ». Les préréglages n'ont pas de type sur cette version. Ce qui décide du parcours, c'est Service à (Table, Zone de retrait ou Livraison) plus Identification. Réglez d'abord ces deux champs ; les modèles de confirmation apparaissent ou disparaissent ensuite d'eux-mêmes.

UrbanPiper : plus de plateformes, un formulaire de magasin, un rapport

UrbanPiper est la plaque tournante qu'Odoo utilise pour recevoir les commandes des applications de livraison de repas. Sur cette version, la configuration se trouve sous Point de vente > Configuration > UrbanPiper > Magasins, et non Food Delivery Store comme l'appelle le guide. Un magasin relie un Point de vente, un préréglage et un temps de préparation. L'onglet Agrégateurs contient les plateformes : chaque ligne est un agrégateur de livraison avec une liste de prix facultative, une case Créer un client et un interrupteur En ligne. Notre magasin de démo, Downtown Shop, est connecté à Uber Eats, DoorDash et Just Eat.

Magasin UrbanPiper « Downtown Shop » lié au PdV Restaurant, avec les agrégateurs Uber Eats, DoorDash et Just Eat en ligne.
Point de vente > Configuration > UrbanPiper > Magasins : l'onglet Agrégateurs liste les fournisseurs de livraison connectés.

La liste des fournisseurs s'est allongée. Les données de la version testée contiennent 37 fournisseurs, et les nouveaux noms cités par le guide, Keeta, ToYou, The Chefz, Smiles, InstaShop, Radyes et FoodZapp, y sont tous, orthographiés Radyes et FoodZapp dans les enregistrements. Le sélecteur est filtré sur le pays de la société, donc notre société de démo américaine ne les voit pas ; une société aux Émirats arabes unis ou en Arabie saoudite les verrait. Nous n'avons pas exercé ce qui exige un compte UrbanPiper actif : le mot de passe à usage unique de livraison imprimé sur le reçu pour vérifier le livreur à la remise, les remises des plateformes et les commandes rapides.

Les rapports sont plus simples que ne le suggère le guide : il n'y a pas de rapport Commandes de livraison distinct. Ouvrez Point de vente > Analyse > Commandes et regroupez par Agrégateur de livraison de repas. Le graphique à barres répartit les totaux entre Uber Eats, DoorDash, Just Eat et Aucun, les commandes en salle, pour qu'un propriétaire voie quelle application vaut sa commission.

Panneau de recherche de l'analyse des commandes avec l'option Regrouper par « Agrégateur de livraison de repas » surlignée.
Point de vente > Analyse > Commandes : le nouveau regroupement « Agrégateur de livraison de repas ».
Graphique à barres des totaux de commandes PdV pour Uber Eats, DoorDash, Just Eat et Aucun.
Analyse des commandes regroupée par agrégateur : Uber Eats, DoorDash, Just Eat face aux commandes en salle.

Comment l'essayer sur une base de démonstration

  1. Sur une base de démo avec Point de vente et Inventaire, ouvrez Inventaire > Configuration > Pricer > Magasins Pricer et ouvrez le magasin de démo. L'onglet Étiquettes liste les codes-barres des étiquettes et leurs produits.
  2. Ouvrez un produit comme Office Chair, onglet Ventes, bloc Pricer, et réglez Liste de prix des étiquettes Pricer.
  3. Ouvrez Point de vente > Configuration > Paramètres, choisissez le Restaurant, descendez jusqu'à Commande mobile et borne, réglez Commande autonome sur Menu QR + Commande et Service à sur QR dynamique. Enregistrez.
  4. Ouvrez la caisse du Restaurant, choisissez une table, ajoutez deux produits, ouvrez le menu à trois points et cliquez sur QR dynamique. Scannez le code avec votre téléphone, ou cliquez sur Ouvrir la commande autonome sur cet appareil, puis touchez Ma commande.
  5. Ouvrez Point de vente > Configuration > Préréglages > À emporter, onglet Commande autonome. Avec Disponible en autonome activé et Identification sur Nom, choisissez un modèle de Confirmation WhatsApp (l'application WhatsApp doit être installée).
  6. Ouvrez Point de vente > Configuration > UrbanPiper > Magasins, ouvrez Downtown Shop, puis Point de vente > Analyse > Commandes avec Regrouper par > Agrégateur de livraison de repas. Remettez Service à sur sa valeur précédente quand vous avez terminé.
Bloc de paramètres avec Commande autonome « Menu QR + Commande », Service à « QR dynamique » surligné et Payer après « Repas ».
Paramètres du PdV, Commande mobile et borne : Service à = QR dynamique, ce qui force Payer après = Repas.
Étape 1: Tutoriel animé ouvrant un magasin Pricer et ses étiquettes.Étape 2: Tutoriel animé ouvrant un magasin Pricer et ses étiquettes.Étape 3: Tutoriel animé ouvrant un magasin Pricer et ses étiquettes.
5 étapes : Inventaire > Configuration > Pricer > Magasins Pricer > ouvrir le magasin > Étiquettes.
Étape 1: Tutoriel animé réglant un modèle de reçu WhatsApp sur un préréglage.Étape 2: Tutoriel animé réglant un modèle de reçu WhatsApp sur un préréglage.Étape 3: Tutoriel animé réglant un modèle de reçu WhatsApp sur un préréglage.
5 étapes : Point de vente > Configuration > Préréglages > À emporter > onglet Commande autonome > Confirmation WhatsApp.

Ce que nous n'avons pas pu vérifier sur la version préliminaire

L'application Android native exige un appareil Android physique qui exécute l'application Odoo. Les étiquettes sur du matériel Pricer réel et un envoi réussi exigent un tenant Pricer, et l'assistant de mise en page des étiquettes exige un lecteur et de vraies étiquettes. Les commandes UrbanPiper en direct et le mot de passe à usage unique sur le reçu exigent un compte UrbanPiper et des webhooks ; le rapport présenté ici est alimenté par des commandes de démo. Les fournisseurs du Golfe existent dans les données mais n'apparaissent pas dans le sélecteur d'une société américaine. Le ticket QR imprimé et le message WhatsApp reçu par le client n'ont pas été capturés non plus : aucune imprimante de reçus n'était branchée et le compte WhatsApp de démo est en brouillon. Tout le reste de cette page a été parcouru sur la version 20.0 Enterprise du 23 septembre 2026.

Ce que cela change pour une mise à niveau

Si vous utilisez des étiquettes Pricer sur Odoo 17, 18 ou 19, attendez-vous à ce que le connecteur sorte de l'application Point de vente pour aller dans pricer et stock_pricer, et vérifiez que chaque produit conserve son magasin, ses étiquettes et sa liste de prix, puisque la liste de prix vit désormais sur le produit. Si vous utilisez UrbanPiper, les modules UberEats séparés sont fusionnés dans pos_urban_piper, selon le diff des sources 20.0. Pricer, UrbanPiper et tout pont sur mesure vers une plateforme de livraison ou une imprimante d'étiquettes sont des intégrations, et Odoo a programmé pour Odoo 20 la suppression des points de terminaison XML-RPC et JSON-RPC dont ils peuvent dépendre : notre audit de migration RPC liste ce qui doit changer dans chaque connecteur. Le reste de l'ordonnancement fait partie de notre service de migration, et l'article central de la série liste tous les autres articles qui touchent la même mise à niveau.

FAQ

Questions fréquentes

Faut-il l'application Point de vente pour utiliser les étiquettes Pricer dans Odoo 20 ?

Non. Sur la version préliminaire, le connecteur est un module pricer autonome accompagné de stock_pricer, configuré sous Inventaire > Configuration > Pricer. Un entrepôt ou un détaillant qui n'utilise qu'Inventaire peut pousser noms de produits, prix et codes-barres vers les étiquettes. Le même menu apparaît aussi sous Point de vente quand cette application est installée.

Quelles marques d'étiquettes électroniques Odoo 20 prend-il en charge ?

Le seul connecteur que nous avons trouvé sur la version testée est Pricer, et il dialogue avec un tenant Pricer par le nom de tenant, l'identifiant, le mot de passe et l'ID du magasin. Nous n'avons vu aucun connecteur pour un autre fournisseur d'étiquettes ; une autre marque exigerait une intégration sur mesure ou le pont du fournisseur.

Qu'est-ce qu'un code QR dynamique dans le PdV restaurant d'Odoo 20 ?

C'est un code QR généré pour une seule commande de table, affiché par l'action QR dynamique en caisse et imprimable sous forme de petit ticket. Le client le scanne, voit ce qui a déjà été commandé sous Ma commande, peut ajouter des articles sous Commander et paie après le repas. Le réglage est Service à = QR dynamique, qui force Payer après = Repas.

Un client peut-il recevoir son reçu sur WhatsApp ?

Oui, quand l'application WhatsApp est installée et que le préréglage est disponible en commande autonome avec une identification autre que Non requis. L'onglet Commande autonome du préréglage affiche alors un champ Confirmation WhatsApp où vous choisissez le modèle. Nous n'avons pas pu voir le message lui-même, car le compte WhatsApp de démo est en brouillon.

Quelles plateformes de livraison fonctionnent avec Odoo 20 via UrbanPiper ?

Les données de la version testée contiennent 37 fournisseurs, dont Uber Eats, DoorDash, Just Eat et les nouveaux Keeta, ToYou, The Chefz, Smiles, InstaShop, Radyes et FoodZapp. Le sélecteur de l'onglet Agrégateurs d'un magasin est filtré sur le pays de votre société : une société américaine ne verra pas les plateformes du Golfe, une société des Émirats les verra.

Existe-t-il une application Android native pour le Point de vente d'Odoo 20 ?

Le diff des sources 20.0 contient pos_mobile_android, pos_self_order_mobile et obox_pos_mobile, qui ajoutent un pont natif, des requêtes sur le réseau local et des raccourcis d'écran d'accueil pour la caisse et la borne. Nous n'avons pas pu la tester, car elle exige une tablette Android physique avec l'application Odoo ; considérez-la comme déclarée plutôt que vérifiée.

Des étiquettes électroniques, des tablettes ou des applis de livraison sur un Odoo plus ancien ?

Nous pouvons confronter votre configuration Pricer, UrbanPiper et commande autonome à la version 20.0 sur une copie de vos données, vous dire ce qui passe tel quel et ce qui doit changer avant la mise à niveau, et tester le parcours client sur un vrai téléphone avant vos clients.

Réserver une consultation gratuite