Skip to content

How tax works at checkout

Steps for

How it works

A B2B price is either net or gross:

Price typeWhat it means
NetThe price excludes tax. A $20.00 price is $20.00 before tax.
GrossThe price includes tax. A $20.00 price already contains the tax.

By default, SparkLayer shows net prices, whatever tax setting your website uses. Customers see exactly the price in their price list: if it has SKU EEEAR at 7.99, the product page shows $7.99.

On the Review & Pay step, SparkLayer asks your platform for the tax and shows it as its own line: Sub-total, Shipping, Tax and Total. Here's how that works with Shopify:

How tax works

How your B2B customers see tax in SparkLayer, and how it flows through to your Shopify orders.

Start

Your B2B customer browses your store

All prices shown by SparkLayer are excluding tax — your customers always see the net price, no matter how your Shopify tax settings are configured.

Step 1 of 11

For a step-by-step setup, from checking your store's prices to testing an order, follow the guide Get B2B tax and VAT right. This page is the reference for each setting.

Show prices including tax

To show prices including tax, labelled "inc. tax", turn on Tax-inclusive prices at Settings,Configurations,Pricing and cart (opens in your SparkLayer Dashboard in a new tab) and on the price lists that need it, and give each product a display_tax_rate in your price CSV, such as 10 for 10% GST. It changes what buyers see, not what they pay. Because the rate comes from a price CSV, it has no effect on automatic price lists. For the steps and limitations, see Show tax-inclusive prices.

Set up tax on Shopify

Shopify only

In Shopify, you set tax rules for the whole store, then make exceptions for customers and products.

Before you start:

Make a customer tax-exempt

Shopify only

A tax-exempt customer still sees net prices, and pays zero tax at checkout.

  1. In the Shopify admin, go to Customers (opens in your Shopify admin in a new tab) and open the customer.
  2. In the customer's details, click Manage tax exemptions.
  3. Untick Collect tax, then click Save.

With a third-party tax app such as Avalara or TaxJar, also mark the customer as exempt in that app. See Tax is charged but I use a third-party tax app.

Turn tax on or off for a product or variant

Shopify only

  1. In the Shopify admin, go to Products (opens in your Shopify admin in a new tab) and open the product.
  2. In Pricing, tick or untick Charge tax on this product. When ticked, the product uses your Shopify tax rules.
  3. For a single variant, open the variant and tick or untick Charge tax on this variant (Taxable in newer versions of the Shopify admin).
  4. Click Save.

Products that don't charge tax are left out of the tax total at checkout.

Set tax by country

Shopify only

Shopify applies tax rules by the customer's shipping country, at the last step of the checkout.

  1. In the Shopify admin, go to Settings,Taxes and duties (opens in your Shopify admin in a new tab).
  2. Under Regional settings, check the Collecting tax column for each country or region. A region needs a shipping zone (opens in a new tab) before you can collect tax there.
  3. Select a country or region to manage its tax settings.

You can also manage these from Settings,Markets (opens in your Shopify admin in a new tab).

Remove tax from a draft order

Shopify only

If orders arrive in Shopify as draft orders, you can change the tax before you complete them.

  1. In the Shopify admin, open the draft order.
  2. Click Estimated tax.
  3. Untick Charge taxes, then click Apply.

Estimated tax then shows Not collected and 0.00. Only the tax total changes, not the product prices.

Charge different tax rates on different products

Shopify only

By default, tax is charged on the cart subtotal. If your products have different tax rates in one tax jurisdiction, SparkLayer can work out tax per line instead ("line item tax"). Our team turns it on for you.

Line item tax applies when Include sales tax in product price and shipping rate is on in Shopify. To check:

  1. In the Shopify admin, go to Settings,Taxes and duties (opens in your Shopify admin in a new tab).
  2. Under Global settings, see whether Include sales tax in product price and shipping rate is ticked.

If it's ticked and your products have different tax rates, contact our support team to turn on line item tax. It's the Create a draft order on calculate setting at Integrations,Platform,Shopify order actions (opens in your SparkLayer Dashboard in a new tab), which only our team can change. To stop charging tax on some lines, untick Charge tax on those variants in Shopify.

Draft orders are created before the order is complete

With line item tax on, SparkLayer creates the Shopify draft order when the customer reaches the shipping and payment step, before they complete the order. The draft is tagged b2b-pending, which changes to b2b when the customer completes the order.

Why line item tax is needed

SparkLayer applies a discount to each line item so the customer pays their B2B price.

Include sales tax in product price and shipping rateHow SparkLayer calculates the discount
OffThe difference between the Shopify price and the SparkLayer B2B price.
OnThe discount also has to account for tax. Without line item tax, SparkLayer uses one tax rate (the rate of the first line item) for every line. Shopify only gives SparkLayer each line item's tax rate when it creates a draft order.

For example, two products with the same £6.00 B2B price, one at the default tax rate and one at 5%:

ProductShopify priceWithout line item taxWith line item tax
Default tax product£12.00£6.00 (discount £6.00)£6.00 (discount £6.00)
5% tax product£10.50£6.00 (discount £4.50), incorrect£5.25 (discount £5.25), correct

Adjust automatic price lists for tax-inclusive Shopify prices

Shopify only

If Include sales tax in product price and shipping rate is on in Shopify, an automatic price list based on Shopify Price takes its percentage off a price that already includes tax. Work out a percentage that also takes the tax out, or customers pay tax twice: see Tax-inclusive prices. Manual price lists don't need this if you upload net prices.

Set up tax on other platforms

On BigCommerce, Wix, WooCommerce and Magento, SparkLayer uses your platform's tax rules. Set tax up there, then check these limits:

PlatformWhere tax is set upLimits
BigCommerceBigCommerce tax settingsMulti-zone tax only works if prices are entered exclusive of tax, or if tax outside the default zone is set to update product prices. If you change How are prices displayed on your storefront on its own, contact us so SparkLayer can resync. See BigCommerce limitations.
WixSettings > Tax in your Wix dashboard (setup guide)Tax exemptions only apply when the customer pays through the Wix checkout (upfront payment). With manual payment methods, tax is charged. See Wix limitations.
WooCommerceWooCommerce tax settings (setup guide)None documented.
MagentoMagento tax settings (setup guide)None documented.

Shopify only

On Shopify, orders that mix taxable and tax-exempt products aren't handled, and duties aren't supported. See Shopify limitations.

Show tax information on your storefront

Change any tax wording in the frontend interfaces without code at Storefront,Options,Translation overrides (opens in your SparkLayer Dashboard in a new tab): add an override for the key, enter your text and click Save and publish. See Change checkout text. A developer can set the same keys in your Core Script instead: see Languages and international.

Change the word "tax"

These keys set the tax wording in the cart and checkout:

KeyDefault text
global.totals.taxTax
cart.tax-shipping-noteTax and shipping costs calculated during checkout
cart.tax-shipping-messageTax and shipping costs shown on next step
Core Script code for your developer
Core Script
translations: {
  en: {
    "global.totals.tax": "Tax",
    "cart.tax-shipping-note": "Tax and shipping costs calculated during checkout",
    "cart.tax-shipping-message": "Tax and shipping costs shown on next step"
  }
},

Add a tax note next to prices

Add text such as "Excluding tax: " before the product page price, or "(ex. tax)" after the unit price in the My Cart, as in "US$6.99 per unit (ex. tax)". Set these keys in Translation overrides:

KeyExample textWhere it shows
pdp.price.from-prefixExcluding tax:Before the price on the product page
global.per-unit{price} per unit (ex. tax)The unit price in the cart. Keep {price}, which is replaced with the price.
Core Script code for your developer
Core Script
translations: {
  en: {
    "pdp.price.from-prefix": "Excluding tax: ",
    "global.per-unit": "{price} per unit (ex. tax)",
  }
},

Collect a tax ID for international shipping

Some countries require the customer's tax ID (or equivalent) at checkout, so orders comply with local tax law and aren't held up or fined at customs. Collecting it means the order can be processed and converted from a draft to a completed order in Shopify.

Countries that may need a national tax number (such as CPF/CNPJ, RFC or Resident ID) include Brazil, Chile, Colombia, Costa Rica, Ecuador, Guatemala, Indonesia, Italy, Mexico, Malaysia, Peru, Portugal, Paraguay and Turkey. Formats and rules vary, so check the regulations for each destination.

When it's needed, the Details step shows an Additional Tax ID field above Additional Information.

To change the field's label and placeholder, set these keys in Translation overrides:

KeyDefault text
checkout.notes.tax-id-labelAdditional Tax ID
checkout.notes.tax-id-placeholderTax ID
Core Script code for your developer
Core Script
translations: {
  en: {
    "checkout.notes.tax-id-label": "Additional Tax ID",
    "checkout.notes.tax-id-placeholder": "Tax ID",
  }
}, 

If you already collect a tax ID with a custom checkout field, we recommend turning that field off.

Set up shipping

Use your eCommerce platform's shipping rates, or create B2B shipping methods in SparkLayer at Settings,Shipping (opens in your SparkLayer Dashboard in a new tab). See Shipping rules.

Why is tax charged on shipping?

SparkLayer uses Shopify's tax calculation, so shipping is taxed whenever Shopify taxes it. B2B orders can show tax on shipping even when your retail checkout looks different, for one of these reasons.

ReasonWhat happens
The customer is in Canada, the EU, the UK or the USShopify charges tax on shipping in these regions whatever its Charge tax on shipping rates setting says. Our development team has confirmed this is how Shopify behaves.
Include sales tax in product price and shipping rate is onYour Shopify shipping rates already contain tax. SparkLayer shows net amounts, so it has to charge that tax when it creates the order.

For example, with 20% VAT in the UK:

LineNetVAT at 20%Total
Products£500.00£100.00£600.00
Shipping£95.00£19.00£114.00
Order£595.00£119.00£714.00

The customer sees £95.00 shipping, and £114.00 once VAT is added.

Shopify only

To change this:

  • Use SparkLayer shipping rates, entered as net values, such as 95 for £95.00 before tax. See Shipping rules.
  • Make the customer tax-exempt, where that's right for them, so their order has no tax on products or shipping. See Make a customer tax-exempt.

Troubleshooting

These fixes are for Shopify. On other platforms, check your platform's tax settings and its limits, or contact our support team.

Was this page helpful?

Last updated