Ir al contenido

Hacer coincidir artículos del catálogo con un arreglo de atributos personalizados

Cuando cada usuario guarda una lista de nombres de productos en su perfil, usa una selección de catálogo junto con Liquid para mostrar solo las filas del catálogo que aparecen en esa lista; por ejemplo, un correo electrónico de lista de deseos.

Acerca de este ejemplo

Flash & Thread almacena los nombres de productos guardados de cada cliente en un atributo personalizado de tipo arreglo de cadenas (saved_product_names). Su catálogo contiene los detalles completos de cada producto (categoría, precio, URL de imagen, inventario).

Las selecciones de catálogo pueden filtrar columnas del catálogo contra valores estáticos o de Liquid, incluidos campos de tipo arreglo en las filas del catálogo. No filtran una fila del catálogo contra valores almacenados en un arreglo del perfil de usuario. Para personalizar a partir de la lista del usuario, devuelve un conjunto amplio de elementos del catálogo con una selección y luego usa Liquid para conservar solo las filas que coincidan con el arreglo del perfil.

Este patrón:

  1. Asigna el atributo personalizado de tipo arreglo del usuario a una variable de Liquid.
  2. Llama a catalog_selection_items para una selección de catálogo prefiltrada (hasta 50 elementos).
  3. Itera sobre items y usa contains para comparar cada campo del catálogo (por ejemplo, name o id) con el arreglo.

Consideraciones

  • Prueba los datos de Liquid y de catálogo en un espacio de trabajo de prueba antes de enviar a los clientes.
  • Dado que una selección devuelve como máximo 50 filas de catálogo, añade filtros (por ejemplo, en stock, categoría activa o rango de precio) que mantengan los artículos guardados probables de cada usuario dentro de ese conjunto de resultados.
  • Este ejemplo utiliza un array de cadenas en el perfil de usuario.
  • Para un array de objetos, haz coincidir con una propiedad dentro de cada objeto (por ejemplo, product_id) y ajusta la verificación contains o usa un bucle for sobre los objetos. Consulta Array de objetos.
  • El comportamiento de contains depende del tipo de atributo; para arrays, usa contains en lugar de ==. Consulta Lógica condicional.
  • Haz coincidir con identificadores estables (por ejemplo, id de catálogo) cuando los nombres de producto puedan cambiar o duplicarse.
  • Los fragmentos de código de Liquid en este artículo son ejemplos. Valida la representación en tus canales (correo electrónico HTML, push, etc.).

Configuración

Este ejemplo asume lo siguiente:

Activo Detalles
Atributo personalizado saved_product_names — matriz de cadenas (por ejemplo, ["linen_shirt", "trail_jacket", "canvas_tote"])
Catálogo apparel_products con columnas id, category, name, price, inventory, image_url
Selección in_stock_apparel en apparel_products, límite de resultados 50, con filtros que excluyen filas irrelevantes (por ejemplo, inventory mayor que 0)

Paso 1: Crear el catálogo y la selección

  1. Importa o sincroniza las filas de productos en un catálogo llamado apparel_products.
  2. Crea una selección (por ejemplo, in_stock_apparel) que devuelva tantas filas relevantes como necesites, hasta el límite de 50 elementos.
  3. Añade filtros de selección para descartar filas que nunca quieras incluir en el mensaje (sin existencias, categoría incorrecta, etc.).

Para configurar la selección, consulta Selecciones.

Paso 2: Añadir Liquid en tu mensaje

Asigna la matriz del perfil, carga la selección y recorre con 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 %}

Sustituye item.name por item.id (u otra columna) si tu matriz almacena ID en lugar de nombres de visualización. Añade espacios o HTML entre los campos según tu canal. En ${{ item.price }}, el $ es un símbolo de moneda literal que se imprime antes de la salida de Liquid; no forma parte de la sintaxis de personalización ${} de Braze.

Para generar este Liquid de forma automática, abre el modal Añadir personalización (Elementos de catálogo > Usar una selección). Consulta Uso de catálogos.

Paso 3: Vista previa y prueba

Envía mensajes de prueba a perfiles con diferentes valores de saved_product_names. Confirma que solo aparecen las filas de catálogo coincidentes y que una matriz vacía no genera líneas de producto.

New Stuff!