Liquid, JavaScript, Themes
Hallo zusammen,
wir haben für einen Kunden einen Onlineshop entwickelt, dessen wichtigster Bestandteil eine Schnittstelle ist, die die Daten vom Warenwirtschaftssystem unseres Kunden (INTEGRA - falls das wer kennt) in regelmäßigen Intervallen in den Shop schaufelt und vom Shop im Gegenzug die neuen Bestellungen einsammelt.
Wir bekommen eine Fehlermeldung beim Aktualisieren eines Metafeldes in Shopify, wenn dieses wieder leer ist, nachdem es bereits einmal befüllt war. Die Fehlermeldung lautet schlicht: "Can't be blank".
Beispiel: In einem Metafeld eines Produktes haben wir zunächst die Artikelnummer eingetragen. Die Daten wurden in den Shop übertragen. Einige Zeit später merken wir, dass wir die Artikelnummer ins falsche Feld eingetragen haben. Wir löschen sie also wieder (das Metafeld wird leer) und tragen sie in das dafür vorgesehene Metafeld ein. Nun kommt es zu dem Ereignis, dass in diesem Metafeld im Warenwirtschaftssystem *nichts* mehr drin steht, im Metafeld in Shopify aber schon. Es soll ein leerer Eintrag importiert werden, wo vorher etwas gewesen ist. Kurz: der Eintrag (Artikelnummer im falschen Feld) soll wieder gelöscht werden. Wie bekommen wir Shopify dazu, dies zu tun?
Bin für jeden Tipp dankbar.
Beste Grüße
Moin,
Kurz zum Verständnis: Die WaWi wird durch Shopify gesynct, wenn sich etwas ändert? Wenn nicht, würde ich sowas noch mit einbauen.
Um ein Metafeld zu "nullen", muss da ein passender string rein. Empty bzw. NULL sollten hier übergeben werden. Siehe hier: https://shopify.dev/docs/api/liquid/objects/metafield
Dieses can't be blank habe ich bisher so nicht gehabt. Am Ende des Tages soll es aber auch egal sein, da das Metafeld bereits blank ist. Versucht ihr da etwas zu überschreiben, wessen Zustand bereits so ist?
Guten Morgen Nordalux,
vielen Dank für Deine Antwort. ja genau: die WaWi wird durch Shopify gesynct, wobei das Syncen von der WaWi ausgeht: in regelmäßigen Abständen (alle 5 Minuten) werden die Daten gesynct.
Das Metafeld war anfänglich leer, dann haben wir einen String im WaWi reingeschrieben, der wurde in den Shop gesynct. Dann stand er im Shop im Metafeld drin. Dann haben wir den String wieder aus dem Feld im WaWi gelöscht und beim neuen Syncen war unser Feld im WaWi leer und im Shop wurde das Feld aber nicht geleert, weil Shopify gemeint hat "can't be blank". Aber deshalb ist dein Hinweis mit "Empty" bzw. "NULL" schon mal Gold wert. Das werden wir probieren!
Moin Mordalux,
Wir haben das "nullen" des Metafelds mit dem String "NULL" ausprobiert. Tatsächlich führt das dazu, dass dann "NULL" als Wort ins Feld geschrieben wird, das Metafeld also *nicht* geleert wird. In der oben genannten Referenz steht dazu auch nichts drinnen...
Was könnten wir sonst noch probieren?
Wie sieht es mit empty aus?
Ansonsten: Welche Wawi wird genau genutzt? Wie gesagt.. Im Normalfalle sollte da keine Fehlermeldung entstehen. Auch lt. Dokumentation sollte dies so übergeben werden, wie das hier kurz angesprochen wurde. Meine Vermutung ist auch ein Syntaxfehler, der sich aber am Ende anders ausgibt.
"empty" werden wir probieren, ich befürchte aber, dass da der String auch einfach ins Feld eingetragen wird und dann dort "empty" steht ... Ein Versuch ist es jedenfalls wert 🙂
Wir benutzen INTEGRA als Warenwirtschaftssystem.
Ein Syntaxfehler könnte es auch sein ... 🤔 Ich zitiere jetzt mal die Fehlermeldung, die wir bekommen:
------------------------------------------------------------
13.09.24 10:44:23: UPDATE Namespace: xxxxxxxx; Key: nutrients; Value:
13.09.24 10:44:23: ERR: Problem beim Aktualisieren des Metafelds
13.09.24 10:44:23: Request-Method: PUT
13.09.24 10:44:23: Request-URL: https://xxxxxxxx.myshopify.com/admin/api/2024-07/products/8360560853157/metafields/1874787493.json
13.09.24 10:44:23: Request-Body: {
"metafield": {
"value":""
}
}
13.09.24 10:44:23: Response-StatusCode: 422
13.09.24 10:44:24: Response-Content: {"errors":{"value":["can't be blank."]}}
13.09.24 10:44:24: Response-JSONText: {
"errors": {
"value": [ "cant' be blank."]
}
}
13.09.24 10:44:24: Artikel 00087005 erfolgreich aktualisiert. Shopify-ID: 8360560853157
-----------------------------------------------------------------
Mein MA machte mich gerade auf etwas aufmerksam, was hier der Fall sein könnte: Nutzt ihr die aktuelle API? Wenn ihr eine ältere nutzt, erklärt es solche Fehler.
Laut unserer Kenntnis und dem Auszug aus dem Fehlerprotokoll oben haben wir die bis quasi gestern (1.10.2024) neueste API Version in Verwendung ---> api/2024-07/.... Aber vielleicht entfällt der Fehler mit dem Update auf die neueste API 2024-10 ...🤔
Teil 2 - Wie die Prinzipien des UX-Designs dir dabei helfen können einen großartigen Shop ...
By Kai Sep 16, 2024Teil 1 - Wie die Prinzipien des UX-Designs dir dabei helfen können einen großartigen Shop ...
By Kai Sep 9, 2024Anpassungen des benutzerdefinierten Codes an Shopify-Themes (CSS) leicht gemachtIn diesem...
By Gabe Aug 28, 2024