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, umBlockTypecomoproduct,common_page,common_block,formouorder.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:
| Tipo | Categoria da entidade | Exemplos de casos de uso |
|---|---|---|
product | Produtos | Detalhes do produto, exibição do produto |
catalog_page | Páginas de catálogo | Listagem de categorias, resultados de busca |
common_page | Páginas comuns | Post de blog, landing page, página "Sobre" |
error_page | Páginas de erro | Página 404, página 500, layouts de erro personalizados |
common_block | Blocos de conteúdo | Cards de conteúdo, banners, seções, widgets |
form | Formulários | Formulário de contato, formulário de cadastro, pesquisa |
order | Pedidos | Confirmação de pedido, histórico de pedidos |
service | Entidades de serviço | Conteú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étodo | Descrição | Caso de uso |
|---|---|---|
| getAllTemplates() | Obter todos os modelos agrupados por tipo | Listar todos os modelos disponíveis |
| getTemplateByType() | Obter modelos por tipo de entidade | Obter modelos de um tipo de entidade específico |
| getTemplateByMarker() | Obter um modelo pelo marcador | Obter a configuração de um modelo específico |
Relacionado
- Painel de administração OneEntry - Templates de conteúdo: documentação oficial do painel de administração
- Módulo TemplatePreviews: templates de pré-visualização para gerar pré-visualizações de imagens no servidor
- Módulo Products: produtos usam templates de produtos
- Módulo Pages: páginas usam templates de páginas
- Módulo Blocks: blocos usam templates de blocos
- Módulo Forms: formulários usam templates de formulários