CommerceAccelerator.Application.B2CStore
is the reference implementation for a Commerce Accelerator Store. The B2CStore
module design is illustrated below.
In this illustration:
The modules
Base
andPlugins.*
are the Commerce Store Accelerator core modules and collectively implement the Commerce Store Accelerator framework.Application.B2CStore
is a realization of the Store module and as such composes features implemented in the Plugins and serves as the entry point to the application.Base
defines the “pluggable” interfaces forPlugins.*
.Base
is an extension of theDCS
andREST
modules.Application.B2CStore.Base
defines the “pluggable” interfaces forApplication.B2CStore.Plugins.*
.Application.B2CStore.Base
is an extension ofBase
and can overrideBase
implementations or extend theBase
interface.Plugins.*
provide features by implementing interfaces fromBase
.Application.B2CStore.Plugins.*
are extensions of thePlugins.*
modules, and can overridePlugins.*
implementations or realize new interfaces from Application.B2CStore.Base. Note that where no correspondingB2CStore.Plugins.*
extension exists the framework module is referenced directly.If a module uses an interface that is implemented in a different module there will be a dependency, for example,
Plugins.Checkout
has dependencies onPlugins.Account
andPlugins.Promotions
. This can be implemented as an explicit dependency defined in theMETA-INF
, or an implicit dependency defined in the startup script; an implicit dependency is recommended as it makes the architecture more flexible. Circular dependencies are not supported.