The Shopify EU marketplace uses VAT that is inclusive in the item and shipping prices. In NetSuite, taxes are exclusive of the item price and are added separately.
In the case of order import, when fetching order details from Shopify, it sends VAT inclusive prices for items and shipping prices. To handle this scenario from the integration app, enable the Settings > Order > Tax > Deduct GST/VAT from order total field
Deduct GST/VAT from order total on order import
Example of functionality when these settings are used against when these settings are not used for importing orders from Shopify. Let’s assume a Shopify order with the following details:
- Item price: $100
- Shipping Price: $20
- Promotional Discount: $10
With GST/VAT rate as 20%:
- Item Tax becomes: $20
- Shipping Tax becomes: $4
In this case, when importing an order in NetSuite, Shopify sends the order information as:
- Total Item cost: $120
- Total Shipping cost: $24
In the Settings > Order section > Tax tab, if the Deduct GST/VAT from order total box is checked, the order is imported as follows:
- Item cost: $83.33
- Shipping Cost: $16.67
- Tax Total: $20
- ETAIL TAX TOTAL VARIANCE: $0
In Shopify, when a discount is applied, it reduces the total price, which already includes tax in a tax-inclusive setup. After applying the discount, the tax is then recalculated based on the new subtotal, and the adjusted amounts are synced with NetSuite. This logic applies when the Deduct GST/VAT from the order total setting is enabled in a tax-inclusive set up on Shopify.
For example, if an item is priced at €259.99 in Shopify, and a €12.99 discount is applied, the new price becomes €247.00. This price includes a 20% tax, originally €41.17 on the full price.
In NetSuite, the integration app separates the tax from the original total. The tax is recalculated as €43.33 from the original €259.99 total, leaving the item price at €216.66. To ensure consistency, the discount is adjusted to account for the tax. Instead of subtracting the full €12.99, the integration app adjusts it by removing the tax portion (12.99 - 2.16 = €10.83). This brings the final item price to €216.66 - 10.83 + 41.17 = €247.00.
NetSuite value | Shopify value | |||
Tax exclusive | Tax-inclusive | |||
Item price | Tax 20% | |||
Item price | 216.66 | + | 43.33 | 259.99 |
Discount | 10.83 | + | 2.16 | 12.99 |
Price after discount | 205.83 | + | 41.17 | 247 |
Manage taxes with integration app settings to avoid variance
During order sync from Shopify to NetSuite, if there is a difference between the tax values calculated by NetSuite and the values sent from Shopify, the difference is stored in the ETAIL TAX TOTAL VARIANCE custom field on the sales order. You can manage tax within the Integration App in a way to avoid any tax variance which is recorded within NetSuite’s sales order record. To accurately calculate applicable VAT taxes in NetSuite and Shopify, use the following settings:
- Settings > Product > Add GST/VAT to item price: Check this check box to add GST/VAT to the item price before it is added to Shopify. Then another field should appear for the GST/VAT rate. Specify the GST/VAT rate in percentage that should be added to the item price when items are synced from NetSuite to Shopify. For example, if the VAT rate is 20%, specify the value as 20.
- Settings > Refund > Add GST/VAT to refund total: Check this check box to add the GST/VAT amount to the total amount being refunded.
Comments
This configuration doesn't suffice in the EU setup in case of different tax schedules or cross-border delivery.
How about an alternative approach wherein the Shopify gross amounts are mapped to NetSuite gross amount fields, NetSuite subsequently calculating VAT on its own, and the variance getting posted in the eTail field? (Shopify struggles handling more complex EU tax setups anyway.)
We are currently trying this approach, but encounter the following issue:
When mapping both {rate} as well as {grossamt}, Celigo seems to give {rate} precedence over {grossamt}. The expected outcome is that the system first sets the {rate} (in case of line discounts resulting in wrong amounts) and subsequently the {grossamt}, which then calculates the correct {amount} on line level. In case of discounts, there will be a delta between {rate} and {amount}.
Hi Gabriel Burgener,
Thank you for letting us know - we will get this article updated asap. In the meantime, please refer to these release notes which detail the changes to the GST/VAT settings.
Excerpt:
1. Earlier we used to have a GST/VAT text box that was used to specify a fixed tax rate for syncing orders and refunds. Now we calculate the GST/VAT amount from the Shopify order.
Therefore, the GST/VAT text box is now removed from Settings > Integration Flows > Order > Advanced Settings > Tax and Settings > Integration Flows > Refund > Advanced Settings.
However, this setting is still available for the Products section. If you want Celigo to add GST/VAT amount to the Item price, please use this setting to input the tax percentage.
This is a shortcut, that destroys our setups and requires constant scripting on NetSuite side. The population of transaction body fields such as Shipping Costs and Cart Discount should be completely decoupled from item lines.
Reason: For Europe, you would always want to route in gross amounts to match amounts, not amounts and definitely not rates.
Hi Gabriel Burgener,
Thanks for providing this feedback! I've let our Shopify team know about this and they'll be responding shortly.
Please sign in to leave a comment.