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

Se estiver selecionando SKU como ID do catálogo, certifique-se de que todos os seus produtos e variantes na sua loja tenham um SKU definido e que sejam exclusivos.
- Se um item não tiver um SKU, a Braze não poderá sincronizar esse produto no catálogo.
- Se você tiver mais de um produto com o mesmo SKU, isso pode causar um comportamento inesperado ou fazer com que as informações do produto sejam substituídas involuntariamente pelo SKU duplicado.
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.

Adicione tags de produtos, coleções da Shopify e metacampos na Shopify primeiro. Se eles não existirem na Shopify, não aparecerão na Braze.

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

- Selecione Sync Shopify collections para abrir o modal de configuração de coleções.
- 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.

A Braze usa o ID de coleção da Shopify para identificar coleções sincronizadas, que são então usadas ao criar seleções de catálogo e filtros de segmento.


Para exemplos de como usar cada tipo de dado de produto, consulte Casos de uso de catálogos da Shopify
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.

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


Se a sincronização exceder o limite de armazenamento do seu catálogo, a Braze interromperá a sincronização e as novas atualizações de produtos não serão mais refletidas. Entre em contato com seu gerente de sucesso do cliente para fazer upgrade do seu nível, se necessário.
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.


Alterar suas seleções sincronizadas pode afetar Campaigns, Canvas ou seleções de catálogo ativas que fazem referência a elas. Atualize o conteúdo ativo para que funcione corretamente ao aplicar as alterações.
Dados de catálogo compatíveis com a Shopify
| Campo | Tipo de dado | Exemplos |
|---|---|---|
id |
string | 45264808411274 quando o identificador de produto do catálogo é Shopify Variant ID12345 quando o identificador de produto do catálogo é SKU (corresponde ao valor que você selecionou na Etapa 2) |
store_name |
string | “your-store” (subdomínio da loja Shopify, sem .myshopify.com) |
shopify_product_id |
number | 7939032613002 (armazenado como número no seu catálogo da Braze; as APIs da Shopify podem retornar esse ID como string) |
shopify_variant_id |
number | 45264808411274 (armazenado como número no seu catálogo da Braze; as APIs da Shopify podem retornar esse ID como string) |
product_title |
string | “Classic leather jacket” |
variant_title |
string | “Large / Red”, “Medium” ou “Default Title” para produtos com variante única |
status |
string | “active”, “draft”, “archived” |
product_image_url |
string | “https://cdn.shopify.com/s/files/1/0641/0970/7402/files/t_shir.jpg?v=1736538760” |
variant_image_url |
string | Mesma URL no estilo CDN da imagem do produto quando não existe imagem de variante; caso contrário, uma URL de imagem específica da variante |
vendor |
string | “Flash and Thread”, “PantsLabyrinth” |
product_type |
string | “Outerwear”, “T-Shirts” (do campo Product type do produto na Shopify) |
product_url |
string | “https://your-store.myshopify.com/products/classic-leather-jacket” |
product_handle |
string | “classic-leather-jacket” |
published_scope |
string | “web”, “global” |
price |
number | 10.00, 24.99A Shopify frequentemente retorna preços como strings (por exemplo, "199.00" na REST Admin API). A Braze os converte em números para este campo do catálogo. |
compare_at_price |
number | 15.00 quando Compare at price está definido na Shopify0 quando a Shopify não possui um preço de comparação. As APIs da Shopify normalmente retornam null para um preço de comparação não definido; a Braze armazena 0 no catálogo para que o campo seja sempre numérico (esse é um padrão da Braze, não um valor que a Shopify envia como 0). |
inventory_quantity |
number | 20, 0 ou um valor negativo quando a sobrevenda é permitida (por exemplo, -18) |
options |
string | “Size,Color” A Shopify permite até três tipos de opção por produto (por exemplo, Size, Color, Material). O valor de options é uma lista separada por vírgulas desses nomes. |
option_values |
string | “Medium,Red”, “Large,Red” Cada valor corresponde à mesma ordem de options (até três valores). |
sku |
string | “12345”, “SKU-001-RED-L” |
product_tags |
array | ["Summer", "Sale", "New"]Requer a sincronização de tags de produtos. |
collection_ids |
array | [123456789012, 987654321098] (IDs de coleção da Shopify)Requer a sincronização de coleções da Shopify. |
Metafield columns |
Varia por tipo | Cada metacampo sincronizado aparece como uma coluna separada nomeada pela sua chave. Consulte Metacampos compatíveis na guia “Metacampos de produtos” da etapa 3 para mais informações. |

Seu catálogo da Shopify é gerenciado pela Shopify. Para atualizar seu catálogo, faça alterações diretamente na sua loja Shopify e elas serão sincronizadas automaticamente com a Braze. Para excluir seu catálogo da Shopify, acesse a página de parceiros da Shopify na Braze e desative a sincronização.
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.

A Braze sincroniza até 250 variantes de cada produto da Shopify no seu catálogo. Variantes além desse limite não são sincronizadas. Se você precisar de mais de 250 variantes por produto, entre em contato com seu gerente de sucesso do cliente da Braze.
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
- Na Shopify, atribua a tag de produto “Women’s” aos produtos relevantes.

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

Personalização
- 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.

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

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 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.
Seleção de catálogo
- Na Shopify, crie uma coleção “New Women’s Products - In Stock” com seus produtos de melhor desempenho.

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


Para coleções da Shopify, você deve usar o Collection ID, que é encontrado na URL ao visualizar a coleção. Por exemplo, uma URL https://admin.shopify.com/store/se-team-ecommerce/collections/470645342446 tem o Collection ID 470645342446.
Personalização
- 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.

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

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

Você também pode configurar notificações de queda de preço e notificações de reposição de estoque!
Note que, para cada caso de uso, você deve criar um evento personalizado que capture o status de inscrição de um usuário no seu catálogo. O evento personalizado requer uma propriedade de evento que mapeie o SKU ou Shopify Variant ID que você selecionou como parte da sincronização de produtos da Shopify.
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:
| Erro | Motivo | Solução |
|---|---|---|
| Erro do servidor | Isso ocorre se houver um erro de servidor no lado da Shopify quando tentamos sincronizar seus produtos. | Desative a sincronização e sincronize novamente todo o seu inventário de produtos. |
| SKU duplicado | Isso ocorre se você usar um SKU como ID do item do catálogo e tiver produtos com o mesmo SKU. Como o ID do item do catálogo deve ser exclusivo, todos os seus produtos devem ter SKUs exclusivos. | Faça uma auditoria na sua lista completa de produtos e variantes na Shopify para garantir que não haja SKUs duplicados. Se houver SKUs duplicados, atualize-os para que sejam SKUs exclusivos somente na sua conta da loja Shopify. Depois que isso for corrigido, desative a sincronização e sincronize novamente todo o seu inventário de produtos. |
| Limite de catálogo excedido | Isso ocorre se você exceder o limite do catálogo. A Braze não poderá concluir a sincronização ou manter a sincronização ativa devido à falta de espaço de armazenamento disponível. | Há duas soluções para esse problema: 1. Entre em contato com o gerente da sua conta para fazer upgrade do seu nível e aumentar o limite do seu catálogo. 2. Libere espaço de armazenamento excluindo qualquer um dos seguintes itens: - Itens de catálogo de outros catálogos - Outros catálogos - Seleções criadas Depois de usar qualquer uma das soluções, a sincronização deve ser desativada e reativada em seguida. |





