Difference between revisions of "Aimeos"

From Linuxnetworks
Jump to: navigation, search
(Application requirements)
(Rewritten to Aimeos)
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== High performance e-commerce ==
+
== High performance web shop components ==
  
A few month ago, a new e-commerce project entered the Open Source world. [http://www.arcavias.com/ Arcavias], the name of the project, is a modular e-commerce framework 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.
+
There's a new e-commerce player the Open Source world: [https://aimeos.org/ 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 a nice [http://www.arcavias.com/en/project/demo-access.html demo application], that creates sorted product lists from a set of over 100,000 articles in around one second without any content caching.
+
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 [http://demo.aimeos.org/ 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:
 +
* [https://aimeos.org/Flow Flow]
 +
* [https://aimeos.org/Laravel Laravel]
 +
* [https://aimeos.org/Symfony Symfony]
 +
* [https://aimeos.org/project/about-aimeos/ Zend]
 +
 
 +
A [https://aimeos.org/TYPO3 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 ==
 
== 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. If you ever tried to do so, you already faced the difficulties of implementing a single sign-on or displaying the output of the shop inside another content management system (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.
+
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.
  
Arcavias 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.
+
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.
  
 
== Architectural details ==
 
== Architectural details ==
  
The e-commerce framework 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 Arcavias to use the session and logging facilities of the host application by providing an appropriate adapter.
+
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.
 
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, SOAP, etc) 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. Metaways, the company which started the project, is implementing a full featured storefront that natively integrates into the TYPO3 content management system.
+
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.
 
+
== First steps ==
+
 
+
=== Application requirements ===
+
 
+
If you would like to test the framework yourself, the checkout from the [https://github.com/Arcavias/arcavias-core Github repository] contains the demo front-end as well as the administration interface that are used for the demo on the Arcavias home page. To make it fly you need:
+
 
+
* a Unix-like system (e.g. BSD, Linux, MacOS X, Solaris or others)
+
* a web server (e.g Apache)
+
* MySQL 5.0 or later
+
* PHP 5.2.9 or later including
+
** PDO
+
** pdo_mysql
+
** curl
+
** dom
+
** zip
+
 
+
The [https://docs.arcavias.com/index.php/Developers/Requirements requirements page] also states further requirements but these software is either optional or most useful when changing code in the core or implementing your own extensions.
+
 
+
=== Prepare the database ===
+
 
+
Before you can start, you should create a separated database for the Arcavias tables which will be created during the setup process. This can be done by e.g. connecting to the database server via the command line (replace "<admin user>" with your real administrator account):
+
 
+
mysql -h localhost -u <admin user> -p
+
 
+
After you have logged in successfully, you must execute a few SQL statements to create the database:
+
 
+
CREATE DATABASE mshop;
+
USE mshop;
+
GRANT ALL ON mshop.* TO mshop IDENTIFIED BY 'secret';
+
 
+
=== Get the source and configuration ===
+
 
+
Now checkout the source code somewhere into the document root of your (private) web server. You can do so by using the "svn" command on the command line:
+
 
+
svn co https://svn.arcavias.com/arcavias/core/trunk/ arcavias
+
 
+
Configure Arcavias to use your newly created database by renaming the resource.php-dist file in the "config" directory:
+
 
+
cd arcavias;
+
mv config/resource.php-dist config/resource.php
+
 
+
Open the config/resource.php file with your favorite editor and insert the password between the two apostrophes behind the "password" string:
+
 
+
'password' => 'secret',
+
 
+
=== Create test data ===
+
 
+
Now everything should be prepared to create the tables in your database and fill them with the performance test data set. Both are created by using this command in the directory of the checkout:
+
 
+
php setup.php setupperf
+
 
+
Depending on the performance of your computer system, this will last some time, maybe 15 to 30 minutes. The setup creates the required tables first (or updates existing ones) and generates 1000 products with texts, pictures, prices and attributes in an own shop instance afterwards. You can see a lot of output from the checks if the tables are up to date and finally each step in the process of generating the test data set. If an error occurs immediately, please recheck your credentials in the resource.php file first.
+
 
+
=== Demo time! ===
+
 
+
That's it! After the setup has finished, you should be able to call the little demo storefront and the administration interface from your browser. Both should be reachable via these URLs:
+
 
+
* Demo front-end: http://localhost/<path to Arcavias directory>/dev/zfapp/public/ (click on the "PERFORMANCE TEST SITE" link in the upper right corner)
+
* Administration interface: http://localhost/<path to Arcavias directory>/dev/admin/ (select the "Performance test site" from the drop-down in the upper right corner)
+
  
 
== Conclusion ==
 
== Conclusion ==
  
Arcavias 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 Arcavias in the future.
+
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.

Latest revision as of 13:58, 31 October 2015

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.

Architectural details

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.

Conclusion

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.