URL de registros

Dile a cmssy dónde están los registros de un modelo en tu tienda y cada registro obtiene su enlace público real - en el panel, por la API y para asistentes de IA.

cmssy no renderiza tu sitio, así que no conoce tus rutas. El patrón de URL de un modelo se las indica: una vez definido, cada registro publicado tiene un publicUrl - la URL pública del sitio más el patrón relleno con el registro. El editor muestra el botón Ver en el sitio, y Spotlight y las herramientas MCP devuelven el enlace como url en lugar de adivinarlo a partir de un slug.

Definir un patrón

Abre el modelo, pestaña Básico, y rellena URL en el sitio, o pasa urlPattern a create_model / update_model. Empieza por / y se añade a la URL pública del sitio. Déjalo vacío si los registros no tienen página.

  • {fieldKey} - un campo visible de texto, número, fecha, selección o radio del modelo, p. ej. /p/{slug}.
  • {relationField.fieldKey} - un campo del registro al que apunta una relación simple (un salto), p. ej. /shop/{category.slug}/{slug}.
  • {locale} - el idioma pedido, p. ej. /{locale}/p/{slug}.

Cada token se comprueba al guardar: un campo desconocido, oculto o de contraseña, una relación múltiple o una sintaxis errónea se rechazan con el motivo. Cada valor se convierte en un segmento de ruta codificado.

Cuándo no hay enlace

publicUrl es null - y el botón se oculta - cuando:

  • el modelo no tiene patrón o el sitio no tiene URL pública;
  • el modelo no se entrega: acceso ninguno (por defecto) o es el modelo de inicio de sesión - elige público o miembros;
  • el registro, o uno leído a través de una relación, no está publicado;
  • un token está vacío para ese registro.

Idiomas

Pide un idioma con publicUrl(locale: "pl"); sin él, o para un idioma no habilitado, se usa el idioma por defecto. Un campo traducible se lee en ese idioma con respaldo en el idioma por defecto - igual que lo compara el filtro de la API de entrega, así la consulta de tu tienda encuentra el registro detrás de cada enlace.

Por la API

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

El campo está en los registros del panel y en el catálogo de productos; las listas se resuelven en un solo lote. No forma parte de la API pública de entrega.

Siguientes pasos