Aller au contenu

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.

catalog Ce que ce module apporte →

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
Catalogue
Catalogue
Éditer une fiche
Éditer une fiche

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 :

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.

  • lister lecture seule

    Liste les produits et formules disponibles du catalogue : nom, slug, description, prix, catégorie, image, attributs. Params : category_slug (optionnel).

  • modifier écrit, annulable

    Modifie 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, annulable

    Modifie 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-catalog
  • s-catalog-badge
  • s-catalog-badge-favori
  • s-catalog-categorie
  • s-catalog-categorie-'
  • s-catalog-categorie-<slug>
  • s-catalog-categorie-desc
  • s-catalog-categorie-titre
  • s-catalog-categorie<?=
  • s-catalog-formule
  • s-catalog-formule-desc
  • s-catalog-formule-nom
  • s-catalog-formule-prix
  • s-catalog-formule-produit
  • s-catalog-formule-produits
  • s-catalog-formules
  • s-catalog-formules-liste
  • s-catalog-formules-titre
  • s-catalog-prix-mention
  • s-catalog-prix-mention|montant|unite
  • s-catalog-prix-montant
  • s-catalog-prix-unite
  • s-catalog-produit
  • s-catalog-produit-accroche
  • s-catalog-produit-badges
  • s-catalog-produit-desc
  • s-catalog-produit-image
  • s-catalog-produit-inclus
  • s-catalog-produit-lien
  • s-catalog-produit-mention-bas
  • s-catalog-produit-nom
  • s-catalog-produit-prix
  • s-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
  • IF
  • catalog_formule_items
  • formules
  • products