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

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

Un formulaire générique pour ajouter n'importe quel objet avec ses options au panier (cf README.md)

File size: 2.7 KB
Line 
1# Gérer des options sur des produits
2
3
4## v1.3.2 ##
5
6Les options peuvent être associées à tous les objets éditoriaux, pas uniquement aux produits.
7L'association se fait dans la configuration du plugin (liste des objets à cocher).
8Les plugins produits et prix deviennent donc optionnels.
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
11Un formulaire générique permet d'ajouter un objet et ses options au panier.
12Exemple : #FORMULAIRE_PANIER_OPTIONS{patate, #ID_PATATE} à utiliser dans une <boucle_(PATATES)>
13
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## Notes techniques
32
33A l'installation, ajout d'un champ 'options varchar(100)' dans les tables spip_paniers_liens et spip_commandes_details
34
35La clé primaire composée de spip_paniers_liens est supprimée et recréée avec ces champs : (id_panier, id_objet, objet, options)
36
37Surcharges du plugin panier pour tenir compte des options :
38
39- action/commandes_paniers.php
40- action/remplir_panier.php
41- formulaires/panier.html
42- formulaires/panier.php
43
44## TODO
45
46**1 - Choix des options**
47
48Actuellement, côté public, on ne peut choisir qu'une option par groupe.
49
50Proposer une configuration pour chaque groupe, qui permettrait d'en choisir soit une seule soit plusieurs (radio/checkbox).
51
52**2 - Problème à l'installation**
53
54Si 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 ...).
55
56Deux solutions :
57
581/ vider la table spip_paniers_liens
59
602/ passer par une clé autoincrement temporaire : 
61
62ALTER TABLE `spip_paniers_liens` ADD `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY; 
63ALTER TABLE `spip_paniers_liens` ADD UNIQUE KEY  (`id_panier`, `id_objet`, `objet`, `options`); 
64ALTER TABLE `spip_paniers_liens` DROP `id`;
65 
66mais ça ne marche pas sur tous les serveurs Mysql
Note: See TracBrowser for help on using the repository browser.