You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
nicod_ 9d1b28c9a5 Up de x pour nouvelle version SPIP 4+ et release 2 days ago
action Renommages pour y voir plus clair entre options de produits et options du panier 2 days ago
base PSR / Formatage 2 days ago
formulaires Renommages pour y voir plus clair entre options de produits et options du panier 2 days ago
inc PSR / Formatage 2 days ago
javascript Un formulaire générique pour ajouter n'importe quel objet avec ses options au panier (cf README.md) 4 years ago
lang PSR / Formatage 2 days ago
prive Cosmétique et lisibilité 2 days ago
prix Passer les options _du panier_ aux fonctions de calcul 2 days ago
prix_option Renommages pour y voir plus clair entre options de produits et options du panier 2 days ago
saisies Un plugin qui gère des options sur les produits. 5 years ago
saisies-vues Un plugin qui gère des options sur les produits. 5 years ago
README.md Up de x pour nouvelle version SPIP 4+ et release 2 days ago
optionsproduits_administrations.php Changer le caractère séparateur d'options, d'un pipe on passe à un underscore 2 days ago
optionsproduits_autorisations.php PSR / Formatage 2 days ago
optionsproduits_fonctions.php Renommages pour y voir plus clair entre options de produits et options du panier 2 days ago
optionsproduits_pipelines.php Correction d'erreurs fatales sur SPIP 4 (merci touti) 2 days ago
paquet.xml Up de x pour nouvelle version SPIP 4+ et release 2 days ago

README.md

Gérer des options sur des produits

v2.0.0

Compatible SPIP 4.0 et 4.1 La branche v1 reste pour compatibilité SPIP 3.2

v1.4.0

On peut activer dans la config la gestion du poids des options, qui s'ajoute alors aux produits (comme les prix). Un champ 'obligatoire' sur les groupes d'options, qui oblige côté front à choisir au moins une de ses options pour l'ajout au panier. Version stable, utilisée en prod sur plusieurs sites.

v1.3.2

Les options peuvent être associées à tous les objets éditoriaux, pas uniquement aux produits. L'association se fait dans la configuration du plugin (liste des objets à cocher). Les plugins produits et prix deviennent donc optionnels. Pour 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.

Un formulaire générique permet d'ajouter un objet et ses options au panier. Exemple : #FORMULAIRE_PANIER_OPTIONS{patate, #ID_PATATE} à utiliser dans une <boucle_(PATATES)>

v1.0.0

Le plugin gère des groupes d'options, dans lesquels on crée des options.

Chaque option a un prix HT par défaut (positif ou négatif), qui s'ajoute au prix de base du produit.

Sur chaque produit, on choisit quelles options on lui affecte.
On 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.

Côté public, les options sont proposées sous forme de boutons radio, classées par groupes.
Le prix HT des options est ajouté au prix HT du produit, et la TVA s'applique donc sur le total.
Un script JS mets à jour visuellement le prix TTC du produit en fonction des options choisies.

Les options sont transmises aux paniers puis aux commandes.
La surcharge de formulaires/panier permet d'afficher le nom du produit avec toutes les options choisies.

Notes techniques

A l'installation, ajout d'un champ 'options varchar(100)' dans les tables spip_paniers_liens et spip_commandes_details

La clé primaire composée de spip_paniers_liens est supprimée et recréée avec ces champs : (id_panier, id_objet, objet, options)

Surcharges du plugin panier pour tenir compte des options :

  • action/commandes_paniers.php
  • action/remplir_panier.php
  • formulaires/panier.html
  • formulaires/panier.php

TODO

1 - Choix des options

Actuellement, côté public, on ne peut choisir qu'une option par groupe.

Proposer une configuration pour chaque groupe, qui permettrait d'en choisir soit une seule soit plusieurs (radio/checkbox).

2 - Problème à l'installation

Si 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 ...).

Deux solutions :

1/ vider la table spip_paniers_liens

2/ passer par une clé autoincrement temporaire :

ALTER TABLE spip_paniers_liens ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY;
ALTER TABLE spip_paniers_liens ADD UNIQUE KEY (id_panier, id_objet, objet, options);
ALTER TABLE spip_paniers_liens DROP id;

mais ça ne marche pas sur tous les serveurs Mysql