Introduction
Des blocs de contenu réutilisables qui peuvent être utilisés sur plusieurs pages.
Plus d'informations sur l'interface utilisateur du module https://doc.oneentry.cloud/docs/category/blocks
🎯 Que fait ce module ?
Le module Blocks vous permet d'utiliser des composants de contenu réutilisables (blocs) qui contiennent des ensembles d'attributs et peuvent être utilisés sur plusieurs pages et pages de produits - comme des en-têtes, des pieds de page, des bannières, des témoignages ou tout contenu répétitif.
Pensez-y comme des briques LEGO pour votre site web - vous créez un bloc une fois, et le réutilisez partout où vous en avez besoin. Modifiez le bloc une fois, et il se met à jour automatiquement partout.
📖 Explication Simple
Imaginez que vous construisez un site web avec :
- 🔝 En-tête - logo, menu de navigation (identique sur chaque page)
- 🔽 Pied de page - informations de contact, liens sociaux (identiques sur chaque page)
- 📢 Bannière Promo - offre spéciale (apparaît sur plusieurs pages)
- ⭐ Témoignages - avis clients (réutilisés à différents endroits)
- 📞 Formulaire de Contact - apparaît sur plusieurs pages
Au lieu de copier ce contenu sur chaque page :
- ✅ Créez-le une fois en tant que Bloc
- ✅ Insérez le bloc où vous en avez besoin
- ✅ Mettez à jour à un seul endroit → les changements se font automatiquement partout
- ✅ Gardez votre contenu DRY (Don't Repeat Yourself)
Exemple concret :
Sans Blocks (copier-coller) :
- Mettre à jour le pied de page → Éditer 50 pages manuellement ❌
- Ajouter un lien social → Mettre à jour partout ❌
- Contenu incohérent sur les pages ❌
Avec Blocks (réutilisables) :
- Mettre à jour le bloc de pied de page → Changements sur les 50 pages instantanément ✅
- Ajouter un lien social → Mettre à jour une fois ✅
- Toujours cohérent ✅
✨ Concepts Clés
Qu'est-ce qu'un Bloc ?
Un bloc est un composant de contenu réutilisable contenant :
- Contenu - Texte, images, liens, toutes données
- Attributs - Champs personnalisés que vous définissez
- Marqueur - Identifiant unique pour le référencer
- Statut - Actif, brouillon, archivé
Réutilisabilité des Blocs
Les blocs peuvent être :
- ✅ Utilisés sur plusieurs pages et si les blocs sont mis à jour, ils sont mis à jour partout
- ✅ Localisés (contenu différent par langue)
📋 Ce Que Vous Devez Savoir
Meilleure pratique : Utilisez toujours des marqueurs dans votre code (ils ne changent jamais).
Structure du Bloc
Chaque bloc a ces champs clés :
{
id: 3, // unique ID
localizeInfos: { // block localized data
title: 'Block', // block localized title
},
version: 0, // block version
position: 1, // block position in array of blocks
identifier: 'block', // block identifier
type: 'common_block', // block type
templateIdentifier: null, // template identifier
isVisible: true, // visibility
attributeValues: {}, // block attributes
}
Attributs Personnalisés
Les blocs utilisent AttributesSets pour les champs personnalisés :
Exemples :
- Bloc de pied de page : texte de copyright, liens sociaux, informations de contact
- Bannière héro : titre, sous-titre, bouton CTA, image de fond
- Témoignage : nom de l'auteur, photo, citation, évaluation
- Formulaire de contact : configuration des champs, texte du bouton de soumission
En savoir plus : Voir AttributesSets Module
📊 Tableau de Référence Rapide - Méthodes Courantes
| Méthode | Ce Qu'elle Fait | Quand l'utiliser |
|---|---|---|
| getBlocks() | Obtenir tous les blocs (paginé, filtré) | Lister tous les blocs disponibles |
| getBlockByMarker() | Obtenir un bloc par marqueur | Récupérer un bloc spécifique dans le code |
| searchBlock() | Rechercher des blocs | Récupérer des blocs |
| getFrequentlyOrderedProducts() | Produits fréquemment commandés | "Souvent commandés ensemble" |
| getCartComplement() | "Complétez votre panier" par contexte de panier | Vente croisée depuis le panier |
| getCartComplementByProductIds() | "Complétez votre panier" par productIds | Vente croisée pour des produits donnés |
| getCartSimilar() | "Similaire au panier" par contexte de panier | Alternatives aux articles du panier |
| getCartSimilarByProductIds() | "Similaire au panier" par productIds | Alternatives pour des produits donnés |
| getWishlistSimilar() | "Similaire à la liste de souhaits" par liste de souhaits | Alternatives aux articles de la liste de souhaits |
| getWishlistSimilarByProductIds() | "Similaire à la liste de souhaits" par productIds | Alternatives pour des produits donnés |
| getPersonalRecommendations() | Recommandations personnelles | Fil d'actualité de produits personnalisés |
| getRecentlyViewed() | Produits récemment vus | Widget "Récemment vus" |
| getRepeatPurchase() | Produits pour achat répété | Widget "Acheter à nouveau" |
| getTrending() | Produits tendance | Widget "Tendance actuelle" |
| getSlides() | Arbre des diapositives du bloc slider | Rendre un slider/carrousel |
🧩 Types de Blocs
Le type d'un bloc (le BlockType) détermine ce qu'il rend. En plus des types de base (common_block, product_block, similar_products_block, form, et d'autres), les types de blocs de produits et de personnalisation suivants sont disponibles :
| Type de bloc | Méthode |
|---|---|
frequently_ordered_block | getFrequentlyOrderedProducts() |
trending_block | getTrending() |
recently_viewed_block | getRecentlyViewed() |
repeat_purchase_block | getRepeatPurchase() |
slider_block | getSlides() |
personal_recommendations_block | getPersonalRecommendations() |
cart_complement_block | getCartComplement() / getCartComplementByProductIds() |
cart_similar_block | getCartSimilar() / getCartSimilarByProductIds() |
wishlist_similar_block | getWishlistSimilar() / getWishlistSimilarByProductIds() |
Les blocs de personnalisation (récemment vus, achat répété, recommandations personnelles, panier/liste de souhaits) sont alimentés par l'activité utilisateur suivie et fonctionnent pour les utilisateurs autorisés et les invités (voir Mode invité).
❓ Questions Fréquemment Posées (FAQ)
Quelle est la différence entre les Blocs et les Pages ?
- Pages/Pages de Produits - Pages complètement autonomes avec des URL (par exemple,
/about) auxquelles vous pouvez ajouter des blocs et d'autres composants de page qui peuvent être réutilisés sur plusieurs pages. - Blocs - Composants réutilisables insérés dans des pages (par exemple, pied de page)
Pensez-y comme :
- Page = Document complet
- Bloc = Paragraphe que vous réutilisez dans plusieurs documents
Comment mettre à jour le contenu d'un bloc ?
Mettez-le à jour dans OneEntry panneau d'administration :
- Allez dans la section Blocs
- Trouvez votre bloc (par exemple, "Pied de page")
- Éditez les attributs
- Enregistrez
Toutes les pages utilisant ce bloc se mettent à jour automatiquement ! ✨
Dois-je créer de nombreux petits blocs ou quelques grands blocs ?
De nombreux petits blocs est préférable :
✅ Bon (petit, ciblé) :
- header_logo
- header_navigation
- footer_copyright
- footer_social_links
❌ À éviter (trop grand) :
- entire_page_layout (contains everything)
Pourquoi ? Les petits blocs sont plus faciles à réutiliser et à maintenir.
Comment afficher/masquer des blocs de manière conditionnelle ?
Vérifiez le champ isVisible
Puis-je créer des blocs dynamiquement via l'API ?
Le SDK est en lecture seule. Pour créer des blocs, utilisez le panneau d'administration OneEntry.
Comment gérer les blocs manquants de manière élégante ?
Utilisez toujours try/catch
💡 Notes Importantes
Meilleures Pratiques pour les Marqueurs de Blocs
✅ Bons noms de marqueurs :
- Descriptifs :
global_footer,homepage_hero - Utilisez des underscores :
contact_form - Minuscules :
promo_banner - Indiquez la portée :
global_headervsblog_header
❌ Mauvais noms de marqueurs :
- Généraux :
block1,content - Espaces :
my block - Cas mixte :
MyBlock,ProMoBanner
Mise en Cache des Blocs
Les blocs changent rarement → mettez-les en cache !
🎓 Meilleures Pratiques
- Créez des blocs petits et ciblés (responsabilité unique)
- Utilisez des marqueurs descriptifs (
footer, pasblock1) - Mettez en cache les blocs pour réduire les appels API
- Gérez les blocs manquants de manière élégante (try/catch)
- Documentez l'utilisation de chaque bloc
- Gardez la structure des blocs cohérente
- Testez les modifications des blocs avant publication
- Utilisez
statusIdpour prévisualiser les changements
Définition du module Blocks
const { Blocks } = defineOneEntry( "your-project-url", { "token": "your-app-token" });
🔗 Documentation Connexe
- Module Pages - Gérer les pages qui utilisent des blocs
- Module AttributesSets - Définir les attributs des blocs
- Module Produits - Utiliser des blocs dans les pages de produits