Ich sehe den Wert und die Use-Cases in was du versuchst zu erreichen und werde meine Ideen dazu hier auch mit in den Ring werfen da das eine wertvolle Sache ist für viele unserer Mitglieder.
Ein Kunde könnte beispielsweise die eigenen Metadaten über Liquid-Formulare ändern wenn man z. B. möchte, dass der Kunde sein Geschlecht oder Alter in ein Formular-Eingabefeld eingibt und das Alters-Metafeld für diesen Kunden beim Absenden des Formulars aktualisieren. Man kann versuchen das input-Tag mit dem Typ 'hidden' zu verwenden, ähnlich wie hier <input id="age" type="text" name="customer[note][Age]">. Aber wie kann man einen bestimmten Metafeldwert aktualisieren? So etwas wie name="kunde[metafelder][namespace.key]?
Hast du vielleicht in diesem Partner Blog Artikel was dazu finden können der in die Themen Metafeldern, dynamische Quellen, Kodierung und mehr eingeht?
Im Grunde scheint es der Fall zu sein, dass es derzeit noch nicht möglich ist, mit der Storefront-API ein Metafeld im Adminbereich zu erstellen, zu löschen oder einen Wert darin zu setzen, sprich, man kann sie derzeit nur auf der Website statisch aufrufen/anzeigen. Vielleicht gehen diese Operationen stattdessen auf metafields wenn man denGraphQL Admin API oder REST Admin APIverwendet?
Hier kann man ggf. einen App Proxy verwenden, um Formulardaten an einen von dir kontrollierten Endpunkt zu übermitteln, wo du die Admin-API verwendest, um die Metafelder zum Kunden-Metafelfeld im Admin hinzuzufügen. Sobald die Metafelder in der Kundenressource definiert sind, kann jede Seite mit Liquid auf die Metafelder des aktuell angemeldeten Kunden mit dem Code “customer.metafields.namespace.fieldname” zugreifen.
Nur so eine Idee und ggf. haben unsere Experten auch ein paar Tipps dazu!