bigcommerce-commerce/skills/bc-channels/SKILL.md
Work with BigCommerce multi-channel — channels, multi-storefront, channel-specific catalog, site routing, and channel management API. Use when building multi-storefront solutions or managing channel-specific content.
npx skillsauth add orcaqubits/agentic-commerce-claude-plugins bc-channelsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Fetch live docs:
https://developer.bigcommerce.com/docs/storefront/multi-storefront for multi-storefront guidesite:developer.bigcommerce.com channels api for Channels API referencebigcommerce multi-storefront setup for configuration patternsChannels represent distinct sales surfaces connected to a single BigCommerce store:
storefront, marketplace, pos, marketingEvery BigCommerce store has a default Stencil storefront (Channel ID 1). Additional channels are created for:
| Endpoint | Methods | Description |
|----------|---------|-------------|
| /v3/channels | GET, POST, PUT | Channel CRUD |
| /v3/channels/{id}/site | GET, POST, PUT, DELETE | Channel site (domain) |
| /v3/channels/{id}/active-theme | GET, PUT | Active theme |
| /v3/channels/{id}/currency-assignments | GET, POST, PUT, DELETE | Currency config |
| /v3/channels/{id}/listings | GET, POST, PUT | Product listings |
POST /v3/channels
{
"name": "B2B Storefront",
"type": "storefront",
"platform": "catalyst",
"status": "active",
"is_listable_from_ui": true,
"is_visible": true
}
Associate a domain with a channel:
POST /v3/channels/{id}/site
{
"url": "https://b2b.example.com"
}
PUT /v3/catalog/products/channel-assignments:
[
{
"product_id": 111,
"channel_id": 2
},
{
"product_id": 222,
"channel_id": 2
}
]
GET /v3/catalog/products?channel_id:in=2 — products assigned to a specific channel.
PUT /v3/catalog/categories/channel-assignments — assign categories to channels.
Storefront API tokens are channel-scoped:
POST /v3/storefront/api-token
{
"channel_id": 2,
"expires_at": 1893456000,
"allowed_cors_origins": ["https://b2b.example.com"]
}
Different pricing per channel:
Fetch the BigCommerce Multi-Storefront documentation and Channels API reference for exact endpoints, configuration options, and current multi-storefront capabilities before implementing.
development
Build with Spree's headless Next.js storefront — the official `spree/storefront` repo (Next.js 16 App Router with Server Actions and Turbopack, React 19 Server Components, Tailwind CSS 4, TypeScript 5, `@spree/sdk`, Sentry), server-only auth (httpOnly JWT cookies + publishable key), MeiliSearch faceted catalog, one-page checkout with Apple/Google Pay/Klarna/Affirm/SEPA, multi-region market routing, GA4 + JSON-LD SEO, and Vercel/Docker deployment. Use when forking or customizing the storefront, or evaluating headless adoption.
tools
Build Spree extensions as Rails engines — gem scaffolding, `bin/rails g spree:extension`, mounting routes/migrations/assets, the modern `prepend` decorator pattern (`*_decorator.rb` with `self.prepended(base)`), generators (`spree:model_decorator`, `spree:controller_decorator`), the four customization surfaces in preference order (Events > Webhooks > Dependencies > Decorators), Spree::Dependencies for swapping service objects, gem release/versioning, and the deprecated Deface engine. Use when building a reusable Spree extension or adding non-trivial customization to an app.
development
Build with Spree's event bus and Webhooks 2.0 — `Spree::Events` publication, `Spree::Subscriber` DSL with `subscribes_to` and `on`, wildcard matching, lifecycle events (`{model}.created/.updated/.deleted` via `publishes_lifecycle_events`), the canonical event catalog (order.*, payment.*, shipment.*, product.*), Webhooks 2.0 endpoints, HMAC-SHA256 signing (`X-Spree-Webhook-Signature`), exponential-backoff retries, and Sidekiq job orchestration. Use when wiring event-driven business logic, building webhook consumers, or replacing ActiveSupport callback chains.
tools
Cross-cutting Spree development patterns — the customization preference hierarchy (Events > Webhooks > Dependencies > Decorators), `Spree::Dependencies` service-object swapping, the `_decorator.rb` + `prepend` + `self.prepended` idiom, idempotent subscribers and webhook receivers, multi-store scoping discipline, prefixed IDs, calculator polymorphism (shipping/promotion/tax share the base), service-object composition with `dry-monads` or simple results, why to avoid `class_eval` reopening and Deface, and Spree-on-Rails idioms (Hotwire/Turbo Stimulus, ActiveStorage, Action Cable, Sidekiq). Use when designing the architecture of a Spree extension or solving cross-cutting concerns.