Saltar al contenido principal

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, un BlockType como product, common_page, common_block, form u order.
  • 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:

TipoCategoría de entidadCasos de uso de ejemplo
productProductosDetalle de producto, visualización de producto
catalog_pagePáginas de catálogoListado de categorías, resultados de búsqueda
common_pagePáginas normalesEntrada de blog, landing page, página "Acerca de"
error_pagePáginas de errorPágina 404, página 500, diseños de error personalizados
common_blockBloques de contenidoTarjetas de contenido, banners, secciones, widgets
formFormulariosFormulario de contacto, de registro, encuesta
orderPedidosConfirmación de pedido, historial de pedidos
serviceEntidades de servicioContenido 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étodoDescripciónCaso de uso
getAllTemplates()Obtener todas las plantillas agrupadas por tipoListar todas las plantillas disponibles
getTemplateByType()Obtener plantillas por tipo de entidadObtener las plantillas de un tipo de entidad concreto
getTemplateByMarker()Obtener una plantilla por marcadorObtener la configuración de una plantilla concreta

Relacionado​