Katalogartikel mit einem angepassten Attribut-Array abgleichen
Wenn Nutzer:innen eine Liste gespeicherter Produktnamen in ihrem Profil führen, können Sie eine Katalogauswahl zusammen mit Liquid verwenden, um nur die Katalogzeilen anzuzeigen, die in dieser Liste vorkommen – zum Beispiel in einer Wunschlisten-E-Mail.
Über dieses Beispiel
Flash & Thread speichert die gespeicherten Produktnamen jeder Kund:in in einem angepassten Attribut vom Typ String-Array (saved_product_names). Der Katalog enthält vollständige Produktdetails (Kategorie, Preis, Bild-URL, Bestand).
Katalogselektionen können Katalogspalten gegen statische oder Liquid-Werte filtern, einschließlich Array-Felder in Katalogzeilen. Sie filtern eine Katalogzeile jedoch nicht gegen Werte, die in einem Profilarray gespeichert sind. Um Inhalte basierend auf der Liste der Nutzer:innen zu personalisieren, geben Sie mit einer Selektion eine breite Menge von Katalogartikeln zurück und verwenden dann Liquid, um nur die Zeilen beizubehalten, die mit dem Profilarray übereinstimmen.
Dieses Muster:
- Weist das Array-basierte angepasste Attribut der Nutzer:innen einer Liquid-Variable zu.
- Ruft
catalog_selection_itemsfür eine vorgefilterte Katalogselektion auf (bis zu 50 Artikel). - Iteriert über
itemsund verwendetcontains, um jedes Katalogfeld (zum Beispielnameoderid) mit dem Array abzugleichen.

Dieses Muster funktioniert nur, wenn die Ergebnismenge der Selektion (bis zu 50 Katalogzeilen) plausibel die gespeicherten Artikel jeder Nutzer:in enthalten kann – zum Beispiel bei kleinen Katalogen oder wenn Filter die Selektion so weit eingrenzen, dass eine typische Liste abgedeckt wird. Wenn die gespeicherten Artikel einer Nutzer:in außerhalb der zurückgegebenen 50 Zeilen liegen, findet die Schleife keine Treffer und die Nachricht rendert für diese Artikel nichts – kein Filter löst dieses Problem im allgemeinen Fall, da die Selektion nicht gegen das Profilarray der Nutzer:innen abgleichen kann.
Überlegungen
- Testen Sie Liquid und Katalogdaten in einem Staging-Workspace, bevor Sie Nachrichten an Kund:innen senden.
- Da eine Auswahl maximal 50 Katalogreihen zurückgibt, fügen Sie Filter hinzu (zum Beispiel auf Lager, aktive Kategorie oder Preisspanne), die die wahrscheinlich gespeicherten Artikel jeder Nutzer:in innerhalb dieser Ergebnismenge halten.
- Dieses Beispiel verwendet ein String-Array im Kundenprofil.
- Für ein Array von Objekten gleichen Sie über eine Eigenschaft innerhalb jedes Objekts ab (zum Beispiel
product_id) und passen diecontains-Prüfung an oder verwenden einefor-Schleife über Objekte. Siehe Array von Objekten. - Das Verhalten von
containshängt vom Attributtyp ab; für Arrays verwenden Siecontainsanstelle von==. Siehe Bedingte Logik. - Gleichen Sie über stabile Bezeichner ab (zum Beispiel die Katalog-
id), wenn sich Produktnamen ändern oder doppelt vorkommen können. - Die Liquid-Snippets in diesem Artikel sind Beispiele. Validieren Sie das Rendering in Ihren Kanälen (E-Mail-HTML, Push usw.).
Einrichtung
Dieses Beispiel setzt Folgendes voraus:
| Asset | Details |
|---|---|
| Angepasstes Attribut | saved_product_names — String-Array (zum Beispiel ["linen_shirt", "trail_jacket", "canvas_tote"]) |
| Katalog | apparel_products mit den Spalten id, category, name, price, inventory, image_url |
| Selection | in_stock_apparel auf apparel_products, Ergebnislimit 50, mit Filtern, die irrelevante Zeilen ausschließen (zum Beispiel inventory größer als 0) |
Schritt 1: Katalog und Selection erstellen
- Importieren oder synchronisieren Sie Produktzeilen in einen Katalog namens
apparel_products. - Erstellen Sie eine Selection (zum Beispiel
in_stock_apparel), die so viele relevante Zeilen wie nötig zurückgibt, bis zum Limit von 50 Artikeln. - Fügen Sie Selection-Filter hinzu, um Zeilen auszuschließen, die nie in der Nachricht erscheinen sollen (nicht auf Lager, falsche Kategorie usw.).
Informationen zur Einrichtung von Selections finden Sie unter Selections.
Schritt 2: Liquid in Ihrer Nachricht hinzufügen
Weisen Sie das Profil-Array zu, laden Sie die Selection und verwenden Sie eine Schleife mit 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 %}
Ersetzen Sie item.name durch item.id (oder eine andere Spalte), wenn Ihr Array IDs statt Anzeigenamen speichert. Fügen Sie Abstände oder HTML zwischen den Feldern hinzu, passend zu Ihrem Kanal. In ${{ item.price }} ist das $ ein literales Währungssymbol, das vor der Liquid-Ausgabe ausgegeben wird – es gehört nicht zur ${}-Personalisierungssyntax von Braze.
Um dieses Liquid automatisch zu generieren, öffnen Sie das Modal Personalisierung hinzufügen (Katalogartikel > Eine Selection verwenden). Siehe Kataloge verwenden.
Schritt 3: Vorschau anzeigen und testen
Senden Sie Testnachrichten an Profile mit verschiedenen saved_product_names-Werten. Vergewissern Sie sich, dass nur übereinstimmende Katalogzeilen angezeigt werden und dass ein leeres Array keine Produktzeilen erzeugt.