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.

Webshop

This section explains the e-commerce capabilities of eZ publish. The system comes with an integrated shop mechanism that plugs directly into the object / node tree model. The webshop functionality is built around the following components:

  • Products
  • Value Added Taxes (VATs)
  • Discount rules
  • Wishlist
  • Basket
  • Orders

The following illustration shows how the different components interconnect and work together.

The integrated e-commerce solution.

The integrated e-commerce solution.

An actual product is represented by a content object (with at least one node assignment) that contains information about the product itself along with a price. The price can be affected by a value added tax and/or a discount rule. A discount rule can be configured to reduce the price of certain products by a percentage. The products can be put into a user's wishlist and/or shopping basket. A user's wishlist and basket can be modified at any time. The contents of the shopping basket can be purchased by initiating the checkout process. Once the checkout process is completed, an order will be created. The system will automatically notify the site administrator and the user who placed the order by sending out E-mails. A list of placed orders and sales statistics can be viewed using the administration interface. An order is assigned a status which may be changed by a user with sufficient permissions. A status log is kept for each order.

Value added taxes

The system allows the site administrator to set up different kinds of value added taxes (VATs). A VAT consists of a name and a percentage. The administration interface makes it possible to add, remove and modify VATs. The VATs are used by the price datatype.

The price datatype

As pointed out above, a product is nothing more than a content object with a price. The price must be represented by an attribute that makes use of the built-in price datatype. This is a special datatype which plugs more deeply into the system. Instances of any class containing the price datatype will automatically be treated as products. A class attribute represented by the price datatype makes use of one of the predefined VATs. There are two ways in which the selected VAT can be used. This configuration depends on how the product prices are entered when the objects are created. The first alternative (Price inc. VAT) is to be used if the prices that are entered already include the value added tax. The second alternative (Price ex. VAT) 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 VAT. When the object is in the basket and the basket is viewed, it is possible to see the price of the products with and without the VATs (regardless of which approach that was used).

Discount rules

The final price of a product can be affected by a discount rule. A discount rule can be configured to reduce the price of certain products by a percentage. The discount rules can be placed in different discount rule groups and are always active (there is no way to turn them on/off). The discount rule groups make it possible to choose which group(s) of customers will be affected. This can be done by assigning a discount rule group to the target user group(s).

By default, a newly created discount rule affects all the products that are in the system. However, a discount rule can be easily limited to a group of products. A discount rule can be limited in two ways, which are mutually exclusive. The first alternative is to use a combination of the "Product type" and the "Section" limitations, which are described in the table below.

Limitation

Description

Product type

The "Product type" limitation makes it possible to limit a policy to products/objects of certain types (only classes that make use of the price datatype will be shown). The default setting is "Any", which means that it will affect all kinds of product objects.

Section

The "Section" limitation makes it possible to limit a policy to products/objects that are assigned to certain sections. The default setting is "Any", which means that the discount rule will affect product objects in all sections.

The second alternative is to add individual products to the discount rule's product list. When the individual product list is used, the "Product type" and "Section" limitations will be omitted and thus only the products that are in the list will be affected.

Shop related datatypes

The following table shows the datatypes that plug in to the e-commerce subsystem of eZ publish.

Datatype

Description

Price

When used as an attribute in a content class, the "Price" datatype connects the instances (objects) of that class to the webshop system. As soon as an object has a price attribute, users can put the object in their baskets and/or wishlists. Objects without a price attribute can not be put into a user's basket and/or wishlist and thus they are not connected to the e-commerce subsystem.

Option

The "Option" datatype makes it possible to create a single group of options for each content object. Each option can be assigned a short text and an additional price. For example, it can be used to sell T-shirts in different colors where the price is different for some (or all) colors.

Multi-option

The "Multi-option" datatype makes it possible to create multiple groups of options for each content object. Each option can be assigned a short text and an additional price. This datatype works in the same way as the "Option" datatype. The only difference is that instead of supporting only one group of options, it allows the creation of multiple groups of options for each content object.

Range-option

The "Range-option" datatype makes it possible to create a single group of enumerated options for each content object. For example, it can be used in a scenario where the goal is to sell shoes of different sizes and the size does not affect the price. For each content object, the administrator needs to set up the available range (if any).

Balazs Halasy (10/02/2005 12:01 pm)

Svitlana Shatokhina (27/03/2006 8:37 am)

Balazs Halasy, Svitlana Shatokhina


Comments

  • Canadian Tax System

    Hi,
    I really like the look of EZPublish especailly the different components you can add such as webshop. We operate an online presence in BC Canada and retail sales to BC residents need to have a Provincial and a Federal GST applied. There is a need to be able to apply these taxes at a product level as some producats are exempt. If you could fill me on how taxes are handled in Webshop and if the Canadian scenario is not currently accounted for whether there are any moves afoot to add them.

    Txs
    Mat
    • Re: Canadian Tax System

      Hi Matthew!

      Please refer to http://ez.no/doc/ez_publish/techn...ual/3_8/features/vat_charging_system for detailed information about how the VATs can be charged. If your eZ publish version is earlier than 3.8, you can use the "VAT per product" approach for VAT charging. The rest two approaches work only in eZ publish 3.8.
  • Disable webshop

    Hi.
    Can we full disable webshop in ez Publish? We have another application for that issue.

    Thanks.