Метаполя Shopify упрощаются с помощью гаджета

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

Несмотря на их важность и популярность, работа с метаполями может стать настоящим испытанием для разработчиков. Для начала, данные хранятся в отдельном ресурсе на стороне Shopify («объект метаполя»), тогда как вам почти наверняка нужны данные прямо на ресурсе, который вы расширяете с помощью этого метаполя. Кроме того, ограничения на скорость работы API Shopify делают это дополнительное перемещение по ресурсам еще более громоздким.

Чтобы упростить этот процесс, Gadget предлагает разработчикам более быстрый и простой способ синхронизации, запроса и изменения метаполей Shopify в бэкенде. Просто переместите пространство имен и ключ метаполя на нужный ресурс, и пусть Gadget позаботится обо всем остальном.

Посмотрите, как Matc синхронизирует товары и метаполя менее чем за 2 минуты.

Как это работает

Давайте представим сценарий, в котором торговец Shopify попросил нас создать для него пользовательский отчет в виде таблицы, который извлекает самые острые продукты из его инвентаря, сортирует их по степени остроты и отображает в таблице. Мы заметили, что торговец вручную вводит степень остроты каждого продукта в метаполе продукта со следующими характеристиками:

Пространство имен: gadget_app.

Ключ: spiciness

Тип метаполя: number_integer

Для создания этой таблицы нам понадобятся не только данные о товаре и заказе из Shopify, но и значения метаполей, хранящиеся в этом пространстве имен и ключе. Чтобы получить эти данные в Gadget, мы просто переходим на экран Connections и добавляем новое подключение Shopify. Мы выбираем модели товаров и заказов и вводим наши учетные данные Shopify API. Gadget немедленно создает копию обеих моделей в нашем бэкенде и подключает CRUD API, который будет пополнять наши модели по мере синхронизации данных или получения вебхуков от Shopify.

Прежде чем мы начнем синхронизировать данные, нам нужно решить, где хранить нужные значения метаполей в Gadget. Естественным местом для этого будет сама модель продукта, что позволит нам пропустить ненужные прыжки при чтении или записи данных в бэкенд Gadget. Для этого мы просто переходим к только что созданной модели Shopify Product в Gadget и украшаем ее, добавляя поле. Мы дадим полю имя и тип ‘Number’, чтобы оно могло принимать входящие данные от Shopify. Как только это будет сделано, перед нами появится форма, которая позволит нам связать это поле Gadget с определенным метаполем Shopify, используя пространство имен и ключ, предоставленные Shopify. Введите пространство имен и ключ, нажмите «Register Webhooks», и Gadget автоматически зарегистрируется для веб-крючков на этом метаполе. Это так просто!

Вот как выглядит форма, когда она правильно заполнена в Gadget:

Теперь мы готовы к синхронизации данных. Для этого мы возвращаемся на экран «Соединения» в Гаджете и нажимаем кнопку «Синхронизировать». Гаджет искусно обойдет ограничения скорости Shopify и получит все доступные записи о товарах и заказах, а также любые метаполя, которые мы указали Гаджету хранить. Мы можем посмотреть на раздел ‘Data’ модели Product, чтобы убедиться, что значения продукта и метаполя синхронизируются правильно.

Теперь у нас есть все наши данные, объединенные вместе, как это необходимо, в бэкенде Gadget. Поскольку Gadget мгновенно создает CRUD API для каждой модели в нашем бэкенде, у нас есть возможность запрашивать данные из этих таблиц, не беспокоясь об ограничениях скорости Shopify. Чтобы создать таблицу, которая сортирует и отображает продукты с оценкой остроты > 5, мы можем выполнить следующий GraphQL-запрос:

query {
  shopifyProducts(
    filter: { spiciness: { greaterThan: 5 } }
    sort: { spiciness: Ascending }
  ) {
    edges {
      node {
        title
        id
        spiciness
        handle
      }
    }
  }
}
Войти в полноэкранный режим Выйти из полноэкранного режима

И точно так же у нас есть данные, необходимые для работы этой пользовательской таблицы. Мы не тратили время на интеграцию Shopify или разработку стратегий управления ограничениями тарифов. Мы просто указали нужные нам данные и место их расположения, а Gadget сделал всю тяжелую работу за нас.

Чтобы узнать больше о метаполях Shopify и о том, как изменять их в Gadget, прочитайте нашу документацию. Если у вас еще нет аккаунта в Gadget, попробуйте его бесплатно на Gadget.dev

Оцените статью
devanswers.ru
Добавить комментарий