Templates
Obtén las plantillas de visualización que controlan cómo se renderizan las páginas, los bloques y los productos en tu aplicación.
Más información sobre las plantillas en el panel de administración de OneEntry: https://doc.oneentry.cloud/docs/category/templates (abre en una nueva pestaña)
Las plantillas describen la estructura y el aspecto de tus entidades fuera del código. Las creas en el panel de administración de OneEntry (Settings > Templates) y las asignas a tus componentes; el módulo Templates las obtiene, así que puedes cambiar cómo se muestra una entidad cambiando su plantilla, sin volver a desplegar.
Inicio rápido
Inicializa el módulo desde defineOneEntry:
const { } = defineOneEntry( , { });
Obtén plantillas y lee su configuración:
// Fetch all templates of a given BlockType.
const productTemplates = await Templates.getTemplateByType("product", "en_US");
if ('statusCode' in productTemplates) throw new Error(productTemplates.message);
productTemplates.forEach((tpl) => {
console.log(tpl.identifier, tpl.title, tpl.generalTypeName);
});
// Or fetch a single template by its marker.
const card = await Templates.getTemplateByMarker("product_thumbnail", "en_US");
if ('statusCode' in card) throw new Error(card.message);
console.log(card.attributeValues);
Objeto de plantilla
Una plantilla (ITemplateEntity) es una configuración de visualización que define cómo aparece el contenido:
generalTypeName: la categoría de entidad a la que se aplica la plantilla, unBlockTypecomoproduct,common_page,common_block,formuorder.title: el nombre de la plantilla que se muestra en el panel de administración. No es único.identifier: el marcador único al que haces referencia en el código.attributeValues: un mapa de valores de atributos indexado por marcador.attributeSetIdentifier: el conjunto de atributos asociado, si lo hay.
interface ITemplateEntity {
id: number; // Unique identifier
title: string; // Template name (non-unique)
identifier: string; // Template marker (unique)
generalTypeId: number; // Type ID reference
version: number; // Version number
generalTypeName: BlockType; // General type name
attributeSetIdentifier: string | null; // Associated attribute set
attributeValues: IAttributeValues; // Map of attribute values keyed by marker
position: number; // Sort position
}
Tipos de plantilla
El tipo de una plantilla es su generalTypeName, un valor de BlockType. getTemplateByType(type) acepta el mismo BlockType. Valores habituales:
| Tipo | Categoría de entidad | Casos de uso de ejemplo |
|---|---|---|
product | Productos | Detalle de producto, visualización de producto |
catalog_page | Páginas de catálogo | Listado de categorías, resultados de búsqueda |
common_page | Páginas normales | Entrada de blog, landing page, página "Acerca de" |
error_page | Páginas de error | Página 404, página 500, diseños de error personalizados |
common_block | Bloques de contenido | Tarjetas de contenido, banners, secciones, widgets |
form | Formularios | Formulario de contacto, de registro, encuesta |
order | Pedidos | Confirmación de pedido, historial de pedidos |
service | Entidades de servicio | Contenido relacionado con servicios. getTemplateByType() todavía no lo acepta |
Actualmente, getTemplateByType('service') falla con un error 400 (type must be a valid enum value). Es un problema conocido de la plataforma.
Crear plantillas
El SDK es de solo lectura: no puedes crear plantillas con él. Créalas en el panel de administración de OneEntry (Settings > Templates). Cada plantilla necesita un nombre (no único), un marcador único y un tipo (la categoría de entidad a la que se aplica).
Obtener plantillas
Haz referencia a las plantillas en el código por marcador (identifier), no por ID: los marcadores son estables entre entornos y los ID no. Usa getTemplateByMarker(marker) para una sola plantilla, getTemplateByType(type) para todas las plantillas de un BlockType y getAllTemplates() para todas las plantillas agrupadas por tipo.
getTemplateByMarker() se resuelve en un IError (statusCode: 404) cuando ninguna plantilla tiene ese marcador. getTemplateByType() se resuelve en un array vacío cuando un tipo no tiene plantillas, y en un IError (statusCode: 400) cuando el tipo no es un BlockType válido. Actualmente, getAllTemplates() se resuelve en un objeto vacío ({}) en lugar de un IError cuando la solicitud falla (por ejemplo, con un app token no válido), así que comprueba si el resultado está vacío.
Las plantillas cambian poco, así que conviene almacenarlas en caché.
Templates frente a TemplatePreviews
Templates configura la visualización del contenido general (páginas, bloques, productos). TemplatePreviews define cómo OneEntry recorta las imágenes en vistas previas para los atributos de imagen y los archivos subidos.
Métodos
| Método | Descripción | Caso de uso |
|---|---|---|
| getAllTemplates() | Obtener todas las plantillas agrupadas por tipo | Listar todas las plantillas disponibles |
| getTemplateByType() | Obtener plantillas por tipo de entidad | Obtener las plantillas de un tipo de entidad concreto |
| getTemplateByMarker() | Obtener una plantilla por marcador | Obtener la configuración de una plantilla concreta |
Relacionado
- Panel de administración de OneEntry: plantillas de contenido: documentación oficial del panel de administración
- Módulo TemplatePreviews: plantillas de vista previa para generar vistas previas de imágenes en el servidor
- Módulo Products: los productos usan plantillas de producto
- Módulo Pages: las páginas usan plantillas de página
- Módulo Blocks: los bloques usan plantillas de bloque
- Módulo Forms: los formularios usan plantillas de formulario