The term e-commerce framework is related to software frameworks for e-commerce applications. They offer an environment for building e-commerce applications quickly.
E-Commerce frameworks are flexible enough to adapt them to your specific requirements. As result, they are suitable for building virtually all kinds of online shops and e-commerce related (web) applications.
An e-commerce framework must
- allow replacing all parts of the framework code
- forbid changes in the framework code itself
- contain bootstrap code to start the application
- be extensible by user-written code
E-Commerce frameworks should
- define the general program flow
- consist of reusable components
- be organized in functional domains
They provide an overall structure for e-commerce related applications.
Furthermore, they implement the general program flow e.g. how the checkout process works. Contrary to monolithic shop systems, existing program flow can not only be extended but completely changed according to your needs.
Evolution of e-commerce systems
Since the beginning of (internet) e-commerce around 1995, a lot has changed on the technology side. The first generation of e-commerce systems evolved from existing ERP and related systems. This was followed by the 2. generation of standalone shop systems between 2004 and 2008. E-commerce frameworks are the latest generation of e-commerce systems and started around 2012.
Hybris, the shop system owned by SAP is one of the representatives of the 1. generation. It’s strongly connected to the SAP ERP system and Hybris is mainly a shop front-end for SAP. Customer relationship (CRM) and content management (CMS) tools are available in the ERP system but very limited.
The Magento shop system represents the 2. generation of standalone e-commerce systems. They usually contain CRM and CMS and some other functionality but also only at a very basic level. They might be enough for the smallest shops but are unusable for shop owners who run for real profits.
Aimeos is one of the few real e-commerce frameworks that are currently available. These 3rd generation systems excel in their own domain: Present and sell products. For all other e-commerce related tasks, they connect to specialized systems and exchange data in both ways. Thus, shop owners can choose the best systems for their needs.
E-Commerce framework architecture
E-commerce frameworks must be based on a strong architectural model. Usually, they make heavy use of interfaces and design patterns like
- Dependency Injection (make components independent of used object implementation)
- Factories (create objects at a central place that instantiates the actual implementation)
- Decorators (dynamically add functionality to existing objects)
- Publish/Subscribe model (notify listening objects about changes instead of polling for updates)
A “design pattern” is re-usable solution that solves similar software design problems in an elegant way. They require programming language templates which enforce public class methods and their signatures called “interfaces”.
The basic requirement are independent, side-effect free components that form the building blocks. One or more components care about the functionality of a business “domain”. Such a domain can be the HTML front-end, a JSON REST API and the administration interface.
The vertical separation of code into business domains enables scaling out applications by deploying the application as a bunch of micro services.
Micro services are loosely coupled applications that offer their service over lightweight protocols like HTTP and JSON. They are easier to extend, maintain and especially deploy than monolithic applications.