Documentation développeur Optimisations caisse (2022) Optimisation Finalisation
November 26, 2025 at 2:48 AMObjectif
L’objectif est de déplacer l’iterration avec Odoo, vers un processus en arrière-plan (via un jo), pour la finalisation du panier côté Odoo.
Ne garder qu’en synchrone, le processus lié à cineges.
- Paiement du panier
- Génération des tickets
Flux de la finalisation du panier (api)
sequenceDiagram
participant U as UI
participant A as API
participant K as Kafka
participant E as ES
U->>A: finalize
A->>A: Valid payment
A-->>K: cineges.posbasket.finalize.action
A-->>E: persist basket
A-->>K: cineges.posbasket.data
A->>A: Create ticket
A->>U: done
Flux de la finalisation du panier (job)
sequenceDiagram
participant K as Kafka
participant J as Job
participant E as ES
participant O as Odoo
participant P as Postgresql
K->>J: cineges.posbasket.finalize.action
J->>P: insert basket
alt fail
J-->>J: Crash Job
end
J->>O: Create basket in odoo
alt fail
J->>E: persist basket
J-->>J: Crash Job
end
J->>E: persist basket
J->>P: update basket
J->>K: cineges.posbasket.data
Job
Dans le Job, on a intégré des interactions avec PosgreSQL, pour qu’avant & après chaque traitement Odoo, on puisse garder le dernier état du panier.
Rejeu de finalisation : Un rejeu corresponds à un retraitement de la finalisation du panier odoo, lorsque la finalisation odoo a échoué. Ce rejeu est possibile uniquement après le première finalisation odoo échoué.