Products
Products
Video Hosting
Upload and manage your videos in a centralized video library.
Image Hosting
Upload and manage all your images in a centralized library.
Galleries
Choose from 100+templates to showcase your media in style.
Video Messaging
Record, and send personalized video messages.
CincoTube
Create your own community video hub your team, students or fans.
Pages
Create dedicated webpages to share your videos and images.
Live
Create dedicated webpages to share your videos and images.
For Developers
Video API
Build a unique video experience.
DeepUploader
Collect and store user content from anywhere with our file uploader.
Solutions
Solutions
Enterprise
Supercharge your business with secure, internal communication.
Townhall
Webinars
Team Collaboration
Learning & Development
Creative Professionals
Get creative with a built in-suite of editing and marketing tools.
eCommerce
Boost sales with interactive video and easy-embedding.
Townhall
Webinars
Team Collaboration
Learning & Development
eLearning & Training
Host and share course materials in a centralized portal.
Sales & Marketing
Attract, engage and convert with interactive tools and analytics.
"Cincopa helped my Enterprise organization collaborate better through video."
Book a Demo
Resources
Resources
Blog
Learn about the latest industry trends, tips & tricks.
Help Centre
Get access to help articles FAQs, and all things Cincopa.
Partners
Check out our valued list of partners.
Product Updates
Stay up-to-date with our latest greatest features.
Ebooks, Guides & More
Customer Stories
Hear how we've helped businesses succeed.
Boost Campaign Performance Through Video
Discover how to boost your next campaign by using video.
Download Now
Pricing
Watch a Demo
Demo
Login
Start Free Trial
Multi-Storefront in BigCommerce enables centralized management of multiple storefronts using a single backend. Each storefront operates under a unique channel_id and site_id for theme isolation, product visibility, pricing, and checkout configurations. APIs such as the Channels API, the Product Channel Assignment API, and the Themes API support storefront creation, catalog scoping, and layout customization. GraphQL and REST APIs use channelId to filter data per storefront, enabling region-specific user experiences and content delivery, including localized video playback. What is Multi-Storefront in BigCommerce? Multi-Storefront allows you to operate multiple unique storefronts via a single BigCommerce store. Each storefront is defined by a unique channel_id and site_id , which isolate storefront data such as catalog products and visibility, pricing and promotions, theme and layout configurations, and payment gateways and tax rules. This architecture supports running region-specific stores, brand variations, or niche channels under one BigCommerce account. Components and APIs for Multi-Storefront Management Storefront Isolation with Channel IDs Every storefront channel in BigCommerce is uniquely identified by a channel_id and site_id, which ensures data isolation. Example : Fetching Storefront Details curl -X GET 'https://api.bigcommerce.com/stores/{store_hash}/v3/channels/23' \ -H 'X-Auth-Token: {token}' \ -H 'Accept: application/json' Explanation : Starts with curl -X GET to send an HTTP GET request to the specified BigCommerce API endpoint. Targets 'https://api.bigcommerce.com/stores/{store_hash}/v3/channels/23' to fetch details for channel ID 23 in the given store. Adds the header X-Auth-Token: {token} to authenticate the request using an API token. Managing Product Catalog and Pricing Per Storefront The Catalog API and Product Channel Assignment API allow selective product visibility and pricing per storefront. Each channel can override default prices or hide products based on business rules. Example : Assigning Products to Storefronts curl -X POST 'https://api.bigcommerce.com/stores/{store_hash}/v3/catalog/products/567/channels' \ -H 'X-Auth-Token: {token}' \ -H 'Content-Type: application/json' \ -d '{ 'channel_ids': [23] }' Explanation : Adds the header X-Auth-Token: {token} to authenticate the API request with a valid access token. Includes the header Content-Type: application/json to specify that the request body is formatted as JSON. Sends a JSON payload with 'channel_ids': [23] to assign the product to channel ID 23. Example : Setting Custom Prices for Storefronts curl -X POST 'https://api.bigcommerce.com/stores/{store_hash}/v3/pricelists' \ -H 'X-Auth-Token: {token}' \ -H 'Content-Type: application/json' \ -d '{ 'name': 'EU Premium Pricing', 'active': true, 'channel_id': 23, 'prices': [ { 'product_id': 567, 'price': 89.99 } ] }' Explanation : Adds the header X-Auth-Token: {token} to authorize the request using a valid API token. Includes the header Content-Type: application/json to indicate that the request body is in JSON format. Sends a JSON payload defining a new price list named 'EU Premium Pricing' , marked as active and linked to channel ID 23. Includes a prices array that sets the price of product ID 567 to 89.99 for this specific price list. Theme and Layout Customization Per Storefront Themes are scoped per storefront using the Themes API or Admin UI. The active channel_id determines which layout assets the Storefront API resolves for requests. Example : Assigning a Theme to a Channel curl -X POST 'https://api.bigcommerce.com/stores/{store_hash}/v3/channels/23/themes' \ -H 'X-Auth-Token: {token}' \ -H 'Content-Type: application/json' \ -d '{ 'uuid': 'a1b2c3d4-5678-90ef-ghij-klmnopqrstuv' }' Explanation : Adds the header X-Auth-Token: {token} to authenticate the request using a valid API token. Includes the header Content-Type: application/json to specify that the request body is formatted as JSON. Sends a JSON payload with a 'uuid' that identifies the theme being applied to the channel. Example : Conditional Theme Logic in Stencil Templates Explanation : Checks if channel_id is equal to 23 using a conditional {% if %} statement. Loads premium.css from the CDN when the current channel is 23 to apply premium styling. Loads standard.css from the CDN for all other channels as a fallback style. End the conditional block with {% endif %} to complete the logic. Example : Fetching the Active Theme for a Channel curl -X GET 'https://api.bigcommerce.com/stores/{store_hash}/v3/channels/23/active-theme' \ -H 'X-Auth-Token: {token}' Configuring Checkout, Payment, and Taxes by Storefront Storefronts enforce independent payment gateways and tax rules via channel_id-scoped API configurations. The Checkout API applies channel-specific logic (e.g., enabling SCA for EU channels via payment_instruments restrictions) while tax overrides use the Tax API with location_id bindings. Example : Enabling Stripe and Enforcing SCA (Strong Customer Authentication) curl -X PUT 'https://api.bigcommerce.com/stores/{store_hash}/v3/channels/23/payment-providers/stripe' \ -H 'X-Auth-Token: {token}' \ -d '{'is_enabled': true, 'sca_enforced': true}' Explanation : Adds the header X-Auth-Token: {token} to authenticate the request using a valid API token. Sends a JSON payload with 'is_enabled': true to activate Stripe as a payment provider for the specified channel. Sets 'sca_enforced': true to enforce Strong Customer Authentication (SCA) compliance for transactions processed through Stripe. Example : Applying Tax Overrides curl -X POST 'https://api.bigcommerce.com/stores/{store_hash}/v3/tax/overrides' \ -H 'X-Auth-Token: {token}' \ -d '{'channel_id': 42, 'tax_zone_id': 5, 'rate': 0.08}' Explanation : Adds the header X-Auth-Token: {token} to authorize the request using an API token. Sends a JSON payload with 'channel_id': 42 to apply the tax override to channel ID 42. Sets 'tax_zone_id': 5 to identify the geographical tax zone the override applies to. Defines 'rate': 0.08 to apply an 8% tax rate for that zone and channel. Managing Multi-Storefronts via BigCommerce Dashboard Creating a New Storefront Channel Step 1 : Go to Channel Manager > Create Channel . Step 2 : Assign a name, region, and base URL.. Step 3 : Configure domain settings and assign a site_id. Step 4 : Set default currency, language, and tax zone. Assigning Products to Storefronts Step 1 : Navigate to Products > View Products . Step 2 : Select the product you want to assign. Step 3 : Under Storefronts , select one or more storefronts. Step 4 : Save changes to update the catalog visibility. Assigning and Customizing Themes Step 1 : Go to Storefront > Themes . Step 2 : Use the dropdown to switch between storefronts. Step 3 : Apply or customize a theme per storefront. Step 4 : Use theme variations to offer unique branding for each channel. Pricing, Taxes, and Payment Setup Pricing : Use Price Lists to define region-specific prices. Assign them via Customers > Price Lists . Taxes : Go to Tax Settings , and create rules or overrides scoped by channel or location. Payments : Configure different gateways for each storefront. For example, enable Stripe for one and PayPal for another. Video Hosting Integration for Multi-Storefronts Storing Video URLs Using Custom Fields To associate videos with individual products, you can use custom fields to store URLs pointing to hosted video assets. This allows you to manage storefront-specific media directly through the BigCommerce API. Example : Attach Video URLs as Custom Product Fields curl -X POST 'https://api.bigcommerce.com/stores/{store_hash}/v3/catalog/products/456/custom-fields' \ -H 'X-Auth-Token: {token}' \ -d '{ 'name': 'hero_video', 'value': 'https://cdn.example.com/eu-product-trailer.mp4' }' Explanation : name : The custom field key used to store video metadata. value : The URL of the product video to display on the storefront. Querying Video URLs via GraphQL Scoped by Channel Once stored, these custom field values can be queried using GraphQL, scoped to a specific channelId . This ensures that only the appropriate video URL is exposed to each storefront’s frontend. Example : Query the hero_video Field for a Product Scoped by ChannelId query GetProductVideos($channelId: Int!) { site(channelId: $channelId) { product(entityId: 456) { customFields(names: ['hero_video']) { edges { node { value } } } } } } Explanation : $channelId : The variable defining which storefront (channel) to query. site(channelId: $channelId) : Scopes the product query to a specific storefront. product(entityId: 456) : Fetches the product with ID 456. customFields(names: ['hero_video']) : Requests the custom field storing the video URL. node { value } : Retrieves the actual value of the custom field (video URL). Frontend Channel-Specific Video Playback Logic Front-end logic can dynamically adjust video behavior (such as subtitles or GDPR compliance) based on the user’s region or the current channel. This ensures regulatory alignment and a localized experience. Example : Load GDPR Settings and EU Subtitles for EU Region Storefront const channelId = userRegion.startsWith('EU') ? 23 : 42; if (channelId === 23) { videoPlayer.setAttribute('data-gdpr', 'true'); videoPlayer.loadSubtitles('eu-subtitles.vtt'); } Explanation : channelId : Assigns 23 for EU users, otherwise assigns 42. channelId === 23 : Checks if the current channel is EU-specific. videoPlayer.setAttribute('data-gdpr', 'true') : Enables GDPR compliance for EU storefront. videoPlayer.loadSubtitles('eu-subtitles.vtt') : Loads EU-specific subtitle file for the video. Optimizing Video Delivery with CDNs and Signed URLs To improve performance and control access, serve video content via CDN platforms like Cloudflare Stream or AWS CloudFront . You can use signed URLs and include channel_id to segment content delivery per storefront. Example : Request Video via CDN with Signed Token and Channel Context curl 'https://cdn.example.com/video.mp4?token=${SIGNED_TOKEN}&channel_id=23' Explanation : Include channel_id in the query for targeted delivery. Use signed URLs and cache control headers per channel for privacy and performance.