source: spip-zone/_plugins_/optionsproduits/trunk/README.md @ 111358

Last change on this file since 111358 was 111358, checked in by nicod@…, 9 months ago

Mise à jour de la pseudo doc (en attendant un vrai article)

File size: 3.0 KB
Line 
1# Gérer des options sur des produits
2
3## v1.3.0 ##
4
5Les options peuvent être associées à tous les objets éditoriaux, pas uniquement les produits.
6L'association se fait dans la configuration du plugin (liste des objets à cocher).
7Les plugins produits et prix deviennent donc optionnels.
8
9Pour gérer des options sur un objet patate, on pourra par exemple ajouter un champ prix (et taxe) dans la définition de l'objet patate.
10
11Et si on utilise le plugin Panier, comme on ne sait pas boucler sur une table de façon dynamique on pourra créer un formulaire/panier_patate_options.htm et .php en copiant/adaptant celui des produits (panier_produit_options).
12
13On pourra ensuite utiliser #FORMULAIRE_PANIER_PATATE_OPTIONS{#ID_PATATE}
14 
15## v1.0.0 ##
16
17Le plugin gère des groupes d'options, dans lesquels on crée des options.
18
19Chaque option a un prix HT par défaut (positif ou négatif), qui s'ajoute au prix de base du produit.
20
21Sur chaque produit, on choisit quelles options on lui affecte. 
22On peut aussi modifier le prix de l'option sur le produit, pour avoir un prix différent du prix par défaut de l'option.
23
24Côté public, les options sont proposées sous forme de boutons radio, classées par groupes. 
25Le prix HT des options est ajouté au prix HT du produit, et la TVA s'applique donc sur le total. 
26Un script JS mets à jour visuellement le prix TTC du produit en fonction des options choisies.
27
28Les options sont transmises aux paniers puis aux commandes. 
29La surcharge de formulaires/panier permet d'afficher le nom du produit avec toutes les options choisies.
30
31## Pour tester
32
33Pour afficher le formulaire de choix des options et d'ajout au panier, utiliser #FORMULAIRE_PANIER_PRODUIT_OPTIONS{#ID_PRODUIT} dans le contexte d'un produit.
34
35## Notes techniques
36
37A l'installation, ajout d'un champ 'options varchar(100)' dans les tables spip_paniers_liens et spip_commandes_details
38
39La clé primaire composée de spip_paniers_liens est supprimée et recréée avec ces champs : (id_panier, id_objet, objet, options)
40
41Surcharges du plugin panier pour tenir compte des options :
42
43- action/commandes_paniers.php
44- action/remplir_panier.php
45- formulaires/panier.html
46- formulaires/panier.php
47
48## TODO
49
50**1 - Choix des options**
51
52Actuellement, côté public, on ne peut choisir qu'une option par groupe.
53
54Proposer une configuration pour chaque groupe, qui permettrait d'en choisir soit une seule soit plusieurs (radio/checkbox).
55
56**2 - Problème à l'installation**
57
58Si la table spip_paniers_liens contient déjà des données, la création de la nouvelle primary key composée génère une erreur sur un serveur Mysql (Duplicate entry ...).
59
60Deux solutions :
61
621/ vider la table spip_paniers_liens
63
642/ passer par une clé autoincrement temporaire : 
65
66ALTER TABLE `spip_paniers_liens` ADD `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY; 
67ALTER TABLE `spip_paniers_liens` ADD UNIQUE KEY  (`id_panier`, `id_objet`, `objet`, `options`); 
68ALTER TABLE `spip_paniers_liens` DROP `id`;
69 
70mais ça ne marche pas sur tous les serveurs Mysql
Note: See TracBrowser for help on using the repository browser.