Skip to main content

CHAPITRE 15 — Catalogue produit dynamique

Si votre site présente un catalogue de produits Dolibarr (services, logiciels, abonnements), le module peut générer automatiquement une page web dédiée à chaque produit. Vous ajoutez un produit dans Dolibarr, sa page web est créée sans intervention supplémentaire.

Le concept

Vous disposez probablement déjà de produits dans Dolibarr (table llx_product) avec leur fiche commerciale (libellé, description, prix). Sur votre site web, vous souhaitez :

  • Un catalogue qui répertorie tous les produits actifs.
  • Une page détaillée par produit.
  • Une mise à jour automatique : tout nouveau produit donne une nouvelle page sans intervention manuelle.

Le module remplit exactement ce besoin. Vous écrivez un seul gabarit de fiche produit (la page solution-detail), et le module génère un wrapper solution-<ref>.php pour chaque produit publié.

Préparer un produit Dolibarr pour le catalogue

Pour qu'un produit apparaisse dans le catalogue web, deux conditions doivent être remplies :

Champ

Valeur requise

Statut commercialisable

(

tosell

)

À vendre (= 1)

Publié sur le site

(champ personnalisé

infrasstudio_published

)

Coché (= 1)

Trois états possibles pour un produit

tosell

published

Visibilité

0

Invisible partout (commercial et web)

1

0

Brouillon — modifiable côté Studio mais invisible publiquement

1

1

Publié — la carte apparaît sur le catalogue et la page de détail est servie

Accéder à la section Produits

  1. Ouvrez l'éditeur Studio.
  2. Dans la colonne de gauche, cliquez sur l'onglet Produits.
  3. La liste de tous vos produits commercialisables s'affiche.

Pour chaque produit, vous voyez :

  • Sa référence et son libellé.
  • Son type (SaaS, Extension, Application instantanée, etc.).
  • Son statut : publié (vert) ou brouillon (orange).

Modifier un produit

  1. Cliquez sur un produit dans la liste.
  2. L'aperçu central charge la page solution-detail avec ce produit.
  3. L'inspecteur à droite affiche les champs natifs Dolibarr et les champs personnalisés.
Champs modifiables

Catégorie

Champs

Champs natifs Dolibarr (traduisibles)

libellé, description (texte riche)

Champs personnalisés traduisibles

accroche, libellé du bouton, déploiement, compatibilité, support, langues, fonctionnalités, paliers tarifaires

Champs personnalisés non traduisibles

image principale, URL du bouton, étiquette

Modifier un champ
  1. Cliquez sur le champ dans l'inspecteur, ou directement sur l'élément correspondant dans l'aperçu central.
  2. L'inspecteur passe en mode édition avec un bouton ← Retour.
  3. Modifiez la valeur.
  4. Pour les champs traduisibles, dépliez la section Autres langues.
  5. Cliquez sur Enregistrer en bas du panneau. Le compteur indique le nombre de champs modifiés en attente.
  6. L'aperçu se rafraîchit.

Conseil — Pour les produits, l'enregistrement automatique n'est pas activé : vous cliquez sur « Enregistrer » manuellement. Ce choix est délibéré, les champs Dolibarr étant plus sensibles, car directement liés à votre fiche produit commerciale.

Publier ou retirer un produit

  1. Sélectionnez le produit dans la liste.
  2. Dans la barre d'outils centrale, cliquez sur Publier (ou Dépublier si déjà publié).
  3. Le module modifie le champ personnalisé infrasstudio_published à 1 (ou 0).
  4. Il déclenche ensuite la régénération automatique des wrappers solution-<ref>.php.
  5. Une notification verte confirme l'opération.

Effet de la publication — Le wrapper /var/www/<site>/solution-<ref>.php est créé. La carte du produit apparaît sur le catalogue. La page de détail est accessible via /solution-<ref>.php.

Effet de la dépublication — Le wrapper est supprimé. Tout visiteur tentant d'accéder à l'URL reçoit une erreur 404. La carte disparaît du catalogue.

Régénérer les wrappers manuellement

Si une désynchronisation est suspectée — par exemple un produit modifié récemment qui n'affiche pas la bonne version — deux options sont disponibles.

Bouton dans la barre d'outils
  1. Sur la fiche produit, cliquez sur l'icône Régénérer wrapper (icône de synchronisation).
  2. Le module reconstruit le wrapper de ce produit.
Bouton « Reconstruire maintenant » (administrateur)
  1. Rendez-vous dans Outils → InfraSStudio → Configuration.
  2. Repérez la section Wrappers solution.
  3. Cliquez sur Reconstruire maintenant.
  4. L'ensemble des wrappers est régénéré en une seule opération.

Note — Une tâche planifiée toutes les heures régénère les wrappers en arrière-plan. En cas d'oubli ou d'incident temporaire, l'état est rétabli au plus tard une heure après.

La page de catalogue

La page de catalogue (généralement /catalogue.php) liste tous les produits publiés sous forme de cartes. Chaque carte présente :

  • L'image principale du produit.
  • Une étiquette éventuelle (« Nouveau », « Promotion », etc.).
  • Le libellé.
  • L'accroche.
  • La catégorie ou l'univers, déduits des catégories Dolibarr.
  • Un lien vers la page de détail.

Les visiteurs peuvent filtrer le catalogue par univers (Supply Chain, Health, Legal, etc.) et par type (SaaS, Extension, Instant). Les filtres sont en JavaScript et instantanés.

Lien direct depuis Dolibarr

Sur la fiche produit du Studio, un bouton Voir public ouvre la page solution publique dans un nouvel onglet. Un autre bouton Voir la fiche Dolibarr ouvre la fiche produit native.

Aller-retour fluide — Vous pouvez naviguer entre la fiche commerciale Dolibarr et l'éditeur web Studio sans interrompre votre flux de travail.

Récapitulatif

Vous savez désormais :

  • Comprendre qu'une page web est générée automatiquement par produit publié.
  • Préparer un produit (tosell=1, infrasstudio_published=1).
  • Modifier les champs natifs et personnalisés depuis le Studio.
  • Distinguer les champs traduisibles des champs non traduisibles.
  • Publier ou dépublier un produit, ce qui pilote son wrapper et sa carte sur le catalogue.
  • Régénérer manuellement un wrapper en cas de désynchronisation.
  • Comprendre que le catalogue se filtre côté visiteur sans rechargement.

Le dernier chapitre de la Partie III aborde le référencement.