Skip to content

Sincronização de produtos da Shopify

Você pode sincronizar todos os produtos da sua loja Shopify com um catálogo da Braze para uma personalização mais profunda do envio de mensagens.

Os catálogos da Shopify serão atualizados quase em tempo real à medida que você fizer edições e alterações nos produtos da sua loja Shopify. É possível enriquecer seu carrinho abandonado, a confirmação do pedido e muito mais com os detalhes e as informações mais atualizadas do produto.

Além de oferecer suporte aos dados principais de produtos da Shopify, você pode sincronizar coleções da Shopify, tags de produtos e metacampos de produtos com o seu catálogo da Braze. Esses campos adicionais possibilitam uma personalização mais rica, seleções de catálogo mais precisas e uma segmentação mais poderosa por meio de Extensões de segmento.

Configure sua sincronização de produtos da Shopify

Se você já instalou sua loja Shopify, ainda poderá sincronizar seus produtos seguindo as instruções abaixo.

Etapa 1: Ativar a sincronização

Você pode sincronizar seus produtos com um catálogo da Braze por meio do fluxo de instalação da Shopify ou na página de parceiros da Shopify.

Etapa 3 do processo de configuração com "Shopify Variant ID" como o "Catalog product identifier".

Etapa 2: Selecione o identificador do seu produto

Selecione o identificador de produto a ser usado como ID do catálogo:

  • Shopify Variant ID
  • SKU

Os valores de ID e de cabeçalho para o identificador de produto que você escolher só podem incluir letras, números, hífens e sublinhados. Se o identificador do produto não seguir esse formato, a Braze o removerá da sincronização do catálogo.

Esse será o identificador principal que você usará para fazer referência às informações do catálogo da Braze.

Etapa 3: Configure dados adicionais de produtos (opcional)

Opcionalmente, você pode ativar a sincronização de tags de produtos, coleções da Shopify e metacampos. Ative ou modifique essas configurações após a sincronização inicial na página de parceiros da Shopify.

Configurações para sincronizar produtos e variantes da Shopify com a Braze.

  1. Na página Sync product data to Braze, marque a caixa de seleção Sync product tags para abrir o modal Select product tags.
  2. Selecione até 20 tags de produtos para sincronizar com o seu catálogo da Braze. Somente as tags selecionadas serão sincronizadas.

Modal de seleção de tags de produtos com uma seleção de tags.

  1. Se você já possui uma integração com a Shopify, reautorize o app Braze Shopify para instalar os novos escopos necessários para sincronizar produtos. Se você é um novo cliente, vá para a próxima etapa.

Banner solicitando a reautorização do app Braze Shopify.

  1. Selecione Sync product metafields para abrir o modal de configuração de metacampos.

Seção de sincronização de dados de produtos com a Braze, com opções para selecionar entre múltiplas configurações, incluindo coleções.

  1. Selecione até 20 metacampos pesquisáveis para sincronizar. Cada um se torna uma coluna separada no seu catálogo para uso em recursos como seleções de catálogo ou Extensões de segmento.
    • Ao nomear metacampos, observe que espaços se tornam “_” e todos os caracteres especiais são removidos para atender às restrições de nomenclatura de campos do catálogo da Braze.

Modal para selecionar metacampos de produtos.

A Braze oferece suporte aos seguintes objetos de metacampos e alguns de seus respectivos tipos.

A Braze não oferece suporte a objetos de metacampos, incluindo alguns respectivos tipos de lista:

  • 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. Selecione Sync Shopify collections para abrir o modal de configuração de coleções.
  2. Selecione até 20 coleções para sincronizar.
    • O modal fornece uma lista pesquisável de até 5.000 das coleções criadas ou atualizadas mais recentemente na sua loja Shopify.
    • Coleções selecionadas anteriormente que não estão mais entre as 5.000 principais ainda aparecerão na sua seleção.

Modal para selecionar coleções em um menu suspenso.

Etapa 4: Acompanhe o progresso da sincronização

Após salvar sua configuração, a Braze começará a sincronizar seus produtos e atualizará o status para In Progress na página de parceiros da Shopify. O tempo de sincronização depende do número de produtos e variantes na sua loja.

Você pode sair da página assim que a sincronização estiver em andamento; a Braze enviará uma notificação no dashboard quando a sincronização for concluída. Após a conclusão, o status será atualizado para Active e você poderá visualizar seus produtos selecionando o nome do catálogo na página de parceiros da Shopify.

Página de configurações de integração com o status de sincronização de produtos.

Você também pode visualizar tags de produtos, metacampos e coleções sincronizados no seu catálogo da Shopify como novas colunas.

Catálogo da Shopify com dados sincronizados.

Etapa 5: Gerencie sua configuração

Cada tipo de sincronização possui um cartão de resumo na página de parceiros da Shopify mostrando a contagem total sincronizada, o status atual e um link para o seu catálogo. Selecione o ícone de visualização para ver sua configuração ativa e editá-la.

Você pode modificar a sincronização de produtos da Shopify, incluindo o gerenciamento de tags de produtos, coleções e metacampos de produtos a qualquer momento na página de parceiros da Shopify.

Página de configurações de integração com uma sincronização ativa de catálogo de produtos.

Dados de catálogo compatíveis com a Shopify

Casos de uso de catálogos da Shopify

Esses casos de uso mostram como você pode usar os dados sincronizados do catálogo da Shopify para personalizar mensagens.

Use tags de produtos para personalizar mensagens com base em como seus produtos estão categorizados na Shopify. Por exemplo, você pode enviar uma promoção apresentando todos os produtos com a tag “Summer Sale” por meio de uma seleção de catálogo, ou criar um segmento de usuários que compraram produtos com a tag “Premium”.

As tags de produtos são armazenadas como um campo de array em cada item do catálogo. Para configurar a sincronização de tags de produtos, consulte Tags de produtos da Shopify.

Seleção de catálogo

  1. Na Shopify, atribua a tag de produto “Women’s” aos produtos relevantes.

Um tipo de produto "Women's - Sweaters" com as tags "Women's", "Sweaters" e "Men".

  1. Na Braze, ative a sincronização de tags e selecione a tag de produto “Women’s”.

Modal para selecionar tags de produtos da Shopify, com 15 tags relacionadas a roupas selecionadas, incluindo "Women's".

Personalização

  1. Crie uma seleção de catálogo que filtre produtos que possuam a respectiva tag de produto, como “Women’s”. Você só pode usar um campo de array único em uma única seleção de catálogo, e até 50 produtos na sua seleção de catálogo.

Uma seleção de catálogo que filtra tags de produtos que possuem o atributo "Women's".

  1. No criador de mensagens, adicione a seleção onde você deseja inserir os produtos da seleção de catálogo com a tag “Women’s”. Por exemplo, você pode usar um bloco de produto 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>

Ou, se você quiser mencionar produtos específicos com a tag “Women’s” em uma notificação por push, pode usar a ferramenta Add Personalization e especificar os itens do seu 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}}

Criador de notificações por push com uma seleção de catálogo trazendo três itens com uma tag de produto.

Segmentação por catálogo (SQL)

Use Extensões de segmento para criar segmentos com base em usuários que interagiram com uma tag de produto. Por exemplo, para encontrar usuários que se engajaram com itens do catálogo que contêm uma tag de produto específica, use 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)));

Use metacampos de produtos para personalizar mensagens com detalhes personalizados de produtos além dos campos padrão da Shopify. Por exemplo, inclua instruções de cuidado em uma confirmação de pedido, exiba o país de origem em um e-mail de recomendação ou segmente usuários que compraram um material específico.

Cada metacampo sincronizado se torna uma coluna separada no seu catálogo, com o tipo de dado determinado pelo tipo de metacampo. Para configurar a sincronização de metacampos, consulte Metacampos de produtos da Shopify.

  1. Na Shopify, defina o metacampo de produto seasonal nos produtos relevantes como summer (esse é um valor de metacampo, não uma tag de produto).

Modal para adicionar metacampos de produtos, incluindo o metacampo seasonal com o valor summer.

  1. Na Braze, ative a sincronização de metacampos e selecione custom.seasonal (ou o namespace e a chave que correspondem ao seu metacampo da Shopify).

Modal para selecionar metacampos de produtos, com um menu suspenso expandido que tem quatro itens selecionados, incluindo custom.seasonal.

Personalização

  1. Crie uma seleção de catálogo que filtre metacampos que incluam o respectivo valor.

Uma seleção de catálogo que filtra metacampos que possuem o atributo summer.

  1. No criador de mensagens, adicione a seleção onde você deseja inserir metacampos de produtos. Por exemplo, você pode usar um bloco de produto 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>

Ou, se você quiser mencionar produtos específicos com um valor de metacampo específico em uma notificação por push, pode usar a ferramenta Add Personalization e especificar os itens do seu 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}}

Criador de notificações por push com uma seleção de catálogo trazendo três itens usando uma seleção baseada em metacampos.

Segmentação por catálogo (SQL)

Use Extensões de segmento para criar segmentos com base em usuários que interagiram com um metacampo de produto. Por exemplo, para encontrar usuários que dispararam um evento de e-commerce com um produto cujo array de metacampos contém um valor específico, use 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));

Se você quiser segmentar clientes que fizeram um pedido com metacampos de produto específicos, use um dos seguintes modelos SQL de extensão de segmento (todo o período, período específico, primeiro ou último disparo de um evento).

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;

Use coleções da Shopify para trazer agrupamentos de produtos curados para suas mensagens, que também são usados no seu site e experiências de app da Shopify. Por exemplo, destaque “Novidades” em um e-mail promocional, faça venda cruzada de “Mais Vendidos” em um Canvas de carrinho abandonado ou segmente usuários que navegaram por uma coleção sazonal.

  1. Na Shopify, crie uma coleção “New Women’s Products - In Stock” com seus produtos de melhor desempenho.

Lista de coleções da Shopify, incluindo "New Women's Products - In Stock".

  1. Na Braze, ative a sincronização de coleções e selecione “Women’s Products - In Stock”.

Modal para selecionar coleções, com um menu suspenso expandido que seleciona quatro coleções.

Personalização

  1. Crie uma seleção de catálogo chamada “New Women’s Products - In Stock” que filtre produtos que possuam o ID dessa coleção. Você só pode usar um campo de array único em uma única seleção de catálogo, e até 50 produtos na sua coleção.
    • Você também pode criar suas próprias seleções personalizadas filtrando pelo campo Collections.

Uma seleção de catálogo que filtra coleções que possuem o atributo Collection ID "470645342446".

  1. Na sua mensagem, insira sua coleção usando a seleção criada ou referenciando diretamente a coleção. Por exemplo, você pode usar um bloco de produto 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>

Ou, se você quiser mencionar novos produtos específicos em uma notificação por push, pode usar a ferramenta Add Personalization e especificar os itens do seu 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}}

Criador de notificações por push com uma seleção de catálogo trazendo três itens com uma tag de produto.

Segmentação por catálogo (SQL)

Crie um segmento de usuários que interagiram com uma coleção. Use Extensões de segmento para criar segmentos com base na associação a coleções. Por exemplo, para encontrar usuários que compraram produtos de uma coleção específica no último ano, use 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)));

Desativar a sincronização de produtos

A desativação do recurso de sincronização de produtos da Shopify excluirá o catálogo completo e os produtos. Isso também pode afetar quaisquer mensagens que possam estar usando ativamente os dados do produto desse catálogo. Confirme se você atualizou ou pausou essas Campaigns ou Canvas antes da desativação, pois isso pode resultar no envio de mensagens sem detalhes do produto. Não exclua o catálogo da Shopify diretamente na página de catálogos.

Solução de problemas

Se a sincronização de produtos da Shopify apresentar um erro, ele pode ser resultado dos seguintes problemas. Siga as instruções sobre como corrigir o problema e resolver a sincronização:

New Stuff!