Skip to content

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 3 del proceso de configuración con "Shopify Variant ID" como "Catalog product identifier".

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.

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.

Configuración para sincronizar productos y variantes de Shopify con Braze.

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

Modal para seleccionar etiquetas de productos con una selección de etiquetas.

  1. Si tienes una integración de Shopify existente, vuelve a autorizar la aplicación Braze Shopify para instalar los nuevos permisos necesarios para sincronizar productos. Si eres un cliente nuevo, ve al siguiente paso.

Banner que indica volver a autorizar la aplicación Braze Shopify.

  1. Selecciona Sync product metafields para abrir el modal de configuración de metacampos.

Sección de sincronización de datos de productos con Braze con opciones para seleccionar entre múltiples configuraciones, incluidas las colecciones.

  1. Selecciona hasta 20 de los metacampos buscables para sincronizar. Cada uno se convierte en una columna separada en tu catálogo para usar en características como selecciones de catálogo o extensiones de segmento.
    • Al nombrar metacampos, ten en cuenta que los espacios se convierten en “_” y todos los caracteres especiales se eliminan para cumplir con las restricciones de nomenclatura de campos de catálogo de Braze.

Modal para seleccionar metacampos de productos.

Braze admite los siguientes objetos de metacampos y algunos de sus tipos respectivos.

Braze no admite objetos de metacampos, incluidos algunos tipos de lista respectivos:

  • dimension (list.dimension)
  • weight (list.weight)
  • link (list.link)
  • json
  • list.number_decimal
  • list.number_integer
  • money
  • rating (list.rating)
  • volume (list.volume)
  • rich_text_field
  1. Selecciona Sync Shopify collections para abrir el modal de configuración de colecciones.
  2. 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.

Modal para seleccionar colecciones de un menú desplegable.

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.

Página de configuración de la integración con un estado de sincronización de productos.

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

Catálogo de Shopify con datos sincronizados.

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.

Página de configuración de la integración con una sincronización de catálogo de productos activa.

Datos de catálogo de Shopify compatibles

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.

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

  1. En Shopify, asigna a los productos relevantes la etiqueta de producto “Women’s”.

Un tipo de producto "Women's - Sweaters" con las etiquetas "Women's", "Sweaters" y "Men".

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

Modal para seleccionar etiquetas de productos de Shopify, con 15 etiquetas relacionadas con ropa seleccionadas, incluida "Women's".

Personalización

  1. 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.

Una selección de catálogo que filtra por etiquetas de productos que tienen el atributo "Women's".

  1. 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}}

Creador de notificaciones push con una selección de catálogo que incluye tres artículos con una etiqueta de producto.

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 los metacampos de productos para personalizar mensajes con detalles de productos personalizados más allá de los campos estándar de Shopify. Por ejemplo, incluye instrucciones de cuidado en una confirmación de pedido, muestra el país de origen en un correo electrónico de recomendación, o segmenta usuarios que compraron un material específico.

Cada metacampo sincronizado se convierte en una columna separada en tu catálogo, con el tipo de datos determinado por el tipo de metacampo. Para configurar la sincronización de metacampos, consulta Metacampos de productos de Shopify.

  1. En Shopify, establece el metacampo de producto seasonal en los productos relevantes con el valor summer (este es un valor de metacampo, no una etiqueta de producto).

Modal para añadir metacampos de productos, incluido el metacampo seasonal con el valor summer.

  1. En Braze, habilita la sincronización de metacampos y selecciona custom.seasonal (o el espacio de nombres y la clave que coincidan con tu metacampo de Shopify).

Modal para seleccionar metacampos de productos, con un menú desplegable expandido que tiene cuatro elementos seleccionados, incluido custom.seasonal.

Personalización

  1. Crea una selección de catálogo que filtre por metacampos que incluyan el valor correspondiente.

Una selección de catálogo que filtra por metacampos que tienen el atributo summer.

  1. En el creador de mensajes, añade la selección donde quieras incluir los metacampos de productos. 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 seasonal_summer %}

{% 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 con un valor de metacampo específico 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
Check out the latest summer products:
    {% catalog_selection_items se-team-ecommerce_shopify_catalog seasonal_summer %}
    {{ items[0].product_title}}{{items[0].price}}
    {{ items[1].product_title}}{{items[1].price}}
    {{ items[2].product_title}}{{items[2].price}}

Creador de notificaciones push con una selección de catálogo que incluye tres artículos usando una selección basada en metacampos.

Segmentación de catálogo (SQL)

Usa las Extensiones de segmento para crear segmentos basados en usuarios que interactuaron con un metacampo de producto. Por ejemplo, para encontrar usuarios que desencadenaron un evento de comercio electrónico con un producto cuya matriz de metacampos contiene un valor específico, 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
24
25
26
27
28
29
30
31
32
-- -----------------------------------------------------------------------------
-- When the metafield is stored as a JSON array in catalog field_value (for example,
-- '["winter","summer"]' or a list-type Shopify metafield serialized to JSON),
-- use ARRAY_CONTAINS like product_tags. Cast the element you search for to
-- VARIANT so types match the parsed array elements.
-- -----------------------------------------------------------------------------

-- Description:
-- Fetches users who triggered the ecommerce event with a product whose
-- metafield array contains a specific value (for example, segment on "seasonal").
-- For a date range, add events.time >= $start_date AND events.time <= $end_date.
-- For first/last triggered, reuse the CTE pattern from Template 3 with this
-- ARRAY_CONTAINS predicate instead of items.field_value = '<metafield_value>'.
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 = '<metafield_name>'
    AND ARRAY_CONTAINS('<array_element_value>'::VARIANT, TRY_PARSE_JSON(items.field_value));

Si quieres segmentar clientes que han realizado un pedido con metacampos de producto específicos, usa una de las siguientes plantillas SQL de extensiones de segmento (todo el tiempo, período de tiempo específico, primer o último evento desencadenado).

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
-- =============================================================================
-- Segment Extension: Metafields × Ecommerce Events — Example SQL Templates
-- =============================================================================
-- Metafield column names in CATALOGS_ITEMS_SHARED follow:
--   field_name = 'metafield_<namespace>_<key>'
-- Replace placeholders: app_group_id, catalog_id, event name, and the metafield
-- field_name + value. For array-type metafield values, use ARRAY_CONTAINS
-- with TRY_PARSE_JSON(items.field_value) similar to the product_tags example.
-- =============================================================================

-- -----------------------------------------------------------------------------
-- Template 1: Map metafields to event triggers (all time)
-- -----------------------------------------------------------------------------
-- Users who have ever triggered the ecommerce event with a product that has
-- the given metafield value. Event-agnostic: change events.name for the
-- desired event (e.g. ecommerce.order_placed, ecommerce.product_viewed).
-- -----------------------------------------------------------------------------

-- Description:
-- Fetches users who have engaged with catalog items that have a specific
-- product metafield. Joins the catalog to custom events by matching
-- events.properties.products (e.g. variant_id) to catalog items.
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 = '<metafield_name>'
    AND items.field_value = '<metafield_value>';


-- -----------------------------------------------------------------------------
-- Template 2: Map metafields to event triggers (for a specific period)
-- -----------------------------------------------------------------------------
-- Same as Template 1, restricted to events within a time window. Use
-- $start_date and $end_date (Segment Extension parameters) or literal
-- Unix timestamps.
-- -----------------------------------------------------------------------------

-- Description:
-- Fetches users who triggered the ecommerce event with a product that has
-- the given metafield value within the specified time range.
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 events.time >= $start_date
    AND events.time <= $end_date
    AND items.catalog_id = '<catalog_id>'
    AND items.field_name = '<metafield_name>'
    AND items.field_value = '<metafield_value>';


-- -----------------------------------------------------------------------------
-- Template 3: Map metafields — first or last triggered an event
-- -----------------------------------------------------------------------------
-- Users for whom the *first* (earliest) or *last* (most recent) matching
-- event (by time) involved a product with the given metafield. Switch
-- ORDER BY to time ASC for first, time DESC for last.
-- -----------------------------------------------------------------------------

-- Description:
-- Fetches users whose first (or last) occurrence of the ecommerce event
-- involved a catalog item with the specified metafield value.
WITH events_with_catalog_metafield AS (
    SELECT
        events.user_id,
        events.time,
        events.id AS event_id,
        ROW_NUMBER() OVER (
            PARTITION BY events.user_id
            ORDER BY events.time ASC   -- use DESC for "last triggered"
        ) AS rn
    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 = '<metafield_name>'
        AND items.field_value = '<metafield_value>'
)
SELECT
    user_id
FROM
    events_with_catalog_metafield
WHERE
    rn = 1;

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.

  1. En Shopify, crea una colección “New Women’s Products - In Stock” con tus productos de mejor rendimiento.

Lista de colecciones de Shopify, incluida "New Women's Products - In Stock".

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

Modal para seleccionar colecciones, con un menú desplegable expandido que selecciona cuatro colecciones.

Personalización

  1. 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.

Una selección de catálogo que filtra por colecciones que tienen el atributo de Collection ID "470645342446".

  1. 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}}

Creador de notificaciones push con una selección de catálogo que incluye tres artículos con una etiqueta de producto.

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

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:

New Stuff!