¿Qué es un widget de BigCommerce (Widgets API)?
Un widget de BigCommerce es una unidad de contenido en HTML, CSS y JavaScript, construida sobre una plantilla Handlebars, que se crea con la Widgets API y se coloca en una región de un tema Stencil. Una placement decide en qué plantilla de página, en qué región y en qué orden aparece, y el widget se renderiza como parte del HTML de la tienda.
Lo esencial
- Un widget une una plantilla Handlebars y una configuración en JSON; la placement decide dónde sale.
- Las regiones son huecos que declara el tema Stencil: un widget solo aparece donde el tema tiene una región para él.
- Una placement se crea inactiva salvo que digas lo contrario: sin el estado active, no se ve nada.
- Con entity_id, la placement se limita a un producto, una categoría, una marca o una página concretos.
«Widget» se usa para casi cualquier caja incrustada en una web. Aquí es un objeto concreto de BigCommerce: la pieza con la que una app o una agencia mete contenido en las páginas de un tema Stencil sin editar los archivos del tema. Un banner, un bloque de preguntas frecuentes o los datos estructurados de una ficha pueden llegar así. Para una tienda importa por una razón práctica: si el widget no tiene una región donde caer, o su placement está inactiva, el contenido existe en el panel y no existe en la página.
Cómo funciona
La Widgets API sirve para crear unidades de contenido y colocarlas por programa en páginas concretas de una tienda BigCommerce. Ese contenido puede ser HTML, CSS y JavaScript, y se configura con variables de Handlebars.[1]BigCommerce Dev Center. Widgets API La documentación lo reparte en cinco conceptos:[1]BigCommerce Dev Center. Widgets API
| Concepto | Qué es |
|---|---|
| Plantilla de widget (widget template) | HTML con Handlebars que define la estructura del widget. Se reutiliza para crear varios widgets |
| Widget | Una configuración más el identificador (UUID) de su plantilla |
| Configuración | El JSON con el contenido que la plantilla pinta, hasta 64 KB |
| Región | Un hueco declarado en los archivos del tema Stencil con {{{region name="..."}}}. Las que terminan en --global se muestran en todo el sitio |
| Placement | Decide en qué región va el widget y en qué orden |
Los widgets se renderizan como parte del HTML de la tienda. En la página se reconocen por dos atributos, data-content-region en la región y data-widget-id en el widget.[1]BigCommerce Dev Center. Widgets API
La placement es donde se decide casi todo. Se crea con una petición POST a /v3/content/placements y solo exige dos campos: template_file, la plantilla de página a la que apunta, y widget_uuid, el widget.[2]BigCommerce API Reference. Create Placement Los demás afinan:[2]BigCommerce API Reference. Create Placement
entity_idlimita la placement a una página concreta: el ID del producto en una ficha, el de la categoría en una categoría. La portada no lo admite. Según la documentación, el identificador puede ser de un producto, una marca, una categoría o una página.[1]BigCommerce Dev Center. Widgets APIregionysort_orderdicen en qué región va y en qué posición, si hay varios widgets en la misma.channel_idelige el canal; si no lo indicas, usa el primero que se creó en la tienda.statuspuede seractiveoinactive, y por defecto esinactive.
Las placements con región aparecen en Page Builder; las que no tienen región necesitan que se configure el diseño directamente.[2]BigCommerce API Reference. Create Placement Las plantillas de página posibles incluyen pages/product, pages/category y pages/home, entre otras.[3]BigCommerce Developer Learning. Placements
Y hay límites por tienda: 100.000 widgets, 1.000 plantillas propias por canal y 5.000 en total, 75 placements por plantilla de página y 10.000 placements en total.[1]BigCommerce Dev Center. Widgets API Si creas una placement por producto, en un catálogo grande ese límite llega pronto.
En una tienda
Un ejemplo ficticio: un widget con el JSON-LD de un trípode, colocado solo en su ficha. La placement se pediría así (el nombre de la región depende del tema; este es inventado):
{
"widget_uuid": "00000000-0000-4000-8000-000000000001",
"template_file": "pages/product",
"entity_id": "112",
"region": "ficha_inferior",
"sort_order": 1,
"status": "active"
}
Y en el HTML de la ficha 112 aparecería algo parecido a esto (simplificado):
<div data-content-region="ficha_inferior">
<div data-widget-id="00000000-0000-4000-8000-000000000001">
<script type="application/ld+json">
{ "@context": "https://schema.org", ... }
</script>
</div>
</div>
Que el marcado quede en el cuerpo y no en la cabecera no es un problema para Google: el JSON-LD va en una etiqueta <script> dentro del <head> o del <body>, y Google también lo procesa cuando lo inyectan widgets del gestor de contenidos.[4]Google Search Central. Introduction to structured data markup in Google Search Clione usa este mismo camino: en BigCommerce, su grafo de datos estructurados se publica con la Widget API y se renderiza en el servidor.
Lo que se suele confundir
Crear el widget no es publicarlo. Un widget sin placement no sale en ninguna página, y una placement creada sin status se queda en inactive, que es el valor por defecto.[2]BigCommerce API Reference. Create Placement Además, la región tiene que existir en los archivos del tema que usa la tienda, porque las regiones son huecos que declara el tema.[1]BigCommerce Dev Center. Widgets API Antes de buscar el fallo en la plantilla, comprueba esas dos cosas.
Cómo comprobarlo
- Consulta las regiones del tema con el endpoint de regiones de la Widgets API, para la plantilla de página que te interesa. Si la región que usa tu placement no está en la lista, el widget no tiene dónde caer.[1]BigCommerce Dev Center. Widgets API
- Revisa la placement:
statusenactive, eltemplate_filecorrecto, elentity_iddel producto o la categoría que esperas y el canal adecuado.[2]BigCommerce API Reference. Create Placement - Abre la página y su código fuente (Ctrl+U en Chrome) y busca
data-widget-id. Si no aparece, el problema está en la placement o en la región, no en la plantilla.[1]BigCommerce Dev Center. Widgets API - Si el widget publica datos estructurados, pasa la URL por la prueba de resultados enriquecidos o por un validador de schema.
- Cuenta tus placements por plantilla de página antes de escalar a todo el catálogo: el límite es 75 por plantilla.[1]BigCommerce Dev Center. Widgets API
Concepto cercano: app embed de Shopify
El equivalente más cercano en Shopify es el app embed de Shopify. Los dos meten código en la tienda sin editar el tema, pero se colocan de forma distinta. Shopify inserta un app embed antes del cierre de </head> o de </body>, según el destino que declare el bloque, y el comerciante lo enciende en el editor de temas; tras instalar la app viene apagado.[5]Shopify Dev Docs. Configure theme app extensions Un widget de BigCommerce, en cambio, va a la región y a la página que diga su placement, que se crea por API, y puede limitarse a una sola ficha con entity_id.[2]BigCommerce API Reference. Create Placement En los dos casos, lo que de verdad cuenta es lo que sale en el HTML de la página, y eso se comprueba abriéndola.
La guía del widget a la página publicada sigue el camino completo en BigCommerce, y la ruta de publicación por plataforma ordena el resto de términos.
Sinónimos
- English
- BigCommerce widget, Widgets API
- Español
- widget de BigCommerce
Fuentes
- [1] BigCommerce Dev Center. Widgets API. Consultado el . ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
- [2] BigCommerce API Reference. Create Placement. Consultado el . ↑ ↑ ↑ ↑ ↑ ↑
- [3] BigCommerce Developer Learning. Placements. Consultado el . ↑
- [4] Google Search Central. Introduction to structured data markup in Google Search. Consultado el . ↑
- [5] Shopify Dev Docs. Configure theme app extensions. Consultado el . ↑
Historial de cambios
- Primera versión.
Esta definición se publica bajo licencia CC BY 4.0. Puedes reutilizar esta definición citando a Clione con un enlace a esta página.
Términos relacionados
App embed de Shopify
Qué es un app embed de Shopify, en qué se diferencia de un app block, por qué viene desactivado tras instalar la app y cómo comprobar que funciona.
Stencil
Qué es Stencil, el motor de temas de BigCommerce: Handlebars en el servidor, Cornerstone, regiones para widgets y su diferencia con Catalyst.
Catalyst
Qué es Catalyst, el frontend de BigCommerce sobre Next.js, qué deja de hacer el tema Stencil y qué revisar para que buscadores y asistentes lean tu tienda.
Custom fields
Qué son los custom fields de BigCommerce, sus límites (200 por producto), cómo los pinta un tema Stencil y en qué se diferencian de los metafields.
JSON-LD
Qué es JSON-LD, qué significan @context, @type, @id y @graph, por qué Google lo recomienda y cómo encontrar y comprobar el bloque de tu ficha.
Headless commerce
Qué es el headless commerce, qué separa entre backend y frontend y qué debe hacer una tienda headless para que buscadores e IA lean sus datos.
Haz que los bots entiendan tu catálogo
Clione completa cada ficha de producto con lo que los bots leen mejor: el grafo JSON-LD con sus datos estructurados, la meta description y las preguntas frecuentes. Tú revisas y pulsas Push; después comprobamos tu tienda en vivo para que todo siga publicado.