Shopify API v2026-07 Adds Variant-Level Publishing
Patch your apps to read ProductVariant.resourcePublicationsv2 and create unpublished variants with variant.published: false when needed.
Patch your apps to read ProductVariant.resourcePublicationsv2 and create unpublished variants with variant.published: false when needed.
Summary
Shopify’s API version 2026-07 introduces a new Publishable interface for ProductVariant, allowing merchants to publish or unpublish individual variants per channel or catalog without deleting or duplicating products. The change is additive: product-level publishing remains unchanged and takes precedence; variants default to published, but can be created in an unpublished state to control early exposure.
In the Admin GraphQL API, the publishablePublish and publishableUnpublish mutations now accept ProductVariant IDs, and ProductVariant inherits the Publishable interface, adding resourcePublicationv2 and publishedOnPublication fields. Product feed webhooks fire a product update when variants are added or removed from a channel, and variant_publication create/update/delete webhooks are slated for imminent release.
For developers, channel apps that rely on product feeds need no changes, but apps that read publication state via the admin GraphQL API must query ProductVariant.resourcePublicationsv2. Apps that create variants after product publication will see new variants default to published; to create unpublished variants, use productSet or productVariantBulkCreate with variant.published: false. Apps that publish products remain unchanged, though adding variant-level publishing support is recommended if relevant.
Key changes
- ProductVariant now implements the Publishable interface in API v2026-07
- publishablePublish/unpublish mutations accept ProductVariant IDs
- ProductVariant includes resourcePublicationv2 and publishedOnPublication fields
- Product feed webhooks trigger product updates when variants are added or removed from a channel
- Variant default state is published; can create unpublished variants via productSet/productVariantBulkCreate with variant.published: false
- Apps using product feeds need no changes; apps reading publication state must query ProductVariant.resourcePublicationsv2
- Apps that publish products remain unchanged, but variant publishing support can be added
- variant_publication create/update/delete webhooks are under development