Path / documentation / ez publish / technical manual / 4.6 / features / vat charging system

Caution: This documentation is for eZ Publish legacy, from version 3.x to 5.x.
For 5.x documentation covering Platform see eZ Documentation Center, for difference between legacy and Platform see 5.x Architecture overview.

VAT charging system

Charging the value added taxes in your web-shop system is based on the VAT types. A VAT type consists of a name and a fixed rate, for example: "Std, 0%". The administration interface makes it possible to add, remove and modify VAT types as described in the "Managing VAT types" section. Although the quantity of the VAT types is not limited, there must be at least one VAT type in your web-shop system. The only purpose of these VAT types is to store some fixed rates of VAT in percent and thus you can call them "static VAT types" or "fixed VAT types".

If you assign a static VAT type to a product then the system will always charge the fixed rate of VAT specified by this VAT type for this product. (This is how the "VAT per product" approach works.)

Price inc. VAT / Price ex. VAT

There are two ways in which the assigned VAT type can be used. This configuration depends on how the product prices are entered when the objects are created. The "Price inc. VAT" alternative is to be used if the prices that are entered already include the value added tax. The "Price ex. VAT" alternative should be used if the prices that are entered do not contain the value added tax. When the first alternative is used and the product is viewed, the price that was entered will be shown. When the second alternative is used and the product is viewed, the price will be the price that was entered plus the amount of VAT.

Dynamic VAT type

The dynamic VAT type does not store any fixed rate of VAT and is not configurable from the administration interface. This VAT type is represented by an additional alternative that is displayed in the list of VAT types when you edit your products. This alternative is called "Determined by VAT charging rules" by default. (The name is specified by the "DynamicVatTypeName" INI setting described in the "VAT settings" section). Choosing this alternative (assigning the dynamic VAT type to a product) will tell the system that no fixed VAT percentage is assigned to this product and thus the amount of VAT should be determined dynamically using some complex VAT charging logic. For example, the amount of VAT can be changed dynamically depending on where the customer lives.

The dynamic VAT type is incompatible with the "Price inc. VAT" configuration. You should set the "Price ex. VAT" configuration for your products and specify prices that do not contain the value added tax. Please note that this VAT type is connected with the VAT handlers mechanism and is disabled if no handler is used.

VAT handlers

If you wish to use some complex VAT charging logic, it must be implemented in a VAT handler i.e. PHP class providing a mechanism that determines the rate of VAT for a product dynamically in accordance with the implemented logic. You can either use the built-in default VAT handler that supports the "Country dependent VAT" approach or extend the system by creating your own VAT handler (the "Extended VAT" approach). Using two or more VAT handlers at the same time is not supported.

The VAT handler to use must be specified in the "Handler" INI setting described in the "VAT settings" section. To enable the built-in default VAT handler, you will have to add the following line to the "[VATSettings]" section in an override for the "settings/shop.ini" configuration file:


The system will start to use the default VAT handler and add the dynamic VAT type to the list of VAT types that is displayed when you create/edit a product or product class.

Please note that dynamic VAT type is a kind of virtual structure that comes into being after enabling a VAT handler. If no VAT handler is enabled, the dynamic VAT type is not displayed and can not be used.

Svitlana Shatokhina (14/09/2010 12:07 pm)

Geir Arne Waaler (17/09/2010 1:19 pm)


  • Canadian Provincial (PST) and Federal (GST) Sales Taxes

    Unfortunately here in BC we have two levels of taxes - Provincial (PST) and Federal (GST). As a result retail customers in BC are charged both PST and GST and then the remainder of Canada is charged only the GST and then non-Canadians are not charged either.

    Unfortunately there are also product exclusions where one of the taxes is not applicable to a particular product and needs to be excluded from calculations.

    Has anyone successfully implemented this Tax regime in EZ and is this available.

    Mathew Newton
    • Re: Canadian Provincial (PST) and Federal (GST) Sales Taxes

      Hello Mathew

      Maybe this article helps you:

      I would image setting up BC and the remainder of Canada as different countries. The main problem I see is to combine the two taxes, the only way I see at the moment is to have three VAT types, one which is PST and GST added up, one for only GST and one with zero. Unfortunately this means that you cannot show PST and GST separately.

      If you have more questions please ask them at the forum