Introduction to Multi-Storefront
Some merchants want to sell their products in different places. They may want to maintain multiple website-based eCommerce storefronts, or sell products from their store's catalog on other channels, such as Amazon, eBay, in-person POS (point-of-sale) systems, and so on.
Multi-storefront capabilities extend the reach of BigCommerce stores. Merchants are no longer relegated to selling from a single storefront website. They can maintain multiple websites, on which they can configure and customize the look, feel, pricing, and organization of the shopping experience to support multiple distinct brands or sales goals. To this end, BigCommerce's data model has evolved significantly to support these new dimensions.
We intend to provide these new features with no breaking changes to the platform so that existing single-storefront merchant stores continue to function as they did previously, and the existing APIs function as before for these stores. However, there are several additive changes to the platform. To provide the full multi-storefront, multi-channel support that merchants with complex stores expect and require, our partners must adapt.
This guide provides an overview of the core features that power multi-storefront, multi-channel stores. Our Multi-Storefront API Guide and Multi-Storefront App Compatibility and Optimization article provide guidance on how developers can modify and reimagine applications to support multi-storefront, multi-channel selling.
Channels
Channels API reference documentation
A channel is a place where a merchant's store sells products. Storefront websites, marketplaces like Amazon and eBay, point-of-sale systems, and marketing feeds are all sales channels. A custom channel may not fit into any one of these types. A merchant creates a new channel to sell in a new context. Channels can help to organize a merchant's complex business by allowing them to sell to many customers in many places from a single catalog in one BigCommerce store. In a transactional context, channel objects link together a variety of other objects that describe a particular shopper's experience on a sales channel.
A channel is defined by the following:
- A
name
, which is merchant-defined for internal convenience and not exposed to shoppers - A
type
, which may be one of the following:storefront
,marketing
,pos
,marketplace
custom
- A
platform
, which indicates the platform on which shoppers primarily use the channel
Consult the Channels API documentation for more information on valid combinations of type
and platform
. For example, a BigCommerce-hosted Stencil storefront has a type of storefront
and a platform of bigcommerce
.
Each BigCommerce store is provisioned with one channel out of the box, intended for its first Stencil storefront. The ID of this channel is 1
for all BigCommerce stores. This channel may also be referred to as the "default channel", and it cannot be deleted.
To learn more about upgrading your application to support multi-channel sales, see Multi-Storefront App Compatibility.
Sites
A site is a website owned or controlled exclusively by the merchant, usually for hosting a storefront website. Every site will be tied to exactly one channel, but because not all sales channels are sites, channels are not required to have a site. Sites are mainly relevant to storefront-type channels, and they serve as containers for settings and objects that only apply to websites.
Every site must have the following properties:
- The
channel_id
of the sales channel associated with the site - A
url
, which is the public-facing URL of the site
Every Stencil storefront has a site, in addition to having a channel of type storefront
and a platform of type bigcommerce
.
The first Stencil storefront of each merchant store has an ID of 1000
and is also known as the default site. It cannot be deleted.
To learn more about upgrading your application to support multi-storefront functionality, see Multi-Storefront App Compatibility.
Settings & Configuration
The Settings APIs now allow your app to read and write many important elements of the store's configuration, both globally and on a per-channel basis. If your application manages settings, you can use these endpoints to enable merchants to configure different settings for different channels. You may also wish to read and respect any merchant-configured settings that control details of your application's behavior.
If your application interacts with shoppers, you may be able to use the GraphQL Storefront API instead to get the relevant settings for a given shopper in real time.
For a deep dive into this new class of APIs, see our Settings API Overview.