For the complete documentation index, see llms.txt. This page is also available as Markdown.

Enablement & Rollout

Prerequisites for turning on Shopify sales channel publishing, what happens when a merchant connects, and how to roll the feature out to existing merchants.

This page is for channel partners preparing to turn on Shopify sales channel publishing, and the Violet solutions team supporting them. It assumes the concepts on Sales Channel Publishing on Shopify.

Prerequisites

All four must be in place before any merchant can be provisioned. If any is missing, channel creation fails quietly and affected merchants continue on full-catalog sync; there is no error surfaced to the merchant, so verify these up front.

1. A deployed and released Shopify channel configuration extension. Your Shopify app needs a channel_config extension that is both deployed and released. Shopify rejects channel creation for apps without one. The extension declares a specification handle that Violet references when creating the channel. See Setting Up Your Sales Channel App.

2. Sales channel behavior enabled on the Violet app. Set sales_channel_behavior.enabled on the app configuration. Two optional settings sit alongside it:

  • specification_handle: the handle from your channel_config extension. If omitted, Violet derives it from the app name by lowercasing and replacing spaces with hyphens, so an app named Violet Marketplace produces violet-marketplace. Set it explicitly whenever your deployed handle doesn't match that convention.

  • channel_name: the display name merchants see in their Shopify admin. Defaults to the app name.

3. The read_publications Shopify scope. This must be declared as a custom Shopify scope on the app. It is not included in the generalized product scopes. An app requesting only generalized scopes will not receive it, and provisioning will fail to resolve the publication. This is the easiest prerequisite to miss.

4. Merchant authorization under the new scopes. Merchants must authorize the connection after the scopes above are in place.

What happens when a merchant connects

  1. The merchant authorizes the connection as usual.

  2. Violet creates a channel on their store, named after your app, and identifies the publication attached to it.

  3. Violet turns on publication-scoped syncing for that merchant and registers publication webhooks.

  4. From that point on, the channel's catalog is the merchant's published set.

Three properties of this sequence are worth knowing:

It's all-or-nothing. Publication-scoped syncing is enabled only after both the channel and its publication are confirmed. A partial failure leaves the merchant on full-catalog syncing. There is no half-enabled state where a merchant has publication webhooks but an unfiltered catalog.

It's non-fatal. If channel creation fails for any reason, the connection still succeeds and the merchant syncs normally. Nothing about onboarding breaks.

It's idempotent and self-healing. Reconnecting an already-provisioned merchant does not create a duplicate channel. If an earlier attempt created the channel but failed to record the publication, reconnecting repairs it.

Rollout to existing merchants

Merchants already connected are not migrated automatically. They continue with full-catalog syncing until they re-authorize the connection.

This is deliberate. Existing merchants have neither a channel on their store nor the Shopify permissions needed to create one. Re-authorization is what grants the new permissions, and it is also what triggers channel creation, so the two cannot be separated, and there is no backfill that can enable a merchant without their involvement.

Practically, this means:

  • Enabling the feature on your app changes nothing for your existing merchants until each one reconnects.

  • Plan a merchant communication campaign around reconnection. A merchant who reconnects without warning will find their catalog scoped to an empty publication.

  • Sequence it carefully: after reconnecting, a merchant's catalog is empty until they publish products to the new channel. Tell merchants to publish their products as part of the same session in which they reconnect. Walk them through the merchant-facing instructions in the Merchant Help Center.

Merchants connected to more than one Violet channel

A merchant can be connected to several Violet channels at once. Each connected app gets its own Shopify channel and its own publication, so:

  • The merchant sees one checkbox per channel on each product.

  • They can share different products with different channels.

  • Publishing to one channel has no effect on any other.

  • A merchant can be publication-scoped for one channel and full-catalog for another; for example, if one app has the feature enabled and another does not.

Turning the feature off

Publication-scoped syncing can be disabled per merchant, which reverts them to full-catalog syncing. The Shopify channel remains on their store and is harmless; it simply stops being used as a filter. Talk to your Violet contact before doing this. Reverting a merchant to full-catalog syncing will expand their catalog back to the full store, which may not be what they agreed to.

Last updated

Was this helpful?