Overview
Understand InStore modules and how to configure them.
A major component of the InStore colleague app is the collection of modules provide its functionality. You can incorporate all available modules into your implementation or will be able to replace some modules with frontend components of your own.
Modules are dynamically loaded by the your frontend application and you can customize and host certain modules for greater flexibility.
For information about setting up commercetools InStore, see Installation and setup.
Core modules
Core modules provide the primary InStore functions of payments, returns, cash management, and device management. These modules are stored separately from the frontend modules and are hosted by commercetools rather than downloaded as source code. You can access robust customization options in the InStore Center to control the core-module behavior.
Customizable modules
Customizable modules make up the frontend through which store employees interact with the InStore colleague app without leaving your in-store app. The InStore_Shell module is the container application for the other frontend modules. These modules are available in the modular store GitHub repository.
Frontend modules have dependencies on the InStore_State module and on the backend for frontend (BFF) integration server, which are configured in their webpack setup. Many hosted frontend modules use resources from the InStore_UIComponents module. Since modules can be hosted independently, their locations are configurable.
Each module:
- Has dependencies on the retailer's BFF integration server
- Can be independently hosted
- Has an environment (
.env
) file in its directory that provides variables to the build process - Must have its default routes set in the environment variables on the commercetools hosting API Server
Project Settings and Custom Fields
Configuration of commercetools InStore involves completing or verifying information on the Project Settings and Custom Fields tabs in the InStore Center based on values that the API Client injected into your Composable Commerce Project. Values in the Custom Fields tab are obtained through the commercetools Composable Commerce API Client, which grants access to your project. The InStore colleague app also uses this connection to support core functions during checkout, such as retrieving the cart and attaching payments.
In addition to setting the following values in your Composable Commerce Project, you must also set them in the InStore Center: