Hallo Supportteam,
ich rufe Artikel über “PlentyGetVariations” aus PlentyONE ab und übertrage sie anschließend nach Shopify. Das funktioniert grundsätzlich sehr gut.
Aktuell stehe ich jedoch vor einer Herausforderung bei den Artikelbildern:
Wir arbeiten in Plenty mit zwei unterschiedlichen Mandanten, entsprechend haben die Bilder auch unterschiedliche Mandanten-Verfügbarkeiten.
Über “PlentyGetVariations” erhalte ich derzeit lediglich alle Bild-URLs, unabhängig vom Mandanten.
Meine Frage ist daher:
Wie kann ich sicherstellen, dass nur die Bilder übertragen werden, die für den im Step gefilterten Mandanten freigegeben sind?
In den Step-Einstellungen gibt es ja bereits einen Filter nach Mandant. Wäre es daher nicht logisch, dass bei gesetztem Mandanten-Filter auch nur die für diesen Mandanten freigegebenen Bilder ausgegeben werden?
Oder gibt es hierfür einen empfohlenen Workaround?
VG
Thomas
Die Verfügbarkeiten der Bilder werden nur vom PlentyGetVariationImages Step ausgegeben. Die einzige Möglichkeit, die ich aktuell sehe, wäre:
- (gefilterte) Varianten über PlentyGetVariations Step abrufen (ohne Bilder)
- für diese Varianten die Bilder über den PlentyGetVariationImages Step abrufen.
- Mit Hilfe des Filter Steps die Bilder nach Mandanten-Verfügbarkeit filtern:
ImageAvailabilitiesMandant == "<id>" || ImageAvailabilitiesMandant == "-1" ( <id> muss noch ersetzt werden, „-1“ ist gesetzt, wenn das Bild für alle verfügbar ist )
- Bilder im Mapper nach Varianten ID gruppieren und dann mit dem PlentyGetVariations Step Ergebnis zusammenführen ( z.B. über einen Datastore)
Wir verwenden da den `anyClientId" Parameter der Plenty API. Dieser bezieht sich leider nur auf die Varianten-Verfügbarkeiten. Für die Bilder gibt es nur einen Filter für die Marktplatz-Verfügbarkeiten. Für die Mandanten-Verfügbarkeiten gibt es anscheinend keinen Filtermöglichkeit (jedenfalls nicht in der Plenty Doku)
VG Torsten
Guten Morgen @synesty-Torsten
Danke für deine schnelle Antwort.
Habe deinen Workflow so umsetzen können!
Ein Bilder-Filter im Step “PlentyGetVariations “für die Marktplatzverfügbarkeit wäre auch Top wenn ihr das umsetzen könntet.
Ich denke, dass das ein gutes Feature allgemein für den Step ist. Ist das schnell umsetzbar?
VG
Thomas
Hallo Thomas,
wir haben den Filter für die „Bild Marketplatzverfügbarkeit“ im PlentyGetVariations Step hinzugefügt. Du kannst hier eine Marktplatz ID angeben und dann werden im Ergebnis nur noch Varianten mit min. einem vorhandenen Bild (für diesen Marktplatz) ausgegeben.
Zusätzlich haben wir die Bild-Verfügbarkeiten (Spalten: ImageAvailabilitiesMandant, ImageAvailabilitiesMarketplace und ImageAvailabilitiesListing) im Ergebnis des Steps hinzugefügt. Damit ist es jetzt in einem zusätzlichen Mapper Step möglich, nur Bilder auszugeben, die z.B. die Mandanten ID_A aktiviert haben. Um die Bilder zu filtern, kannst du pro BildUrl prüfen, ob die entsprechende Mandanten-Verfügbarkeit vorhanden ist, z.B. mit folgendem Skript im Wert Feld des Mappers:
<#list ItemImageUrls.asList() as img><#assign av = ImageAvailabilitiesMandant.at(img_index)?split(";")><#if av?seq_contains("ID_A") || av?seq_contains("-1") >${img!}<#sep>,</#if></#list>
(ID_A muss noch ersetzt werden)
Damit musst du die Verfügbarkeiten nicht mehr über den PlentyGetVariationImages Step holen und kannst direkt mit dem PlentyGetVariations Ergebnis arbeiten.
VG Torsten
Moin @synesty-Torsten
Was soll ich sagen - Traumhaft!
Danke für die schnelle Umsetzung und Euren immer wieder tollen Support! Deshalb macht die Arbeit mit Euch/Synesty einfach Spaß!
VG
Thomas
1 Like
@synesty-Torsten
Ich wollte gerade meinen Flow umbauen.
Leider bekomme ich keine Werte bei mir angezeigt im PlentyGetVariations. Die URLs sind drin?!
Oder fehlt mir noch ein zusätzliches Feld?
VG
Thomas
Hallo Thomas,
die Daten sollten bei „Varianten Bildverknüpfungen“ mitkommen:
VG Torsten
@synesty-Torsten
Leider nein. Cache für Vorschau hab ich auch gelöscht
VG
Thomas
Hallo Thomas,
ich habe gerade nochmal ausprobiert und „Varianten Bildverknüpfungen“ reicht aus, damit die Bildverfügbarkeiten mitkommen.
Beim Testen habe ich aber auch gemerkt, das es eine Weile dauert, bis Änderungen im Plenty Backend über die API mitkommen. Da scheint es auch eine Art „cache“ zu geben.
Falls du die Bild-Verfügbarkeiten neu gesetzt hattest, kannst du es jetzt bitte nochmal versuchen.
VG Torsten
Guten Morgen @synesty-Torsten
Leider bleiben die Felder bei mir immer noch leer. Ich habe in der Sandbox mal einen neuen Flow angelegt. Keine Filter im Step. Gleiches Ergebnis.
VG
Thomas
Guten Morgen Thomas,
kannst du bitte im Flow den Debug Modus aktivieren und anschließend einen Artikel/Variante abrufen, der definitiv Bilder mit Verfügbarkeiten hinterlegt hat.
Wenn der Flow durchgelaufen ist, kannst du mir die Run ID (am besten per Ticket) schicken. Die Run ID findest du oben im Eventlog.
Ich schaue es mir dann direkt an.
VG Torsten
Noch eine Frage / Idee:
Kannst du für einen Testartikel bitte mal schauen, ob die Spalten im Ergebnis des PlentyGetVariationImages gefüllt sind ?
Hi @synesty-Torsten
Komischerweise gibt mir PlentyGetVariationImages gar kein Ergebnis aus?! Oder hat es was damit zu tun, dass ich in der Sandbox arbeite?
Die Bilder aus meinem Workflow hole ich momentan noch mit PlentyGetItemImages ab. Das funktioniert wunderbar.
Ich schicke dir noch die Run ID via Ticket
VG
Thomas
Hallo Thomas,
vielen Dank! Das hat mir sehr geholfen die Ursache zu finden.
Die Bilder sind nicht mit Varianten verknüpft. Deshalb kommen, sie im PlentyGetVariations nicht mit, wenn „Varianten Bildverknüpfungen“ aktiviert ist und der PlentyGetVariationImages liefert entsprechend auch kein Ergebnis.
Wir fügen die Spalten noch für die „Artikel Bilder“ hinzu („ItemImage…“ Spalten). Ich gebe dir dann nochmal Bescheid, sobald diese verfügbar sind (voraussichtlich nächste Woche).
VG Torsten
1 Like
Hallo Thomas,
die Verfügbarkeiten sind jetzt auch für die Artikelbilder vorhanden (ItemImageAvailabilities... Spalten). Dafür ist es ausreichend, wenn bei den zusätzlichen Feldern „Artikel Bilder“ ausgewählt ist. „Varianten Bildverknüpfungen“ ist nicht notwendig.
Hier nochmal das Skript von oben mit angepassten Spaltennamen:
<#list ItemImageUrls.asList() as img><#assign av = ItemImageAvailabilitiesMandant.at(img_index)?split(";")><#if av?seq_contains("ID_A") || av?seq_contains("-1") >${img!}<#sep>,</#if></#list>
VG Torsten
1 Like