Tax Switch
v1.3.4
Tax Switch
- Mises à jour et support inclus pendant 12 mois
- Clé de licence livrée immédiatement par email
- Garantie satisfait ou remboursé 30 jours
- Documentation complète incluse
- Installation prête pour Composer
Tax Switch
Laissez chaque client choisir comment il voit vos prix — TTC ou HT — et mémorisez son choix sur l'ensemble du site. Ce module ajoute un petit switcher sur votre storefront (style radio, toggle, segmenté ou dropdown) qui bascule chaque affichage de prix à la volée : catalogue, panier, mini-cart, shipping, totaux de commande. Aucune recalculation, aucun second checkout, juste une bascule visuelle propre.
C'est particulièrement utile pour les boutiques B2C à coloration B2B : les professionnels veulent comparer les prix HT avec leurs devis fournisseur, les consommateurs veulent du TTC pour leur budget. Au lieu de forcer une audience ou de maintenir deux boutiques, vous laissez le visiteur choisir.
À qui ça s'adresse
- Marchands B2B et « B2B + B2C mixte » qui servent des publics pros et particuliers depuis la même boutique
- Boutiques belges / françaises / luxembourgeoises où HT vs TTC est un réflexe quotidien pour les acheteurs
- Marchands qui veulent afficher des prix HT pour le browsing catalogue mais TTC au checkout, ou inversement, sans réécrire leur configuration de taxes
Bénéfices clés
- Cookie-based, compatible FPC — le choix est stocké dans un cookie
wmi_tax_display_modeet exposé via HTTP Context, pour que Varnish / Full Page Cache natif continuent de fonctionner sans perdre la préférence utilisateur. - Override des prix par plugin — intercepte chaque méthode pertinente du Tax Config Magento (catalog price, shipping, cart line items, cart subtotal, sales / order prices, sales / order subtotal) pour que le toggle fonctionne partout, pas seulement sur les fiches produit.
- Quatre styles d'affichage — radio buttons, toggle, dropdown ou segmented control. Choisissez celui qui correspond à votre thème.
- Labels de prix configurables — affichez optionnellement HT/TTC à côté de chaque prix du site, avec auto-sizing des labels (ratio configurable par rapport à la taille de police du prix), position before/after, texte custom (
HTVA/TVACau lieu deHT/TTCsi vous préférez). - Règles de visibilité — affichez le switcher partout, sur le catalogue uniquement, en excluant le checkout, ou sur des layout handles spécifiques. Ciblage optionnel par groupe client et par device (desktop/mobile).
- Thématisation par variables CSS — couleur primaire, couleur du texte actif, border, background, border-radius, font size, tout est configurable depuis l'admin. Aucun fichier CSS à éditer.
- Sécurisé par conception — la validation d'input rejette toute valeur de mode hors du set configuré ; les cookies utilisent le flag
Secureen HTTPS ; les valeurs CSS sont validées par whitelist (hex, rgb/rgba, hsl/hsla, variables CSS) plutôt que strippées par regex.
Compatibilité
- Magento 2.4.x / équivalent Mage-OS
- PHP 8.1, 8.2, 8.3
- Nécessite
wimakeit/module-core3.0 ou supérieur - Conçu pour les frontends Luma out of the box ; à coupler avec
wimakeit/module-tax-switch-hyvapour les storefronts Hyvä - Compatible avec le Full Page Cache Varnish (utilise la variation par HTTP Context)
Installez ce module via Composer. Assurez-vous que votre auth.json est configuré avec vos identifiants Wimakeit.
$ composer require wimakeit/module-tax-switch:^1.3.4
$ bin/magento setup:upgrade
$ bin/magento setup:di:compile
Installation notes
The standard composer require + setup:upgrade + setup:di:compile flow applies. The points below cover what's specific to this module.
Required dependency
This module requires wimakeit/module-core 3.0 or later. Composer pulls it automatically from the Wimakeit registry as long as the registry is declared in your project's composer.json.
Companion module for Hyvä
If your storefront runs on Hyvä, also install wimakeit/module-tax-switch-hyva. That module replaces the Luma (RequireJS) frontend with Alpine.js / vanilla-JS templates while reusing the same admin configuration and ViewModel.
ACL permission
| Resource | Default |
|---|---|
Wimakeit_TaxSwitch::config (edit Tax Switcher configuration) | granted to Administrator role only |
Configuration
Go to Stores → Configuration → Wimakeit → Tax Switcher. The module is disabled by default so installing it never changes a live frontend until you turn it on.
General
| Setting | Default |
|---|---|
| Enable Tax Switcher | No |
| Default Display Mode | Auto (use the store's native Tax → Price Display config) |
Display Options
| Setting | Default |
|---|---|
| Available Modes | HT, TTC (1,2) |
| Display Style | radio (options: radio, toggle, dropdown, segmented) |
| Position | header |
| Show Labels | Yes |
Visibility Rules
| Setting | Default |
|---|---|
| Page Visibility | all_pages (options: all_pages, catalog_only, exclude_checkout, specific_handles) |
| Excluded Layout Handles | empty |
| Customer Groups | empty (all groups) |
| Device Visibility | all (options: all, desktop, mobile) |
Labels (next to prices)
| Setting | Default |
|---|---|
| Show Tax Label Next to Prices | No |
| Excluding Tax Label | empty (falls back to HT) |
| Including Tax Label | empty (falls back to TTC) |
| Show Currency Symbol | Yes |
| Price Label Position | after |
| Price Label Size Ratio | 0.6 (60% of price font size, range 0.4–1.0) |
Styling (CSS variables)
| Setting | Default |
|---|---|
| Primary / Active Color | #333333 |
| Active Text Color | #ffffff |
| Border Color | #B9B8AF |
| Background Color | transparent |
| Border Radius | 4px |
| Font Size | 0.8125rem |
Override any of these to match your theme without touching CSS files.
Full Page Cache note
The module uses Magento HTTP Context to vary FPC entries by tax display mode. After enabling the module on a live store, flush the FPC once (bin/magento cache:flush full_page) so the new context variation takes effect.
- Version
- v1.3.4
- Licence
- Abonnement annuel
- Support
- 12 mois
- Dernière mise à jour
- 5 juin 2026
- Magento
- Magento 2.4.4 Magento 2.4.5 Magento 2.4.6 Magento 2.4.7 Mage-OS 2.0 Mage-OS 2.1
- PHP
- PHP 8.1 PHP 8.2 PHP 8.3
- Hyvä
- Non compatible
- Package
-
wimakeit/module-tax-switch
Vérifier la compatibilité
Indiquez votre stack pour vérifier la compatibilité du module.
Compatibilité 4
Tarification & licence 4
vendor/wimakeit/ après composer require, donc vous pouvez le lire, l'auditer, et le patcher localement pour votre propre installation Magento. Vous ne pouvez PAS le redistribuer, le sous-licencier, le publier sur un registre Composer public, ou le revendre. 1 licence = 1 domaine production + 1 domaine staging/dev (voir les Conditions Générales pour l'EULA complet). Les modules Wimakeit ne sont PAS sur le packagist.org public — ils sont distribués exclusivement via le registre Composer privé packages.wimakeit.be. Installation & mises à jour 6
composer require wimakeit/module-tax-switch:^1.3.2, puis bin/magento setup:upgrade, bin/magento setup:di:compile, et enfin bin/magento cache:flush. L'onglet « Installation » de cette page liste chaque étape de configuration (ACLs, crons, valeurs par défaut) — un déploiement prend quelques minutes, pas des heures. Besoin d'aide ? Wimakeit propose des prestations d'installation Magento depuis notre bureau wallon (Presles, entre Charleroi et Namur). auth.json : {"http-basic": {"packages.wimakeit.be": {"username": "VOTRE-EMAIL", "password": "VOTRE-TOKEN"}}}. Étape 3 : enregistrez le repo : composer config repositories.wimakeit composer https://packages.wimakeit.be. Étape 4 : composer require wimakeit/module-tax-switch:^1.3.2. Dans les pipelines CI/CD, injectez COMPOSER_AUTH en variable d'environnement JSON pour éviter de commiter auth.json. composer require, même code module, même schéma de base — pas de fork à maintenir, pas de changement de licence. composer update reste sûr à l'intérieur d'une version majeure. app/design/frontend/{VotreVendor}/{theme}/Wimakeit_{Module}/templates/ en respectant le même chemin relatif. Blocks, ViewModels et Helpers s'override via DI preference dans votre propre module custom — déclarez <preference for="Wimakeit\…\OriginalClass" type="VotreVendor\Override\Class" /> dans etc/di.xml. Le XML layout s'étend (préféré) ou s'override de manière standard Magento. Les modules Wimakeit n'utilisent jamais le keyword final sur les classes que vous pourriez raisonnablement vouloir override — surcharger est un scénario de premier ordre, pas un hack. Support & sécurité 3
contact@wimakeit.com avec le nom du module, sa version, votre version Magento/Mage-OS et les étapes pour reproduire. Les correctifs sont livrés dans le prochain patch. Le support Wimakeit répond en français, anglais et néerlandais en jours ouvrables (horaires CET). contact@wimakeit.com avec le préfixe [SECURITY] dans l'objet — précisez le module, la version et les étapes de reproduction. Accusé de réception en jours ouvrables, mention dans le Changelog sur souhait du déclarant. Wimakeit est une SRL belge (société à responsabilité limitée) soumise au droit belge et européen sur la vie privée et la divulgation responsable. À propos de Wimakeit 1
Quelque chose n'est pas couvert par la FAQ ?
Signalez un bug ou posez une question — le formulaire est pré-rempli avec ce module.
Changelog
Categories: Security, Feature, Fix, Perf, Admin, Deps.
[1.3.2] - 2026-05-08
Admin
- Admin menu group standardized — module appears under a top-level Wimakeit_TaxSwitch entry with a Settings child that opens directly on the configuration section.
- Config section path renamed from
wimakeit_taxswitchtowimakeit_tax_switchfor consistency with the other Wimakeit modules. A data patch migrates existingcore_config_datarows automatically onsetup:upgrade— no manual reconfiguration needed.
[1.3.1] - 2026-04-29
Admin
- Internal release pipeline standardized (validate, tag, deploy, release stages). No functional change for merchants.
Deps
- Certified PHP 8.1 → 8.3 support. Composer
phpconstraint tightened to>=8.1 <8.4.
[1.3.0] - 2026-04-22
Feature
- Simplified switcher to two modes only: Excluding Tax (HT) and Including Tax (TTC). The legacy "Both" (HT + TTC) display mode and its vertical/horizontal layout, templates, JS, CSS and translation keys are removed.
Admin
- Stores that had "Both" selected fall back to the configured default mode after upgrade — review your Stores → Configuration → WiMakeIT → Tax Switch → Default mode setting if you used it.
[1.2.3] - 2026-04-14
Admin
- Composer/Satis distribution archives now exclude internal files (
.gitlab-ci.yml,.claude/,docs/,.gitattributes) — leaner packages for clients.
[1.2.2] - 2026-04-10
Security
- Cookie value is now validated against the admin-configured Available modes before being applied — blocks a business-logic bypass where a crafted cookie could force a display mode the merchant disabled.
- Cookie lifetime reduced from 1 year to 30 days (GDPR proportionality).
- Removed hardcoded
EUR/€fallback — multi-currency stores now read the active currency for the price label suffix.
Perf
TaxConfigPluginmoved from globaldi.xmltofrontend/di.xml— no longer instantiated in admin, CLI or cron requests.- Template position check runs once per page instead of three times (
shouldDisplay()short-circuited earlier). - Duplicate caching removed from
TaxConfigPlugin(the provider already cached upstream).
Admin
- Dead methods, no-op
requirejs-config.jsand ~28 lines of redundant logic removed.
[1.2.1] - 2026-04-07
Admin
- Config readers refactored to use the shared
AbstractConfigbase fromwimakeit/module-core— consistent typed getters (getString,getBool, …) across all Wimakeit modules. - Admin Show Tax Label field now controls visibility of HT/TTC labels, currency and position fields via UI dependencies; field order reorganized for clarity.
Deps
- Depends on
wimakeit/module-corefor shared config and admin-tab abstractions.
[1.2.0] - 2026-03-11
Security
- CSS values are now validated against a whitelist (hex, rgb/rgba, hsl/hsla, CSS variables, numbers with units, named colors) instead of a regex blacklist. Invalid CSS is rejected outright rather than having characters stripped.
Perf
- HttpContextPlugin skips REST (
/rest/) and GraphQL endpoints, which never use Full Page Cache, and skips AJAX requests that use customer sections. - A per-request "processed" flag avoids running the same HTTP Context logic twice.
- TaxConfigPlugin short-circuits with a cached module-enabled check, so disabled installs pay no overhead.
- Frontend MutationObserver now targets specific containers (
.page-wrapper, minicart) instead of the entire<body>, and only reacts to mutations that contain price-related elements.
[1.1.0] - 2026-03-11
Feature
- Optional price label next to every price across the site (HT/TTC, with custom text like
HTVA/TVAC). - Auto-sizing labels: configurable ratio (0.4–1.0) relative to price font size.
- Label position before or after the price; "both" mode with vertical or horizontal layout.
- Admin configuration for all price-label settings.
- MutationObserver-driven label rendering for dynamic content (minicart, AJAX updates).
Admin
- Hides Magento's native tax labels (
.price-label,data-label) when the module is active to avoid duplicates. - Inline JavaScript/CSS extracted from PHTML into separate, cache-friendly
price-label.css/price-label.jsfiles.
[1.0.0] - 2024-03-10
Feature
- Initial release.
- Frontend tax display mode switcher with three modes (HT / TTC / Both).
- Cookie-based user preference, persistent across sessions.
- Full Page Cache compatibility via HTTP Context variation.
- Plugin intercepting Magento Tax Config for catalog prices, shipping, cart prices and subtotals, sales / order prices and subtotals.
- Vanilla JavaScript implementation — no jQuery, no Knockout.
Security
- Input validation on mode values (only 1, 2, 3 accepted).
- Secure cookie flag enforced on HTTPS.
- XSS protection via proper output escaping.
Admin
- French and English translations included (
fr_FR,en_US). - PHP 8.1+ with strict types and readonly properties throughout.
Vous avez trouvé un bug ? Faites-nous-en part.
Un court formulaire s'ouvre dans un nouvel onglet — le nom du module et votre langue sont déjà pré-remplis. Décrivez ce que vous avez tenté, ce qui n'a pas fonctionné, et nous vous répondrons sous un jour ouvré.
Signaler un bug pour Tax SwitchBesoin d'aide ?
Notre équipe est disponible pour vous accompagner dans l'intégration.