Pular para o conteúdo principal

Templates

Busque os templates de exibição que controlam como páginas, blocos e produtos são renderizados no seu app.

Mais informações sobre templates no painel de administração do OneEntry: https://doc.oneentry.cloud/docs/category/templates (abre em uma nova aba)


Os modelos descrevem a estrutura e a aparência das suas entidades fora do código. Você os cria no painel de administração do OneEntry (Settings > Templates) e os atribui aos seus componentes; o módulo Templates os obtém, para que você possa mudar a forma como uma entidade é renderizada trocando o modelo, sem um novo deploy.

Início rápido​

Inicialize o módulo a partir de defineOneEntry:


const { } = defineOneEntry(
, {
}
);

Busque templates e leia sua configuração:

// 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 do template​

Um template (ITemplateEntity) é uma configuração de exibição que define como o conteúdo aparece:

  • generalTypeName: a categoria de entidade à qual o template se aplica, um BlockType como product, common_page, common_block, form ou order.
  • title: o nome do template exibido no painel de administração. Não é único.
  • identifier: o marcador único que você referencia no código.
  • attributeValues: um mapa de valores de atributos indexado por marcador.
  • attributeSetIdentifier: o conjunto de atributos associado, se houver.
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 template​

O tipo de um template é o seu generalTypeName, um valor de BlockType. getTemplateByType(type) aceita o mesmo BlockType. Valores comuns:

TipoCategoria da entidadeExemplos de casos de uso
productProdutosDetalhes do produto, exibição do produto
catalog_pagePáginas de catálogoListagem de categorias, resultados de busca
common_pagePáginas comunsPost de blog, landing page, página "Sobre"
error_pagePáginas de erroPágina 404, página 500, layouts de erro personalizados
common_blockBlocos de conteúdoCards de conteúdo, banners, seções, widgets
formFormuláriosFormulário de contato, formulário de cadastro, pesquisa
orderPedidosConfirmação de pedido, histórico de pedidos
serviceEntidades de serviçoConteúdo relacionado a serviços. Ainda não aceito por getTemplateByType()

getTemplateByType('service') atualmente falha com um erro 400 (type must be a valid enum value). Este é um problema conhecido da plataforma.

Criação de templates​

O SDK é somente leitura: não é possível criar templates por meio dele. Crie-os no painel de administração do OneEntry (Settings > Templates). Cada template precisa de um Nome (não único), um Marcador único e um Tipo (a categoria de entidade à qual se aplica).

Obtenção de templates​

Referencie templates no código pelo marcador (identifier), e não pelo ID: marcadores são estáveis entre ambientes, IDs não. Use getTemplateByMarker(marker) para um único template, getTemplateByType(type) para todos os templates de um BlockType e getAllTemplates() para todos os templates agrupados por tipo.

getTemplateByMarker() resolve para um IError (statusCode: 404) quando nenhum template tem esse marcador. getTemplateByType() resolve para um array vazio quando um tipo não tem templates, e para um IError (statusCode: 400) quando o tipo não é um BlockType válido. getAllTemplates() atualmente resolve para um objeto vazio ({}) em vez de um IError quando a requisição falha (por exemplo, com um app token inválido), então verifique se o resultado está vazio.

Os modelos raramente mudam, então são bons candidatos para cache.

Templates vs. TemplatePreviews​

Templates configuram a exibição de conteúdo geral (páginas, blocos, produtos). TemplatePreviews definem como o OneEntry recorta imagens em prévias para atributos de imagem e uploads de arquivos.


Métodos​

MétodoDescriçãoCaso de uso
getAllTemplates()Obter todos os modelos agrupados por tipoListar todos os modelos disponíveis
getTemplateByType()Obter modelos por tipo de entidadeObter modelos de um tipo de entidade específico
getTemplateByMarker()Obter um modelo pelo marcadorObter a configuração de um modelo específico

Relacionado​