Module Gestion Taxes sur les colis à destination du Royaume-uni
À la suite de la mise en ligne de mon module gratuit pour PrestaShop 1.6, j'ai eu pas mal de demandes concernant la version 1.7 de PrestaShop car il ne semble pas que PrestaShop ait l'intention de sortir un correctif ou un module pour cette version.
Je me suis donc replongé dans le code de ce module et très rapidement j'ai constaté que la technique que j'utilise sur la version gratuite n'est pas possible sur PrestaShop 1.7, ce qui m'oblige de repenser intégralement le fonctionnement du module.
La meilleure méthode pour modifier le comportement de PrestaShop c'est de surcharger les fichiers coeur dans le répertoire overrides de l'installation.
Cette technique serait réellement la meilleure si tous les développeurs de modules étaient consciencieux et méthodiques pour faire les choses parfaitement.
Car, lorsqu'une fonction dans une classe est déjà surchargée, l'installation d'un module ne peut pas automatiquement installer la surcharge et il faudra donc intervenir manuellement en fusionnant les deux surcharges du même code si cela est possible.
Pour éviter ces problèmes, je me force à toujours trouver la classe ou la fonction d'une classe qui sera parfaite et qui sera peu utilisée pour faire autre chose par un autre module.
Ainsi je n'hésite pas à rajouter des fonctions dans les surcharges des classes pour éviter de surcharger une autre classe pour quelques lignes de code.
Ainsi pour la 1.7, je me suis attaché à travailler sur le calcul des taxes car il faut savoir que tous les prix sont toujours enregistrés hors taxes dans PrestaShop et que les taxes sont rajoutées à chaque appel d'un prix.
Cela fut fait assez facilement mais en testant la chaine complète d'achat j'ai constaté que les factures PDF continuées à afficher l'encart sur les taxes avec un taux de 20% mais un montant de taxes à 0€.
J'ai donc dû surcharger la classe s'occupant de la génération des factures pour retrouver l'état qu'elle devrait avoir si aucune taxe n'était appliqué à ce pays.
Pour aller plus loin, je me suis dit qu'il peut être intéressant pour un utilisateur de mon module que celui-ci puisse fonctionner indifféremment sur PrestaShop 1.6 et PretaShop 1.7 pour lui faciliter la migration s'il n'a pas encore estimé que la version 1.7 était assez stable.
Je me suis donc amusé à adapter ce module pour la version 1.6 de PrestaShop ce qui m'a encore pris pas mal de temps pour trouver le moyen de contourner tous les obstacles.
Il y a certaines fonctions, lorsqu'elles sont appelées par des méthodes dans les Taxes, refusent obstinément de fonctionner. C'est une chose assez courante en développement web sur des projets tiers de ne pas comprendre pourquoi une chose qui semble évidente ne veut pas fonctionner.
J'ai dû une nouvelle fois trouver une méthode simple et efficace pour contourner ce point bloquant sans porter préjudice à la structure de PrestaShop et aux performances.
Ce fut fait en évitant de surcharger une autre classe et donc, comme expliqué plus avant, d'ouvrir la porte à un souci d'installation de mon module.
Ce temps, que je prends à fignoler ces détails n'est pas seulement fait pour la beauté du code, mais bien pour m'éviter des heures de support pour des clients en difficulté.
Mon module doit pouvoir s'installer en un clic et ne demander aucune intervention.
Ici, il suffira de s'assurer que la devise du Royaume-Uni est bien installée, que le pays est bien actif, avec sa règle de taxe adaptée à sa fiscalité et que mon module l'aura bien identifié lors de son installation.
C'est là où la mise en place d'une FAQ dynamique qui va analyser la configuration de la boutique apporte toute sa plus-value.
Conclusion
Si avec tout cela, vous n'arrivez pas à faire fonctionner convenablement votre module, n'hésitez pas à m'en parler, un bouton est présent pour accéder à un support personnalisé en un seul clic.
Changelog
1.3.0 - 10/01/2021
- Ajout de plusieurs tests facilitant la configuration du module
- Ajout d'une FAQ répondant aux principales questions que me posent les premiers utilisateurs du module
- Ajout de l'affichage du numéro de TVA britannique et du numéro EORI sur toutes les factures dépassant la limite enregistrée
1.2.0 - 08/01/2021
- Ajout de la compatibilité avec PrestaShop 1.6
1.1.0 - 07/01/2021
- Correction sur le calcul du panier total hors taxe, hors frais d'expédition
Discussions