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

Меня очень смущает документация по 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! было предоставлено недопустимое значение.

Я не могу понять, где мне не хватает точек.

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

Спасибо.


person Wang'l Pakhrin    schedule 21.01.2019    source источник


Ответы (1)


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

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

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

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

person Sandy Wyper    schedule 07.05.2019