Tax
Tax in GrandNode has three parts: tax categories (what kind of product it is), a tax provider (how the rate is found) and the tax settings (how prices are entered and shown).
Tax categories
Configuration → Tax → Tax categories. Create one category per rate group - for example "Standard", "Reduced", "Books" - and assign each product to one on its Prices tab.

Tax providers
Configuration → Tax → Tax providers lists the installed providers; one is the primary provider that calculates tax.

- Tax by fixed rate: one rate per tax category, the same for every customer. Simple and enough for many single-country shops. Set the rates with Configure.
- Tax by country and state (zip): rates per tax category, country, state and zip code - for selling across borders or in the US.
More providers (for example tax services) are added with plugins.
Tax settings

| Setting | What it does |
|---|---|
| Prices include tax | On: the prices you enter already contain tax (typical in Europe). Off: tax is added on top (typical in the US). |
| Tax based on | Which address decides the rate: billing, shipping, or the default tax address. |
| Tax display type | Show prices including or excluding tax; Allow customers to select tax display type lets B2B customers switch. |
| Display all applied tax rates, Hide zero tax, Hide tax in order summary | How tax lines appear in the cart and on orders. |
| Force tax exclusion from order subtotal | Shows the subtotal without tax even when prices include tax. |
| Default tax category | The category for products without one. |
| Default tax address | Used before the customer has entered an address, and with "Tax based on: default address". |
| Shipping is taxable, Payment method additional fee is taxable | Whether tax applies to shipping and payment fees, each with its own tax category. |
The EU VAT options (VAT number validation, reverse charge for businesses) are in the same page when enabled.
Tips
- Decide Prices include tax before entering products; switching later changes every price's meaning.
- Test with a customer address in each country you serve and compare the cart totals with your accountant's expectations.
Related
Question not answered here? Ask the community on GitHub Discussions ↗