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 que se indican a continuació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 socio de Shopify.

Paso 2: Selecciona el identificador de tu producto
Selecciona qué identificador de producto utilizar como ID del catálogo:
- Shopify Variant ID
- SKU
Los valores de ID y encabezado del identificador de producto que elijas solo pueden incluir letras, números, guiones y guiones bajos. Si el identificador del producto no sigue este formato, Braze lo filtrará de la sincronización de tu catálogo.
Este será el identificador principal que utilizarás para hacer referencia a la información del catálogo de Braze.

Si seleccionas SKU como ID del catálogo, asegúrate de que todos los productos y variantes de tu tienda tienen un SKU establecido y son ú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 por el SKU duplicado.
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 socio 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 socio 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 dashboard 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 socio 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 administrador del éxito del cliente 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 socio 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 socio 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 de 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 CDN que la imagen del producto cuando no existe imagen de variante; de lo contrario, una URL de imagen específica de la variante |
vendor |
cadena | “Flash and Thread”, “PantsLabyrinth” |
product_type |
cadena | “Outerwear”, “T-Shirts” (del 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 a menudo devuelve los precios como cadenas (por ejemplo, "199.00" en la API REST Admin). 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 establecido; 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ía 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 productos. |
collection_ids |
matriz | [123456789012, 987654321098] (IDs de colección de Shopify)Requiere la sincronización de colecciones de Shopify. |
Metafield columns |
Varía según el tipo | Cada metacampo sincronizado aparece como una columna separada nombrada por su clave. Consulta Metacampos compatibles en la pestaña “Metacampos de productos” del paso 3 para más información. |

Tu catálogo de Shopify es 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 socio de Shopify en Braze y desactiva la sincronización.
Casos de uso de catálogos de Shopify
Estos casos 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, ponte en contacto con tu administrador del éxito del cliente de Braze.
Usa las etiquetas de productos para personalizar mensajes según 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 productos se almacenan como un campo de matriz en cada artículo del catálogo. Para configurar la sincronización de etiquetas de productos, consulta Etiquetas de productos 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
- 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 sola selección de catálogo, y hasta 50 productos en tu selección de catálogo.

- En el creador de mensajes, añade la selección donde quieras incluir 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 Add Personalization y especificar los artículos 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)
Usa 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 artículos 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)));
Usa las colecciones de Shopify para incluir agrupaciones de productos seleccionados en tus mensajes que también se utilizan en tu sitio y experiencias de la aplicación de Shopify. Por ejemplo, destaca “Novedades” en un correo electrónico promocional, realiza ventas cruzadas de “Los más vendidos” en un Canvas de carrito abandonado, o segmenta usuarios que navegaron por 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 Collection ID, que se encuentra en la URL cuando ves la colección. Por ejemplo, una URL de https://admin.shopify.com/store/se-team-ecommerce/collections/470645342446 tiene el Collection ID 470645342446.
Personalización
- Crea una selección de catálogo llamada “New Women’s Products - In Stock” que esté filtrada con productos que tengan el ID de esa colección. Solo puedes usar un campo de matriz único dentro de una sola selección de catálogo, y hasta 50 productos en tu colección.
- También puedes crear tus propias selecciones personalizadas filtrando con el campo Collections.

- En tu mensaje, incluye tu colección 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 productos nuevos específicos en una notificación push, puedes usar la herramienta Add Personalization y especificar los artículos 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. Usa 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 bajada de precios y notificaciones de reposición de existencias.
Ten en cuenta que para cada caso 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 del evento que se corresponda con el SKU o el ID de variante de Shopify que hayas seleccionado como parte de la sincronización de tu producto 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 tu producto de Shopify se encuentra con un error, podría ser el resultado de los siguientes errores. Sigue las instrucciones para corregir el problema y resolver la sincronización:
| Error | Causa | Solución |
|---|---|---|
| Error del servidor | Esto ocurre si hay un error de servidor por parte 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 utilizas un SKU como ID de artículo del catálogo y tienes productos con el mismo SKU. Como el ID de artículo del catálogo debe ser único, todos tus productos deben tener SKU únicos. | Audita tu lista completa de productos y variantes en Shopify para asegurarte de que no hay SKU duplicados. Si los hay, actualízalos para que sean SKU únicos solo en la cuenta de tu tienda Shopify. Una vez corregido esto, desactiva la sincronización y vuelve a sincronizar todo tu inventario de productos. |
| Límite de catálogo superado | Esto ocurre si superas el límite de tu catálogo. Braze no podrá finalizar la sincronización o mantenerla activa debido a que no hay más almacenamiento disponible. | Hay dos soluciones a este problema: 1. Ponte en contacto con tu director de cuentas para subir de nivel y aumentar el límite de tu catálogo. 2. Libera espacio de almacenamiento eliminando cualquiera de los siguientes elementos: - Artículos de otros catálogos - Otros catálogos - Selecciones creadas Después de utilizar cualquiera de las dos soluciones, hay que desactivar la sincronización y volver a sincronizarla. |





