High performance web shop components
There's a new e-commerce player the Open Source world: Aimeos, the name of the project, is a modular e-commerce library written in PHP5, mainly to build web shops but is not limited to that. Instead, it can be used for anything like market places, portals, product catalogs or whatever is built on list and detail views.
Besides its modularity and flexibility, its most interesting feature is the impressive performance when handling big amounts of data. The web site links to some nice demo applications, that creates sorted product lists in 100 to 200 milliseconds. The e-commerce library has been integrated into all major PHP frameworks and is available for:
A TYPO3 extension is also available for direct integration into the content management system (CMS). Up to now, this extension is the most sophisticated integration into another system which allows shop owners to place the components anywhere and configure them independently.
A different approach
Almost all web shops including the most widely used ones share the same problem: They are monolithic and tightly integrated applications that makes it really hard to integrate them into existing web sites or applications. If you ever tried to do so, you've already faced the difficulties of implementing a single sign-on or displaying the output of the shop inside a CMS. Sure, many existing web shops already provide basic CMS functionality but they are rather rudimentary and don't have the thousands for 3rd party extensions that come along with existing Open Source CMS systems.
Aimeos has a very different approach by providing an e-commerce library which acts as base for the implementation of different front-ends. This allows a native integration into virtually every web application by writing some glue code to render the provided data into the application view. Thus, you can either extend your existing web site by a shop system or you can choose the best software that fits your needs and integrate a shop seamlessly.
The e-commerce libary itself is also built as a modular stack of components. The basic layer abstracts the commonly required services like the database, session management, logging, etc. from their specific implementation. This allows Aimeos to use the session and logging facilities of the host application by providing an appropriate adapter.
Above, the components for things like product and catalog management, providing payment and delivery services or managing texts, prices and media items are implemented. Each of this functionality is located in its own domain (a set of classes that is only responsible for this part) which are loosely coupled so they could be exchanged by other implementations easily. Each domain consists of a set of managers and items. While the items are only used for passing data around, are the managers responsible for creating, storing, retrieving and deleting records from the underlying storage. Currently, the implemented managers are all using a MySQL database but different databases or even non-relational storage systems are possible.
On top of the library the administration interface, the storefronts and other services (REST or alike) can be implemented. The default implementation of the administration interface, for example, is a desktop-like application written in ExtJS. It provides management of products, orders and related data via well known controls and drag&drop.
Aimeos is very different from existing web shops and provides a construction kit that allows everyone to build his own one. Together with a storefront of their choice, merchants have an extremely flexible system delivering a high performance even with thousands of articles that can be adapted to virtually any need. It will be interesting to see into which content management systems or other web applications it will be integrated with and what applications people will build based on Aimeos in the future.