URL des enregistrements

Indiquez à cmssy où se trouvent les enregistrements d'un modèle sur votre boutique, et chaque enregistrement obtient son vrai lien public - dans l'admin, via l'API et pour les assistants IA.

cmssy ne rend pas votre site et ne connaît donc pas vos routes. Le modèle d'URL d'un modèle de données les lui donne : une fois défini, chaque enregistrement publié a une publicUrl - l'URL publique du site plus le modèle rempli avec l'enregistrement. L'éditeur affiche un bouton Voir sur le site, et Spotlight et les outils MCP renvoient le lien en url au lieu de le deviner à partir d'un slug.

Définir un modèle

Ouvrez le modèle, onglet Base, et remplissez URL sur le site, ou passez urlPattern à create_model / update_model. Il commence par / et s'ajoute à l'URL publique du site. Laissez vide si les enregistrements n'ont pas de page.

  • {fieldKey} - un champ visible texte, nombre, date, sélection ou radio du modèle, par ex. /p/{slug}.
  • {relationField.fieldKey} - un champ de l'enregistrement lié par une relation simple (un saut), par ex. /shop/{category.slug}/{slug}.
  • {locale} - la langue demandée, par ex. /{locale}/p/{slug}.

Chaque jeton est vérifié à l'enregistrement : champ inconnu, masqué ou mot de passe, relation multiple ou syntaxe invalide sont refusés avec la raison. Chaque valeur devient un segment de chemin encodé.

Quand il n'y a pas de lien

publicUrl vaut null - et le bouton est masqué - quand :

  • le modèle n'a pas de modèle d'URL ou le site n'a pas d'URL publique ;
  • le modèle n'est pas diffusé : accès aucun (par défaut) ou modèle de connexion - choisissez public ou membres ;
  • l'enregistrement, ou un enregistrement lu via une relation, n'est pas publié ;
  • un jeton est vide pour cet enregistrement.

Langues

Demandez une langue avec publicUrl(locale: "pl") ; sans elle, ou pour une langue non activée, la langue par défaut s'applique. Un champ traduisible est lu dans cette langue avec repli sur la langue par défaut - exactement comme le filtre de l'API de diffusion le compare, donc la requête de votre boutique trouve l'enregistrement derrière chaque lien.

Via l'API

query {
  record {
    get(id: "...") { publicUrl(locale: "en") }
  }
}

Le champ existe sur les enregistrements de l'admin et dans le catalogue produits ; les listes sont résolues en un lot. Il ne fait pas partie de l'API de diffusion publique.

Étapes suivantes