2012-06-13 34 views
18

He intentado obtener metacampos para más de 100 productos y eso significa que tengo que hacer 100 llamadas api por cada producto. Si hay una forma de obtener todos los metacampos para todos los productos, solo en un archivo xml, como la forma en que se adjuntan las variantes a los productos. Para que con una llamada api, agarre los 100 productos en lugar de hacer 100 llamadas api por separado para cada producto. Cualquier ayuda es apreciada.Obtenga shopify Metafields para productos en una llamada

Respuesta

1

Hemos tenido muchas solicitudes para obtener metacampos para múltiples recursos en la misma solicitud. Sin embargo, muchos de ellos podrían manejarse manteniendo la información en el lado de las aplicaciones (por ejemplo, en una base de datos), junto con la identificación del recurso. De esta forma, los datos están más cerca de donde se usa.

Hay dos muy buenas razones para utilizar MetaFields

  • Almacenamiento de metadatos a utilizar a partir de plantillas líquidos
  • de almacenamiento compartido entre aplicaciones

MetaFields para las plantillas de líquido es grande porque los datos están cerca a donde se usará para la representación de la página. Esto hace que la representación sea rápida y más personalizable, ya que las aplicaciones pueden proporcionar campos personalizados y mostrarlos en el escaparate.

El almacenamiento compartido entre aplicaciones es otra buena razón para utilizar metacampos, pero no parece ser una razón común por la que se utilizan los metacampos. En este caso, la API metafields no tiene acceso a metacampos en múltiples recursos a la vez.

La devolución de metadatos junto con los productos, sin embargo, no es una muy buena opción. Esto se debe a que otras aplicaciones pueden almacenar datos en metacampos que a su aplicación podría no interesarles, por lo que una aplicación podría terminar desacelerando muchas otras aplicaciones que ni siquiera usan metacampos. Esta es la razón por la API metafields tiene parámetros de consulta para restringir qué metacampos se recuperan, por lo que los metacampos para otras aplicaciones no se devuelven innecesariamente.

+0

Mi caso es bastante diferente, no tengo permisos de escritura para los metacampos. Solo leo los metacampos como UPC, MPN, etc. que necesito junto con el producto. Así que tengo que recorrer más de 100 productos para obtener esos metacampos, eso también está ralentizando mi sistema. Además, los metacampos se agregaron en el escaparate shopify como product_type. Así que mi pensamiento es si hay forma de atrapar metacampos relacionados con cada producto en una llamada de API. No me importa qué aplicación lo creó, solo quiero leer todos los metacampos para todos los procesos y ordenarlos para elegir los que quiero. Espero que haya una mejor manera –

+0

Parece que tiene un caso de uso válido, ya que estos son valores de metacampo compartidos. Lo siento, pero parece que no hay una buena manera de hacer lo que estás buscando en este momento. –

+1

¿Por qué el hecho de que acaparen más de 100 productos (1 llamada de API) y luego todos sus metacampos (más de 100 llamadas a API) lleva tiempo? ¿Estás completando alguna cuadrícula con esos datos para mostrar? Tengo tiendas con miles de productos y cada producto tiene meta-campos. Utilizo un trabajo en segundo plano para reunir toda esa información y luego la envía por correo electrónico en un archivo CSV. Funciona perfecto –

2

Sería bueno si fuera mencionado en el documento API. Nada sobre

Recibir una lista de todos MetaFields GET /admin/metafields.json?since_id=721389482

indica que sólo devolverá MetaFields tienda.

Cuestiones relacionadas