Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Tax object provides the definition for the tax applicable within certain shop for certain currency at specific tax rate and whether this rate is excluded from or included in price (as in price record maintained in price lists). 

Coming back to the Netherlands example there would be two Tax definitions: VAT 21% (included) and VAT(L) 6% (included), whereas the California example would have one Tax definition: Combined 8.44% (excluded).

...

During cart calculation process the platform fetches all combinations of tax configurations applicable for a given item in cart or shipping option depending on billing address location. Sometimes this results in several possible tax configurations, which are resolved in the following order of priority:

Priority Rule TaxConfig Country State SKU 
Product state specific tax has country code, state code and SKU filled in (tick) (tick)(tick)
Product country specific tax has country code and SKU filled in (tick)  (tick) 
Product specific tax has SKU filled in   (tick) 
State specific tax has country code and state code filled in (tick) (tick)  
Country specific tax has country code filled in (tick)   
Shop specific tax has all blank values    

Referring back to the Netherlands example suggested configuration a Book would result in two applicable tax configurations "VAT for NL" (rule 5) and "VAT(L) for NL and Book" (rule 2). Since "VAT(L) for NL and Book" has higher priority rate of 6% is used for the book.

Tip
 Shipping is treated in the same way as any other product in terms of tax resolution. The 'SKU' for shipping TaxConfig is carrier SLA Id.

Tax definitions

 

Tax management section offers searching capabilities and tax data management. Each tax definition is associated with shop + currency pair it is applicable for. For shops that use multiple currencies separate tax definitions must be created for each currency.

The other two crucial parameters are tax % which is tax rate value and type which denotes whether tax is inclusive or exclusive of priceNet (included in price) denotes that prices in the price lists are gross prices which already include tax, Gross (added on top of price) denotes that prices in the price list are net prices which require tax to be added to form the final price.

...

Each config has three properties: country codestate code and SKU, all of which are optional. Country code and state code must be the same as defined in locations management section to work properly but can be input upfront without locations records existing. For delivery cost taxes specific rules you can use carrier SLA Id as SKU in the tax config entry.

...

The tax calculation of cart contents can be manually verified:

Item / SKUPrice Total Tax Rule Tax Amount 
CB5-571-C4Y3 / NX-MUNET-002 799.37 799.37 B @ 6% 181.00 
ReadyNAS 312 / RN31200-EUS100-2X4TB 1542.87 1542.87 A @ 20% 257.15 
WT465 / 90XB0090-BMU000 730.80 730.80 A @ 20% 121.80 
Trigger-Z / SGK-6010-GKCM1-DE 0.00 0.00 (error)0.00 
Total  5471.12  559.95 
Tip
Rules are resolved using priority rules. See overview section above.

...

It is anticipated that complex tax management will be done via import/export facility automatically.

If however tax framework provided by platform is not flexible enough it is possible to use alternative implementations of TaxResolver service that potentially could use third party systems to calculate tax.

...

Tax calculation is bound to have rounding errors especially for prices with fractional part. 

For example consider UK VAT tax at 20%. If the gross price to pay by the customer is 4.99 then tax is 4.99/1.2*0.2 = 0.831666667 with net price being 4.158333333. Of course these must be rounded before being presented to the customer. However the question is whether to round the tax to 0.83 and have net price as 4.16 in which case the tax is less than 20%, or round up the tax to make sure we are not underpaying it to 0.83 and have net price 4.15?

...

In order to minimise exposure of these rounding errors we recommend the following:

Price displayed Tax shown Recommendations Notes 
GROSS (error)
  • Use gross prices in price lists
  • Set tax as INCLUSIVE
Basic EU style B2C 
NET (error) 
  • Use net prices in price lists
  • Set tax as EXCLUSIVE
Basic US & Canada style B2C 
GROSS (tick) 
  • Use gross prices in price lists
  • Set tax as INCLUSIVE
B2C with tax (e.g. Switzerland) 
NET (tick) 
  • Use net prices in price lists
  • Set tax as EXCLUSIVE
Typical B2B style 

Validating tax calculations and configuration

Price tester is a great tool that will allow validating various scenarios and see how tax calculations are affected.