2012-06-13 8 views
18

Ho cercato di ottenere metadati per oltre 100 prodotti e ciò significa che devo effettuare chiamate 100 api separate per ogni prodotto. Se c'è un modo per afferrare tutti i meta-campi per tutti i prodotti in un solo file xml come il modo in cui le varianti sono associate ai prodotti. In modo che con una chiamata api, prendo tutti i 100 prodotti invece di effettuare 100 chiamate API separate per ciascun prodotto. Qualsiasi aiuto è apprezzato.Ottieni shopify Metafields per prodotti in una chiamata

risposta

1

Abbiamo ricevuto molte richieste per ottenere meta campi per più risorse nella stessa richiesta. Tuttavia, molti di essi potrebbero essere gestiti mantenendo le informazioni sul lato delle applicazioni (ad esempio in un database), insieme all'ID della risorsa. In questo modo i dati sono più vicini a dove viene utilizzato.

Ci sono due buone ragioni per l'utilizzo di metafields

  • Memorizzazione di metadati da usare da modelli liquidi
  • storage condiviso tra le applicazioni

Metafields per i modelli di liquido è grande, perché i dati sono vicino dove verrà usato per il rendering della pagina. Ciò rende il rendering veloce e più personalizzabile, perché i campi personalizzati possono essere forniti dalle app e visualizzati in negozio.

Lo spazio condiviso tra le applicazioni è un'altra buona ragione per utilizzare i meta-campi, ma non sembra essere un motivo comune per cui vengono utilizzati i meta-campi. In questo caso l'API dei metadati non dispone attualmente di un modo per accedere a meta-campi su più risorse contemporaneamente.

Restituire i metadati insieme ai prodotti, tuttavia, non è un'opzione molto buona. Questo perché altre applicazioni possono archiviare dati in meta campi di cui la tua applicazione potrebbe non interessare, quindi un'applicazione potrebbe finire per rallentare molte altre applicazioni che non usano nemmeno i meta-campi. Questo è il motivo per cui l'API metafields ha parametri di query per limitare quali meta-campi vengono recuperati, quindi i meta-campi per altre applicazioni non vengono restituiti inutilmente.

+0

Il mio caso è molto diverso, non ho i permessi di scrittura per i meta-campi. Sto solo leggendo quei metadati come UPC, MPN, ecc. Di cui ho bisogno insieme al prodotto. Quindi devo passare attraverso oltre 100 prodotti per ottenere quei meta-campi, che sta anche rallentando il mio sistema. Anche i meta-campi sono stati aggiunti nel negozio shopify come product_type. Quindi il mio pensiero è se c'è un modo per afferrare i meta-campi relativi a ciascun prodotto in una sola chiamata API. Non mi interessa quale applicazione lo ha creato, voglio solo leggere tutti i meta-campi per tutti i procuts e ordinare per selezionare quelli che voglio. Spero che ci possa essere un modo migliore –

+0

Sembra che tu abbia un caso d'uso valido, dal momento che questi sono valori metafield condivisi. Mi dispiace, ma non sembra essere un buon modo per fare ciò che stai cercando in questo momento. –

+1

Perché il fatto di aver afferrato più di 100 prodotti (1 chiamata API) e quindi tutti i loro meta campi (oltre 100 chiamate API) richiedono tempo? Stai compilando una griglia con quei dati per la visualizzazione? Ho negozi con migliaia di prodotti e ogni prodotto ha meta-campi. Io uso un lavoro in background per raccogliere tutte queste informazioni insieme e poi le invia tramite e-mail in un CSV. Funziona perfettamente. –

2

Sarebbe bello se fosse menzionato nel documento API però. Niente di

ricevere un elenco di tutti i Metafields GET /admin/metafields.json?since_id=721389482

indica che restituisce solo metafields negozio.

Problemi correlati