WooCommerce Subscriptions Tax Retrofit : migrez vos abonnements TTC vers HT + TVA

Vous venez de franchir le seuil de TVA et devez convertir vos abonnements WooCommerce Subscriptions de TTC en HT + TVA ? Mon plugin automatise la migration de centaines d’abonnements en quelques minutes, sans modifier le prix payé par vos clients. Compatible avec tous les taux de TVA.

L’appel au secours

Il y a quelques jours, je reçois un message d’une amie entrepreneure. Son entreprise, qui proposait des abonnements via WooCommerce, venait de franchir un cap important : le seuil de chiffre d’affaires l’obligeant à collecter la TVA. Bonne nouvelle pour son business mais problème technique immédiat pour sa boutique en ligne.

Ses centaines d’abonnements existants étaient enregistrés en TTC, sans aucune ventilation fiscale. Dans WooCommerce, chaque ligne indiquait simplement « 30 € » : un montant global, monolithique, sans distinction entre le prix HT et la TVA. Or l’administration fiscale exigeait désormais une facturation avec TVA apparente : ces 30 € devaient devenir « 25 € HT + 5 € TVA = 30 € TTC ».

Simple en théorie. Sauf que WooCommerce Subscriptions, aussi excellente soit-elle pour gérer des abonnements récurrents, n’a jamais été pensée pour cette situation : rétroactivement ventiler la TVA sur des prix enregistrés en TTC. Sans solution technique, il ne restait que la modification manuelle, éditer chaque abonnement dans l’interface admin, recalculer le HT, associer le bon taux, vérifier le total. Comptez cinq à quinze minutes par abonnement, soit des dizaines d’heures de travail répétitif pour quelques centaines d’abonnements, avec le risque d’erreur humaine que cela suppose.

Mon amie avait déjà commencé à en modifier quelques-uns à la main. Après le troisième, elle a compris que ce n’était pas tenable et m’a contacté.

Du petit script au vrai plugin

Ayant les mains dans WordPress depuis plus de vingt ans, j’ai rapidement identifié le mécanisme : dans WooCommerce, un abonnement est une commande avec des lignes d’articles (woocommerce_order_items), des métadonnées (woocommerce_order_itemmeta) et des taux de TVA (woocommerce_tax_rates). Il fallait supprimer chaque ligne d’article via l’API WooCommerce et la recréer avec la bonne structure HT + TVA, le tout encadré par des transactions SQL pour garantir l’intégrité des données.

Ce qui devait être « un petit script rapide pour aider une copine » s’est naturellement transformé en un vrai plugin de production. Parce qu’on ne touche pas à des abonnements actifs (donc à la facturation de vrais clients) sans garde-fous solides : gestion d’erreurs robuste, transactions SQL avec rollback automatique, double vérification des arrondis, mode simulation obligatoire avant toute migration réelle, logs détaillés et export CSV pour la traçabilité.

Le résultat : WooCommerce Subscriptions Tax Retrofit, un plugin qui parcourt l’ensemble de vos abonnements et, pour chacun d’eux, détecte l’absence de TVA, calcule la ventilation à partir du TTC, recréé les lignes d’articles avec la structure correcte, et vérifie que le montant payé par le client reste strictement identique. Le tout accessible via une interface intégrée à l’administration WordPress ou en ligne de commande (WP-CLI) pour les migrations scriptées.

Disponible en open source

Le code source, la documentation technique et le changelog complet sont disponibles sur GitHub. C’est également là-bas que sont documentés les détails techniques, les évolutions à venir et les éventuelles contributions. Si ce plugin vous aide, tant mieux : forkez-le, améliorez-le, adaptez-le à vos besoins. Un seul rappel impératif : faites une sauvegarde de votre base de données avant utilisation.

.


Écrivez quelques éclats d'âme...

Dans l'ombre vacillante d'une chandelle, où les murmures du vent se mêlent aux secrets d'un vieux parchemin, je vous invite à tisser une toile de mots. Écrivez quelques éclats d'âme – rêve, étoile, abîme, étreinte, brume – et laissez-les danser sur la page, comme des lucioles dans une nuit d'encre. Que diriez-vous de les entrelacer dans une phrase, un souffle, une histoire ?

S’abonner
Notification pour
guest
0 Commentaires
Le plus ancien
Le plus récent Le plus populaire