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

Я очень запутался с документацией на Shopify. Я хотел использовать их Javascript Buy SDK. Чтобы следовать их простому примеру получения продукта, в документации говорится, что "Прежде чем вы сможете получить продукт или коллекцию, вам нужно запросить идентификатор Storefront. После того, как вы получили либо идентификатор продукта, либо идентификатор коллекции, вы можете получить продукт или коллекция с использованием 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! было предоставлено неверное значение.

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

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

Благодарю.

0 ответов

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

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

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

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

Другие вопросы по тегам