4. Cache, mise en ligne et dépannage¶
4.1. Pourquoi une modification n'apparaît pas immédiatement sur le site¶
Pour que le site reste rapide, il ne va pas redemander le contenu à Hygraph à chaque visite : il garde une copie récente en mémoire pendant un certain temps (ce qu'on appelle le cache, techniquement stocké dans un système nommé Redis). C'est pour cela que publier une modification dans Hygraph ne suffit pas toujours à la faire apparaître tout de suite sur le site.
Tous les contenus du site (Semaine, Plat, Aperitif, Sandwich, General, CarteApperitif, CartePlat, CarteAccompagnement, Annonce) sont mis en cache jusqu'à 1 an. Sans intervention, le site pourrait donc continuer d'afficher l'ancienne version pendant longtemps après une modification — mais ce n'est pas le cas en pratique, grâce au mécanisme décrit au §4.2 : le vidage du cache est automatique.
4.2. Le vidage de cache est automatique (webhook Hygraph)¶
Un webhook a été configuré côté Hygraph sur les actions de publication et de dépublication, pour tous les modèles concernés (Semaine, Plat, Aperitif, Sandwich, General), sans exception. À chaque publication ou dépublication d'une fiche, Hygraph appelle automatiquement une adresse technique du site (/api/invalidate-cache), qui vide en une seule fois le cache de tout le contenu (Plats, Apéritifs, Sandwichs, tarifs, informations générales, et toutes les versions de menus de la semaine).
Vous n'avez donc rien à faire : publier (ou dépublier) une fiche suffit, le cache correspondant se vide de lui-même, en général en quelques secondes.
⚠️ Si vous venez de créer les modèles CarteApperitif, CartePlat, CarteAccompagnement ou Annonce (page Tarifs et affiche pop-up) : pensez à les ajouter à la liste des déclencheurs du webhook (onglet App → Webhooks, événements de publication/dépublication) — sans quoi leurs modifications ne videront pas le cache automatiquement, et il faudra vider le cache manuellement (voir l'encadré développeur ci-dessous) jusqu'à ce que ce soit fait.
ℹ️ Cette automatisation concerne le vidage du cache déclenché par Hygraph. Le mécanisme d'activation (
active) des menus de la semaine, décrit au chapitre 2, reste quant à lui indépendant du cache : il fonctionne par un mécanisme séparé et prend effet en quelques secondes, que le cache ait ou non déjà été vidé.🔧 Pour le développeur : ce webhook est configuré dans Hygraph (onglet App → Webhooks), pointant vers
/api/invalidate-cache, déclenché sur les événements de publication et dépublication de tous les modèles. En cas de panne ou de comportement anormal, l'action reste déclenchable manuellement (requêtePOSTvers cette même adresse) le temps de diagnostiquer/réparer le webhook.
4.3. Combien de temps attendre après une modification¶
- Nouvelle semaine activée (étapes du chapitre 2) : quelques secondes.
- Toute autre modification, publiée (le webhook déclenche le vidage de cache automatiquement, §4.2) : quelques secondes.
- Si une modification publiée n'apparaît toujours pas après plusieurs minutes : ce n'est pas normal — cela peut indiquer que le webhook a échoué. Voir la checklist §4.4 et contactez le développeur si besoin.
4.4. Checklist rapide en cas de problème¶
Une modification n'apparaît pas sur le site :
- La fiche a-t-elle bien été publiée (statut "Published", pas "Draft" ni "Changed") ? → Voir §1 - Brouillon vs Publié.
- S'agit-il d'un changement de semaine de menu ? → Vérifiez le champ
activecomme expliqué au §2.2 et 2.7. - La fiche est bien publiée, le champ
activeest correct (si applicable), mais le site affiche toujours l'ancienne version après plusieurs minutes ? → Le vidage automatique du cache (§4.2) a probablement échoué (webhook en panne). Contactez le développeur. - Le problème persiste après ces vérifications ? → Contactez le développeur avec le nom de la fiche concernée et une capture d'écran si possible.
4.5. Newsletter automatique sur publication d'une Annonce¶
En plus du vidage de cache, un second webhook, indépendant du premier, est configuré uniquement sur le modèle Annonce : à chaque publication, si le champ active est coché, un email reprenant le titre et la description de l'annonce est automatiquement envoyé à tous les abonnés de la newsletter (inscrits depuis le bas de la page d'accueil).
Points importants :
- Republier une annonce déjà envoyée sans changer le contenu ne renvoie pas l'email — le site détecte que le contenu est identique au dernier envoi et ne fait rien. Modifier le titre ou la description (même légèrement) avant de republier redéclenche un envoi.
- Décocher
activen'envoie rien — seule une publication avecactivecoché déclenche un envoi. - Les visiteurs peuvent se désabonner via un lien présent dans chaque email ; une fois désabonnés, ils ne reçoivent plus rien même si l'adresse reste dans la liste d'origine.
🔧 Pour le développeur : second webhook Hygraph (onglet App → Webhooks), scopé au seul modèle Annonce, événement de publication, pointant vers
/api/newsletter-notify, avec un header personnaliséx-webhook-secret(valeur =NEWSLETTER_WEBHOOK_SECRETcôté serveur) — sans ce header le endpoint répond 401. Les emails sont envoyés via l'API batch de Resend, avec le même compte/domaine déjà utilisé pour les emails de commande (commande.nkdelices974.fr). Le template est designé avec Maizzle (voiremails/maizzle/) et compilé enserver/templates/newsletter-annonce.ts. Les abonnés/désabonnés sont stockés dans Redis (newsletter:subscribers/newsletter:unsubscribed), pas dans Hygraph.
Glossaire¶
| Terme | Signification |
|---|---|
| Hygraph | Le CMS (outil de gestion de contenu) utilisé pour éditer les textes, prix, images et menus du site. Anciennement "GraphCMS". A remplacé Strapi. |
| Hygraph Studio | Le nom de l'interface web de Hygraph, accessible sur app.hygraph.com. |
| Modèle | Une "famille" de fiches de contenu du même type (ex. : le modèle Semaine, le modèle Plat). |
| Fiche / entrée (entry) | Un élément individuel d'un modèle (ex. : la fiche "Carry poulet" dans le modèle Plat). |
| Champ | Une information précise à l'intérieur d'une fiche (ex. : le champ titre, le champ prix). |
| Brouillon (Draft) | Statut d'une fiche non encore publiée : invisible sur le site. |
| Publié (Published) | Statut d'une fiche visible sur le site (une fois le cache pris en compte). |
| Modifié (Changed) | Statut d'une fiche déjà publiée mais modifiée depuis sans republier : le site montre encore l'ancienne version publiée. |
| Cache | Copie temporaire du contenu gardée en mémoire par le site pour rester rapide, expliquée en détail dans ce chapitre. |
| Redis | Le nom technique du système utilisé pour stocker ce cache. |
| Invalider/vider le cache | Action qui force le site à aller rechercher les informations à jour dans Hygraph au lieu d'utiliser sa copie en mémoire. Déclenchée automatiquement, voir Webhook. |
| Webhook | Une notification automatique envoyée par Hygraph vers le site à chaque publication/dépublication d'une fiche. Deux webhooks distincts existent : un pour vider le cache (§4.2), un pour envoyer la newsletter sur publication d'une Annonce (§4.5). |
| Version (des menus) | Le numéro qui identifie une semaine de menu précise et figée dans le modèle Semaine — voir chapitre 2. |
| API | Le mécanisme technique par lequel le site va chercher les informations auprès de Hygraph (et par lequel le webhook déclenche le vidage du cache). |
| Sentry | Un outil de surveillance technique utilisé par le développeur : il envoie automatiquement une alerte si certaines parties du site restent vides ou en erreur de façon anormale (ex. : menus de la semaine vides). |
Pour aller plus loin¶
Cette documentation couvre les besoins courants d'administration du contenu. Pour toute question sur la structure technique (schéma Hygraph), les jetons d'API, ou la configuration du webhook, se référer au développeur du site — ces réglages se trouvent dans les onglets Schema et App de Hygraph, volontairement non couverts ici pour éviter toute modification accidentelle pouvant affecter le fonctionnement du site.