Sincronización de productos de Shopify
Puedes sincronizar todos los productos de tu tienda Shopify con un catálogo de Braze para una personalización más profunda de la mensajería.
Los catálogos de Shopify se actualizarán casi en tiempo real a medida que realices ediciones y cambios en los productos de tu tienda Shopify. Puedes enriquecer tu carrito abandonado, la confirmación del pedido y mucho más con los detalles y la información más actualizados sobre los productos.
Además de admitir los datos principales de productos de Shopify, puedes sincronizar colecciones de Shopify, etiquetas de productos y metacampos de productos con tu catálogo de Braze. Estos campos adicionales desbloquean una personalización más rica, selecciones de catálogo más precisas y una segmentación más potente a través de las extensiones de segmento.
Configura tu sincronización de productos de Shopify
Si ya has instalado tu tienda Shopify, puedes sincronizar tus productos siguiendo las instrucciones de esta sección.
Paso 1: Activa la sincronización
Puedes sincronizar tus productos con un catálogo de Braze a través del flujo de instalación de Shopify o en la página del partner de Shopify.

Paso 2: Selecciona el identificador de tu producto
Selecciona el identificador de producto principal que se usará como ID del catálogo de Braze:
- Shopify Variant ID es una buena opción predeterminada cuando tus SKU faltan, están duplicados entre variantes o pueden contener caracteres como barras, puntos, espacios o ampersands. Los Variant ID son numéricos y siempre cumplen estos requisitos.
- SKU funciona bien cuando cada variante tiene un SKU único que sigue las mismas reglas de caracteres que Shopify Variant ID, y quieres que la mensajería o los análisis usen los SKU de comercio minorista como clave del catálogo.
- Puedes usar SKU de texto libre que contengan caracteres no permitidos utilizando Shopify Variant ID en lugar de SKU.
El valor que selecciones se convierte en el item_id del catálogo y solo puede contener letras, números, guiones y guiones bajos.

Si usas SKU como ID del catálogo, asegúrate de que todos los productos y variantes de tu tienda tengan un SKU establecido y que sean únicos.
- Si a un artículo le falta un SKU, Braze no puede sincronizar ese producto en el catálogo.
- Si tienes más de un producto con el mismo SKU, esto puede provocar un comportamiento inesperado o que la información del producto sea anulada involuntariamente.
Paso 3: Configura datos de producto adicionales (opcional)
Opcionalmente, puedes habilitar la sincronización de etiquetas de productos, colecciones de Shopify y metacampos. Habilita o modifica estos ajustes después de la sincronización inicial desde la página del partner de Shopify.

Primero añade las etiquetas de productos, las colecciones de Shopify y los metacampos en Shopify. Si no existen en Shopify, no aparecerán en Braze.

- En la página Sync product data to Braze, selecciona la casilla Sync product tags para abrir el modal Select product tags.
- Selecciona hasta 20 etiquetas de productos para sincronizar con tu catálogo de Braze. Solo se sincronizarán las etiquetas que selecciones.

- Selecciona Sync Shopify collections para abrir el modal de configuración de colecciones.
- Selecciona hasta 20 colecciones para sincronizar.
- El modal proporciona una lista buscable de hasta 5000 de las colecciones creadas o actualizadas más recientemente de tu tienda Shopify.
- Las colecciones seleccionadas previamente que ya no están entre las 5000 principales seguirán apareciendo en tu selección.

Braze utiliza el ID de colección de Shopify para identificar las colecciones sincronizadas, que luego se utilizan al crear selecciones de catálogo y filtros de segmento.


Para ver ejemplos de cómo usar cada tipo de datos de producto, consulta Casos de uso de catálogos de Shopify.
Paso 4: Sigue el progreso de tu sincronización
Después de guardar tu configuración, Braze comenzará a sincronizar tus productos y actualizará el estado a In Progress en tu página del partner de Shopify. El tiempo de sincronización depende del número de productos y variantes en tu tienda.
Puedes salir de la página una vez que la sincronización esté en curso; Braze te enviará una notificación en el panel cuando la sincronización se complete. Después de completarse, el estado se actualizará a Active y podrás ver tus productos seleccionando el nombre del catálogo en tu página del partner de Shopify.

También puedes ver las etiquetas de productos, metacampos y colecciones sincronizados dentro de tu catálogo de Shopify como nuevas columnas.


Si tu sincronización supera el límite de almacenamiento de tu catálogo, Braze dejará de sincronizar y las nuevas actualizaciones de productos ya no se reflejarán. Ponte en contacto con tu CSM para subir de nivel si es necesario.
Paso 5: Administra tu configuración
Cada tipo de sincronización tiene una tarjeta de resumen en la página del partner de Shopify que muestra el recuento total sincronizado, el estado actual y un enlace a tu catálogo. Selecciona el icono de vista para ver tu configuración activa y editarla.
Puedes modificar tu sincronización de productos de Shopify, incluida la administración de tus etiquetas de productos, colecciones y metacampos de productos en cualquier momento desde la página del partner de Shopify.


Cambiar tus selecciones sincronizadas puede afectar a Campaigns, Canvas o selecciones de catálogo activas que hagan referencia a ellas. Actualiza el contenido activo para que funcione correctamente cuando apliques los cambios.
Datos del catálogo de Shopify compatibles
| Campo | Tipo de datos | Ejemplos |
|---|---|---|
id |
cadena | 45264808411274 cuando el identificador de producto del catálogo es Shopify Variant ID12345 cuando el identificador de producto del catálogo es SKU (coincide con el valor que seleccionaste en el paso 2) |
store_name |
cadena | “your-store” (subdominio de la tienda Shopify, sin .myshopify.com) |
shopify_product_id |
número | 7939032613002 (almacenado como número en tu catálogo de Braze; las API de Shopify pueden devolver este ID como cadena) |
shopify_variant_id |
número | 45264808411274 (almacenado como número en tu catálogo de Braze; las API de Shopify pueden devolver este ID como cadena) |
product_title |
cadena | “Classic leather jacket” |
variant_title |
cadena | “Large / Red”, “Medium” o “Default Title” para productos de una sola variante |
status |
cadena | “active”, “draft”, “archived” |
product_image_url |
cadena | “https://cdn.shopify.com/s/files/1/0641/0970/7402/files/t_shir.jpg?v=1736538760” |
variant_image_url |
cadena | La misma URL de estilo CDN que la imagen del producto cuando no existe una imagen de variante; en caso contrario, una URL de imagen específica de la variante |
vendor |
cadena | “Flash and Thread”, “PantsLabyrinth” |
product_type |
cadena | “Outerwear”, “T-Shirts” (del campo Product type del producto en Shopify) |
product_url |
cadena | “https://your-store.myshopify.com/products/classic-leather-jacket” |
product_handle |
cadena | “classic-leather-jacket” |
published_scope |
cadena | “web”, “global” |
price |
número | 10.00, 24.99Shopify suele devolver los precios como cadenas (por ejemplo, "199.00" en la REST Admin API). Braze los convierte a números para este campo del catálogo. |
compare_at_price |
número | 15.00 cuando Compare at price está configurado en Shopify0 cuando Shopify no tiene un precio de comparación. Las API de Shopify normalmente devuelven null para un precio de comparación no configurado; Braze almacena 0 en el catálogo para que el campo sea siempre numérico (este es un valor predeterminado de Braze, no un valor que Shopify envíe como 0). |
inventory_quantity |
número | 20, 0, o un valor negativo cuando se permite la sobreventa (por ejemplo, -18) |
options |
cadena | “Size,Color” Shopify permite hasta tres tipos de opciones por producto (por ejemplo, Size, Color, Material). El valor de options es una lista separada por comas de esos nombres. |
option_values |
cadena | “Medium,Red”, “Large,Red” Cada valor se corresponde con el mismo orden que options (hasta tres valores). |
sku |
cadena | “12345”, “SKU-001-RED-L” |
product_tags |
matriz | ["Summer", "Sale", "New"]Requiere la sincronización de etiquetas de producto. |
collection_ids |
matriz | [123456789012, 987654321098] (ID de colecciones de Shopify)Requiere la sincronización de colecciones de Shopify. |
Metafield columns |
Varía según el tipo | Cada metafield sincronizado aparece como una columna separada con el nombre de su clave. Consulta Metafields compatibles en la pestaña “Product metafields” del paso 3 para obtener más información. |

Tu catálogo de Shopify está administrado por Shopify. Para actualizar tu catálogo, realiza los cambios directamente en tu tienda Shopify y se sincronizarán automáticamente con Braze. Para eliminar tu catálogo de Shopify, ve a la página del partner de Shopify en Braze y desactiva la sincronización.
Ejemplos de uso del catálogo de Shopify
Estos ejemplos de uso muestran cómo puedes utilizar los datos de tu catálogo de Shopify sincronizado para personalizar mensajes.

Braze sincroniza hasta 250 variantes de cada producto de Shopify en tu catálogo. Las variantes que superen ese límite no se sincronizan. Si necesitas más de 250 variantes por producto, contacta con tu CSM de Braze.
Utiliza las etiquetas de producto para personalizar mensajes en función de cómo están categorizados tus productos en Shopify. Por ejemplo, puedes enviar una promoción con todos los productos etiquetados como “Summer Sale” a través de una selección de catálogo, o crear un segmento de usuarios que compraron productos etiquetados como “Premium”.
Las etiquetas de producto se almacenan como un campo de matriz en cada elemento del catálogo. Para configurar la sincronización de etiquetas de producto, consulta Etiquetas de producto de Shopify.
Selección de catálogo
- En Shopify, asigna a los productos relevantes la etiqueta de producto “Women’s”.

- En Braze, habilita la sincronización de etiquetas y selecciona la etiqueta de producto “Women’s”.

Personalización

Cuando hagas referencia a etiquetas de producto o colecciones en las selecciones de catálogo, utiliza solo el valor en sí, sin los corchetes de matriz [] ni las comillas "" que aparecen en los datos del catálogo. Por ejemplo, si una etiqueta de producto se muestra como ["Women's"] en tu catálogo, escribe Women's en tu filtro de selección.
- Crea una selección de catálogo que filtre los productos que tengan la etiqueta de producto correspondiente, como “Women’s”. Solo puedes usar un campo de matriz único dentro de una selección de catálogo individual, y hasta 50 productos en tu selección de catálogo.

- En el creador de mensajes, añade la selección donde quieras incluir mediante plantilla los productos de la selección de catálogo etiquetados con “Women’s”. Por ejemplo, podrías usar un bloque de producto HTML como este:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
{% catalog_selection_items se-team-ecommerce_shopify_catalog womens_clothing %}
{% if items[0] == blank %}
{% abort_message('Catalog selection returned no items') %}
{% endif %}
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="border-collapse:collapse;">
{% for item in items %}
{% if forloop.index0 < 3 %}
{% assign title = item.product_title | default: '' %}
{% assign image_url = item.variant_image_url | default: '' %}
{% assign price = item.price | default: '' %}
{% assign url = item.product_url | default: '' %}
<tr>
<td width="200" valign="top" style="padding:12px 12px 12px 0;">
{% if image_url == blank %}
<div style="width:200px;height:200px;background:#f2f2f2;line-height:200px;text-align:center;font-family:Arial,sans-serif;font-size:12px;color:#666;">
No image
</div>
{% else %}
{% if url == blank %}
<img src="{{ image_url }}" width="200" height="200" alt="{{ title | escape }}" style="display:block;border:0;outline:none;text-decoration:none;" />
{% else %}
<a href="{{ url }}" style="text-decoration:none;">
<img src="{{ image_url }}" width="200" height="200" alt="{{ title | escape }}" style="display:block;border:0;outline:none;text-decoration:none;" />
</a>
{% endif %}
{% endif %}
</td>
<td valign="top" style="padding:12px 0;font-family:Arial,sans-serif;font-size:14px;line-height:20px;color:#111;">
{% if title != blank %}<div style="font-weight:600;">{{ title | escape }}</div>{% endif %}
{% if price != blank %}<div>Price: ${{ price }}</div>{% endif %}
{% if url != blank %}<div><a href="{{ url }}" style="color:#F84B09;">View product</a></div>{% endif %}
</td>
</tr>
{% endif %}
{% endfor %}
</table>
O, si quieres mencionar productos específicos etiquetados con “Women’s” en una notificación push, puedes usar la herramienta Añadir personalización y especificar los elementos de tu catálogo.
1
2
3
4
5
Checkout the latest women's clothing:
{% catalog_selection_items se-team-ecommerce_shopify_catalog womens_clothing %}
{{ items[0].product_title}}{{items[0].price}}
{{ items[1].product_title}}{{items[1].price}}
{{ items[2].product_title}}{{items[2].price}}

Segmentación de catálogo (SQL)
Utiliza las extensiones de segmento para crear segmentos basados en usuarios que interactuaron con una etiqueta de producto. Por ejemplo, para encontrar usuarios que han interactuado con elementos del catálogo que contienen una etiqueta de producto específica, usa esta consulta:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
-- Description:
-- This query fetches users who have engaged with catalog items that contain a specific product tag. It joins the catalog
-- to custom events by matching any element in an array within events.properties.products (e.g. any product
-- with variant_id equal to a catalog item), using Snowflake LATERAL FLATTEN to explode the array.
SELECT
DISTINCT(events.user_id)
FROM
USERS_BEHAVIORS_CUSTOMEVENT_SHARED AS events,
LATERAL FLATTEN(input => GET_PATH(TRY_PARSE_JSON(events.properties), 'products'), outer => false) AS event_item
JOIN CATALOGS_ITEMS_SHARED AS items ON (
(
items.field_name = 'id'
AND
items.field_value = GET_PATH(event_item.value, 'variant_id')::STRING
)
OR
items.item_id = GET_PATH(event_item.value, 'variant_id')::STRING
)
WHERE
events.name = 'ecommerce.order_placed'
and events.app_group_id = '<app_group_id>'
AND items.catalog_id = '<catalog_id>'
AND (items.field_name = 'product_tags' AND ARRAY_CONTAINS('<product_tag_value>'::VARIANT, TRY_PARSE_JSON(items.field_value)));
Utiliza las colecciones de Shopify para incorporar agrupaciones de productos seleccionadas en tus mensajes, las cuales también se usan en tu sitio de Shopify y experiencias de la aplicación. Por ejemplo, puedes destacar “Novedades” en un correo electrónico promocional, realizar ventas cruzadas de “Más vendidos” en un Canvas de carrito abandonado, o dirigirte a usuarios que exploraron una colección de temporada.
Selección de catálogo
- En Shopify, crea una colección “New Women’s Products - In Stock” con tus productos de mejor rendimiento.

- En Braze, habilita la sincronización de colecciones y selecciona “Women’s Products - In Stock”.


Para las colecciones de Shopify, debes usar el ID de colección, que se encuentra en la URL cuando visualizas la colección. Por ejemplo, una URL como https://admin.shopify.com/store/se-team-ecommerce/collections/470645342446 tiene el ID de colección 470645342446.
Personalización

Cuando hagas referencia a los ID de colección en las selecciones de catálogo, utiliza solo el valor numérico del ID sin los corchetes de matriz [] que aparecen en los datos del catálogo. Por ejemplo, si los ID de colección se muestran como [123456789012, 987654321098] en tu catálogo, escribe solo el ID numérico (como 470645342446) en tu filtro de selección.
- Crea una selección de catálogo llamada “New Women’s Products - In Stock” que se filtre con productos que tengan el ID de esa colección. Solo puedes usar un campo de matriz único dentro de una selección de catálogo individual, y hasta 50 productos en tu colección.
- También puedes crear tus propias selecciones personalizadas filtrando con el campo Colecciones.

- En tu mensaje, incluye tu colección mediante plantilla usando la selección creada o haciendo referencia directa a la colección. Por ejemplo, podrías usar un bloque de producto HTML como este:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
{% catalog_selection_items se-team-ecommerce_shopify_catalog shopify_collection_womens_instock %}
{% if items[0] == blank %}
{% abort_message('Catalog selection returned no items') %}
{% endif %}
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="border-collapse:collapse;">
{% for item in items %}
{% if forloop.index0 < 3 %}
{% assign title = item.product_title | default: '' %}
{% assign image_url = item.variant_image_url | default: '' %}
{% assign price = item.price | default: '' %}
{% assign url = item.product_url | default: '' %}
<tr>
<td width="200" valign="top" style="padding:12px 12px 12px 0;">
{% if image_url == blank %}
<div style="width:200px;height:200px;background:#f2f2f2;line-height:200px;text-align:center;font-family:Arial,sans-serif;font-size:12px;color:#666;">
No image
</div>
{% else %}
{% if url == blank %}
<img src="{{ image_url }}" width="200" height="200" alt="{{ title | escape }}" style="display:block;border:0;outline:none;text-decoration:none;" />
{% else %}
<a href="{{ url }}" style="text-decoration:none;">
<img src="{{ image_url }}" width="200" height="200" alt="{{ title | escape }}" style="display:block;border:0;outline:none;text-decoration:none;" />
</a>
{% endif %}
{% endif %}
</td>
<td valign="top" style="padding:12px 0;font-family:Arial,sans-serif;font-size:14px;line-height:20px;color:#111;">
{% if title != blank %}<div style="font-weight:600;">{{ title | escape }}</div>{% endif %}
{% if price != blank %}<div>Price: ${{ price }}</div>{% endif %}
{% if url != blank %}<div><a href="{{ url }}" style="color:#F84B09;">View product</a></div>{% endif %}
</td>
</tr>
{% endif %}
{% endfor %}
</table>
O, si quieres mencionar nuevos productos específicos en una notificación push, puedes usar la herramienta Añadir personalización y especificar los elementos de tu catálogo.
1
2
3
4
5
Checkout the latest women's clothing:
{% catalog_selection_items se-team-ecommerce_shopify_catalog shopify_collection_womens_instock %}
{{ items[0].product_title}}{{items[0].price}}
{{ items[1].product_title}}{{items[1].price}}
{{ items[2].product_title}}{{items[2].price}}

Segmentación de catálogo (SQL)
Crea un segmento de usuarios que interactuaron con una colección. Utiliza las extensiones de segmento para crear segmentos basados en la pertenencia a una colección. Por ejemplo, para encontrar usuarios que compraron productos de una colección específica en el último año, usa esta consulta:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
-- Description:
-- This query fetches users who have engaged with catalog items that contain a specific collection ID. It joins the catalog
-- to custom events by matching any element in an array within events.properties.products (e.g. any product
-- with variant_id equal to a catalog item), using Snowflake LATERAL FLATTEN to explode the array.
SELECT
DISTINCT(events.user_id)
FROM
USERS_BEHAVIORS_CUSTOMEVENT_SHARED AS events,
LATERAL FLATTEN(input => GET_PATH(TRY_PARSE_JSON(events.properties), 'products'), outer => false) AS event_item
JOIN CATALOGS_ITEMS_SHARED AS items ON (
(
items.field_name = 'id'
AND
items.field_value = GET_PATH(event_item.value, 'variant_id')::STRING
)
OR
items.item_id = GET_PATH(event_item.value, 'variant_id')::STRING
)
WHERE
events.name = 'ecommerce.order_placed'
and events.app_group_id = '<app_group_id>'
AND items.catalog_id = '<catalog_id>'
AND (items.field_name = 'collection_ids' AND ARRAY_CONTAINS('<collection_ids_value>'::VARIANT, TRY_PARSE_JSON(items.field_value)));

También puedes configurar notificaciones de caída de precio y notificaciones de vuelta en existencia.
Ten en cuenta que para cada ejemplo de uso, debes crear un evento personalizado que capture el estado de suscripción de un usuario en tu catálogo. El evento personalizado requiere una propiedad de evento que se asigne al SKU o ID de variante de Shopify que hayas seleccionado como parte de la sincronización de productos de Shopify.
Desactivar la sincronización de productos
Desactivar la característica de sincronización de productos de Shopify eliminará todo tu catálogo y productos. Esto también puede afectar a cualquier mensaje que pueda estar utilizando activamente los datos de producto de este catálogo. Confirma que has actualizado o pausado estas Campaigns o Canvas antes de la desactivación, ya que esto podría dar lugar al envío de mensajes sin detalles del producto. No elimines el catálogo de Shopify directamente en la página de catálogos.
Solución de problemas
Si la sincronización de productos de Shopify presenta un error, podría deberse a alguno de los siguientes errores. Sigue las instrucciones sobre cómo corregir el problema y resolver la sincronización:
| Error | Motivo | Solución |
|---|---|---|
| Error del servidor | Esto ocurre si hay un error del servidor en el lado de Shopify cuando intentamos sincronizar tus productos. | Desactiva la sincronización y vuelve a sincronizar todo tu inventario de productos. |
| SKU duplicado | Esto ocurre si usas el SKU como ID de artículo de catálogo y múltiples variantes comparten el mismo SKU. Cada item_id de catálogo debe ser único, por lo que los artículos afectados pueden no sincronizarse, acumular registros de errores o tener información de producto sobrescrita de forma no intencionada. |
Audita tu lista completa de productos y variantes en Shopify para asegurarte de que no haya SKU duplicados. Si los hay, actualízalos para que sean SKU únicos solo en tu cuenta de la tienda Shopify. Después de corregir esto, desactiva la sincronización y vuelve a sincronizar todo tu inventario de productos. |
| Límite de catálogo excedido | Esto ocurre si excedes el límite de tu catálogo. Braze no podrá finalizar la sincronización ni mantenerla activa debido a la falta de espacio de almacenamiento disponible. | Hay dos soluciones para este problema: 1. Contacta a tu director de cuentas para mejorar tu nivel y aumentar el límite de tu catálogo. 2. Libera espacio de almacenamiento eliminando cualquiera de los siguientes elementos: - Artículos de catálogo de otros catálogos - Otros catálogos - Selecciones creadas Después de usar cualquiera de las soluciones, la sincronización debe desactivarse y luego volver a sincronizarse. |
Para obtener detalles sobre la validación de artículos de catálogo, consulta Solución de problemas en la documentación de la API de catálogos.





