Shopify Storefront API: получение мета-полей со страницы или коллекции - PullRequest
0 голосов
/ 24 февраля 2020

Я пытаюсь получить метаполя со страниц и коллекций с помощью API-интерфейса Shopify Storefront и GraphQL.

Однако кажется, что это невозможно. Просматривая страницы «запрашиваемых объектов», «метаполя» не отображаются в виде полей на страницах или в коллекциях. Как видно на этом скриншоте, GraphiQL также говорит, что его не существует. Я скопировал код прямо из части, где я получаю метаполя из продуктов.

Может ли это быть на самом деле? Мне кажется настолько странным, что получить эти мета-поля было бы невозможно, но я просто не могу найти способ.

Все, что я хочу, - это получить несколько разных частей текста для веб-сайта, из указанной c коллекции или страницы.

Image of problem getting metafields from collection in Shopify Storefront API

1 Ответ

0 голосов
/ 24 февраля 2020

API Storefront поддерживает метаполя только для объектов Product и ProductVariant.

С их документацией можно ознакомиться здесь: https://shopify.dev/docs/storefront-api/reference/object/metafield


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

Пример:

Вы создаете новый макет коллекции: collection.meta.liquid

С помощью следующего кода в это:

{%- layout none -%}
{{- collection.metafields.namespace | json -}}

collection.liquid

Внутри коллекции (или вы можете использовать другой файл, но вам нужно знать URL коллекции, чтобы добавить view= аргумент в конце):

<script type="text/javascript">     
  fetch('{{collection.url}}?view=meta')
    .then(res => res.json())
    .then(res => console.log(res))
</script>

И вы получите метаполя с указанным c пространством имен.

...