Discuss and resolve questions on Liquid, JavaScript, themes, sales channels, and site speed enhancements.
Hello,
I am trying to query productvariants based on a certain metafield value using GraphQL.
I have tried the following but it returns a "Field 'metafields' doesn't accept argument 'query'" error.
query { shop { name products(first: 100, query:"") { edges { cursor node { id title handle variants(first:100) { edges { node { id title metafields(query: "key: ean") { edges { cursor node { id namespace key value } } } } } } } } } } }
Is there any way to accomplish this?
Thanks.
Hi, @WouterBouwman,
This is Evita from On The Map.
Meta fields don't have query argument.
You can try to use metafield(namespace: "example", key: "ean") .
Read the Docs here: https://help.shopify.com/en/api/guides/metafields/admin-api-metafields#retrieving-metafields
Best,
Evita
Hi @OTM (Evita),
Thank you for your response.
Are you saying that there is no way to filter the results based on a metafield value?
Using 'metafield(namespace: "example", key: "ean") ' only returns a specific metafield.
Thanks.
Hi - I'm also interested in this. I want to add custom values to products (e.g. mark a product as "needing review"), and am not sure where I can add that information other than in the metafields. However if I add the information to the metafields, I can't make queries to pull all products that need review.
Hi people, did you happen to find a solution or a workaround to this problem?? I also want to be able to fetch product variants by metafield value.
Why? I want to store my wholesalers internal product id as "wholesaler_product_id" in a metafield for each product. Then, I can use that number for forwarding dropshipping orders and syncing stock levels.
While this won't help with filtering variants, you can filter products using a product tag. For example:
query MyQuery {
products(query: "tag:needs-review", first: 5) {
nodes {
id
title
images(first: 1) {
nodes {
url
}
}
variants(first: 1) {
nodes {
id
price
}
}
}
}
}
Wont work.
Cant use 'key'
'namespace' is usable.
Seems like shopify has tried to hobble any attempt to actually make use of metafields from graphql.
A perfectly reasonable query would be to get some product info and metafields of those products with a key value of "monkey"
e.g.
query {
products(first:40) {
edges {
node {
title
metafields(first:20 key: "monkey") {
edges {
node {
namespace
key
value
}
}
}
}
}
}
}
BUT NO! graphql errors:
Field 'metafields' doesn't accept argument 'key'
This works using namespace.
query {
products(first:40) {
edges {
node {
title
metafields(first:20 namespace:"football" ) {
edges {
node {
namespace
key
value
}
}
}
}
}
}
}
Let me guess, I need the 2k a month plan....
Metafields are totally broken in shopify. All these posts are so old.
Is anyone still developing at shopify?
Starting a B2B store is a big undertaking that requires careful planning and execution. W...
By JasonH Sep 23, 2024By investing 30 minutes of your time, you can unlock the potential for increased sales,...
By Jacqui Sep 11, 2024We appreciate the diverse ways you participate in and engage with the Shopify Communi...
By JasonH Sep 9, 2024