Не удается получить метаполя продуктов с помощью StoreFront GraphQL API
Я использую API витрины для своего магазина Shopify. И мне нужно получить метаполя продукта для моего продукта. Я уже добавил метаполя с помощью стороннего приложения (Metafields Guru).
Мне нужно получить все эти метаполя для продукта, и я следил за этой статьей.https://shopify.dev/tutorials/retrieve-metafields-with-storefront-api
{
productByHandle(handle: "xxx-handle") {
id
title
handle
productType
metafields(first: 5) {
edges {
node {
key
value
}
}
}
}
}
Но я получаю пустой массив для метаполей. Не уверен, что мне здесь не хватает. Любая помощь будет оценена
2 ответа
Здесь есть пара проблем.
- когда вы создавали свои метаполя, вам нужно было назначить их пространству имен. Когда вы пытаетесь получить их с помощью Storefront API, вы должны предоставить это пространство имен, а вам это не удалось.
- evem, если вы создали метаполя в админке с помощью какого-либо приложения, вы не увидите их с помощью Storefront API, если не включите их с помощью специального флага.
Так что это, вероятно, тоже пропущенный шаг. Прочтите об этом и обратите внимание на MetafieldStorefrontVisibility. Вы устанавливаете видимое пространство имен и ключ. Это означает, что вы, вероятно, не будете создавать метаполя волей-неволей без тщательного рассмотрения включения или отключения каждого из них для доступа к Storefront API.
Я бы немного расширил ответ Дэвида, так как я еще не могу добавлять комментарии к другим ответам.
Действительно, вы должны сделать метаполя явно видимыми для Storefront API, запустив мутацию MetafieldStorefrontVisibility. Вот несколько полезных ссылок:
Кроме того, я нашел хорошее приложение Accentuate Custom Fields, которое предоставляет параметры пользовательского интерфейса для отображения метаполей в Storefront API при настройке метаполей: