This article covers two related tax issues that can occur with the Shopify order add flow: Tax Code and Tax Rate information not passing from Shopify to NetSuite, and NetSuite adding tax to orders that Shopify marked as non-taxable. Use this article if your Shopify orders are importing into NetSuite with missing, incorrect, or unexpected tax information.
Shopify's tax code and tax rate aren't mapped to NetSuite
The Shopify order to NetSuite cash sale (add) flow doesn't map tax code and tax rate information from Shopify to NetSuite. Orders import into NetSuite without this information, even though tax was calculated in Shopify.
By default, this flow doesn't include tax code and tax rate in its field mapping. You need to add this mapping manually.
Recommended configuration:
Open the field mapping for either the Shopify order to NetSuite order (add) or Shopify order to NetSuite cash sale (add) flow if you run these separately), and add a formula to the tax rate mapping that calculates the combined tax rate from the individual tax lines on each Shopify line item. Each entry in tax_lines represents one tax applied to a line item. For example, state tax and county tax. The formula adds the rates together and multiplies the result by 100 to convert the decimal to the percentage NetSuite expects.
For Single Line Tax Rate
{{multiply
(add $.line_items[*].tax_lines.[0].rate $.line_items[*].tax_lines.[1].rate) 100}}
For Multiple Line Tax Rates (use only the number of tax lines you need)
{{multiply
(add $.line_items[*].tax_lines.[0].rate $.line_items[*].tax_lines.[1].rate
$.line_items[*].tax_lines.[2].rate $.line_items[*].tax_lines.[3].rate
$.line_items[*].tax_lines.[4].rate) 100}}
NetSuite adds tax to a non-taxable Shopify order (NetSuite tax hierarchy)
A Shopify order that collected no tax imports into NetSuite with a header-level tax amount and a variance line added, even though the order was non-taxable in Shopify. This is usually not the integration app overriding the order. NetSuite's own tax logic recalculates tax during order creation, based on NetSuite's tax hierarchy.
NetSuite determines tax from its own tax hierarchy, evaluating settings such as the customer, item, nexus, and transaction. If the NetSuite customer record is marked Taxable, NetSuite can apply tax even when the Shopify–NetSuite integration app sends the order as non taxable.
Recommended configuration
- Set the relevant NetSuite customer record(s) to non-taxable. This prevents NetSuite’s native tax engine from overriding the tax information sent by Shopify, so non-taxable Shopify orders remain non-taxable in NetSuite.
- Enable the Overwrite taxes with Shopify tax amounts setting in the integration app. When enabled, the integration app sends the tax amount calculated in Shopify to NetSuite, and NetSuite uses that value on the transaction regardless of whether the customer record is marked taxable or non-taxable.
- Let Shopify calculate the tax and allow the integration app to sync those amounts to NetSuite. The integration app then becomes the source of truth for tax amounts.
With this configuration, non-taxable Shopify orders remain non-taxable in NetSuite, and taxable Shopify orders import with the same tax amount that Shopify calculated, keeping both systems consistent.