# Fonctionnement du point de vente tactile

<p class="callout success">Voir le [tuto vidéo sur le point de vente](https://librairie.grap.coop/Voir%20le%20tuto%20vid%C3%A9o%20sur%20le%20point%20de%20vente%20ici%20:%20https:/tube.grap.coop/w/n1LgXny1pKi6z8vDYydVXJ)</p>

Le point de vente se présente comme suit :

[![image.png](https://librairie.grap.coop/uploads/images/gallery/2024-05/scaled-1680-/i6Rimage.png)](https://librairie.grap.coop/uploads/images/gallery/2024-05/i6Rimage.png)

<p class="callout warning">Nous vous encourageons vraiment à utiliser l'écran tactile : à force d'habitude, il fait gagner beaucoup de temps !</p>

##### Vente ambulante

Il y a une petite étape supplémentaire en début de session, à savoir définir l'[emplacement de vente](https://librairie.grap.coop/books/odoo-v16/page/definir-un-emplacement-de-vente). Cela permet ensuite de faire des stats par lieu de vente. NB : il est possible de revenir dessus à postériori dans le cas où l'on aurait oublié.

### Sélection des produits

il existe 3 façons de trouver un produit et l'insérer sur le ticket :

1. Scan du code barre avec un lecteur de codes barres
2. Recherche du produit via les catégories et sous catégories tactiles ![image.png](https://librairie.grap.coop/uploads/images/gallery/2026-08/scaled-1680-/STRimage.png)
3. Recherche du produit via la barre de recherche ![image.png](https://librairie.grap.coop/uploads/images/gallery/2026-08/scaled-1680-/ZYeimage.png)

##### <span style="color: rgb(50, 51, 51);">Produit à peser</span>

<span style="color: rgb(50, 51, 51);">Si votre produit est marqué comme "à peser" sur sa fiche produit, un écran supplémentaire s'affiche, qui permet de saisir le **poids brut** et la tare. Odoo calcule alors le **poids net** et indique le prix total.</span>

### Actions depuis le ticket

Une fois le produit ajouté au ticket, vous pouvez intervenir sur **la quantité** (plusieurs clics sur la touche produit ou action de la touche ![image.png](https://librairie.grap.coop/uploads/images/gallery/2024-05/scaled-1680-/Okuimage.png)), le Prix unitaire![image.png](https://librairie.grap.coop/uploads/images/gallery/2024-05/scaled-1680-/iqGimage.png), la Tare, et mettre une éventuelle remise.

![image.png](https://librairie.grap.coop/uploads/images/gallery/2026-08/scaled-1680-/Vfpimage.png)

<p class="callout info">Pour supprimer une ligne du ticket, il faut la sélectionner, et cliquer 2 fois sur![](https://librairie.grap.coop/uploads/images/gallery/2020-10/scaled-1680-/image-1603372353591.png).</p>

<p class="callout info">Dans le cadre d'un retour, cliquer sur![image.png](https://librairie.grap.coop/uploads/images/gallery/2024-05/scaled-1680-/wfeimage.png) pour mettre une quantité négative.</p>

<p class="callout info">Pour une **remise** (ex. -20% sur fruit abîmé) : cliquer sur "Rem." puis taper "20" sur le clavier tactile.![image.png](https://librairie.grap.coop/uploads/images/gallery/2024-05/scaled-1680-/iqOimage.png)</p>

Lorsque la remise concerne tout le ticket (client avec une tarification particulière), il faut choisir une **liste de prix**, dans la liste convenue avec votre référent.e Odoo derrière le bouton Plus... &gt;&gt; Liste de prix :

![image.png](https://librairie.grap.coop/uploads/images/gallery/2026-08/scaled-1680-/sLvimage.png)

### Situations rencontrées en caisse :

<details id="bkmrk-mettre-un-ticket-en-"><summary>Mettre un ticket en attente ou annuler une vente</summary>

##### Mettre en attente

Si un client tarde à vous payer (doit aller retirer de l'argent, etc...), et que vous souhaitez commencer à saisir un nouveau ticket, vous pouvez laisser le ticket en attente, en cliquant sur ![image.png](https://librairie.grap.coop/uploads/images/gallery/2024-05/scaled-1680-/INWimage.png) puis ![image.png](https://librairie.grap.coop/uploads/images/gallery/2024-05/scaled-1680-/LfCimage.png)

![image.png](https://librairie.grap.coop/uploads/images/gallery/2024-05/scaled-1680-/lsjimage.png)

##### Annuler une vente :

Dans ce même écran, sélectionner la commande à annuler et cliquer sur la petite poubelle en bout de ligne

[![image.png](https://librairie.grap.coop/uploads/images/gallery/2024-05/scaled-1680-/jjQimage.png)](https://librairie.grap.coop/uploads/images/gallery/2024-05/jjQimage.png)

</details><details id="bkmrk-g%C3%A9rer-un-retour-ou-%C3%A9"><summary>Gérer un retour</summary>

si le.la client.e rapporte un ou plusieurs produits :

- soit on sélectionne les produits en question sur le ticket, et on met une quantité négative,
- soit on clique sur le bouton "Plus" puis "Remboursement"

[![image.png](https://librairie.grap.coop/uploads/images/gallery/2024-05/scaled-1680-/40Vimage.png)](https://librairie.grap.coop/uploads/images/gallery/2024-05/40Vimage.png)

on sélectionne ensuite le ticket sur lequel faire un remboursement, puis on clique sur les lignes de ticket concernées (en mettant la quantité à rembourser) :

![image.png](https://librairie.grap.coop/uploads/images/gallery/2026-05/scaled-1680-/F3Uimage.png)

</details><details id="bkmrk-g%C3%A9rer-un-%C3%A9change-si-"><summary>Gérer un échange</summary>

Si vous vous êtes trompé·e sur une sélection ou que le.la client.e veut procéder à un échange , vous pouvez réaliser un ticket correctif comme suit :

par exemple, vous aviez confondu 2 produits similaires (ici huile de coco) :

- créer un nouveau ticket
- Sélectionner le bon produit à vendre
- Sélectionner ensuite le produit indument vendu, et affectez-y une quantité négative
- Valider la vente, et rendez le différent en espèces.

![image.png](https://librairie.grap.coop/uploads/images/gallery/2024-05/scaled-1680-/P3mimage.png)

</details><details id="bkmrk-les-ventes-livr%C3%A9es-u"><summary>Les ventes livrées</summary>

<p class="callout info">Une vente livrée, c'est lorsque quelqu'un.e passe en caisse, mais qu'iel diffère le règlement de son ticket : les produits sortent du stock mais n'ont pas encore généré de chiffre d'affaire. La vente livrée sort complètement de l'activité de point de vente du jour.</p>

<p class="callout success">On peut, en fin de mois (par ex.), fusionner plusieurs ventes livrées en une facture unique.</p>

Pour créer une vente livrée, il faut :

Créer le ticket, choisir le.la client.e (voir explication plus bas) puis cliquer sur "Plus..." &gt; "Créer une vente" :

![image.png](https://librairie.grap.coop/uploads/images/gallery/2026-04/scaled-1680-/T3zimage.png)

Sélectionner "Créer une vente livrée" et confirmer dans la fenêtre qui s'ouvre ensuite après avoir choisi la date et l'heure de la vente devis :

![image.png](https://librairie.grap.coop/uploads/images/gallery/2026-04/scaled-1680-/vp4image.png)

Un bon de commande client est créé dans le menu "Ventes" d'Odoo.

<p class="callout info">NB : si aucune date n'est inscrite, c'est par défaut la date et heure de confirmation qui se mettent sur la vente</p>

- Devis brouillon : rien ne sort du stock, le devis est envoyé au client.e pour accord
- Vente confirmée : rien ne sort du stock mais la vente a bien lieu
- Vente livrée : c'est une vente confirmée pour laquelle le mouvement de stock (livraison) est bien validé
- Vente facturée : idem avec création de la facture

  
Lorsque le ou la client.e vient régler, il faut :

- retrouver le ou les ticket(s) dans le menu "Ventes" d'Odoo (ou "Facturation" si vous avez choisi "vente facturée")
- éventuellement confirmer la vente et/ou le mouvement de stock et/ou la facture

Une fois la vente sortie du point de vente, elle suit le circuit habituel du [flux de vente hors point de vente](https://librairie.grap.coop/books/odoo-v16/page/saisie-dune-vente-pro-devis-livraison-facture-enregistrement-du-paiement).

<p class="callout warning">Lorsque le/la client.e vient payer son dû (à une date ultérieure en principe) alors que vous êtes en caisse, il ne faut pas le considérer comme une recette lié à cette session du point de vente, il faut le compter à part, sous peine d'avoir une erreur de caisse. Si la personne paie en virement : RAS. Si elle paie en chèque, ne pas ranger le chèque en question avec ceux de la caisse du jour. Si elle paie en espèces, utiliser le bouton pour ajouter la monnaie dans le fonds de caisse. Enfin, si elle paie en CB, déduire le montant de la télé-collecte du soir.</p>

<p class="callout danger">On ne doit pas faire de vente livrée avec des quantités négatives (ex. retour de consigne)</p>

</details><details id="bkmrk-produits-consign%C3%A9s-v"><summary>Produits consignés</summary>

<span style="color: rgb(0, 0, 0);">Voir la documentation [&gt; ICI &lt;](https://librairie.grap.coop/books/odoo-v16/page/fiche-produit-gestion-des-consignes)</span>

</details>
### Opérations sur des tickets déjà validés

Derrière le bouton ![image.png](https://librairie.grap.coop/uploads/images/gallery/2024-05/scaled-1680-/6tqimage.png) se cachent également les actions suivantes :

##### Remboursement

On cherche alors la commande à rembourser parmi les dernières saisies, le ticket s'affiche à droite, puis il s'agit de cliquer sur chaque produit à retourner et indiquer la quantité à rembourser. Enfin, cliquer sur "remboursement" : un ticket en négatif est généré, il ne reste plus qu'à faire paiement et rendre la monnaie en espèces.

![image.png](https://librairie.grap.coop/uploads/images/gallery/2024-05/scaled-1680-/67ximage.png)

<p class="callout info">Les 10 derniers sont affichés par défaut, mais l'on peut faire une recherche pour retrouver d'autres tickets plus anciens, y compris ceux de sessions clôturées.</p>

##### Réédition de ticket de caisse

Aller dans Commandes (<span style="color: rgb(224, 62, 45);">**1**</span>), retrouver la commande en question (**<span style="color: rgb(224, 62, 45);">2</span>**) puis cliquer sur "imprimer le ticket" (<span style="color: rgb(224, 62, 45);">**3**</span>) :

![image.png](https://librairie.grap.coop/uploads/images/gallery/2026-04/scaled-1680-/RFMimage.png)

<p class="callout success">Une fois la vente terminée, on ne peut plus générer de facture. Si un client en demande une après coup, il faudra retrouver le ticket et le rééditer, il fera office de facture.</p>

<table border="1" id="bkmrk-%2Aretrouver-la-r%C3%A9f%C3%A9re" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 100%;">**Retrouver la référence d'un ticket :**

- - Aller dans**![image-1647512712163.png](https://librairie.grap.coop/uploads/images/gallery/2022-03/scaled-1680-/image-1647512712163.png)&gt;&gt; Commandes &gt;&gt; Commandes**
    - Supprimer le filtre![image-1647512788234.png](https://librairie.grap.coop/uploads/images/gallery/2022-03/scaled-1680-/image-1647512788234.png)
    - Filtrer sur la date de vente = via 2 filtres qui vont "encadrer" le créneau de vente. Par exemple, pour une vente qui aurait eu lieu le 16/04/2026, on pourrait écrire : ![image.png](https://librairie.grap.coop/uploads/images/gallery/2026-04/scaled-1680-/Atjimage.png)
        
        La référence de commande est dans la 1ère colonne : ![image.png](https://librairie.grap.coop/uploads/images/gallery/2026-04/scaled-1680-/LsSimage.png)

</td></tr></tbody></table>

<p class="callout warning">Dans le cas où des produits du ticket rappelé ne sont plus disponibles dans le point de vente, on obtient le message d'erreur suivant : [![image-1655371334181.png](https://librairie.grap.coop/uploads/images/gallery/2022-06/scaled-1680-/image-1655371334181.png)](https://librairie.grap.coop/uploads/images/gallery/2022-06/image-1655371334181.png). Il faut alors contacter votre référent.e Odoo pour qu'iel retrouve les produits concernés (les codes du message d'erreur sont les identifiants informatiques des fiches produit), les remette dans le point de vente le temps de rééditer le ticket, puis les décocher de nouveau ensuite.</p>

###   


### Entrées - sorties de monnaie

![image.png](https://librairie.grap.coop/uploads/images/gallery/2026-08/scaled-1680-/BGmimage.png)

Situations possibles :

- monnaie prise dans le fonds de caisse pour payer un emplacement de marché ou autre (cash sortant/ motif "petits achats réalisés avec la caisse").
- règlement d'une vente livrée antérieure à la date du jour en espèces (cash entrant).
- ajout d'espèces en cours de journée (cash entrant) lorsqu'il n'y a plus de pièces de 20 centimes par exemple.
- retrait d'espèces du fonds de caisse pour dépôt en banque (cash sortant) - en fin de journée
- erreur de caisse (entrant ou sortant)

<details id="bkmrk-zoom-sur-les-petits-"><summary>Zoom sur les petits achats réalisés avec la caisse</summary>

Avec l'argent de la caisse, vous pouvez réaliser de petits achats en journée - tel que payer un parking, une baguette, des gants..

<p class="callout danger">Ne pas payer vos **fournisseurs** avec cette fonctionnalité</p>

<p class="callout warning">Bien garder bien les justificatifs et les transmettre à votre comptable</p>

Pour l'utiliser, cliquer sur ![image.png](https://librairie.grap.coop/uploads/images/gallery/2026-08/scaled-1680-/BGmimage.png), puis sélectionner cash sortant &gt; motif "sortie petit achat avec caisse"

![image.png](https://librairie.grap.coop/uploads/images/gallery/2026-08/scaled-1680-/6Yzimage.png)

Indiquer le motif dans la case de texte puis cliquer sur "valider".

<p class="callout info">C'est votre référent.e Odoo qui créé les motifs de mouvement d'argent : si ce motif n'existe pas sur votre Odoo, vous pouvez vous rapprocher d'elle / de lui.</p>

</details>### Créer un·e client·e

Il existe 3 situations pour lesquelles il est utile voire indispensable d'identifier le/la client.e :

- établir une facture (on ne peut pas faire de facture anonyme)
- faire une vente livrée ou un devis depuis le point de vente
- appliquer une tarification particulière / liste de prix (ex. -10% de remise sur l'ensemble du magasin), bien qu'il soit possible de définir la liste de prix même sans sélectionner le/la client.e.

<p class="callout success">Si le/la client.e a une tarification particulière, le montant du ticket en cours sera automatiquement recalculé.</p>

Cliquer sur "Client" au dessus de "paiement" :

![image.png](https://librairie.grap.coop/uploads/images/gallery/2024-05/scaled-1680-/Sgbimage.png)

Vous pouvez alors sélectionner un.e client.e existant.e ou en créer un.e nouvelleau via le bouton![image.png](https://librairie.grap.coop/uploads/images/gallery/2024-05/scaled-1680-/Jajimage.png)

Les champs ne sont pas les mêmes selon que l'on ait affaire à un.e client.e particulier.e :

![image.png](https://librairie.grap.coop/uploads/images/gallery/2026-04/scaled-1680-/aBfimage.png)

ou un.e client.e pro (= "Société") :

![image.png](https://librairie.grap.coop/uploads/images/gallery/2026-04/scaled-1680-/S69image.png)

<p class="callout warning">Dans le cas d'un.e client.e pro, les champs Adresse, Siren et Nic sont obligatoires. Dans le cas où on force la vente sans ces champs, elle reste "bloquée" dans le point de vente ![image.png](https://librairie.grap.coop/uploads/images/gallery/2026-04/scaled-1680-/gB6image.png), et le message d'erreur "parasite" l'affichage. La vente ne peut pas se valider en l'état ![image.png](https://librairie.grap.coop/uploads/images/gallery/2026-04/scaled-1680-/YcVimage.png)</p>

<p class="callout info">Pour se sortir dans cette situation, il faut retourner sur la fiche contact, cliquer sur le bouton "détails" et compléter les champs manquants![image.png](https://librairie.grap.coop/uploads/images/gallery/2026-04/scaled-1680-/TOVimage.png)</p>


### Affecter lae client.e à une vente

Cliquer sur "Client" au dessus de "paiement" et choisir lae client.e :

![image.png](https://librairie.grap.coop/uploads/images/gallery/2024-05/scaled-1680-/Sgbimage.png)

On peut aussi choisir lae client.e depuis l'écran des paiements en haut à droite :

![image.png](https://librairie.grap.coop/uploads/images/gallery/2026-05/scaled-1680-/RYqimage.png)


### Saisie des paiements

- cliquer sur "Paiement", puis sur le ou les moyen(s) de paiement utilisé(s) par le client : [![image.png](https://librairie.grap.coop/uploads/images/gallery/2026-04/scaled-1680-/8EGimage.png)](https://librairie.grap.coop/uploads/images/gallery/2026-04/8EGimage.png)
- Odoo indique la monnaie à rendre voire le [cashback](https://librairie.grap.coop/books/odoo-v16/page/proposer-un-service-de-cashback-moyennant-commission) si vous payez autrement qu'en espèces un montant supérieur au montant dû (voir ci-dessus)
- Les éléments du ticket sont rappelés dans le bandeau latéral droit, et les moyens de paiement dans le bandeau gauche.

<details id="bkmrk-facture-client-si-le"><summary>Facture client</summary>

### <span style="color: rgb(48, 49, 49);">Si le/la client.e a besoin d'une facture, c'est aussi à cette étape qu'il faut la lui sortir :</span>

<span style="color: rgb(48, 49, 49);">Si le ou la client.e a besoin d'une facture, il faut cliquer sur "facture" (à droite) AVANT d'avoir validé le paiement. Pour rappel, on ne peut pas faire de facture anonyme, il faut donc au préalable sélectionner le ou la client.e : </span>

<span style="color: rgb(236, 240, 241);">[![image.png](https://librairie.grap.coop/uploads/images/gallery/2024-05/scaled-1680-/RZUimage.png)](https://librairie.grap.coop/uploads/images/gallery/2024-05/RZUimage.png)</span>

<span style="color: rgb(48, 49, 49);">Enfin, après validation du paiement, il est ensuite possible d'imprimer le ticket de caisse et/ou de l'envoyer par e-mail :</span>

<span style="color: rgb(236, 240, 241);">[![image.png](https://librairie.grap.coop/uploads/images/gallery/2024-05/scaled-1680-/BHPimage.png)](https://librairie.grap.coop/uploads/images/gallery/2024-05/BHPimage.png)</span>

</details><details id="bkmrk-titres-restaurant-ti"><summary>Titres restaurant</summary>

<p class="callout info"><span style="color: rgb(48, 49, 49);">Ton ou ta gestionnaire Odoo doit activer l'option</span></p>

<span style="color: rgb(48, 49, 49);">L'éligibilité d'un produit au titre restaurant est matérialisée par le pictogramme ![](https://librairie.grap.coop/uploads/images/gallery/2020-10/scaled-1680-/image-1603375681173.png) ou l'astérisque sur le ticket papier</span>

![image.png](https://librairie.grap.coop/uploads/images/gallery/2026-08/scaled-1680-/8Oeimage.png) // ![image.png](https://librairie.grap.coop/uploads/images/gallery/2026-08/scaled-1680-/CZTimage.png)

<span style="color: rgb(48, 49, 49);">Tout cela vient de la coche "titre restaurant" de la fiche produit, qui est héritée de la catégorie de produit :</span>

![image.png](https://librairie.grap.coop/uploads/images/gallery/2026-08/scaled-1680-/B2bimage.png)

<p class="callout info"><span style="color: rgb(48, 49, 48);">Tu peux scanner le code barre du ticket restaurant (format papier) pour gagner du temps : il se déduit immédiatement du montant dû</span></p>

<p class="callout warning"><span style="color: rgb(48, 49, 48);">En principe, le montant maxi payé par ticket avec les titres restaurants est de 25€ / jour</span></p>

</details>### Validation des paiements

Cliquer sur Valider,

[![image.png](https://librairie.grap.coop/uploads/images/gallery/2026-04/scaled-1680-/XwLimage.png)](https://librairie.grap.coop/uploads/images/gallery/2026-04/XwLimage.png)

puis imprimer le ticket ou l'envoyer par mail si le client le demande et passer à la commande suivante !

![image.png](https://librairie.grap.coop/uploads/images/gallery/2026-04/scaled-1680-/QoTimage.png)

### Suivi de la marge dans le point de vente

La marge réalisée sur chaque produit et la marge globale calculée sur le ticket (en tenant compte de la liste de prix appliquée) s'affichent directement dans le point de vente.

<p class="callout info">Cela permet surtout de repérer en temps réel les éventuelles erreurs de paramétrage (voir ci-dessous le produit radis) dans les fiches produit pour faire les correctifs et éviter de fausser la marge dans Odoo durablement.</p>

![image.png](https://librairie.grap.coop/uploads/images/gallery/2026-08/scaled-1680-/PwBimage.png)

<p class="callout success">Si cet affichage vous dérange vis-à-vis des clients qui visualisent votre écran de caisse par exemple, sachez qu'il est possible de le désactiver.</p>

## <span style="color: rgb(48, 49, 48);">Éditer un "Z"</span>

<span style="color: rgb(48, 49, 48);">Le bouton ![](https://librairie.grap.coop/uploads/images/gallery/2020-10/scaled-1680-/image-1603376935539.png) permet de sortir sur l'imprimante ticket de caisse un récapitulatif des ventes de la session, produit par produit (ne figurent que les produits passés en caisse), en ordre alpha, avec la quantité vendue pour chacun.</span>

<p class="callout warning"><span style="color: rgb(48, 49, 48);">Éviter d'imprimer le "Z" en fin de journée quand on est une grosse épiceries avec plein de produits : on peut rapidement être au bout du rouleau (de l'imprimante !).</span></p>

## Fonctionnement sans internet

Le point de vente continue à fonctionner si vous avez des coupures d'internet pendant la journée. Dans ce cas, les ventes vont être gardé sur votre navigateur, et seront envoyées quand vous aurez de nouveau une connexion. Un indicateur en haut à droite mentionne le nombre de tickets non transmis au serveur (ici 1).

![image.png](https://librairie.grap.coop/uploads/images/gallery/2026-08/scaled-1680-/Miuimage.png)

La pop up ci-dessous vous alerte également, vous pouvez cliquer sur Ok et continuer les ventes.

![image.png](https://librairie.grap.coop/uploads/images/gallery/2026-08/scaled-1680-/sahimage.png)

<p class="callout danger">Avant de fermer votre caisse en fin de journée, retrouvez une connexion internet pour permettre le transfert des tickets au serveur Odoo. Ne clôturez pas la session tant qu'il reste un chiffre à gauche du symbole ![](https://librairie.grap.coop/uploads/images/gallery/2020-10/scaled-1680-/image-1603376814670.png). Une fois que l’icône est de nouveau verte, vous pouvez fermer votre caisse ![image.png](https://librairie.grap.coop/uploads/images/gallery/2026-04/scaled-1680-/Fdsimage.png)</p>

<p class="callout info">Pour accélérer la synchronisation, vous pouvez cliquer sur l'icône ![](https://librairie.grap.coop/uploads/images/gallery/2020-10/scaled-1680-/image-1603376814670.png).</p>

<p class="callout success">Si vous aviez des tickets non validés (pas de paiement) et qu'une coupure survenait, sachez qu'au redémarrage, vous pourriez retrouver vos tickets en l'état.</p>