Le plugin Catalogue a été créé en vue de :
- mettre rapidement en place un système permettant de proposer aux visiteurs une sélection d’articles avec prix, variantes et options
- permettre la création de “transactions” composées d’un couple produit + personne
L’évolution naturelle vers un système permettant de gérer des paniers et du paiement en ligne (boutique) est seulement envisagée (pour l’instant). Catalogue est conçu pour fonctionner avec le plugin Contacts & Organisations (C&O).
Le plugin Catalogue n’ajoute pas de table produits ou spip_produits mais se sert de la table native spip_articles pour stocker les produits du catalogue.
Le plugin Catalogue fonctionne au sein même de l’architecture SPIP d’articles et de rubriques. N’importe quel article du site peut être considéré comme un article de catalogue, il suffit pour cela d’y ajouter quelques informations supplémentaires (prix, taxes...). Ainsi l’on conserve le système natif de hiérarchie de SPIP, les documents joints, les auteurs, etc. et l’écriture d’un squelette de catalogue en est grandement facilitée.
Les « variantes »
Les informations supplémentaires relatives à un article de catalogue sont saisies sous la forme de “variantes”. Un article peut contenir une ou plusieurs variantes. Une variante contient les informations de prix, descriptif, taxes. Le principe est qu’on ne peut sélectionner qu’une seule variante de produit à la fois.
Pour l’instant Catalogue ne gère pas les “variantes de variantes” : par exemple un modèle de tee-shirt, proposé en 3 couleurs bleu, jaune et vert (1ère variante : couleur) chaque couleur existant en tailles L, XL ett XXL (2nde variante : taille).
Les « options »
Les options sont similaires aux variantes, à la différence que plusieurs d’options peuvent être sélectionnées en même temps. De même une option peut être attachée à un ou plusieurs articles. Le choix a été fait que les options n’ont pas d’existence propres en tant qu’article séparé.
Une évolution possible du plugin pourra être qu’une option soit définie en tant qu’article pouvant être sélectionné seul. Pour l’instant ce n’est pas le cas
Installation
Les fichiers du plugin Catalogue sont téléchargeables depuis la zone de SPIP.
Exemples
Exemple 1 : une conférence est proposée avec 5 prix différents selon la date de réservation ou le type de personne invitée. La conférence est un article, et les 5 prix sont 5 variantes.
Exemple 2 : un voyage est organisé avec 3 options différentes selon le type de prestation souhaité; de plus chaque option est proposée avec un tarif différent selon la date de réservation : tarif pré-vente, tarif réservation, tarif normal. Dans ce cas il faut un article pour chaque option; la sélection de ces 3 articles en vue de les présenter ensemble sur une page, peut être opérée sur la rubrique de ces articles, ou même un mot-clé. Ensuite, les variantes de ces produits peuvent être affichées (ou cachées) par exemple sur le critère de date. les variantes peuvent avoir les mêmes statuts que les articles (prepa, publie, redac, etc.)
Documentation
Principe
Avec le plugin Catalogue, vous pouvez transformer n’importe quel article de votre site SPIP en un article de catalogue. Pour cela, vous ajoutez simplement les informations concernant son prix (prix_ht), et éventuellement la taxe appliquée (tva), la disponibilité (statut) et la date de commercialisation (date_redac) depuis l’interface privée.
Réalisation
Ces informations sont stockées dans une nouvelle table SPIP, liée à la table des articles, la table spip_cat_variantes. Ainsi les articles proposés au catalogue se manipulent comme n’importe quels articles SPIP, avec leurs rubriques, sous-rubriques, auteurs, mots-clé, documents joints. Plusieurs variantes peuvent être attribuées au même article, par exemple avec des prix différents selon les dates de commande.
Fonctionnement
Imaginons que vous souhaitiez proposer la réservation en ligne de places pour un concert rock. Vous allez tout d’abord décrire le concert, l’habiller de photos, de vidéos, de mots clés, de liens, etc. Tout ceci sera fait dans un article SPIP tout a fait classique. Maintenant, vous souhaitez proposer 3 tarifs pour les places : un tarif “pré-vente” à 20€, un tarif “réservation” à 30€ et un tarif “sur place” à 45€.
Actuellement : Ajout manuel en phpMyAdmin
En cours de dév : depuis l’interface d’administration, éditez votre article, puis cliquez sur le bouton : “Ajouter au catalogue”.
De là, vous êtes invités à spécifier au moins une “variante”, en indiquant le titre de la variante et prix. Dans notre cas, on commence par insérer la variante “tarif pré-vente” avec l’info prix “20€”. Si vous déclarez la TVA et que le prix est un prix TTC, il faut faire un petit calcul pour trouver le prix HT et indiquer la vraie valeur de la TVA, ou bien indiquer le prix TTC dans la case “prix_ht” et mettre la valeur de la taxe à 0.
On peut faire la même chose avec les variantes 2 et 3 à respectivement 30 et 45€.
Utilisation des boucles
Désormais, dans vos squelettes vous pouvez utiliser une nouvelle boucle <BOUCLE_v(CAT_VARIANTES)>
au sein de vos boucles articles, avec comme critère éventuel {id_article}
. Cette boucle vous proposera les champs suivants :
- #ID_ARTICLE
- #ID_VARIANTE
- #TITRE
- #DESCRIPTIF
- #PRIX_HT
- #TVA
- #DATE
- #DATE_REDAC
- #MAJ
Filtres
Pour bien afficher les montants en Euros avec 2 chiffres après la virgule, utilisez le filtre ’monetaire’.
Modèles livrés en standard
Dans le #TEXTE d’un article vous pouvez utiliser le modèle <fiche>
qui affichera les informations de prix relatives au produit que vous avez passé en paramètre.
Discussions by date of activity
10 discussions
Bonjour,
quelqu’un sait-il si ce plugin sait gérer un panier qui “s’actualise” en fonction des options (variantes) choisies ? Merci d’avance...
“catalogue” est en chantier et seulement pour spip2.1. Il vaut donc probablement mieux voir du côté du plugin produit https://plugins.spip.net/produits.html qui est parfaitement interfacé avec la suite ecommerce de spip
Reply to this message
Bonjour,
J’essaie ce plugin qui me parait très approprié pour l’insertion de quelques produits sur un site existant ; je n’ai pas trouvé le modèle mais cela ne devrait pas être trop compliqué à faire avec les exemple de boucles ci-dessus.
Étape ultime : vendre un produit ! Est-il possible de lier le catalogue aux plugins panier et transaction ? (peut-être que cela existe déjà mais je ’ai pas trouvé non plus)
merci
dd
Reply to this message
bonjour
Je tente de faire l’install de cette multitude de plugin, lorsque je veux activer le dernier “zabonnement” j’ai le droit à ceci
Fatal error: Call to undefined function selecteurgenerique_verifier_js() in C:\Program Files (x86)\EasyPHP-5.3.8.1\www\zboutic\plugins\auto\zabonnement\abonnement_pipelines.php on line 50
la version est la 1.4.1
c’est normal docteur ?
Merci
et de ce fait je ne peux donc pas activer le “zcommerce” pour tester l’ensemble
Merci
c’est lié soit au plugin zabonnement
soit (plus vraisemblablement) au plugin selecteur générique
bonsoir je viens enfin de reussir à activer les 32 plugins nécessaires .... ouffff
je refaire toute la manip demain car la en passant simplement en "visite du site j’ai des tas d’erreurs qui s’affichent
Reply to this message
Bonjour, bonjour.
Concernant les variantes (et les options), je me demandais si les champs date, date_modif, et statut avaient quelque utilité actuellement et quel pourrait être leur(s) usage(s) futur(s).
Merci.
Bonjour.
Je relis attentivement la documentation et je vais : «Plusieurs variantes peuvent être attribuées au même article, par exemple avec des prix différents selon les dates de commande.»
Cela va un peu dans le sens de mon besoin actuel, mais je me demande si de facon générale il ne vaut pas mieux avoir des champs “date_debut” et “date_fin” ?
Merci de me dire si c’est une bonne idée et si je peux fair la modification.
Reply to this message
Bonjour,
je suis sur SPIP 2.1.11 [18566] et tente une installation de catalogue en local avec Mamp
Plugin Catalogue Catalogue Version : 1.5.0 [52700] bien activé avec Afficher Objets
1.2.1 contact& .. panier ....
cfg ok régler et variante ajouter à 1 article "
mais
j’ai le message suivant
Table SQL « VARIANTES » inconnue
après avoir copier le code suivant dans mon squelette article
#TITRE
#DESCRIPTIF
#PRIX_HT
#TVA
#DATE
#DATE_REDAC
j’ai peut être loupé une étapes :::
Actuellement : Ajout manuel en phpMyAdmin ???
j’ai bien les tables suivantes ::
spip_cat_options et spip_cat_variantes
merci pour tous vos efforts
ET GRAND REMERCIEMENT A L’ EQUIPE SPIP ET AUX NOMBREUX CONTRIBUTEURS AU PASSAGE
fabien
oup
le code suivant
La documentation doit être mise à jour : la table variantes (resp. options) a été rebaptisée cat_variantes (resp. cat_options)...
Du coup l’exemple devient :
Reply to this message
où trouve t-on le plugin afficher_objets ?
Utiliser STEP vous permettrait d’éviter d’avoir à gérer les dépendances entre plugin à la main; pour installer STEP : configuration > gestion des plugins, puis ajouter un plugin, et coller l’url du zip qui se trouve ici : http://files.spip.org/spip-zone/step.zip
En installant le plugin Catalogue au moyen de STEP, vous n’auriez pas eu de message d’erreur : STEP aurait trouvé tout seul les dépendances, et aurait uinstallé tous les plugins nécessaires, sans intervention manuelle.
Cela dit, sans utilser STEP, pour installer le plugin afficher_objets, même procédure : le zip se trouve dans le même dossier : http://files.spip.org/spip-zone/afficher_objets.zip.
Bonne utilisation,
Cyril
STEP est dans les choux : il a atteint ses limites :)
Reply to this message
Bonjour,
Est-ce compatible avec SPIP 2.1?
Oui... Je l’utilise avec la 2.1.9
Reply to this message
Installation avec STEP : ok (il y a des dépendances qui ne sont pas mentionnées dans la présente documentation, mais bon c’est encore en chantier..)
Rendez-vous dans la configuration CFG pour choisir la rubrique qui accueillera le catalogue : ok (à préciser aussi dans la présente documentation : en fait il manque une section “installation”)
Création d’un article de présentation dans la rubrique idoine : jusque là tout se passe bien.
Validation.. et je suis gentiment averti :
On clique sur “ajouter une variante” et on renseigne tous les champs : en cliquant sur “Enregistrer”, on est alors conduit à l’adresse /ecrire/?exec=variante_edit&retour=.%2F%3Fexec%3Darticles%26amp%3Bid_article%3D3017
Je suspecte un problème au niveau du formulaire : est-ce que les informations sont bien envoyée ? Je vais voir dans la table
cat_variantes
et une ligne est effectivement crée, mais tout y est à0
!Je rentre donc manuellement les informations et réaffiche mon article/produit : ça marche... Je clique sur le bouton d’ajout d’une variante et même galère que précédemment... même constat quand à la base.. rajout manuel qui fonctionne aussi..
Question annexe : à quoi servent le statut (qui est listé sous forme numérique) et les dates qui sont demandées ?
Rendez-vous ensuite dans Edition > Plugin Catalogue : toujours “Aucun article n’est encore dans le catalogue” :( Que manque t-il ?
En rentrant les variantes à la main, j’ai noté l’absence de clés primaires sur les tables
cat_variantes
etcat_options
:S Du coup j’ai rapatrié le zip en local pour jeter un œil aux sources...cat_variantes
ne correspondait pas du tout :id_cat_variante
n’est en effet pas une clé primaire (donc pas en auto-incrément) ;id_article
n’est ni une clé étrangère (bon, c’est des tables ISAM donc ça joue pas) ni indexé (ce qui serait la moindre des choses) ;statut
est un entier et non une chaine variable de 10 caractères ;prix_ht
ettva
sont bien des nombres décimaux mais formatés à 10,0 et non 6,2 et 4,3 (à ce propos, j’avais cru comprendre qu’il fallait toujours prévoir un chiffre de plus de part et d’autre —mantisse et décimale— pour prévoir les débordements car tous les SGBD ne gèrent pas ça correctement, mais suis plus sûr faut que je retrouve la référence) ;maj
est absent...cat_options
ne correspond pas non plus :id_cat_option
n’est pas non plus une clé primaire (encore moins en auto-incrémentation) ettitre
est du text (pas tiny)... Les autres champs sont purement absents !ni de
cat_lignes_transactions
non plus... (ceux-là n’existent plus à partir de la version 1.5.0 si je comprends bien)Je suppose que je suis victime de l’installation d’une très vieille beta (ce qui expliquerait la si grande différence de structures, d’autant plus que STEP a estimé que l’installation s’est bien déroulée —même s’il n’y a pas eu de tables de créés— mais je ne sais pas pourquoi l’upgrade n’a pas fonctionné...)
Bref, une fois les corrections faites, le bug a disparu. Par contre :
J’avais mal vu : j’avais bien une vieille table
transaction</conde> et la table auxiliaire existait mais s'appelait <code>options_articles
(sans le préf.xe). Visiblement quelque-chose a du foirer (mais silencieusement) pendant la mise-à-jour (je me souviens avoir installé il y a très longtemps —ça devait être encore une bêta si j’ai bonne mémoire— puis avoir désinstallé mais n’avais pas pensé à supprimer les bases crées.)À l’état actuel, je n’ai plus d’erreur. Le modèle
<variantes>
fonctionne, mais pas les modèles<fiche>
et<options>
.Reply to this message
Bonjour,
Je tente de faire marcher ce plugin, mais c’est laborieux, compte-tenu du peu d’infos sur les démarches après avoir fait l’install. D’après mon enquête, il existe des fichiers (inc/liste_familles.html, inc/liste_formules.html, etc...) qui m’aideraient à générer l’affichage des produits, mais ils ne sont pas présents dans le zip que je viens de télécharger. Puis-je me fier à ce que j’ai trouvé sur cette page http://www.codes-libres.org/visual/spip.php?rubrique87#sommaire ?
Merci d’avance.
Questions subsidiaires : est-il possible d’importer une liste de produits (12000 références) dans le catalogue, plutôt que d’avoir à le faire à la mimine ? + Ce plugin fonctionne-t-il sous spip 2.1.8 ?
Merci !!
Bonjour,
Merci de votre intérêt pour le plugin catalogue.
Pour répondre à vos questions, dans l’ordre :
Pour l’affichage des produits
Il faut utiliser des boucles #VARIANTES dans vos squelettes. Par exemple, pour faire afficher tous les produits du site, on peut utilsier une boucle #VARIANTES similaire à celle-ci :
Veuillez noter que les infos officielles du plugin catalogue sont publiées ici, sur spip-contrib; je ne suis pas au courant de ce qui est publié ailleurs, notamment sur codes-libres.
Pour l’import d’une base d’articles
La seule manière de faire (pour l’instant [1]) est d’utilsier phpMyAdmin, et de créer des requetes pour importer vos données.
Il faut tout d’abord “mapper” [2] les champs de votre base à importer, avec les champs des tables SPIP, en tenant compte du fait que : 1 produit = 1 article SPIP, 1 déclinaison du produit [3] = 1 variante.
Veuillez noter que les articles SPIP sans variante sont des articles éditoriaux “normaux”, les articles avec une variante associée, deviennent des produits au sens “produit du plugin catalogue”.
Une deuxième étape consisterait à placer votre table d’articles dans la même base que SPIP (par exemple une table “mes_produits”) afin de simplifier les requêtes. On pourrait supposer que cette table contienne les champs suivants :
- nom du produit (nom),
- référence (ref) en clé unique
- prix (prix),
- descriptif (descriptif)
Notez bien qu’il s’agit d’un exemple a minima et que la structure de votre table peut différer. A vous de faire correspondre les champs de votre table avec les champs des tables spip_articles et spip_variantes.
Ensuite, en étape 3, il faudrait éxécuter une requete qui créerait les articles SPIP correspondants. Si on prévoit de regrouper tous ces articles dans une rubrique “Catalogue”, et que cette rubrique porte le N°1, cette requete pourrait etre de la forme :
Vous devriez vérifer que les articles ont bien été créés dans la table spip_articles. Vous noterez que la référence des produits a été stockée provisoirement dans le champ soustitre, pour que l’on puisse faire correspondre ensuite un article avec sa variante. Si la clé unique de votre produit est autre, n’hésitez pas à la remplacer.
Il faudrait ensuite, en étape 4, créer les variantes nécessaires, peut-etre avec une requete inspirée de celle-ci :
Il faudrait vérifier que les variantes ont bien été crées, et que leur champ titre comporte la référence du produit.
Maintenant, en étape 5, il faudrait réunir les 2 tables spip_articles et spip_variantes, en mettant à jour le numéro d’article correspondant, dans chaque variante. Cela pourrait être fait avec une requête du type :
A partir cet instant, vous devriez pouvoir gérer l’ensemble des produits de votre table ’mes_produits’ depuis l’interface privée de SPIP, et les faire afficher avec de simples squelettes contenant des boucles #VARIANTES sur vos pages publiques.
Fonctionnement sous SPIP 2.1.8
Oui, le plugin fonctionne sous SPIP 2, pas de problème.
N’hésitez pas à poster ici vos autres questions, même si les réponses prennent du temps....
—
Cyril
Et bien là, je suis épatée par votre réponse. Mille mercis à vous d’avoir pris le temps de me répondre ainsi.
D’autant que je n’ai jamais mis les mains “dans le cambouis” à ce niveau-là, mais je pense qu’avec de telles explications, je devrais me sentir sur un chemin bien balisé.
Je vais tenter l’expérience au plus tôt et je vous dirai tout çà.
Un grand merci à vous !
Je reviens sur mon problème d’import des produits depuis un fichier xls. Malheureusement, mon client dispose uniquement de son stock sous excel et il aura à faire une mise à jour quotidiennement. Ce qui veut dire qu’il ne pourra pas éditer chaque produit à la main pour mettre à jour ses 12000 références.
Je me suis donc tournée vers d’autres pistes, en partant de sa demande d’intervention minimale : une seule opération pour lui : relier son stock sous xls ou pdf à un article du site. Et pour moi, gérer le reste : à savoir qu’il faut que je puisse interroger ce document pour répondre par exemple à une recherche de référence ou de marque. Ma réponse doit se trouver dans les itérateurs, mais je crois que j’atteins mes limites !! Merci encore pour cette explication. Je la garde sous le coude...
Reply to this message
Bonjour,
Je suis très intéressée par ce plugin en développement. J’ai en effet besoin d’intégrer un système de réservation de rendez-vous en ligne pour une société de service à la personne.
Pouvez-vous me dire si cette fonctionnalité est désormais opérationnelle ? ou me guider vers une autre solution que je n’aurais pas trouvée ? (car il me semble que la démarche décrite dans votre article est un peu différente de ce que je recherche : sur un planning, le visiteur choisirait un créneau horaire pour bénéficier du service en question ; il n’y aurait donc qu’un événement - le service en question - avec des créneaux horaires disponibles/déjà retenus).
Mille mercis d’avance !
Reply to this message
Add a comment
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Follow the comments:
|
