ошибка генерации идентификатора витрины в shopify купить js sdk

avatar
Wang'l Pakhrin
21 января 2019 в 16:53
175
1
0

Я очень запутался в документации на Shopify. Я хотел использовать их Javascript Buy SDK. Чтобы следовать их простому примеру извлечения продукта, в документах говорится, что «Прежде чем вы сможете получить продукт или коллекцию, вам необходимо запросить идентификатор витрины. После того, как вы получили идентификатор продукта или идентификатор коллекции, вы можете получить продукт или коллекцию с помощью SDK."

Итак, используя приложение Shopify Graphiql и пример для получения идентификатора витрины, запрос выглядит следующим образом.

{
  shop {
    productByHandle(handle: "my-own-product-handle") {
      id
    }
  }
}

ожидаемый идентификатор возврата чем-то похож на "id": "Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzczNDE0OTkzOTk=" в каком-то закодированном значении. Но, однако, идентификатор, который я получаю, похож на URL-адрес. Вот что я получил взамен.

{
  "data": {
    "shop": {
      "productByHandle": {
        "id": "gid://shopify/Product/1349634097238"
      }
    }
  },
  "extensions": {
    "cost": {
      "requestedQueryCost": 2,
      "actualQueryCost": 2,
      "throttleStatus": {
        "maximumAvailable": 1000,
        "currentlyAvailable": 998,
        "restoreRate": 50
      }
    }
  }
}

Когда я использую этот URL для выполнения запроса, как показано в примере JS SDK

// Fetch a single product by ID
const productId = 'gid://shopify/Product/13496340972223';

client.product.fetch(productId).then((product) => {
  // Do something with the product
  console.log(product);
});

В консоли появляется сообщение об ошибке Идентификатор переменной типа ID! было предоставлено недопустимое значение.

Я не могу понять, где пропущены точки.

Пожалуйста, помогите!

Спасибо.

Источник

Ответы (1)

avatar
Sandy Wyper
7 мая 2019 в 13:59
2

Кажется, я взломал его... или, по крайней мере, нашел обходной путь. Я чувствую, что это должно быть яснее, и это заставляет меня думать, что я ошибаюсь... во всяком случае, вот что я выяснил.

При использовании приложения Shopify graphiQl вы можете запросить идентификатор. (так же, как вы показали выше). Возьмите результат и закодируйте его в base64 здесь. https://www.base64encode.org/

Это даст вам результат - 'Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzEzNDk2MzQwOTcyMjIz'.

Вставьте это в переменную productId, и вы должны получить ответ.