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:
Handler=ezdefault
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)
Comments