Tax Manager
$29.00

Stop Charging the Wrong Tax.

Wrong tax refunds your margin, frustrates your wholesale buyers, and creates the kind of liability that only becomes visible during an audit. Tax Manager gives your Joomla ecommerce store the tools to collect the right amount — every time.

3
Geographic matching levels per rate
0
Manual adjustments for exempt buyers
CSV
Import hundreds of rates in seconds
2
Levels of tax precision — product and variant

Everything Your Tax Situation Needs

Custom tax classes, geographic precision, customer group exemptions, per-variant overrides, and bulk CSV tools — all inside the J2Commerce dashboard.

Custom Tax Classes

Create as many named tax profiles as your catalog needs — one per product type, category, or jurisdiction. Assign each class to the right products and let the store take it from there.

Country · State · ZIP Matching

Match tax rates across three geographic dimensions. Catch everything with a wildcard, target a state, or nail a specific postcode or ZIP prefix. The most precise match always wins.

Customer Group Exemptions

Wholesale buyers, nonprofits, and resellers pay zero tax — automatically. Select the user groups, save the setting, and never manually adjust an exempt order again.

CSV Import & Export

Load hundreds of geographic rates from a spreadsheet in seconds. Export any class back to CSV for audit records or accountant handoff. Your spreadsheet and your store — finally in sync.

Add or Replace Rate Mode

Stack your rate on top of the store's base profile, or replace the base entirely — per class, per product type. One dropdown. Right behavior for every situation.

Billing vs Shipping Basis

Your store config says whether to tax by billing or shipping address. Tax Manager reads that setting and applies it correctly to every rate lookup — no additional configuration needed.

Rate Priority Ordering

Multiple rates can match a location. The priority field tells the store which one fires. Specific beats general. County beats state. State beats national. You set the order.

Save as Copy

One state has 8.0%, the neighbor has 8.25%. Duplicate an entire tax class — rates and all — as a starting point. Change the one thing that differs. Done in under a minute.

Debug Logging

New rate not matching? Enable the debug log. It records exactly which class fired, what location data triggered it, and what basis was used. Toggle it off when you're done.

Per-Variant Tax Overrides

A children's size 4 and a size 7 sitting on the same product page don't belong in the same tax bracket. Give any single variant its own tax profile right on the variant row — the rest of the product keeps its default, no cleanup required.

Geographic Precision — All Three Dimensions

Most ecommerce stores stop at country. Tax Manager goes further — matching tax rates by country, by state or province, and by postcode. Use a wildcard to catch everything, a prefix to catch a range, or an exact code to target a single taxing district. The most specific match wins.

  • Wildcard postcodes catch all locations
  • Prefix matching (e.g. 941*) covers entire ranges
  • Exact postcode targets specific taxing districts
  • Live zone reload when country changes — no page refresh
  • Postcode suffix stripping for extended ZIP formats

Wholesale Buyers Pay Zero Tax. Every Order. Automatically.

Customer group exemptions eliminate the most tedious task in Joomla ecommerce administration: manually adjusting tax on wholesale orders. Select the groups that are exempt, save the setting, and the store handles the rest — before the order is placed, not after.

  • Multi-group selection — exempt multiple account types at once
  • Exemption fires at price calculation — zero tax on the checkout screen
  • No manual credit memos. No after-the-fact order adjustments.
  • Works for wholesale, nonprofit, reseller, staff — any Joomla user group

One Product. Nine Variants. Every One Taxed Right.

Products aren't always one flat tax situation — a kids' shoe grows from tax-free to taxable somewhere in the size run, a listing sells both a physical copy and a digital download at different rates, a grocery item flips from zero-rated to standard the moment it's sold hot. Tax Manager puts the tax profile picker right on the variant row, so every option on a product can carry its own rate instead of forcing the whole listing into one setting.

  • Assign a tax profile to any single variant, right where you already edit it
  • Variants left untouched automatically keep the product's default — nothing to re-save
  • The correct rate follows the variant through cart, checkout, order, and invoice
  • Works with every tax class you've already built — nothing new to configure
  • One store-wide switch turns the whole feature on or off — no per-product busywork

Real-World Use Cases

A hardware store with nexus in a dozen states is applying a flat national rate to every order — simple, but wrong. County-level differences mean some customers are under-charged, some are over-charged, and the accountant sends a worried email every quarter. The owner creates one tax class per product category, loads each class with per-state and county-level ZIP rates from a CSV, assigns classes to products, and enables the reseller account group exemption. The store now collects correctly in all 12 states. The owner exports each class to CSV at year-end and hands it to the accountant. The worried emails stop.

A Joomla ecommerce store selling B2B across Europe has two customer types: consumers who pay VAT and registered businesses who are exempt. The current workflow is a credit memo for every business order — dozens per week. With Tax Manager, the owner creates a "Business Buyer" user group and selects it in the exemption setting. Every checkout from a group member now shows zero tax before the order is placed. No credit. No email. No Friday afternoon adjustment queue. Consumer orders continue to pay full VAT, unaffected.

Canada's provincial tax landscape is a patchwork — Ontario charges HST, Quebec charges GST + QST, Alberta is GST only, BC charges GST + PST, and so on. The store has been applying a flat 5% "close enough" rate for years. With Tax Manager, the owner creates one tax class per product type (physical goods, digital downloads), adds province-matching rate rows for each, and uploads the full breakdown via CSV import. The billing-address basis in the store config is honored correctly. Every customer now pays the rate that matches their province. The accountant is unreasonably pleased.

A kids' shoe brand lists one style across nine sizes on a single product page. In this store's region, the small sizes are tax-free and the style crosses into taxable territory somewhere past the middle of the size run — same shoe, same listing, two completely different tax outcomes. Before, the owner had exactly one tax setting for the whole product: overcharge the toddlers or undercharge the tweens, pick your poison. Now every size carries its own tax profile — sizes up to the threshold stay at the free rate, sizes above it switch on automatically the moment a shopper adds them to the cart. One product listing. Nine sizes. Every single one taxed exactly right, and the accountant never has to ask which sizes are "the exempt ones" again.

Your Tax Rules. Your Server. No External Dependency.

Tax Manager stores your tax classes and rates in your own Joomla database — on your own server. There is no third-party rate service to subscribe to, no external API that can change its pricing or drop support, and no vendor standing between you and your tax configuration. Built on native Joomla 6 architecture, Tax Manager integrates directly into the J2Commerce dashboard and respects the access control settings you've already configured. Your rules. Your data. Your control. That is what self-hosted Joomla ecommerce is supposed to feel like.

Translated In The Following Languages

Arabic Unitag (ar-AA), Chinese, Traditional (zh-TW), Danish (da-DK), Dutch (nl-NL), English (en-GB), English, USA (en-US), Finnish (fi-FI), French (fr-FR), German (de-DE), Greek (el-GR), Hebrew (he-IL), Italian (it-IT), Japanese (ja-JP), Norwegian Bokmål (nb-NO), Persian Farsi (fa-IR), Polish (pl-PL), Portuguese, Brazil (pt-BR), Portuguese, Portugal (pt-PT), Russian (ru-RU), Spanish (es-ES), Swedish (sv-SE), Turkish (tr-TR)


  • Developer J2Commerce
  • Extension Type Apps
  • J2Commerce Version 6.x
  • Joomla Version 6.x
Language Translations
Arabic UnitagArabic Unitag
Chinese, TraditionalChinese, Traditional
DanishDanish
DutchDutch
EnglishEnglish
English, USAEnglish, USA
FinnishFinnish
FrenchFrench
GermanGerman
GreekGreek
HebrewHebrew
ItalianItalian
JapaneseJapanese
Norwegian BokmålNorwegian Bokmål
Persian FarsiPersian Farsi
PolishPolish
Portuguese, BrazilPortuguese, Brazil
Portuguese, PortugalPortuguese, Portugal
RussianRussian
SpanishSpanish
SwedishSwedish
TurkishTurkish

Fix Fix do not only use address id only, use user id to ensure the address belongs to the user

New Feature Variant-level tax profile override: pick a different tax profile per variant (e.g. VAT on larger sizes) via a selector on each variant editor row; empty = product default

New Feature Overridden rate flows into cart, checkout, order totals, tax breakdown and stored orderitem tax profile; tax-exempt user groups still take precedence

New Feature New "Variant-Level Tax Profiles" plugin parameter (on by default) turns the variant selector and the runtime override off in one switch

Fix Fix saved variant overrides being erased on the next product save when the feature is switched off — off now means ignored, not deleted

Fix Fix a variant override pointing at a disabled or deleted tax profile being silently cleared on the next product save

Improvement Variant tax selector renders as a plain select so it works in the variant AJAX response, where fancy-select assets are not registered

Fix Fix virtual tax profile IDs colliding with real core taxprofile rows (now offset +20000)

New Feature Tax classes list/edit/toggle links now integrate into the core Tax Profiles admin screen

New Feature Publish/unpublish toggle from the Tax Profiles list works via a token-carrying GET link

Improvement Tax class list now returns disabled classes too (enabled/disabled shown, matching core)

Fix Fix CSRF check rejecting the new GET-based publish/unpublish toggle (checkToken('request'))

Improvement Toggle redirects back to the referring screen (taxprofiles list or classes screen)

New Feature Add full translations of the variant-tax strings for all 20 languages

Fix Fix virtual tax profile IDs colliding with real core taxprofile rows (now offset +20000)

New Feature Tax classes list/edit/toggle links now integrate into the core Tax Profiles admin screen

New Feature Publish/unpublish toggle from the Tax Profiles list works via a token-carrying GET link

Improvement Tax class list now returns disabled classes too (enabled/disabled shown, matching core)

Fix Fix CSRF check rejecting the new GET-based publish/unpublish toggle (checkToken('request'))

Improvement Toggle redirects back to the referring screen (taxprofiles list or classes screen)

Fix Use native usergrouplist for tax-exempt groups

Improvement Inject tax classes into tax-profile dropdowns via event 'result' key

Update Requires Joomla 6.x + J2Commerce 6.x

New Feature Tax classes with granular rates matched by country, zone and postcode (wildcards)

New Feature Honor store tax basis (billing/shipping) from J2Commerce config for rate matching

New Feature Per-class rate mode: add to, or replace, the core tax profile rate

New Feature User-group tax exemptions (zero tax for selected groups)

New Feature Native Joomla 6 admin: list view with sort, search, filter and core publish toggle

New Feature Tabbed edit form with Save / Save & Close / Save as Copy toolbar

New Feature CSV import and export of tax rates

New Feature 20-locale translations (en-US canonical)

Improvement Evolved from app_taxrate: renamed element, namespace, tables and language keys

Update Requires Joomla 6.x + J2Commerce 6.x

You may also be interested in these products

Stay Updated

Subscribe for free and be the first to know about the latest features, updates, and new additions.