Получите Shopify Metafields для продуктов за один звонок

Я пытался получить метаполя для более чем 100 продуктов, а это означает, что мне нужно сделать 100 отдельных вызовов API для каждого продукта. Если есть способ получить все метаполя для всех продуктов только в одном XML-файле, например, как варианты прикрепляются к продуктам. Таким образом, с помощью одного вызова API я получаю все 100 продуктов вместо того, чтобы делать 100 отдельных вызовов API для каждого продукта. Любая помощь приветствуется.


person Bayuo Blaise    schedule 13.06.2012    source источник


Ответы (2)


Было бы неплохо, если бы это было упомянуто в документации по API. Ничего о

Получить список всех метаполей GET /admin/metafields.json?since_id=721389482

указывает, что он вернет только метаполя магазина.

person Michael Johnston    schedule 10.06.2013

У нас было много запросов на получение метаполей для нескольких ресурсов в одном запросе. Однако со многими из них можно справиться, сохраняя информацию на стороне приложения (например, в базе данных) вместе с идентификатором ресурса. Таким образом данные будут ближе к тому месту, где они используются.

Есть две очень веские причины использовать метаполя

  • Хранение метаданных для использования из жидких шаблонов
  • Совместное хранилище между приложениями

Метаполя для жидких шаблонов хороши тем, что данные близки к тому, где они будут использоваться для рендеринга страницы. Это делает рендеринг более быстрым и настраиваемым, поскольку настраиваемые поля могут предоставляться приложениями и отображаться на витрине.

Совместное хранилище между приложениями - еще одна веская причина для использования метаполей, но, похоже, это не обычная причина использования метаполей. В этом случае API метаполей в настоящее время не имеет возможности получить доступ к метаполям сразу на нескольких ресурсах.

Однако возвращать метаданные вместе с продуктами - не очень хороший вариант. Это связано с тем, что другие приложения могут хранить данные в метаполях, о которых ваше приложение может не заботиться, поэтому одно приложение может в конечном итоге замедлить работу многих других приложений, которые даже не используют метаполя. Вот почему API метаполей имеет параметры запроса, чтобы ограничить извлекаемые метаполя, поэтому метаполя для других приложений не возвращаются без надобности.

person Dylan Smith    schedule 13.06.2012
comment
Мой случай совсем другой, у меня нет прав на запись в метаполя. Я читаю только те метаполя, как UPC, MPN и т. Д., Которые мне нужны вместе с продуктом. Поэтому мне нужно просмотреть около 100+ продуктов, чтобы получить эти метаполя, что также замедляет работу моей системы. Также метаполя были добавлены в витрину магазина, например product_type. Я думаю, есть ли способ получить метаполя, относящиеся к каждому продукту, за один вызов API. Меня не волнует, какое приложение его создало, я просто хочу прочитать все метаполя для всех процедур и отсортировать их, чтобы выбрать те, которые мне нужны. Надеюсь, что может быть лучший способ - person Bayuo Blaise; 13.06.2012
comment
Похоже, у вас есть допустимый вариант использования, поскольку это общие значения метаполя. Мне очень жаль, но, похоже, сейчас нет хорошего способа сделать то, что вы ищете. - person Dylan Smith; 14.06.2012
comment
Почему для вас важен тот факт, что получение более 100 продуктов (1 вызов API), а затем всех их метаполей (более 100 вызовов API) занимает для вас время? Вы заполняете сетку этими данными для отображения? У меня есть магазины с тысячами товаров, и у каждого товара есть метаполя. Я использую фоновое задание, чтобы собрать всю эту информацию, а затем отправить ее по электронной почте в формате CSV. Отлично работает. - person David Lazar; 15.06.2012
comment
Как вы сказали, я показываю это в сетке, но я думаю, что рассмотрю возможность сделать это с помощью фоновой работы. Вы делаете это через PHP? Могли бы поделиться или объяснить дальнейшие звонки, которые вы делаете в фоновом процессе. Благодарность - person Bayuo Blaise; 22.06.2012
comment
Я знаю, что этот ответ чертовски старый, но с тех пор API не изменился, поэтому он по-прежнему актуален. Однако возвращать метаданные вместе с продуктами - не очень хороший вариант. А как насчет параметра metafields: true? - person Jerska; 07.07.2015
comment
@Jerska Согласен. Как этого не спрашивали / не требовали пользовательская база Shopify за 4 года, прошедшие с момента, когда был задан этот вопрос? - person adaam; 11.03.2016
comment
@DylanSmith, @adaam Я думаю, что это действительно можно сделать, оставаясь в соответствии с поведением webhooks: metafields_namespaces: ['abc', 'def']. - person Jerska; 17.03.2016
comment
Можем ли мы получить ответ от члена команды Shopify в ответ на комментарий Джерски от 7 июля, пожалуйста? Не особо доволен ответом (и другими ответами на форуме поддержки Shopify). - person adaam; 29.03.2016
comment
Удар. хотел бы, чтобы флаг возвращал метаполя с продуктом - person mils; 16.05.2017