Overview of the APIs and concepts for configuring your Composable Commerce Projects.
The Project is the central place where all global configurations and settings, such as Channels, Stores, and Tax Categories, are managed. It acts as the foundation for your business setup in Composable Commerce.
This central configuration enables you to support multiple regions, brand stores, permissions, omni-channel distribution, taxation of products, and shipping costs.
Definitions
Project
A Project includes top-level settings such as name and trial end date, as well as the following configurations:
- Countries: The countries to which your business wants to sell products, affecting shipping, taxes, and legal compliance.
- Currencies: The currencies your prices should have, enabling multi-currency support.
- Languages: The languages in which you can have localized content for.
Additional configurable features include:
- Message Query for retrieving Project-related messages about state changes.
- Carts and Shopping Lists available in your Project.
- Tiered shipping rates for calculating shipping costs based on order value or weight.
- OAuth endpoint and authentication header to enable external Identity Providers.
- Search indexing to optimize search of resources within the Project.
- Business Units to manage organizational structures.
After setting up the Project, you can configure Stores, Channels, and Tax Categories to model your business structure.
Store
A Store is an instance representing a specific shopping experience. Stores allow to segment brands, regions, or various sales channels within a single Project.
Channel
Channels provide a way to manage Inventory (supply Channels) and Prices (distribution Channels) available to Stores.
Supply Channels are pipelines for Inventory and define how Products are supplied to Stores. Each supply Channel can be a warehouse, supplier, or any other source of Products.
Distribution Channels are a key concept for managing how Products and Prices are made available across different customer experiences within a Project. A Distribution Channel defines how Prices and Product availability are assigned and managed for each Store, enabling you to configure and control the pricing strategy and assortment for different sales channels.
Each Store represents a specific shopping experience and can be associated with one or more Distribution Channels. In turn, a Distribution Channel can be linked to a physical retail location or an online store, enabling you to manage Prices and Product availability for each Channel separately.
This association allows you to unify pricing and inventory strategies across different sales channels, whether they are brick-and-mortar stores or online shops.
Tax Category
Tax Categories classify Products for taxation in different Regions. They define Tax Rates and rules that apply to specific Products or locations.
Tax Categories can be associated with Products, enabling automated tax calculations during transactions.
Multi-region configuration
To configure your Project for multiple regions, set the following fields:
- Countries: Define the countries where your Project operates.
commercetools API supports ISO-3166 alpha-2 country codes. This enables you to manage shipping, taxes, and legal compliance across different countries.
For example, you can set up a Project that operates in the US, UK, and Germany by specifying the respective country codes:
[ "US", "GB", "DE" ]
. - Currencies: Specify the currencies used in your Project.
This allows transactions in multiple currencies and supports global customers.
Set multiple ISO 4217 currency codes in an array, such as
[ "USD", "GBP", "EUR" ]
, to support transactions in US Dollars, British Pounds, and Euros. Enabled currencies will be available and visible for Products, Prices, and Orders in your Project to calculate Prices and handle transactions. - Languages: Set the languages supported by your Project.
This is crucial for providing a localized shopping experience for customers in different Regions.
You can specify multiple languages using IETF language tags, such as
[ "en-US", "fr", "de" ]
, to support English, French, and German. After this, all resources in your Project will have corresponding localized fields, such asname
anddescription
, allowing you to provide tailored content for each language.
Multi-brand Project configuration
Your Project can support multiple brands allowing you to manage different brand Stores and Channels within the context of a single Project.
To configure your Project for multiple brands, configure Channels and Stores for each brand:
- Create a Project to serve as the foundation for your multi-brand setup.
- Create Channels for each brand you want to manage. Each Channel can represent a brand store, such as "Brand A" and "Brand B", allowing you to manage Prices and Inventory separately for each brand.
- Create Stores for each brand store. Each Store can represent a physical or online location for a specific brand, such as "Brand A Store" and "Brand B Store". This allows you to manage brand-specific Products, Prices, and Orders within the same Project.
Optionally, your Stores and Channels can be associated with specific Regions and currencies to tailor the shopping experience for each brand. For example, you can create a Store for "Brand A" in the UK with GBP currency and another Store for "Brand B" in France with EUR currency. In this case, you also need to add respective Tax Categories to define tax rules for each brand in different Regions.
After configuring Channels and Stores, you can manage brand-specific Category structure, Products, shipping options and other resources.
Omni-channel distribution
In omni-channel setups, you can connect multiple Distribution Channels to multiple Stores, supporting seamless shopping experiences across online, physical, and marketplace Channels. This enables flexible management of Prices, Inventory, and Product offerings tailored to each Channel and location.
To set up omni-channel distribution in your Project, do the following:
- Create a Project with the required Regions and currencies.
- Create Channels for each supply and distribution channel you want to manage.
- Create Stores for each physical or online location where your Products are sold. Then, you can associate Channels with Stores to manage inventory and distribution.