Documentation développeur Optimisations caisse Calcul panier Application des taxes
November 26, 2025 at 2:48 AMApplication des taxes
Pour l’application des taxes, elle se fait en 2 sous étapes :
- Calcul des taxes par ligne de vente,
- Calcul total des taxes,
Pour ensuite calculer le montant à payer TTC.
Dans le panier, il faut distinguer les taxes sur les lignes de panier et les taxes sur le panier.
- Une taxe sur une ligne de panier est une taxe calculée en fonction du montant HT de la ligne
- Une taxe sur le panier est une taxe calculée en fonction du montant HT du panier regrouper par taxe.
Calcule des taxes par ligne de panier
Pour chaque ligne de vente, nous allons déterminer le montant de la taxe en fonction du montant HT après la réduction.
ATTENTION : Affecter le bon prix HT à la ligne de taxe
line.lineTaxe.amountHT = line.amountRealHT
Application des taxes
1 Calcul de la taxe en fonction du prix HT de ligne de taxe
line.lineTaxe.taxAmountExact = line.lineTaxe.amountHT * (lineTax.tax.amount / 100)
2 Arrondie de la taxe
lineTaxe.taxAmountReal = round(lineTaxe.taxAmountExact)
L’arrondie de la taxe n’est qu’à titre indicatif, la taxe pris en compte pour le montant à payer est le cumul des taxes exactes.
En parallèle, on alimente le montant HT sans réduction du panier.
basket.payment.totalHT = basket.payment.totalHT + line.amountHT
Pareil pour montant à payer HT avec réduction du panier.
basket.payment.totalHTDiscounted = basket.payment.totalHTDiscounted + line.amountRealHT
On alimente également le prix hors taxes des taxes du panier basket.taxesDetails.lineTaxe.amountHT.
| — | TGC 11% | TGC 3% | TGC 22% | Taxe ligne |
|---|---|---|---|---|
| Produit 1 HT 1000 | 1000 | — | — | 110 |
| Produit 2 HT 1000 | — | — | 1000 | 220 |
| Produit 3 HT 2000 | 2000 | — | — | 220 |
| Montant HT pour les taxes paniers | 3000 | — | 1000 | — |
Calcul total des taxes
Application des taxes
1 Calcul de des taxes du panier en fonction du cumul des prix HT
taxAmountExact = lineTaxe.amountHT * (lineTax.tax.amount / 100)
2 Arrondie de la taxe
taxAmountReal = round(lineTaxe.taxAmountExact)
L’arrondie de la taxe n’est qu’à titre indicatif, la taxe pris en compte pour le montant à payer est le cumul des taxes exactes.
| — | TGC 11% | TGC 3% | TGC 22% | Taxe ligne |
|---|---|---|---|---|
| Produit 1 HT 1000 | 1000 | — | — | 110 |
| Produit 2 HT 1000 | — | — | 1000 | 220 |
| Produit 3 HT 2000 | 2000 | — | — | 220 |
| Montant HT pour les taxes paniers | 3000 | — | 1000 | — |
| Taxe panier | 330 | — | 220 | 540 |
Après tous ces calculs, on affecte la listes de ces taxes globales au panier basket.payment.taxesDetails.
Calcul du montant à payer
Addition du prix HT à payer plus le montant des taxes totales exactes. Ce qui donne la montant à payer exact du TTC.
1 Calcul du montant à payer exact
basket.payment.totalExact = basket.payment.totalHTDiscount + total taxes
2 Arrondie le montant à payer.
basket.payment.totalWithTaxReal = round(basket.payment.totalExact)
Le montant à payer par l’utilisation sera le montant arrondie à payer.
| — | Total |
|---|---|
| Montant HT | 4000 |
| Montant taxe | 540 |
| Montant à payer TTC | 4540 |