Shopify Storefront API: получение ссылочного варианта с GraphQL - PullRequest
1 голос
/ 21 февраля 2020

Я использую API-интерфейс Shopify Storefront и Accentuate, чтобы попытаться получить конкретный вариант c, но он не будет работать для меня.

КРАТКАЯ ВЕРСИЯ: Когда я выбираю вариант на веб-сайте, я получаю URL: (... url ...)? Option = 31696763027492 . Как мне получить эти числа после = для варианта в GraphQL? Он не соответствует идентификатору.

ДЛИННАЯ ВЕРСИЯ ...

В варианте продукта я ссылаюсь на вариант другого продукта (с Accentuate). То, что мне нужно, - это вариант, на который я ссылаюсь.

Когда я вытаскиваю вариант, на который ссылаются в продукте (как мета-поле, с GraphQL), я получаю следующее:

{
"key": "products_in_package",
"value": "pakke-produkt-gavepose:31696763027492"
}

Моя проблема в числах после: в значении. Я обнаружил, что это число, которое идет после URL продукта при выборе варианта на "фактическом" веб-сайте Shopify ((... url ...)? Option = 31696763027492), но я не вижу как я могу их использовать, поскольку я не могу найти эти числа в реальном варианте с помощью GraphQL.

Он не соответствует ни идентификатору, ни чему-либо еще, что я мог найти в варианте. Также я не могу включить числа, если я пытаюсь получить productByHandle.

Итак, у кого-нибудь есть идеи, как я могу использовать его для получения фактического варианта продукта через GraphQL? Или идеи о том, что еще я могу сделать, чтобы связать конкретный c вариант продукта с другим вариантом продукта?

Ответы [ 2 ]

1 голос
/ 21 февраля 2020

Идентификатор варианта и идентификатор варианта GraphQL тесно связаны.

  • Идентификатор варианта - 31646396055604
  • Идентификатор варианта GraphQL - gid://shopify/ProductVariant/31646396055604

Идентификатор GraphQL идентичен идентификатору варианта, но перед ним необходимо добавить строку gid://shopify/ProductVariant/.

Таким образом, ваш запрос GraphQL будет выглядеть следующим образом:

{
  productVariant(id:"gid://shopify/ProductVariant/31646396055604"){
    title
    product{
      id
    }
  }
}
0 голосов
/ 24 февраля 2020

Проблема в том (или было), что эти цифры не , что вы получаете, когда получаете идентификатор продукта через GraphQL. Вы получаете гораздо более длинный идентификатор, например, "Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0VmFyaWFudC8zMTY5NDA3MjQxNDI0NA ==".

Однако я выясняю, что с помощью функции btoa () JavaScript 315/56560/605 * / 606 * / 604 * / 605/606/606/606/604/604/606/604/606/646/606/646/646/646/646/645/606/646, вы упоминаете, что вы упоминаете ( ), Я получил длинный идентификатор, полученный от самого продукта. Итак, проблема решена!

...