Tax calculations added to Jojo_cart

Tax calculations added to Jojo_cart, a forum discussion on Jojo CMS. Join us for more discussions on Tax calculations added to Jojo_cart on our General Discussion forum.

Back to Forum Index : Back to General Discussion   RSS

Core Developer


23 Mar 2011
Posts: 327

Hi Everyone,

I'm just about to commit a change to SVN which includes handling of tax / GST / VAT in the shopping cart checkout. This introduces some complications that cart-owners need to be aware of.

Essentially, what has changed is that the cart now considers whether tax needs to be applied to an order, and whether to show the inclusive or exclusive amount on all shopping cart pages. Orders going overseas become cheaper because the tax is removed (or not added, depending which way you look at it).

The complication is that the tax should only be charged to certain countries - so if we are talking about a New Zealand shop, then GST needs to be charged to orders shipping to New Zealand, but all other countries are exempt from GST (called "zero rated"). For European shops, VAT needs to be charged to European orders only.

I have added some new options to Jojo.

Firstly, the Cart Countries page now lets you choose which countries need to have tax applied. It defaults to all countries, which is not ideal but gives the best backwards compatibility with existing webshops. To use this feature, you will need to unselect all countries that should not have tax applied. For a NZ shop, this means unticking all countries except New Zealand. I'd suggest doing this in phpMyAdmin, as there isn't a 'deselect all' option in the user interface yet.

cart_tax_amount: This is the amount of tax you want to charge (as a percentage). 0% means that jojo_cart ignores tax calculations and things largely stay the same. Set this to "15" for a NZ shop, indicating the current GST payable.

cart_tax_name: Set this to "GST" for New Zealand shops, "VAT" for European shops etc. This value is used on all reports where tax is mentioned. If you have custom product handlers, please update your templates to honor this setting rather than hard-coding.

cart_tax_inclusive_pricing: This option is important to understand, as it has a big effect on how the shop works. It indicates whether all product and freight pricing in Jojo is stored as exclusive or inclusive amounts, and how you wish to have the pricing displayed in the first stage of the cart.

If this is set to "inclusive" (the default) then pricing is shown tax-inclusive in the cart, with a message saying "pricing includes XX% Tax (if applicable)". If the user chooses an international destination, then tax does not apply and the tax portion is removed from the order on the payment confirmation page, stating "Tax not applicable". The price has just gone down for the international visitor.

If this is set to "exclusive" then the first page of the cart shows exclusive amounts, with the note "Excludes tax (if applicable)". If the user chooses a local destination, then the tax is added on the payment page with the note "includes XX% tax". International orders remain the same.

The payment page will always show the amount that is to be charged to the credit card / via Paypal, and will note whether this includes tax, or whether tax is not applicable. Note "tax not applicable" means something very different to "excluding tax" - the latter implies that the tax still needs to be applied to the amount.

It's worth noting that some local users might not like having the tax added at the last minute, and seeing the price go up 15%. So if your audience is predominantly local, then showing inclusive prices is a better idea. On the other hand, exclusive prices make ths site look cheaper for international orders (and more accurately reflect what the international user will actually pay) - so exclusive pricing might be a better way to go for sites that mostly ship internationally.

This is not an easy concept to explain to the end user (ie that it's going to be more expensive to get something sent from NZ to NZ than from NZ to AU). So I'm open to any ideas on how to make this more usable and obvious. Initial ideas are to better integrate geo-location to try to guess whether to add the tax or not (on the assumption most users will ship to the country they are in), and to add a button or tickbox to allow the user to choose whether they see inclusive or exclusive amounts.

Note that the cart_tax_inclusive_pricing option affects the cart pages only. If you would like this setting to be honored on category and product pages, you will need to update your product handler plugin. Essentially this means using a conditional wherever pricing is shown to decide whether to include "+GST" next to the price or not - as per this example.

{$product.price}{if $OPTIONS.cart_tax_inclusive_pricing=='exclusive'} (+{$OPTIONS.cart_tax_name}){/if}

I have tried to code this so that existing sites will remain unchanged (assuming existing sites show tax-inclusive prices and that tax is charged on international orders anyway). If you are happy with your shop operating like this, then leave the tax percentage to 0% (the default) and leave all countries ticked for 'apply tax'.

The previous option 'cart_show_gst' is being deprecated - this was poorly implemented anyway, and only applied to NZ shops. If your shop uses this option, please have a look at the new functionality and see if this can give the functionality you need.

As always, any feedback appreciated.

marjoleink marjoleink

24 Apr 2011
Posts: 3

Hi Harvey,

Newly registered, I've made a Jojo install just today. (First impression is quite positive though I have some minor nits, but that's for another thread :))

This post caught my eye (it was highlighted in the sidebar). I read it over several times and am still a bit unsure of how you'd see this implemented. I just wanted to draw attention to the fact that VAT in Europe can get quite complicated, and it may not be possible to just set a single 'cart_tax_amount'. Consider:

- several countries may have two or even three different VAT rates depending on type of goods or services (so you cannot set a rate per 'cart', you need to set a rate per item)
- it makes a difference whether you're selling within the same country or to another EU country (with potentially different rates)
- if something is sold to a consumer, the consumer usually pays VAT of the seller's country but if the seller sells more than a specific amount to that country they may be required to charge VAT as in the buyer's country (i.e. yet another 1-3 rates!) - this is called 'distance selling')
- an item to be sold may be the result of combining goods and services to which different VAT rates apply (so even the VAT per item may need to be calculated by applying the different rates to the different 'components')
- shipping costs are also subject to VAT

And if you are registered as a company (and hence have registered a VAT number), none of this is optional: if it applies, it's required. An invoice would also need to have all items specified, and total VAT for each of the different applicable rates - if there are indeed different rates, the items may need to be marked to show which rate applies to which items. (Example: if I go to a travel store here in NL, and buy some books, maps and a compass, the books would have the low rate applied, the rest the high rate and each would be marked and both tax amounts specified... just in case I might be have a company and be able to reclaim that VAT).

Only if everything you sell falls under the same rate (and the same rate as applicable to shipping) might you be able to specify a single percentage for everything - provided you do not fall under the 'distance selling' rules.

I believe sales tax in the US (different rates in different states) is actually somewhat simpler than VAT in the EU. ;)

Just a few complications for your consideration...

Some references (I hope these go through):

marjoleink marjoleink

24 Apr 2011
Posts: 3

P.S.: Disclaimer:

I am not a tax consultant - merely a EU citizen considering the complexities of selling stuff on the Internet.
Back to Forum Index : Back to General Discussion   RSS
You must be logged in to post a reply

You need to Register or Log In before posting on these forums.