Module v1.3.0
Configurer Catalogue
Présentez vos produits à prix fixe, organisés par catégories, et composez des formules à partir de plusieurs produits.
Ce qu'il fait
Vitrine d'offres à prix fixes : produits catégorisés (image, prix, attributs libres orientés BAT) + formules composées de plusieurs produits avec leur propre prix. Jamais un panier, jamais un paiement : pour vendre en ligne, voir le module Boutique. Base générique du Catalogue : les 4 packs métier (Restauration, Prestations, Immobilier, Automobile) sont des satellites qui étendent ce module par hooks, sans jamais le modifier.
- Produits catégorisés avec prix, photo et attributs libres
- Formules composées de plusieurs produits, avec leur propre prix
- Organisation par glisser-déposer et catégories dédiées
- Base commune des quatre packs métier : Restauration, Prestations, Immobilier, Automobile
Où le trouver
Les écrans que ce module ajoute à l'administration, une fois activé.
-
Catalogue
/admin/catalog
Ses réglages
Ils se modifient depuis l'administration. La clé est donnée pour qui pilote le site en ligne de commande ou par l'API.
| Réglage | Clé | Type | Par défaut |
|---|---|---|---|
| Motif d'URL de la fiche d'un élément du catalogue (ex : /annonce/{slug}) | catalog.item_url |
string | (vide) |
Ses droits
Ce que chaque rôle peut faire par défaut. Modifiable rôle par rôle depuis l'administration.
| Droit | Clé | Administrateur | Éditeur |
|---|---|---|---|
| Voir le catalogue (produits, formules, catégories) | catalog.read |
✓ | ✓ |
| Créer / modifier / supprimer les entrées | catalog.write |
✓ | — |
Ses satellites
Des modules qui se greffent sur celui-ci et s'activent séparément. Chacun a sa page.
- pack Automobile Habille le Catalogue pour des annonces automobiles : « Véhicules », marque, modèle, année, kilométrage, carburant, boîte, statut…
- pack Immobilier Habille le Catalogue pour des annonces immobilières : « Biens », surface, pièces, DPE, ville/quartier (jamais d'adresse exacte)…
- pack Prestations Habille le Catalogue pour un prestataire de services : « Offres & services », des « offres » avec un affichage de prix adapté…
- pack Restauration Habille le Catalogue pour un restaurant : « La carte », des « plats » (végé, allergènes, plat du moment avec fenêtre de dates)…
Ce qu'il suppose
Ce module a besoin de :
- categories ^1.0
Le désactiver arrêterait aussi :
Piloter par une IA
Ce que ce module sait faire quand on le lui demande en langage naturel, et ce que chaque action engage.
-
listerlecture seuleListe les produits et formules disponibles du catalogue : nom, slug, description, prix, catégorie, image, attributs. Params : category_slug (optionnel).
-
modifierécrit, annulableModifie un plat (un produit) du catalogue : nom, description, prix en euros, disponible ou non. Désigné par son slug (rendu par catalog.lister). Chaque champ changé est consigné au journal et s'annule. Le site affiche le changement aussitôt.
« passe le melon à 13 € » « retire le carpaccio de la carte pour cette semaine »
-
formule_modifierécrit, annulableModifie un menu (une formule) du catalogue : nom, description (les choix, une ligne chacun), prix en euros, disponible ou non. Désigné par son slug (rendu par catalog.lister, liste « formules »). Consigné au journal, annulable.
« la formule du midi passe à 17,50 € »
Ses points de branchement
Pour greffer du code sans toucher au module : ce qu'il annonce, et ce qu'il écoute.
Ce qu'il annonce 15
catalog.product.created- Émis après création d'un produit. Args: [array $product]
catalog.product.updated- Émis après update d'un produit. Args: [int $id, array $new, array $old]
catalog.formule.created- Émis après création d'une formule. Args: [array $formule]
catalog.formule.updated- Émis après update d'une formule. Args: [int $id, array $new, array $old]
catalog.formule.deleted- Émis après suppression d'une formule. Args: [int $id, array $old]
catalog.category.created- Émis après création d'une catégorie catalog. Args: [array $category]
catalog.category.updated- Émis après update d'une catégorie catalog. Args: [int $id, array $new, array $old]
catalog.category.deleted- Émis après suppression d'une catégorie (et de ses produits). Args: [int $id, array $old, int $deletedProducts]
catalog.editor.fields- Filet éditeur produit — un pack ÉCHOIT sa form-section de champs métier. Args: [array $product] (id=0 en création)
catalog.editor.save- Après un save produit réussi — un pack extrait SES champs de $_POST et persiste dans SA table satellite. Args: [int $id, array $post]
catalog.deleted- Après suppression d'un produit — filet de nettoyage satellite (au cas où la FK ON DELETE CASCADE ne s'applique pas). Args: [int $id, array $old]
catalog.list.filters- Barre de filtres de la liste produits — un pack ÉCHOIT un onglet de filtre (lien ?xxx=1). Args: [array $get]
catalog.list.ids- FILTRE — restreint la liste produits à un sous-ensemble d'ids selon $_GET (intersection, null = pas de restriction). Args: [?array $value, array $get]
catalog.list.row.badges- FILTRE — badges HTML additionnels sur une ligne de la liste produits (accumulé). Args: [string $html, array $product]
catalog.list.row.data- FILTRE — champs structurés du pack actif (ex: surface_m2, dpe, marque…), fusionnés dans le DTO de frontList()/formulesFrontList() pour que la prise front les affiche sans que catalog en connaisse le détail. Args: [array $data, array $product]
Ses prises front
Les morceaux de page que ce module fournit, et les classes qu'ils posent. Un thème les habille par ces classes : il ne recopie pas le balisage, sinon il rate les corrections des versions suivantes.
views/catalogue.php
33 classes
s-catalogs-catalog-badges-catalog-badge-favoris-catalog-categories-catalog-categorie-'s-catalog-categorie-<slug>s-catalog-categorie-descs-catalog-categorie-titres-catalog-categorie<?=s-catalog-formules-catalog-formule-descs-catalog-formule-noms-catalog-formule-prixs-catalog-formule-produits-catalog-formule-produitss-catalog-formuless-catalog-formules-listes-catalog-formules-titres-catalog-prix-mentions-catalog-prix-mention|montant|unites-catalog-prix-montants-catalog-prix-unites-catalog-produits-catalog-produit-accroches-catalog-produit-badgess-catalog-produit-descs-catalog-produit-images-catalog-produit-incluss-catalog-produit-liens-catalog-produit-mention-bass-catalog-produit-noms-catalog-produit-prixs-catalog-produits
Ses données
Les tables que ce module crée. Désactiver un module ne les efface pas : ses données restent en base et reviennent s'il est réactivé.
Les tables 4
IFcatalog_formule_itemsformulesproducts