Path

ezpublish / documentation / ez publish / technical manual / 4.x / features / vat charging system / three approaches to vat cha...


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

Three approaches to VAT charging

This part of the 4.x documentation is for eZ Publish 4.0, only reference section is common for all eZ Publish 4.x versions as well as eZ Publish 5.x "LegacyStack", please select the version you are using for the most up to date documentation!

The webshop system supports the following three approaches to VAT charging:

  1. VAT per product
  2. Country dependent VAT
  3. Extended VAT

The next subsections explain the difference between these approaches.

VAT per product

The primitive "VAT per product" approach allows to choose one of the predefined static VAT types when you create a new product or edit an existing one. Thus you can specify a fixed VAT rate for each product. It is also possible to specify the default VAT type for a product class so that this VAT type will be used by default when a new object of this class is created.

Example

Let's say that you sell various products to Norwegian customers and need to charge the following rates of VAT depending on the type of goods:

  • A general rate, 25% for most of the products.
  • A reduced rate, 11% for food.
  • A low rate, 7% for personal transport.

You will have to create these three VAT types (as described in the "Creating a VAT type" section) so that you can assign an appropriate VAT type to each product.

It is also possible to create several product classes and specify different default VAT types for them. The value specified for a product class will be selected by default for a new object of this class.

For example, let's say that you have created the following three product classes:

  • "Carpet" with default VAT type set to 25%
  • "Food product" with default VAT type set to 11%
  • "Motorcycle" with default VAT type set to 7%

In this case, the system will assign the 25% fixed VAT type to each newly created carpet, the 11% fixed VAT type to each newly created food product, and the 7% fixed VAT type to each newly created motorcycle.

Country dependent VAT

In most cases, the amount of the VAT depends on where the customer lives. The "Country dependent VAT" approach allows to charge different VAT percentage depending on the product category (if specified) and the country the customer is from. This can be done by using the dynamic VAT type and the built-in default VAT handler. This handler uses the VAT charging rules to determine the appropriate VAT percentage for a product.

VAT charging rules

A VAT charging rule consists of the following components:

and determines which static VAT type to use in case when the customer is from the specified country and the product belongs to one of specified categories. The administration interface makes it possible to add, remove and modify VAT charging rules as described in the "Managing VAT rules" section. The default VAT rule specified for "Any" country and "Any" category determines which rate of VAT to use in case if all other VAT rules do not match.

The more exact match a rule provides for given "country-category" pair, the higher priority it has. In other words, the default VAT handler tries to choose the best matching VAT percentage. To understand how this VAT choosing algorithm works, look at possible match cases and their priorities described in the following table:

Country

Category

Example

Priority

exact match

exact match

Norway-Food

4

exact match

weak match

Norway-Any

3

weak match

exact match

Any-Food

2

weak match

weak match

Any-Any

1

If there is no match on country and/or no match on category then the lowest (zero) priority will be used.

Setting up country dependent VATs

If you sell for example carpets and need to levy the 16% VAT on purchases made by German customers and 25% on purchases made from Norway then the "VAT per product" approach is not applicable. The following text explains how the "country dependent VAT" approach can be used in this particular case.

  1. Enable the built-in default VAT handler as described in the "VAT handlers" section.
  2. Create the following two VAT types as described in the "Creating a VAT type" section:
    • Norway general, 25%
    • Germany general, 16%
  3. Add an attribute of the country datatype to your user class and specify its identifier in the "UserCountryAttribute" INI setting as described in the "Adding a country attribute to a user class" section.
  4. Create the following two VAT rules as described in the "Creating a VAT rule" section:

    User country

    Product category

    VAT type

    Norway

    Any

    Norway general, 25%

    Germany

    Any

    Germany general, 16%

    The system will also ask you to create the default VAT rule that will be applied to customers from all other countries.
    Since you sell only one type of goods, there is no need to create product categories. The VAT rules specified for "Any" product category will be applied to all your products.

  5. To make your products affected by the VAT charging rules, you should assign the dynamic VAT type to them as described in the "Assigning VAT types to products" section.

Setting up country and category dependent VATs

If your webshop sells various types of products with different rates of VAT then the rate of VAT will depend on both user country and product category. This means that you will have to create product categories, assign them to your products and specify VAT rules for these product categories (not for "Any" category as described in the previous section).

For example, let's say that you sell various products to Norwegian and German customers and need to charge the following rates of VAT depending on the type of goods:

  • Germany
    • A general rate, 16% for most of the products.
    • A reduced rate, 7% for food.
  • Norway
    • A general rate, 25% for most of the products.
    • A reduced rate, 11% for food.
    • A low rate, 7% for personal transport.

The following text explains how the "country dependent VAT" approach can be used in this particular case.

  1. Enable the built-in default VAT handler as described in the "VAT handlers" section.
  2. Create the following four VAT types as described in the "Creating a VAT type" section:
    • Norway general, 25%
    • Germany general, 16%
    • Norway reduced, 11%
    • Norway low, Germany reduced, 7%
  3. Add an attribute of the country datatype to your user class and specify its identifier in the "UserCountryAttribute" INI setting as described in the "Adding a country attribute to a user class" section.
  4. Add an attribute of the product category datatype to your product class and specify its identifier in the "ProductCategoryAttribute" INI setting as described in the "Adding a product category attribute to a product class" section.
  5. Create the following two product categories as described in the "Creating a product category" section:
    • Food
    • Personal transport
  6. Create the following five VAT rules as described in the "Creating a VAT rule" section:

    User country

    Product category

    VAT type

    Germany

    Food

    Norway low, Germany reduced, 7%

    Germany

    Any

    Germany general, 16%

    Norway

    Personal transport

    Norway low, Germany reduced, 7%

    Norway

    Food

    Norway reduced, 11%

    Norway

    Any

    Norway general, 25%

    The system will also ask you to create the default VAT rule for any category and any country (this VAT rule will be used in case if none of the other VAT rules is applicable).

  7. Assign the dynamic VAT type to your products (as described in the "Assigning VAT types to products" section) and assign the appropriate product category to each of them (as described in the "Assigning a category to a product" section).

Extended VAT

If you need more complicated VAT charging logic for your webshop, you can extend the system by creating your own VAT handler for special needs. This approach is incompatible with the previous one because using two or more VAT handlers at the same time is not supported. The "Handler" INI setting described in the "VAT settings" section determines the VAT handler to use.

The VAT charging logic implemented by your handler will be applied to all products that have the dynamic VAT type assigned. Keep in mind that dynamic VAT type does not work with "Price inc. VAT" configuration.

Please refer to the "Creating new VAT handlers" section for more information.

Svitlana Shatokhina (11/05/2006 10:24 am)

Ricardo Correia (17/04/2013 2:37 pm)

Svitlana Shatokhina, Ricardo Correia


Comments

There are no comments.