Tax Switch

v1.3.4 Annual Subscription Updated Jun 5, 2026

Tax Switch

Laissez vos clients basculer l'affichage des prix HT ↔ TTC d'un simple clic, sans rechargement de page, sur toute la boutique. Idéal pour les sites B2B/B2C hybrides.
Magento 2.4.4 Magento 2.4.5 Magento 2.4.6 Magento 2.4.7 Mage-OS 2.0 Mage-OS 2.1
€49.00
Try the live demo
  • Updates and support included for 12 months
  • License key delivered immediately by email
  • 30-day money-back guarantee
  • Full documentation included
  • Composer-ready installation

Tax Switch

Let each customer choose how they see your prices — VAT-included or VAT-excluded — and remember their choice across the whole site. This module adds a small switcher to your storefront (radio, toggle, segmented or dropdown style) that flips every price display on the fly: catalog, cart, mini-cart, shipping, order totals. No price recalculation, no second checkout, just a clean visual switch.

It's particularly useful for B2B-leaning B2C stores: professionals want to compare HT prices with their supplier quotes, consumers want TTC for budgeting. Instead of forcing one audience or maintaining two stores, you let visitors pick.

Who it's for

  • B2B and "B2B + B2C mixed" merchants who serve both professional and end-customer audiences from the same store
  • Belgian / French / Luxembourgish stores where HT vs TTC is a daily reflex for buyers
  • Merchants who want to display VAT-excluded prices for catalog browsing but VAT-included at checkout, or vice versa, without rewriting their tax configuration

Key benefits

  • Cookie-based, FPC-compatible — the choice is stored in a wmi_tax_display_mode cookie and exposed via HTTP Context, so Varnish/built-in Full Page Cache keeps working without losing the user preference.
  • Plug-in based price override — intercepts every relevant Magento Tax Config method (catalog price, shipping, cart line items, cart subtotal, sales / order prices, sales / order subtotal) so the toggle works everywhere, not only on product pages.
  • Four display styles — radio buttons, toggle, dropdown or segmented control. Pick the one that matches your theme.
  • Configurable price labels — optionally show HT/TTC next to each price across the site, with auto-sized labels (configurable ratio relative to price font size), position before/after, custom label text (HTVA/TVAC instead of HT/TTC if you prefer).
  • Visibility rules — show the switcher everywhere, on catalog only, exclude checkout, or restrict to specific layout handles. Optional customer-group and device (desktop/mobile) targeting.
  • Theming via CSS variables — primary colour, active text colour, border, background, border-radius, font size, all configurable from admin. No CSS file to edit.
  • Secure by design — input validation rejects any mode value other than the configured set; cookies use the Secure flag on HTTPS; CSS values are whitelist-validated (hex, rgb/rgba, hsl/hsla, CSS variables) rather than regex-stripped.

Compatibility

  • Magento 2.4.x / Mage-OS equivalent
  • PHP 8.1, 8.2, 8.3
  • Requires wimakeit/module-core 3.0 or later
  • Designed for Luma frontends out of the box; pair with wimakeit/module-tax-switch-hyva for Hyvä storefronts
  • Compatible with Varnish Full Page Cache (uses HTTP Context variation)

Install this module via Composer. Make sure your auth.json is configured with your Wimakeit credentials.

Terminal
$ 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

ResourceDefault
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

SettingDefault
Enable Tax SwitcherNo
Default Display ModeAuto (use the store's native Tax → Price Display config)

Display Options

SettingDefault
Available ModesHT, TTC (1,2)
Display Styleradio (options: radio, toggle, dropdown, segmented)
Positionheader
Show LabelsYes

Visibility Rules

SettingDefault
Page Visibilityall_pages (options: all_pages, catalog_only, exclude_checkout, specific_handles)
Excluded Layout Handlesempty
Customer Groupsempty (all groups)
Device Visibilityall (options: all, desktop, mobile)

Labels (next to prices)

SettingDefault
Show Tax Label Next to PricesNo
Excluding Tax Labelempty (falls back to HT)
Including Tax Labelempty (falls back to TTC)
Show Currency SymbolYes
Price Label Positionafter
Price Label Size Ratio0.6 (60% of price font size, range 0.4–1.0)

Styling (CSS variables)

SettingDefault
Primary / Active Color#333333
Active Text Color#ffffff
Border Color#B9B8AF
Background Colortransparent
Border Radius4px
Font Size0.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
License
Annual Subscription
Support
12 months
Last updated
Jun 5, 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ä
Not compatible
Package
wimakeit/module-tax-switch

Compatibility checker

Pick your stack to see if this module fits.

Compatibility 4

Yes. Tax Switch is tested against Magento Open Source 2.4.4 → 2.4.7, Adobe Commerce on the same line, and Mage-OS 2.0+ — on PHP 8.1, 8.2 and 8.3. The Specifications tab lists the exact tested combinations. If your stack is in the list, we guarantee a clean install. Wimakeit is an Adobe-certified Magento agency based in Presles (Charleroi / Namur region), Wallonia, Belgium and runs every module against the same matrix we ship to enterprise clients across Belgium, France and the Netherlands.
Tax Switch targets the classic Magento / Luma stack today. A dedicated Hyvä companion may exist as a separate package — check the Wimakeit modules catalogue or contact our Wallonian office (Presles) for a custom Hyvä port.
Hyvä Storefront (Tailwind + Alpine.js, server-rendered) and Hyvä Checkout (React-based, headless on top of Magento) are two distinct packages. Tax Switch ships native Hyvä Storefront compatibility — its frontend is rendered through Hyvä templates with no Luma fallback. Hyvä Checkout integration is delivered when the module has a checkout-step touchpoint (custom payment input, terms checkbox, etc.); otherwise the module runs server-side without any Hyvä Checkout customisation needed. See the Specifications tab for the exact Hyvä integration scope of this module.
Yes. Tax Switch respects the standard Magento scope (default / website / store / store_view). Every configuration is overridable per store view. Frontend labels use Magento's standard translation files — shipped in French, English and Dutch out of the box. Currencies follow your Magento currency setup with no extra wiring. A typical Wimakeit Magento store runs an fr_BE / nl_BE / en_GB triplet from a single backend — Tax Switch is ready for this B2B / international setup.

Pricing & licensing 4

€49 — one-time payment, perpetual licence, no recurring fees. Includes 1 year of minor updates + email support in French, English and Dutch, 1 production domain + 1 staging/dev domain. Renewing the support window after year 1 is optional. Volume licences are negotiated directly — write to contact@wimakeit.com for agency or multi-store pricing.
Yes. Tax Switch has a live demo on demo.wimakeit.be/module-tax-switch where you can poke around the admin and frontend with a real install pre-populated with sample data. For longer evaluations, request an evaluation licence via our contact form — evaluations cover the same scope as the paid licence and convert to a permanent key on purchase.
We review refund requests case by case. If the module doesn't deliver what was advertised, email contact@wimakeit.com from the address tied to your licence. The refund policy is published on the terms page and applies to every module sold through this marketplace.
Tax Switch is distributed under a commercial proprietary licence — not MIT, GPL or any other open-source licence. The PHP source ships in vendor/wimakeit/ once you composer require the package, so you can read it, audit it, and patch it locally for your own Magento install. You may NOT redistribute it, sublicense it, publish it on a public package registry, or sell it on. One licence = one production domain + one staging/dev domain (see terms for the full EULA). Wimakeit modules are NOT part of Magento's open-source repository on packagist.org — they are distributed exclusively via the private Composer registry packages.wimakeit.be.

Installation & updates 6

Run composer require wimakeit/module-tax-switch:^1.3.2, then bin/magento setup:upgrade, bin/magento setup:di:compile, and finally bin/magento cache:flush. The Installation tab on this page lists every configuration step (ACLs, cron jobs, default values) so a deploy takes minutes, not hours. If you need a hand, Wimakeit offers Magento installation services from our Wallonian office (Presles, between Charleroi and Namur).
Step 1: get a token on packages.wimakeit.be → My account → Tokens. Step 2: at the root of your project add to auth.json: {"http-basic": {"packages.wimakeit.be": {"username": "YOUR-EMAIL", "password": "YOUR-TOKEN"}}}. Step 3: register the repo: composer config repositories.wimakeit composer https://packages.wimakeit.be. Step 4: composer require wimakeit/module-tax-switch:^1.3.2. In CI/CD pipelines, inject COMPOSER_AUTH as a JSON env var instead of committing auth.json.
Most merchants are live within 30 minutes: composer install (1-2 min) → setup:upgrade + di:compile (5-10 min depending on stack size) → admin configuration (5-15 min following the Installation tab) → smoke test on a product or order. Allow extra time if you have a custom theme overriding similar templates. The Wimakeit team has shipped this exact module to B2B and DTC stores across Belgium.
Tax Switch is built for Magento 2.4.x / Mage-OS 2.0+ and has no Magento 1 equivalent. When migrating from Magento 1, the Wimakeit team handles the audit, the data migration and the integration of Tax Switch into the new backend as part of a Magento migration project. Migrating from Adobe Commerce to Mage-OS is transparent for Tax Switch: same composer require, same module code, same database schema — no fork to maintain, no licence change.
Updates ship through your composer dependency (this exact package), hosted on Wimakeit's private Composer repository at packages.wimakeit.be. Each release is announced on the Changelog tab + the Wimakeit news and follows semantic versioning — composer update is safe within a major.
All .phtml templates are overridable from your theme: copy the file into app/design/frontend/{YourVendor}/{theme}/Wimakeit_{Module}/templates/ keeping the same relative path. Blocks, ViewModels and Helpers are overridable via DI preference in your own custom module — declare <preference for="Wimakeit\…\OriginalClass" type="YourVendor\Override\Class" /> in etc/di.xml. Layout XML is extended (preferred) or overridden the standard Magento way. Wimakeit modules never use the final keyword on classes you might reasonably want to override — overriding is a first-class scenario, not a hack.

Support & security 3

Open a ticket through the contact form on wimakeit.be or email contact@wimakeit.com with the module name, version, Magento/Mage-OS version and the steps to reproduce. Fixes ship in the next patch release. Wimakeit support is staffed in French, English and Dutch on business days (CET working hours).
Send security reports privately to contact@wimakeit.com with a clear [SECURITY] subject prefix — please include the module name, version and the steps to reproduce. We acknowledge promptly on business days and credit reporters in the Changelog if they wish. Wimakeit is a Belgian SRL (société à responsabilité limitée) bound by Belgian and EU privacy and disclosure law.
Yes. Tax Switch stores only the data its feature scope requires, never tracks shoppers across sites, and ships zero third-party calls by default. Combine it with the Wimakeit GDPR module to publish cookie banners and data-subject request forms compliant with Belgian, French and Dutch DPA guidance. Wimakeit's EU-based hosting partners (OVH Roubaix / Gravelines, Cblue Gembloux) keep every customer's data inside the EU.

About Wimakeit 1

Wimakeit is an Adobe-certified Magento partner agency based in Presles, Wallonia (between Charleroi and Namur), Belgium, building Magento and Mage-OS stores since 2020 across BE / FR / NL. Every module on this marketplace runs in production on at least one Wimakeit client (we eat our own dog food). Direct line to the developers who built the code, multilingual support (FR / EN / NL), CET business hours, no offshore handoff. See our portfolio for the kind of Magento builds we ship.

Found something not covered by the FAQ?

Report a bug or ask a question — the form is prefilled with this module.

Report a bug

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_taxswitch to wimakeit_tax_switch for consistency with the other Wimakeit modules. A data patch migrates existing core_config_data rows automatically on setup: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 php constraint 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

  • TaxConfigPlugin moved from global di.xml to frontend/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.js and ~28 lines of redundant logic removed.

[1.2.1] - 2026-04-07

Admin

  • Config readers refactored to use the shared AbstractConfig base from wimakeit/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-core for 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.js files.

[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.

Found a bug? Tell us about it.

A short form opens in a new tab — the module name and your language are already filled in. Share what you tried, what went wrong, and we will get back to you within one business day.

Report a bug for Tax Switch
Module SKU: wimakeit-module-tax-switch · Language: en_US

Need help?

Our team is available to assist with integration.

Contact us
Planifier un appel