Sales Channel Publishing
How a Violet channel appears as a native Shopify sales channel, letting merchants choose product-by-product which products they share.
When a Violet channel is set up as a Shopify sales channel, the channel appears in the merchant's Shopify admin alongside their other sales channels. The merchant decides, product by product, which products are available to that channel, and Violet syncs only those.
This replaces the previous behavior, where connecting a Shopify store shared the merchant's entire catalog with the channel.
How Shopify models this
Two Shopify concepts do the work. You'll see both names throughout our documentation and in the Shopify API.
Channel. A destination where a merchant's products can be sold: their online store, point of sale, a marketplace, or an app like yours. When a merchant connects to a Violet channel configured for this feature, Violet creates a channel on their store during setup. The channel is named after the Violet app, so merchants see the partner's brand rather than "Violet."
Publication. Every channel has an associated publication: the set of products the merchant has made available to that channel. The publication is the actual list Violet reads from. A product that is not in the publication does not exist as far as the channel is concerned.
In the Shopify admin, merchants never see the word "publication." They see a checkbox for the channel on each product, and the act of ticking it is what adds the product to the publication.
Who controls what
Creating the channel on the store
✅ automatically, during setup
Deciding which products the channel gets
✅ entirely
Syncing the published products
✅ continuously
Removing a product from the channel
✅
Violet never publishes or unpublishes products on the merchant's behalf. Product selection is the merchant's decision, made in their own admin, and it can change at any time without notice to the channel. This is the point of the feature: merchants get explicit, granular control over what they share, using the same interface they already use for every other sales channel.
The three states of a product
Not published. The merchant has never made the product available to the channel. Violet does not sync it, and no record of it exists in the channel's catalog. New channels begin with every product in this state.
Published. The merchant has made the product available. Violet syncs it and it appears in the channel's catalog as an Offer, with each Shopify variant as a SKU.
Unpublished after having been published. The merchant has removed the product's availability. Violet marks the corresponding Offer publishing_status: NOT_PUBLISHED, and the product stops being sellable through the channel. Nothing is deleted: the Offer keeps its id, its data, and its SKUs, and its status, available, and visible are unchanged, because the product still exists and can keep selling in the merchant's own store. Re-publishing sets publishing_status: PUBLISHED again, on the same Offer.
What this feature does not change
Sales channel publishing controls catalog membership only. Everything else about a Shopify connection behaves exactly as it did before:
Order submission, order status, fulfillment, and refunds
Inventory quantities and multi-location inventory
Pricing, including contextual and multi-currency pricing
Product data: titles, descriptions, media, variants, options, metafields
Existing catalog rules such as collection filters and excluded tags or vendors, which continue to apply on top of publication filtering
Orders that were already placed are never affected by a merchant unpublishing a product.
Last updated
Was this helpful?