Hello everyone,
I’m trying to understand whether the Shopify Admin GraphQL API exposes variant-level assignment / availability for a specific Sales Channel.
My use case is the Facebook & Instagram sales channel.
I have the following Publication / Channel:
{
“id”: “gid://shopify/Publication/288304562471”,
“supportsFuturePublishing”: false,
“channels”: {
“nodes”: [
{
“id”: “gid://shopify/Channel/288304562471”,
“name”: “Facebook & Instagram”,
“handle”: “facebook-ads”
}
]
}
}
I can retrieve products published to this channel using channel.productPublicationsV3:
query GetChannelProducts {
channel(id: “gid://shopify/Channel/288304562471”) {
id
name
handle
productPublicationsV3(first: 250) {
nodes {
publishable {
… on Product {
id
title
handle
variants(first: 250) {
nodes {
id
title
sku
}
}
}
}
}
}
}
}
However, this returns the products published to the channel and then all variants of those products.
That does not solve my case, because in the Shopify admin UI / Facebook & Instagram channel configuration, not all variants of a published product are necessarily assigned or available for that channel.
I also tried querying variants directly with the channel-specific published_status filter:
query GetVariantsByChannel {
productVariants(
first: 250
query: “published_status:facebook-ads-published”
) {
nodes {
id
title
sku
product {
id
title
handle
}
}
}
}
But in my tests, this query still returns variants whose parent product is published to the Facebook & Instagram channel, even when the specific variant itself is not assigned / available for that channel.
So it seems that:
published_status:facebook-ads-published
filters by the publication status of the parent product, not by the individual variant’s channel assignment.
My questions are:
Is variant-level assignment / availability for a Sales Channel exposed anywhere in the Admin GraphQL API?
Is there any field on ProductVariant, or any connection similar to productPublicationsV3, that allows querying variant-level channel assignment?
Is there a reliable way to retrieve only the variants assigned / available for a specific Sales Channel such as Facebook & Instagram?
If this data exists only inside the Facebook & Instagram sales channel app configuration and is not exposed through Admin GraphQL, can someone confirm that?
I’m specifically not trying to retrieve:
products published to a channel → all variants of those products
I need:
only variants actually assigned / available for a specific channel
even when their parent product has other variants that are not assigned to that channel.
Any clarification or confirmed workaround would be greatly appreciated.
Thank you!
Andrew