2012-06-13 7 views
18

Ich habe versucht, metafields für über 100 Produkte zu bekommen, und das bedeutet, dass ich separate 100 API-Anrufe für jedes Produkt machen muss. Wenn es eine Möglichkeit gibt, alle Metafields für alle Produkte in einer einzigen XML-Datei abzufangen, so wie die Varianten den Produkten zugeordnet sind. So dass ich mit einem API-Anruf alle 100 Produkte schnappe, anstatt 100 separate API-Anrufe für jedes Produkt zu tätigen. Jede Hilfe wird geschätzt.Get shopify Metafields für Produkte in einem Anruf

Antwort

1

Wir hatten viele Anfragen zum Abrufen von Metafields für mehrere Ressourcen in derselben Anfrage. Viele von ihnen könnten jedoch gehandhabt werden, indem die Information auf der Anwendungsseite (z. B. in einer Datenbank) zusammen mit der ID der Ressource gehalten wird. Auf diese Weise sind die Daten näher an dem Ort, an dem sie verwendet werden.

Es gibt zwei sehr gute Gründe für MetaFields

  • Metadaten Speichern von flüssigen Vorlagen verwenden
  • Gemeinsam genutzter Speicher zwischen den Anwendungen

MetaFields für flüssige Vorlagen ist groß, weil die Daten in der Nähe ist wo es für das Seitenrendering verwendet wird. Dadurch wird das Rendern schnell und anpassbarer, da benutzerdefinierte Felder von Apps bereitgestellt und im Storefront gerendert werden können.

Shared Storage zwischen Anwendungen ist ein weiterer guter Grund, Metafields zu verwenden, aber es scheint kein Grund zu sein, Metafields zu verwenden. In diesem Fall fehlt der Metafields-API eine Möglichkeit, auf Metafields für mehrere Ressourcen gleichzeitig zuzugreifen.

Die Rückgabe von Metadaten zusammen mit Produkten ist jedoch keine sehr gute Option. Dies liegt daran, dass andere Anwendungen Daten in Metafields speichern können, die für Ihre Anwendung möglicherweise nicht relevant sind. Eine Anwendung könnte daher viele andere Anwendungen verlangsamen, die nicht einmal Metafields verwenden. Aus diesem Grund verfügt die Metafields-API über Abfrageparameter, um einzuschränken, welche Metafields abgerufen werden. Daher werden Metafields für andere Anwendungen nicht unnötigerweise zurückgegeben.

+0

Mein Fall ist ganz anders, ich habe keine Schreibrechte für Metafields. Ich lese nur die Metafields wie UPC, MPN usw., die ich neben dem Produkt brauche. Also muss ich über 100 Produkte durchlaufen, um diese Metafields zu bekommen, das verlangsamt auch mein System. Auch die Metafields wurden in der Storefront von shopify wie product_type hinzugefügt. Also denke ich, wenn es möglich ist, Metafeld für jedes Produkt in einem API-Aufruf zu erfassen. Es ist mir egal, welche Anwendung es erstellt hat, ich möchte nur alle Metafields für alle Prozesse lesen und sortieren, um diejenigen auszuwählen, die ich möchte. Hoffe, es könnte einen besseren Weg geben –

+0

Es klingt wie Sie haben einen gültigen Anwendungsfall, da diese Metafield Werte geteilt sind. Es tut mir leid, aber im Moment scheint es keinen guten Weg zu geben, das zu tun, wonach Sie suchen. –

+1

Warum braucht die Tatsache, dass Sie mehr als 100 Produkte (1 API-Aufruf) und dann alle ihre Metafields (über 100 API-Aufrufe) benötigen, etwas für Sie? Füllen Sie ein Raster mit diesen Daten für die Anzeige aus? Ich habe Geschäfte mit Tausenden von Produkten und jedes Produkt hat Metafields. Ich benutze einen Hintergrundjob, um alle diese Informationen zusammen zu sammeln und dann per E-Mail in einer CSV-Datei. Funktioniert perfekt. –

2

Es wäre nett, wenn es im API doc erwähnt wurde. Nichts über

Erhalten Sie eine Liste aller MetaFields GET /admin/metafields.json?since_id=721389482

gibt es nur Geschäft MetaFields zurück.

Verwandte Themen