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

eZ Publish : Selling Pay-Per-Download Products - Vendre des produits à télécharger (dématérialisés)

Table des matières

  1. Selling Pay-Per-Download Products - Vendre des produits à télécharger (dématérialisés)
  2. The buyer experience -- L'expérience client
  3. Setting up the product and permission structure -- Mise en oeuvre du produit et des permissions
  4. Payment process -- Processus de paiement
  5. Extension: Assigning permissions upon purchase part 1 -- Extension: assignation des droits à l'achat (partie 1)
  6. Pay-per-download extension part 2 -- Extension Pay-per-download (partie 2)
  7. Confirmation e-mails and pages -- Mails et pages de confirmation
  8. Extra considerations -- Considérations complémentaires
  9. Paypal Sandbox : comptes de test et devises
  10. Modification pour eZ Publish 4.3+

Extra considerations -- Considérations complémentaires

Date de publication: le vendredi 28 janvier 2011 à 00h52
Dernière modification: par Pascal BOYER le mardi 29 mars 2011 à 16h19

31-08-2009 12:00

Versions: 4.x

This article has provided a working framework for a pay-per-download solution on eZ Publish. However, there are many ways that you could improve or customize it to suit your needs.
Cette série d'article vous a proposé la mise en place, sur une installation eZ Publish, d'un framework pour une solution de téléchargement après paiement. Il existe cependant de nombreux moyens d'améliorer ou de personnaliser ce framework afin qu'il réponde à vos besoins.

Order history / Historique des commandes

The eZ Publish "shop" module has a view for an order history intended for site administrators to view all orders made on the site. Therefore, it is not suitable to allow normal users to access this view. However, you can create your own module and view based on what eZ Publish already provides, in order to show a user only their order history. A sample module called "orderhistory" is provided in the sample extension download (see below).
Le module shop de eZ Publish propose une vue permettant d'afficher l'historique des commandes et destinée aux administrateurs des sites afin qu'ils visualisent l'ensemble des commandes réalisées sur leur site. Bien qu'il ne soit évidemment pas recommandé d'autoriser les utilisateurs lambda à accéder à cette vue, vous pouvez tout de même créer votre propre module et votre propre vue en vous basant sur ce que eZ Publish fournit déjà afin de présenter à chaque utilisateur l'historique de ses propres commandes. Un module d'exemple nommé orderhistory est fourni dans l'exemple d'extension téléchargeable (voir au bas de l'article).

You can link to its "view" view (which takes one parameter: the user's ID) of such an order history module in another template, such as in a user's "My profile" page.
Vous pouvez lier la vue view (qui prend pour unique paramètre le ID de l'utilisateur) d'un tel module d'historique de commandes à un autre template, comme par exemple le template d'affichage de la page Mon profile de l'utilisateur.

Other workflow uses / Autres utilisations d'un workflow

With the workflow extension as a starting point, here are a couple of the many other use cases for a pay-per-download solution that you could add with some extra coding:
En considérant l'extension workflow comme point de départ, nous pouvons imaginer d'autres cas d'usage pour la solution Télécharger après paiement que nous pouvons implémenter avec un peu de code supplémentaire:

  • If you are selling software with product keys and have an existing product key generator, you could trigger this generator whenever someone purchases that product. Using the resulting key, you could create a new object with that key, and give the current user access to that object.
    Si vous vendez des logiciels associés à des clefs produit et que vous possédez un générateur de telles clefs alors vous pouvez déclencher ce générateur chaque fois qu'une personne achète un produit. En utilisant la clef résultante vous pouvez créer un nouvel objet et donner à l'utilisateur courant l'accès à cet objet.
  • Assign access to a particular section (via the assignment of a role or by moving the user to another group) to support the purchase of value-added website content (for content subscriptions and the like). Instead of buyers getting access to specific files, they receive access to entire areas of the site.
    Assigner l'accès à une section particulière (via l'assignation d'un rôle ou en déplaçant l'utilisateur dans un autre groupe) pour supporter l'achat de contenus de site web à valeur ajoutée (???) (pour les abonnements à des contenu, etc...). Au lieu que les acheteurs obtiennent l'accès à des fichiers particuliers, ils obtiendront l'accès à toute une zone du site.

Limitations and other possibilities / Limitations et autres possibilités

Here are some limitations of the example extension and some hints on how to overcome them:
Ci-dessous, quelques limitations liées à notre exemple d'extension et quelques conseils pour les contourner:

  • To support multiple downloads per product, use an attribute of the "Related objects" datatype (instead of the "Related object" datatype we used), then in your workflow code (and all the templates that display details of an order), loop through all of the related objects.
    Pour prendre en charge plusieurs téléchargements par produit, utilisez un attribut basé sur le datatype Relation d'objets (en lieu est place du datatype Relation d'objet que nous avons utilisé). Dans le code de votre workflow (ainsi que dans tous les templates qui affichent les détails de la commande) bouclez (listez) alors tous les objets liés.
  • In our example, we've assumed that the buyer will complete payment via PayPal. You can install different gateways or even accept offline payments.
    Dans notre exemple, nous avons supposé que l'acheteur validera son paiement via Paypal. Mais vous pouvez installer d'autres passerelles de paiement et même accepter les paiements hors-ligne.
  • Neither the eZ PayPal extension nor the example pay-per-download extension change the order status after they've run. Therefore, by default the order statuses will all say "Pending". In the case of a pay-per-download situation, you have probably completed the entire buying loop and it might be useful to distinguish this as "Completed" or "Delivered". You can edit order statuses in the "Webshop > Order status" page of the "Administration Interface" and then employ the usage of eZOrder::modifyStatus() in whatever shop-related extension you use.
    Après leur exécution, ni l'extension Paypal ni l'extension d'exemple Télécharger après paiement ne modifie le statut de la commande. Par défaut, les statuts de la commandes indiqueront tous En attente. Dans une situation de Télécharger après paiement vous avez probablement terminé entièrement la boucle de paiement (???) et il peut être utile de distinguer le caractère Terminé ou Délivré de ce dernier. Vous pouvez éditer les statuts de la commande à partir de la page Boutique -> Statut de la commande de l'interface d'administration puis utiliser eZOrder::modifyStatus() dans n'importe laquelle de vos extensions liées au module shop.

Resources

Click here to download the example pay-per-download extension.
Cliquez sur ce lien pour télécharger notre exemple d'extension pay-per-download.

Thanks to Lukasz Serwatka for the technical editing on the article!
Merci à Lukasz Serwatka pour la supervision technique qu'il a apportée à cet article.



Table des matières

  1. Selling Pay-Per-Download Products - Vendre des produits à télécharger (dématérialisés)
  2. The buyer experience -- L'expérience client
  3. Setting up the product and permission structure -- Mise en oeuvre du produit et des permissions
  4. Payment process -- Processus de paiement
  5. Extension: Assigning permissions upon purchase part 1 -- Extension: assignation des droits à l'achat (partie 1)
  6. Pay-per-download extension part 2 -- Extension Pay-per-download (partie 2)
  7. Confirmation e-mails and pages -- Mails et pages de confirmation
  8. Extra considerations -- Considérations complémentaires
  9. Paypal Sandbox : comptes de test et devises
  10. Modification pour eZ Publish 4.3+