… jedoch muss dazu zuerst das Bild angelegt werden, um die ID zu bekommen … um danch die Variante mit der image-ID upzudaten.
Gibt es auch die Möglichkeit direkt der Variante das Bild mitzugeben ohne den Umweg über die ID? z.B.
Du versuchst also das JSON-Format zu verstehen, um Produkte mit den Bildern in Shopify anzulegen. Derzeit, erlaubt Shopify m. E. und wie du selber sagst, nur die Zuweisung eines Bildes pro Variante über die image_id. Du möchtest aber eine direkte Einbettung des Bild-URLs innerhalb der Produktvariante. Dies wäre definitiv intuitiver, wird aber von Shopify nicht nativ unterstützt, ausser ggf. mit einer App wie StarApps Variant Image. Es gibt jedoch Möglichkeiten, den Workflow zu automatisieren und zu optimieren.
Man kann z. B. einen automatisierten Prozess entwickeln, der zuerst das Bild hochlädt, die zurückgegebene ID erhält, und dann die Produktvariante mit der image_id aktualisiert.
Um auf deine spezifische JSON-Struktur einzugehen: Das Format, dass du vorschlägst, wenn du ein Objekt in einem Array (wie “image”) definieren möchtest, könnte es wie folgt mit geschweiften Klammern aussehen:
"image": {"src": "bildlink1"}
anstatt:
"image": ["src": "bildlink1"]
Diese Struktur mit direkten Bildlinks in den Varianten, würde natürlich den Prozess vereinfachen, ist aber nicht üblich, da sie die Datenintegrität und -struktur komplexer gestaltet. Wenn du jedoch direkte Bildverknüpfungen zu Varianten trotzdem brauchst, ohne eine ID zu verwenden, kannst du erwägen diese Datenstruktur außerhalb von Shopify zu halten und diese Daten dann nur zur Darstellung verwenden, z. B. in einer eigenen App. Dies wäre jedoch nicht direkt in Shopify und erfordert zusätzliche Entwicklungsarbeit. Es muss tatsächlich zuerst ein Ressourcenobjekt (in diesem Fall ein Bild) erstellt werden, um eine ID zu erhalten, die dann in einem anderen Ressourcenobjekt (hier einer Produktvariante) referenziert werden kann.
@Gabe … habe weiter ausprobiert und verschiedene Variante ausprobiert. JSON-technisch ist das vollkommen in Ordnung aber ich verstehe hier scheinbar nicht die Shopify-Spezifikationen —
Wow du hast ja viel Arbeit in diese Sache gesteckt! Ich hoffe ich kann dir hier weiterhelfen. Hast du deine Fragen auch in unserer Englischen Community gestellt wo es API Experten und Partner gibt?
M. E. müssen Bilder zuerst unabhängig von Varianten oder Produkten hinzugefügt werden, und dann kann man die ID dieses Bildes verwenden, um es einer bestimmten Variante zuzuweisen. Deine aktuelle JSON-Struktur versucht, das Bild also direkt der Variante hinzuzufügen, was Shopify nicht direkt unterstützt.
Hier ist, wie du das ggf. ausprobieren kannst: füge zuerst das Bild zum Produkt hinzu, indem du die images.json API verwendest:
POST /admin/api/2023-07/products/PRODUCT_ID/images.json
{
"image": {
"src": "URL_DES_BILDES"
}
}
Dann nachdem du das Bild erfolgreich hinzugefügt hast, solltest du die Response bekommen, die die ID des Bildes enthält und sie einer bestimmten Variante zuweisen:
Das bedeutet, dass du für jeden Bild-Upload zwei API-Aufrufe durchführen müssen: einen, um das Bild hochzuladen, und einen weiteren, um es einer Variante zuzuweisen.
Der 400-Fehler, den du erhälst, deutet darauf hin, dass die Daten, die du sendest, nicht der erwarteten Struktur entsprechen.
Ja, so mache ich es jetzt auch bzw. habe es schon teilweise um gesetzt. Bilde die Shopify-ID-Struktur (Produkt, Varianten, Bilder) verknüpft mit unseren VariantenIds(SKUs), Artikelnummern und unserem Mediensystem … ab.