29-11-2011 : Remettre dans le débat politique les principes du Conseil National de la Résistance
17-02-2012 : Pétition pour une protection de l’apiculture et des consommateurs face au lobby des OGM
Logo de mon site
Logo de mon site
Faire un don




Right menu

Logo du site ez.no  Logo XHTML 1.O du W3C  Logo XHTML 1.O du W3C  Site francophone officiel de Firefox
zero papier grâce aux catalogues et promos en ligne de bonial

Webshop -- e-commerce (3.10 - 4.x)

Date de publication: le jeudi 27 janvier 2011 à 17h14
Dernière modification: par Pascal BOYER le dimanche 27 mars 2011 à 23h28

09/09/2010 4:06

versions 3.10, 4.x

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.
Ce chapitre décrit les possibilités offertes par le mécanisme d'e-commerce intégré à eZ Publish. Ce mécanisme est directement lié/connecté au modèle d'arborescence d'objets/de nœuds.

Note: From 4.3 onwards the eZ Webshop tab is disabled by default in the eZ Publish installation. Follow this link to see how you enable the eZ Webshop functionality in eZ Publish.
Note: depuis la version eZ Publish 4.3, l'onglet Boutique est désactivé par défaut. Suivez ce lien pour savoir comment activer la fonction eZ Boutique dans votre installation eZ Publish.

The webshop functionality is built around the following components:
La fonction d'e-commerce est construite autour des composants suivants:

  • Products
    Les produits
  • Value Added Taxes (VATs)
    Les TVA (Taxes sur la Valeur Ajoutée)
  • Discount rules
    Les règles de remises (les soldes)
  • Wishlist
    Les listes de souhaits (listes d'achats)
  • Basket
    Le panier de provision
  • Orders
    Les ordres d'achat

The following illustration shows how the different components interconnect and work together.
L'illustration suivante montre comment sont interconnectés les différents composants et comment ils fonctionnent ensemble:

The integrated e-commerce solution
La solution intégrée d'e-commerce de eZ Publish

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 must be represented by an attribute that makes use of the built-in price or multi-price datatype. These are special datatypes which plug more deeply into the system. The main difference is that the price datatype allows to specify only one price value for each object (simple price product) whereas the multi-price datatype makes it possible to specify several price values in different currencies for each object (multi-price product). A content class can only contain one price attribute or one multi-price attribute. There is no way to have a simple price product and a multi-price one in the shopping basket at the same time and it is not recommended to use both price and multi-price datatype on your site.
Un produit est représenté par un objet de contenu (assigné à au moins un nœud) contenant les informations sur le produit ainsi que son prix. Le prix doit être représenté par un attribut utilisant les datatypes prédéfinis Prix ou Prix multiple. La principale différence entre ces deux datatypes profondément liés au système, est que le datatype Prix ne permet d'attribuer qu'un seul prix à chaque objet (on parle de produit mono prix) alors que le datatype Prix multiple permet d'attribuer à chaque objet plusieurs prix en différentes unités monétaires (on parle de produit multi-prix). Une classe de contenu ne peut contenir qu'un seul attribut Prix ou qu'un seul attribut Prix multiple. Il n'existe aucun moyen d'avoir en même temps dans un panier un produit mono prix et un produit multi-prix. Et d'ailleurs, il n'est pas recommandé d'utiliser simultanément sur un même site les deux datatypes Prix et Prix multiple.

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.
Le prix d'un objet peut être affecté par une Taxe sur la Valeur Ajoutée ou bien par une remise (règle de remise). Une règle de remise peut être configurée pour baisser le prix de x pour cent (%) de certains produits. Les clients peuvent ajouter des produits à leur liste d'achat ou à leur panier d'achat, ces deux éléments pouvant être modifiés à tout moment par le client. Le contenu du panier d'achat peut être acheté en initiant le processus de règlement. Une fois ce processus terminé, un ordre d'achat (une commande) est créé. Le système avertira automatiquement par mail l'administrateur du site et le client. Une liste des commandes (???) et les statistiques de vente peuvent être affichées à partir de l'interface d'administration. Une commande est assignée à un statut pouvant être modifié par un utilisateur ayant les droits suffisants. Une trace (des logs) des statuts est conservée pour chaque commande.

Value added taxes / Taxes sur la Valeur Ajoutée

The system allows the site administrator to set up different kinds of value added taxes (VAT types). A VAT type consists of a name and a percentage. The administration interface makes it possible to add, remove and modify VAT types. The VAT types are used by the price and multi-price datatype. There is an additional possibility to create VAT charging rules which instruct the system to charge VATs according to the product category and the buyer's country. (Please refer to the VAT charging system section of the "Features" chapter for more information.)
Le système permet à l'administrateur du site de paramétrer différentes sortes de Taxes sur la Valeur Ajoutée (différents types de TVA). Les types de TVA, constitués d'un nom et d'un pourcentage et pouvant être ajoutés, supprimés ou modifiés à partir de l'interface d'administration, sont utilisés par les deux datatypes Prix et Multi-prix. Il existe encore une autre possibilité de créer une TVA: en appliquant des règles qui indiquent au système d'appliquer la TVA en fonction de la catégorie du produit et du pays de résidence du client. Référez-vous à l'article Système d'application de la TVA de la section Fonctionnalités pour de plus amples informations.

The price datatype / Le datatype Prix

As pointed out above, a product is nothing more than a content object with a price. The price can be represented by an attribute that makes use of the built-in price datatype. Instances of any class containing the price datatype will automatically be treated as simple price 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).
Comme mentionné précédemment, un produit n'est rien d'autre qu'un objet de contenu affecté d'un prix pouvant être représenté par le datatype prédéfini Prix. Les instances de n'importe quelle classe contenant le datatype Prix seront automatiquement traitées en tant que produits mono prix. Un attribut de classe représenté par le datatype Prix utilise l'une des TVA prédéfinies. Il y a deux façon d'utiliser la TVA et sa configuration dépend de la manière d'entrer les prix des produits lors de la création des objets. La première méthode (Prix TTC) doit être utilisée lorsque les prix fixés incluent déjà la TVA. A l'inverse, la deuxième méthode (Prix HT) doit être utilisée lorsque les prix fixés excluent la TVA. Lorsque la première méthode est employée et que l'on affiche un produit, son prix est alors également affiché. Lorsque l'on emploie la seconde méthode et que l'on affiche un produit, alors le prix affiché correspond au prix fixé lors de la création de l'objet augmenté de la TVA. Lorsque le produit est placé dans le panier d'achat et que l'on visualise le contenu de ce dernier, il est possible de voir les prix HT et TTC du produit (et ceci indépendamment de la méthode choisie).

Please note that the price datatype allows to set only one price value for each product (the system will use your locale currency for when displaying this price). This datatype does not work with multiple currencies.
Retenez que le datatype Prix permet de ne fixer qu'un seul prix pour chaque produit (le système utilisera votre unité monétaire locale pour afficher les prix) et qu'il ne peut fonctionner avec plusieurs unités monétaires.

The multi-price datatype / Le datatype Prix multiple

The price can be represented by an attribute that makes use of the built-in multi-price datatype. This datatype allows you to set several prices in different currencies for each product independently of your locale currency. Instances of any class containing the multi-price price datatype are automatically treated as multi-price products. (Please refer to the Multi-currency section of the "Features" chapter for more information.) This datatype interacts with VATs in the same way as the price datatype.
Le prix peut être également représenté par un attribut utilisant le datatype Prix multiple. Ce dernier permet de fixer, indépendamment de votre monnaie locale, plusieurs prix dans plusieurs monnaies pour chacun des produits. Les instances de n'importe quelle classe contenant le datatype Prix multiples ont automatiquement traitées en tant que produits multi-prix. Référez-vous au paragraphe Multi-currency -- Gestion de plusieurs devises de la section Fonctionnalités pour de plus amples informations. Ce datatype interagit avec les TVA de la même manière que le datatype Prix.

Discount rules / Règles de remises

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).
Le prix final d'un produit peut être affecté par une règle de remise destinée à baisser le prix de x pour cent (%) de certains produits. Ces règles peuvent être placées dans différents groupes de règles de remises et sont toujours actives (il n'y a aucun moyen de les activer/désactiver). Les groupes de règles de remises permettent de choisir le(s) groupe(s) de clients qui seront affectés par les remises et ceci en assignant un groupe de règles de remise à un ou plusieurs groupes d'utilisateurs.

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.
Par défaut, une règle de remise nouvellement créée affecte tous les produits présents dans le système. Cependant, une telle règle peut être aisément limitée à un groupe de produits. Deux méthodes, l'une à l'exclusion de l'autre, peuvent être utilisées pour limiter une règle de remise. La première, une combinaison de Type de produits et de limitations affectées à une section, est décrite ci-dessous:

Limitation Description
Product type
Type de produit
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.
La limitation associée au Type de produit permet de limiter une politique à certains types de produits/objets (seules les classes utilisant le datatype Prix seront montrées). Le paramètre par défaut est Any (tout) ce qui signifie qu'elle affectera tous les types d'objets produit.
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.
La limitation associée aux Sections permet de limiter une politique à des produits/objets assignés à certaines sections. Le paramètre par défaut est Any (tout) ce qui signifie que la règle de remise affectera tous les objets de toutes les 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.
La deuxième méthode consiste à ajouter les produits à la liste de produits associée à la règle de remise. Lorsque la liste de ces produits est utilisée, les limitations affectées aux Types de produit et aux Sections seront omises et seuls les produits de la liste seront affectés.

Shop related datatypes / Les datatypes relatifs au e-commerce

The following table shows the datatypes that plug in to the e-commerce subsystem of eZ Publish.
Le tableau ci-dessous recense les datatypes fonctionnant avec le sous-système d'e-commerce de eZ Publish.

Datatype Description
Price
Prix
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. This datatype allows to set only one price value for each product (the system will use your locale currency for this price).
Lorsqu'il est utilisé comme attribut d'une classe de contenu, le dadatype Prix connecte les instances (i.e les objets) de cette classe au système de commerce en ligne. Dès qu'un objet contient un attribut Prix, les utilisateurs peuvent le mettre dans leur panier et/ou liste d'achats. Ce dadatype ne permet de fixer qu'un seul prix à chaque objet (et le système utilisera votre monnaie locale pour afficher les prix).
Multi-price
Prix multiple
When used as an attribute in a content class, the "Multi-price" datatype also connects the instances (objects) of that class to the webshop system. As soon as an object has a multi-price attribute, users can view its price in different currencies, put the object in their baskets and/or wishlists. Objects without a price or multi-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. The multi-price datatype allows you to set several prices in different currencies for each product.
Lorsqu'il est utilisé comme attribut d'une classe de contenu, le dadatype Prix multiple connecte les instances (i.e les objets) de cette classe au système de commerce en ligne. Dès qu'un objet contient un attribut Prix multiple, les utilisateurs peuvent voir son prix exprimé dans différentes monnaies et le mettre dans leur panier et/ou liste d'achats. Les objets sans attribut Prix ou Prix multiple ne peuvent être ajoutés à un panier et/ou une liste d'achats et ne sont donc pas connectés au sous-système d'e-commerce. Le datatype Prix multiple permet de fixer pour chaque produit plusieurs prix dans différentes monnaies.
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.
Le datatype Option permet de créer un seul groupe d'options pour chaque objet de contenu. Chaque option peut être assignée à un court texte et à un prix supplémentaire. Ce datatype peut être utilisé par exemple pour la vente de T-shirts de différentes couleurs et de prix différents pour certaines couleurs (ou pour toutes).
Multi-option
Option multiple

Note that this datatype should no longer be used. It was deprecated in eZ Publish 3.10 and is replaced by the "Multi-option2" datatype (see below).
Retenez que ce datatype ne doit plus être utilisé car il est déprécié depuis la version eZ Publish 3.10 dans laquelle il a été remplacé par le datatype Multi-option2 (voir ci-dessous).

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.
Le datatype Option multiple permet de créer de multiples groupes d'options pour chaque objet de contenu. Chaque option peut être assignée à un court texte et à un prix supplémentaire. Ce datatype fonctionne de la même manière que le datatype Option à la seule différence qu'au lieu de ne supporter qu'un seul groupe d'options il permet d'en créer plusieurs pour chaque objet de contenu.

Multi-option2
Option multiple 2
The "Multi-option2" datatype makes it possible to create multiple and distinctive groups of multi-options for each content object. The multi-options can be nested. For each option, you can specify an additional price, an image, whether the option should be the default selection and if it should be possible to select it (sometimes you wish to force the selection of a set of options without providing a default selection for the user; in that case, the first option can be set to something like "Make a choice"). In addition, this datatype makes it is possible to set up rules for allowing/disallowing certain combinations of options.
Le datatype Option multiple 2 permet de créer de multiples et distincts groupes d'options multiples pour chaque objet de contenu. Les options multiples peuvent être imbriquées. Vous pouvez, pour chaque option, assigner un prix supplémentaire, une image, définir si l'option doit être la sélection par défaut et s'il sera possible de la sélectionner (vous souhaiterez parfois forcer la sélection d'un jeu d'options sans fournir à l'utilisateur de sélection par défaut; dans ce cas, la première option peut être paramétrée avec une valeur telle que Faites un choix). Par ailleurs, ce datatype permet de définir des règles autorisant ou non certaines combinaisons d'options.
Range-option
Option d'étendue
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).
Le datatype Option d'étendue permet de créer pour chaque objet de contenu un seul groupe d'options énumérées. Il peut par exemple servir dans une situation où l'objectif est de vendre des chaussures de différentes tailles sans que la taille n'affecte le prix. Pour chaque objet de contenu, l'administrateur doit paramétrer l'étendue disponible (s'il y en a une).

Commentaires