Aller au contenu

2. Gérer les menus de la semaine

C'est le chapitre le plus important de cette documentation : la gestion des menus de la semaine fonctionne différemment des autres contenus du site, et il est essentiel de comprendre son fonctionnement avant d'y toucher.

2.1. Comprendre le principe : une "Semaine" = une version figée

Dans Hygraph, le modèle qui gère les menus s'appelle Semaine. Chaque fiche de ce modèle représente un menu complet du lundi au vendredi, identifié par un numéro : le version.

Point essentiel à bien comprendre : le site met en mémoire ("cache") le contenu de chaque version pendant très longtemps (un an) pour rester rapide. Un webhook Hygraph vide automatiquement ce cache à chaque publication ou dépublication (voir chapitre 4) — vous n'avez rien à faire pour cela. Concrètement :

  • ✅ Bonne pratique pour un nouveau menu (changement de semaine) : créez une nouvelle fiche Semaine avec un nouveau numéro de version (le précédent + 1), plutôt que de réutiliser une fiche existante. Cela garde un historique propre, une version = une semaine précise.
  • 🛠️ Pour corriger une erreur sur une semaine déjà publiée (typo, prix erroné, plat à ajouter) : vous pouvez modifier directement la fiche Semaine concernée puis republier — le cache se vide automatiquement dans la foulée et la correction apparaît sur le site en quelques secondes.

🔧 Pour les curieux (détail technique) : chaque version est mise en cache sous une clé du type menus:list:v12. Le webhook décrit au chapitre 4 supprime automatiquement les clés de toutes les versions de menus à chaque publication (en plus de celles des autres contenus), donc une correction sur une semaine déjà publiée est bien répercutée sans action manuelle.

2.2. Comprendre quelle semaine s'affiche sur le site : le champ active

En plus du numéro de version, chaque fiche Semaine a une case à cocher active.

  • Le site cherche la fiche Semaine qui a active coché (true), et affiche celle-là — peu importe si son numéro de version est le plus récent ou non.
  • S'il n'y a aucune fiche avec active coché, le site affiche automatiquement la fiche ayant le numéro de version le plus élevé, par sécurité (pour ne jamais laisser le site sans menu).

Cela permet deux choses utiles : 1. Préparer une future semaine à l'avance : vous pouvez créer et publier la Semaine n°15 sans cocher active, le site continuera d'afficher la n°14 (actuellement active) jusqu'à ce que vous cochiez active sur la n°15. 2. Revenir en arrière rapidement en cas d'erreur : si la n°15 a un problème, vous pouvez recocher active sur la n°14 pour revenir instantanément à l'ancien menu, le temps de corriger.

⚠️ Règle importante : une seule fiche Semaine doit avoir active coché à la fois. Le système n'empêche pas d'en cocher plusieurs par erreur ; si cela arrive, le site choisira automatiquement celle avec le numéro de version le plus élevé parmi celles cochées — mais pour éviter toute confusion, décochez toujours l'ancienne semaine active avant ou en même temps que vous en activez une nouvelle.

2.3. Structure d'une fiche "Semaine"

Quand vous ouvrez ou créez une fiche Semaine, vous voyez ces champs :

  • version (nombre) : le numéro de la semaine. Voir §2.4 pour savoir quel numéro utiliser.
  • active (case à cocher) : voir §2.2.
  • lundi, mardi, mercredi, jeudi, vendredi : cinq champs, un par jour. (Il n'y a pas de champ samedi/dimanche — le restaurant ne propose pas de formule du midi le week-end.)

Chaque jour (lundi, mardi, etc.) contient une liste de plats. Chaque plat de la liste a :

  • titre (texte) : le nom du plat, tel qu'affiché sur le site (ex. "Carry poulet").
  • prix (nombre) : le prix en euros du plat.
  • active (case à cocher, optionnelle) : permet de masquer un plat précis sans le supprimer (voir §2.6). Si cette case n'est pas cochée/définie, le plat reste visible par défaut — seul un active explicitement décoché masque le plat.

ℹ️ Ce "sous-élément" plat s'appelle techniquement MenuPlat dans le schéma Hygraph, mais dans l'interface vous le voyez simplement comme une carte à l'intérieur du champ du jour, avec les champs titre/prix/active à remplir.

2.4. Publier une nouvelle semaine — étape par étape

  1. Dans Content, sélectionnez le modèle Semaine dans la colonne de gauche.
  2. Repérez la fiche ayant le numéro de version le plus élevé actuellement (triez la liste par version si besoin) — notez ce numéro, par exemple 14.
  3. Cliquez sur "Add entry" (ou le bouton "+" / "Create entry") pour créer une nouvelle fiche Semaine.
  4. Renseignez :
  5. version : le numéro précédent + 1 (dans notre exemple, 15). N'utilisez jamais un numéro déjà pris.
  6. Laissez active décoché pour le moment (vous l'activerez une fois prêt, voir §2.5).
  7. Pour chaque jour (lundi à vendredi), ajoutez un ou plusieurs plats :
  8. Cliquez sur "Ajouter" / "+" à l'intérieur du champ du jour concerné pour créer un nouveau plat.
  9. Remplissez titre et prix pour chaque plat.
  10. Laissez active non coché pour un plat visible normalement (voir §2.6 si vous voulez au contraire masquer un plat).
  11. Une fois tous les jours remplis, cliquez sur Publish en haut à droite de la fiche.
  12. La semaine n°15 est maintenant publiée mais pas encore visible sur le site tant que active n'est pas coché dessus (voir étape suivante).

💡 Astuce : le prix affiché par plat ou pour toute la journée

Le site affiche le prix différemment selon les cas, sans réglage supplémentaire à faire :

  • Si tous les plats d'un même jour ont exactement le même prix, le site affiche un seul prix, une fois, pour toute la journée.
  • Si les plats d'un même jour ont des prix différents, le site affiche le prix de chaque plat individuellement.
  • Si le prix d'un plat est 0, aucun prix n'est affiché pour ce plat (utile pour un plat "offert" ou dont le prix est communiqué autrement).

Il n'y a donc rien à cocher pour choisir ce comportement : il suffit de renseigner les prix de façon cohérente selon ce que vous voulez afficher.

2.5. Rendre une semaine visible sur le site (l'activer)

Une fois la nouvelle semaine (ex. n°15) publiée et vérifiée :

  1. Ouvrez la fiche Semaine actuellement active (ex. n°14).
  2. Décochez son champ active, puis cliquez sur Publish pour valider ce changement.
  3. Ouvrez la nouvelle fiche Semaine (n°15), cochez active, puis cliquez sur Publish.
  4. Le site affichera la semaine n°15 en quelques secondes — voir le chapitre 4 pour comprendre le mécanisme (vidage de cache automatique) derrière ce court délai.

Vous pouvez inverser l'ordre des étapes 2 et 3 (activer la nouvelle avant de désactiver l'ancienne) : le site prendra simplement la version la plus haute parmi celles actives le temps de la transition. L'important est qu'au final une seule semaine reste active.

2.6. Masquer un plat précis sans toucher au reste de la semaine

Si un seul plat n'est plus disponible (rupture de stock, erreur de prix à corriger rapidement, etc.) mais que le reste de la semaine reste valable :

  1. Ouvrez la fiche Semaine actuellement active.
  2. Repérez le plat concerné dans le jour correspondant.
  3. Décochez son champ active (le plat lui-même a son propre active, distinct de celui de la semaine).
  4. Cliquez sur Publish : le plat disparaît de l'affichage du site en quelques secondes, le cache se vidant automatiquement (§4.2 du chapitre 4).

Le plat disparaît sans que vous ayez besoin de le supprimer ni de créer une nouvelle version de semaine — comme pour toute correction sur une semaine déjà publiée (§2.1), il suffit de republier.

2.7. Que faire si la section "Menus de la semaine" apparaît vide sur le site

Vérifiez dans l'ordre :

  1. Y a-t-il bien une fiche Semaine avec active coché ? Si aucune n'est active, le site prend automatiquement la version la plus haute — vérifiez que celle-ci contient bien des plats.
  2. Cette fiche est-elle bien publiée (statut "Published", pas "Draft" ni "Changed") ?
  3. Les champs des jours contiennent-ils des plats, et ces plats ont-ils bien leur active à vrai (coché ou non renseigné) ? Si tous les plats d'un jour ont active décoché, ce jour apparaîtra vide sur le site.
  4. Si tout semble correct côté Hygraph mais que le site reste vide, contactez le développeur : un système de surveillance automatique (Sentry) envoie déjà une alerte technique si la section reste vide plus de 35 secondes après le chargement de la page, donc le problème est probablement déjà détecté — mais un signalement de votre part aide à le résoudre plus vite.

Suite

➡️ Passez au chapitre 3 — Gérer les autres contenus.