Ir para o conteúdo

Corresponder itens do catálogo a um array de atributos personalizados

Quando cada usuário mantém uma lista de nomes de produtos salvos em seu perfil, use uma seleção de catálogo junto com Liquid para exibir apenas as linhas do catálogo que aparecem nessa lista — por exemplo, em um e-mail de lista de desejos.

Sobre este exemplo

A Flash & Thread armazena os nomes dos produtos salvos de cada cliente em um atributo personalizado de array de strings (saved_product_names). O catálogo contém detalhes completos dos produtos (categoria, preço, URL da imagem, estoque).

As seleções de catálogo podem filtrar colunas do catálogo com base em valores estáticos ou Liquid, incluindo campos de array nas linhas do catálogo. Elas não filtram uma linha do catálogo com base em valores armazenados em um array do perfil de usuário. Para personalizar a partir da lista do usuário, retorne um conjunto amplo de itens do catálogo com uma seleção e, em seguida, use Liquid para manter apenas as linhas que correspondem ao array do perfil.

Este padrão:

  1. Atribui o atributo personalizado de array do usuário a uma variável Liquid.
  2. Chama catalog_selection_items para uma seleção de catálogo pré-filtrada (até 50 itens).
  3. Itera sobre items e usa contains para comparar cada campo do catálogo (por exemplo, name ou id) com o array.

Considerações

  • Teste Liquid e dados de catálogo em um espaço de trabalho de teste antes de enviar para clientes.
  • Como uma seleção retorna no máximo 50 linhas do catálogo, adicione filtros (por exemplo, em estoque, categoria ativa ou faixa de preço) que mantenham os itens salvos prováveis de cada usuário dentro desse conjunto de resultados.
  • Este exemplo usa um array de strings no perfil de usuário.
  • Para um array de objetos, faça a correspondência com uma propriedade dentro de cada objeto (por exemplo, product_id) e ajuste a verificação contains ou use um loop for sobre os objetos. Consulte Array de objetos.
  • O comportamento de contains depende do tipo de atributo; para arrays, use contains em vez de ==. Consulte Lógica condicional.
  • Faça a correspondência com identificadores estáveis (por exemplo, id do catálogo) quando nomes de produtos podem mudar ou duplicar.
  • Os snippets de Liquid neste artigo são exemplos. Valide a renderização nos seus canais (HTML de e-mail, push e outros).

Configuração

Este exemplo assume:

Ativo Detalhes
Atributo personalizado saved_product_names — array de strings (por exemplo, ["linen_shirt", "trail_jacket", "canvas_tote"])
Catálogo apparel_products com as colunas id, category, name, price, inventory, image_url
Seleção in_stock_apparel em apparel_products, limite de 50 resultados, com filtros que excluem linhas irrelevantes (por exemplo, inventory maior que 0)

Etapa 1: Crie o catálogo e a seleção

  1. Importe ou sincronize as linhas de produtos em um catálogo chamado apparel_products.
  2. Crie uma seleção (por exemplo, in_stock_apparel) que retorne quantas linhas relevantes você precisar, até o limite de 50 itens.
  3. Adicione filtros de seleção para descartar linhas que você nunca quer na mensagem (fora de estoque, categoria errada, e assim por diante).

Para a configuração de seleções, consulte Seleções.

Etapa 2: Adicione Liquid na sua mensagem

Atribua o array do perfil, carregue a seleção e faça um loop com contains:

{% assign saved_product_names = custom_attribute.${saved_product_names} %}
{% catalog_selection_items apparel_products in_stock_apparel %}
{% for item in items %}
{% if saved_product_names contains item.name %}
Product: {{ item.name }}
Category: {{ item.category }}
Price: ${{ item.price }}
Image: {{ item.image_url }}
{% endif %}
{% endfor %}

Substitua item.name por item.id (ou outra coluna) se o seu array armazena IDs em vez de nomes de exibição. Adicione espaçamento ou HTML entre os campos conforme o seu canal. Em ${{ item.price }}, o $ é um símbolo de moeda literal que é impresso antes da saída do Liquid — ele não faz parte da sintaxe de personalização ${} da Braze.

Para gerar esse Liquid automaticamente, abra o modal Adicionar personalização (Itens do catálogo > Usar uma seleção). Consulte Usando catálogos.

Etapa 3: Pré-visualize e teste

Envie mensagens de teste para perfis com valores diferentes de saved_product_names. Confirme que apenas as linhas correspondentes do catálogo aparecem e que um array vazio não produz nenhuma linha de produto.

New Stuff!