ошибка при генерации идентификатора магазина в shopify buy js sdk - PullRequest
0 голосов
/ 21 января 2019

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

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

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

Спасибо.

1 Ответ

0 голосов
/ 07 мая 2019

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

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

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

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

...