Le e-commerce à la française a ses particularités auxquelles on a tous déjà eu affaire : double affichage hors-taxe / TTC, taux de taxe différent en fonction du produit vendu, éco-participations… Mais connaissez-vous sur le bout des doigts les règles qui régissent la vente en ligne en France ? Saviez-vous que l'éco-participation d’un produit pouvait avoir une TVA différente du produit en lui-même ? Et n’avez-vous jamais entendu parler de l’octroi de mer ?
Le développement par Monsieur Biz d’un site sous Sylius pour un e-commerçant Français a été pour nous l’occasion de repartir d’une feuille presque blanche sur le sujet. En effet, nous avons découvert que Sylius ne pouvait gérer nativement un double affichage HT / TTC, qu’il n’existait pas de plugin qui traitait les écotaxes, ou encore que le paiement par mandat administratif n’était pas si facile que ça à implémenter.
Dans cette conférence, que je souhaite fun et accessible, je voudrais présenter une partie des subtilités, parfois étonnantes ou absurdes, de la vente en ligne sur le marché français. A travers ma propre expérience sur un projet réel, je souhaite également indiquer comment j’ai tenté de traiter, de la manière la plus élégante possible, toutes ces problématiques dans Sylius.
6. Demandez le programme !
» Le e-commerce à la française, kezako ?
» Le projet Medisafe
» Le double affichage HT TTC
» Les écotaxes
» Le mandat administratif
6
7. Ce donton ne parlerapas
» Des grandes marques de luxe françaises pour
lesquelles on a tous travaillé mais dont on ne
doit pas dire le nom.
» De FrenchCoin et de CryptoCopains.
» Du french kiss et du foie gras
7
38. PointHT/TTC pour les pros
» Les professionnels peuvent déduire les montants de
TVA de leurs achats pro du montant de la TVA
qu'ils reversent à l'Etat.
» Dans le B to B il est donc intéressant d'afficher
les prix hors taxe.
» Mais l'affichage du prix TTC reste obligatoire sur
un site grand public.
38
41. Pointexplication produit/
variant
» Un variant est la déclinaison d'un produit.
» Un produit disponible en plusieurs couleurs a un
variant par couleur.
» Un produit non déclinable a tout de même un
variant unique.
» Chaque variant a un prix.
» On ajoute un variant au panier.
41
42. Pointexplication des prix
» Les prix sont en centimes en base de données.
» Pour un prix à 4,99 euros on enregistre 499.
» On utilise un int au lieu d'un float.
» On simplifie les problématiques d'arrondis (coucou
Magento).
42
54. Lesajustements
» Ensemble des sommes à ajouter ou soustraire au
total des produits.
» Comprend les frais de ports, les taxes et les
réductions.
» Un ajustement est associé à la commande ou à une
unité.
» Sous forme de lignes dans une table dédiée plutôt
qu'en colonne sur la commande ou les items.
54
56. Total unités: 13,21
Scope Order ID Unit ID Type Amount
order 1 shipment 416
order 1 tax 83
unit 1 tax 117
unit 2 tax 74
unit 3 tax 74
Total commande: 20,85
56
62. Scope Order ID Unit ID Type Amount
order 1 shipment 416
order 1 tax 83
unit 1 tax 111
unit 1 promo -29
unit 2 tax 74
unit 3 tax 74
62
63. Scope Order ID Unit ID Type Amount
order 1 shipment 416
order 1 tax 83
unit 1 tax 111
unit 1 orig_tax 117
unit 1 rm_orig_tax -117
unit 1 promo -29
unit 2 tax 74
unit 3 tax 74
63
64. Méthodes outils sur les items
public function getUnitOriginalPriceWithoutTaxes(): int;
public function getUnitOriginalPriceWithTaxes(): int;
public function getUnitPriceWithoutTaxes(): int;
public function getUnitPriceWithTaxes(): int;
public function getSubtotalWithoutTaxes(): int;
public function getSubtotalWithTaxes(): int;
64
65. Méthodes outils sur lacommande
public function getSubtotalWithoutTaxes(): int;
public function getSubtotalWithTaxes(): int;
public function getOriginalShippingTotalWithoutTaxes(): int;
public function getOriginalShippingTotalWithTaxes(): int;
public function getShippingTotalWithoutTaxes(): int;
public function getShippingTotalWithTaxes(): int;
public function getDiscountTotal(): int;
65
68. C'estquoi les écotaxes ?
» Également appelées éco-participation ou éco-
contribution.
» Finance le recyclage ou l'élimination de déchets
toxiques.
» Versées par les marchands aux éco-organismes ou à
l'état
» Elles sont généralement d'un montant fixe.
68
69. En France
»
!
Eco-contribution DEEE (Éco-organisme)
»
"
Eco-participation meubles (Éco-organisme)
»
☣
Taxe Générale sur les Activités Polluantes
(Finances publiques)
69
80. Scope Order ID UnitID Type Amount Ecotax ID
order 1 shipment 416
order 1 tax 83
unit 1 tax 117
unit 1 ecotax 58 1
unit 1 tax 12 1
unit 2 tax 74
unit 3 tax 74
80
81. Méthodes outils sur les items
public function getIncludedUnitOriginalEcotaxAmount(): int;
public function getExcludedUnitOriginalEcotaxAmount(): int;
public function getUnitEcotaxAmount(): int;
public function getSubtotalEcotaxAmount(): int;
81
84. Le mandatadministratif
» C'est un moyen de paiement réservé aux
administrations de l’Etat et aux collectivités.
» Peu présent en ligne.
» S'appuie sur le logiciel Chorus Pro (base SAP)
84
93. Conclusion
» Des fonctionnalités "basiques" pourtant absentes
car spécifiques à la France.
» Une intégration facilitée par la qualité de
Sylius.
» Des modules pas encore Open Source mais on y
travaille !
93
94. On recrute !
Rejoins-nous si tu veux faire
pleins de trucs chouettes
avec Sylius. 1
1
En plus tous les trucs relous sur les taxes sont déjà
faits !
94
97. L'octroi de mer
» Taxe française, applicable à la plupart des
produits importés, en vigueur dans les régions
d'outre-mer.
» Son but est de créer une distorsion fiscale afin
de protéger la production locale de la concurrence
extérieure.
» En Guadeloupee, il se divise en 21 sections, 98
chapitres et 485 pages
!
97