Aller au contenu principal

Templates

Récupérez les modèles d'affichage qui contrôlent le rendu des pages, blocs et produits dans votre application.

Plus d'informations sur les modèles dans le panneau d'administration OneEntry : https://doc.oneentry.cloud/docs/category/templates (ouvre dans un nouvel onglet)


Les modèles décrivent la structure et l'apparence de vos entités en dehors du code. Vous les créez dans le panneau d'administration OneEntry (Settings > Templates) et les attribuez à vos composants ; le module Templates les récupère : vous pouvez ainsi changer le rendu d'une entité en changeant son modèle, sans redéploiement.

Démarrage rapide​

Initialisez le module depuis defineOneEntry :


const { } = defineOneEntry(
, {
}
);

Récupérez les modèles et lisez leur configuration :

// 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);

Objet modèle​

Un modèle (ITemplateEntity) est une configuration d'affichage qui définit l'apparence du contenu :

  • generalTypeName : la catégorie d'entités à laquelle le modèle s'applique, un BlockType comme product, common_page, common_block, form ou order.
  • title : le nom du modèle affiché dans le panneau d'administration. Non unique.
  • identifier : le marqueur unique que vous référencez dans le code.
  • attributeValues : une table des valeurs d'attributs indexée par marqueur.
  • attributeSetIdentifier : l'ensemble d'attributs associé, le cas échéant.
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
}

Types de modèles​

Le type d'un modèle est son generalTypeName, une valeur BlockType. getTemplateByType(type) accepte le même BlockType. Valeurs courantes :

TypeCatégorie d'entitésExemples d'utilisation
productProduitsFiche produit, affichage de produit
catalog_pagePages de catalogueListe d'une catégorie, résultats de recherche
common_pagePages ordinairesArticle de blog, page d'atterrissage, page « À propos »
error_pagePages d'erreurPage 404, page 500, mises en page d'erreur personnalisées
common_blockBlocs de contenuCartes de contenu, bannières, sections, widgets
formFormulairesFormulaire de contact, d'inscription, enquête
orderCommandesConfirmation de commande, historique des commandes
serviceEntités de serviceContenu lié aux services. Pas encore accepté par getTemplateByType()

getTemplateByType('service') échoue actuellement avec une erreur 400 (type must be a valid enum value). Il s'agit d'un problème connu de la plateforme.

Créer des modèles​

Le SDK est en lecture seule : il ne permet pas de créer des modèles. Créez-les dans le panneau d'administration OneEntry (Settings > Templates). Chaque modèle nécessite un Nom (non unique), un Marqueur unique et un Type (la catégorie d'entités à laquelle il s'applique).

Récupérer des modèles​

Référencez les modèles dans le code par marqueur (identifier), et non par ID : les marqueurs sont stables d'un environnement à l'autre, les ID ne le sont pas. Utilisez getTemplateByMarker(marker) pour un seul modèle, getTemplateByType(type) pour tous les modèles d'un BlockType, et getAllTemplates() pour tous les modèles regroupés par type.

getTemplateByMarker() renvoie un IError (statusCode: 404) lorsqu'aucun modèle n'a ce marqueur. getTemplateByType() renvoie un tableau vide lorsqu'un type n'a pas de modèles, et un IError (statusCode: 400) lorsque le type n'est pas un BlockType valide. getAllTemplates() renvoie actuellement un objet vide ({}) au lieu d'un IError lorsque la requête échoue (par exemple, avec un app token invalide) : vérifiez donc si le résultat est vide.

Les modèles changent rarement : ce sont donc de bons candidats à la mise en cache.

Templates et TemplatePreviews​

Templates configure l'affichage du contenu général (pages, blocs, produits). TemplatePreviews définit la façon dont OneEntry recadre les images en aperçus pour les attributs d'image et les fichiers envoyés.


Méthodes​

MéthodeDescriptionCas d'usage
getAllTemplates()Récupérer tous les modèles regroupés par typeLister tous les modèles disponibles
getTemplateByType()Récupérer les modèles par type d'entitéRécupérer les modèles d'un type d'entité précis
getTemplateByMarker()Récupérer un modèle par marqueurRécupérer la configuration d'un modèle précis

Voir aussi​