Hey @breaddddd
Danke für die Angaben und ich sehe du warst auch in Kontakt mit @paul_n , einem unserer Entwickler.
Das Hinzufügen mehrerer Werte zu einem Custom Metafeld in Shopify und das Nutzen dieser für Filterzwecke kann somit durchaus komplex werden, insbesondere wenn du eine Lösung suchst, die mehrere Bedingungen berücksichtigt. Dein Anliegen, Farbwerte wie “black” oder “beige” einem Produkt zuzuweisen und diese dann im filters.farbe Metafeld zu speichern, erfordert eine spezielle Logik, da Shopify Flow von sich aus keine direkte Unterstützung für solch spezifische Szenarien bietet, wie es aussieht.
Basierend auf deiner Beschreibung und den Hinweisen Pauls scheint das Problem in der Logik deines Shopify Flow zu liegen, da es jeweils nur einen Pfad durchläuft, statt beide Bedingungen (schwarz und beige) zu berücksichtigen, wenn ein Produkt beide Farben enthält. Um dieses Problem zu lösen, könntest du entweder die Logik innerhalb von Shopify Flow anpassen (falls das möglich ist) oder, wie Paul vorschlug, einen benutzerdefinierten Code verwenden, der flexibler ist und eine bessere Kontrolle über komplexe Logiken bietet.
Shopify Flow bietet nach meinen Recherchen derzeit keine native Unterstützung für komplexe Logikoperationen, wie das Hinzufügen mehrerer Werte zu einem Metafeld basierend auf mehreren Bedingungen. Du könntest versuchen, die Logik so anzupassen, dass du zunächst prüfst, ob das Produkt beide Farben enthält, und dann entsprechend handelst. Dies könnte jedoch schnell komplex werden, je nachdem, wie viele verschiedene Bedingungen und Aktionen du hast.
Der vorgeschlagene benutzerdefinierte Code-Ansatz aus Github ermöglicht es dir, genauer festzulegen, wie die Farbwerte zu den Metafeldern hinzugefügt werden sollen. In deinem Fall müsstest du die Logik so anpassen, dass sie speziell für die Farben “black” und “beige” funktioniert, anstatt für allgemeine Farb-Tags.
Hier eine angepasste Version des Codes, die ggf. funzen könnte:
export default function main({product}) {
// Bestehende Werte im Metafeld filters.farbe
const filtersFarbeMetafieldObject = product.metafields.find((metafield) => metafield.namespace === "filters" && metafield.key === "farbe");
const filtersFarbe = filtersFarbeMetafieldObject ? JSON.parse(filtersFarbeMetafieldObject.value) : [];
const colorValues = ["black", "beige"]; // Die Farbwerte, die du überprüfen möchtest
// Überprüfe, ob das Produkt-Label die Farben enthält
colorValues.forEach((colorValue) => {
if (product.metafields.some((metafield) => metafield.namespace === "custom" && metafield.key === "custom_label_2" && metafield.value.includes(colorValue))) {
if (!filtersFarbe.includes(colorValue)) {
filtersFarbe.push(colorValue);
}
}
});
// Ausgabe eines Strings, der direkt an eine Metafeld-Aktualisierungsaktion übergeben werden kann
return { filtersFarbe: JSON.stringify(filtersFarbe) };
}
Dieser Code prüft, ob im custom_label_2-Metafeld die Werte “black” oder “beige” enthalten sind, und fügt diese dann dem filters.farbe-Metafeld hinzu. Beachte, dass diese Lösung voraussetzt, dass du eine Möglichkeit hast, benutzerdefinierten Code in deinem Shopify-Flow auszuführen, was durch die “Run code”-Aktion ermöglicht werden könnte, falls diese verfügbar ist. Wage ich aber fast zu bezweifeln.
Falls nicht, könntest du externe Tools oder Apps wie Metafield Guru verwenden, die mit Shopify API integrieren und die Ausführung benutzerdefinierter Logik ermöglichen.
Weitere Workarounds:
Shopify ermöglicht die Erstellung von Metafield-Listen, die mehrere Werte in einem einzigen Metafeld speichern können. Diese Listen können für eine Vielzahl von Inhaltstypen verwendet werden, einschließlich Textfelder, Farben, URLs und mehr. Metafield-Listen bieten eine praktische Lösung, um Produkteigenschaften wie Farben flexibel zu verwalten und im Shop für Filterzwecke darzustellen (Mehr dazu hier im Shopify Help Center).
Shopify unterstützt auch verschiedene Metafeld-Typen, darunter Boolesche Werte, Farbcodes, Daten, Dimensionen und sogar JSON-Objekte. Für jedes Metafeld und dessen Definition wird ein Typ festgelegt, der bestimmt, welche Art von Informationen gespeichert werden können. Die Nutzung von JSON für komplexe Datenstrukturen oder Listen für die Speicherung mehrerer Referenztypen könnte hier von Nutzen sein, um mehrere Farben oder andere Eigenschaften in einem Produkt zu verwalten (Mehr dazu hier).
Es wurden ähnliche Herausforderungen bei der Nutzung von Metafeldern für die Filterung hier in der Community diskutiert. Es scheint, dass die integrierte Filterfunktionalität von Shopify Einschränkungen aufweist, insbesondere wenn Produkte mehrere Werte für ein Attribut aufweisen, wie z.B. mehrere diätetische Eigenschaften oder Farben. Die Möglichkeit, mehrere Werte effizient zu filtern, ist ein häufig angefragtes Feature, das derzeit durch Standardfunktionen von Shopify nicht vollständig abgedeckt wird (Siehe einen Community Beitrag hier).
FAZIT: Eine direkte Lösung innerhalb von Shopify Flow für das Hinzufügen und effektive Filtern nach mehreren Werten in einem Custom Metafeld scheint nicht ohne Weiteres möglich zu sein. Alternativ könnten benutzerdefinierte Lösungen, wie die Nutzung von JavaScript für spezifische Theme-Anpassungen oder die Integration von Apps, die die Shopify API nutzen, um fortgeschrittene Logiken zu implementieren, eine weitere Rolle spielen. Es bleibt zu hoffen, dass Shopify eine Unterstützung für komplexe Filterlogiken in Zukunft erweitert, um solche Anforderungen direkt innerhalb der Plattform zu ermöglichen.
Hoffe das hilft dir weiter - lass wissen falls nicht! 
Warum nicht etwas Gamification in das Shop einbauen, um deinen Kunden etwas Fun im Shop anzubieten? Gerne kann ich bei Interesse Tipps dazu geben!
Hast du weitere Fragen zum Shop? Gebe einfach ein Suchbegriff oben in der Suchleiste der Community Landingpage ein, denn das Thema haben wir sehr wahrscheinlich schon besprochen. Halte bitte Ausschau in deiner E-Mail auf Notifications zu Antworten auf deine Fragen in der Community.