⭐ Star us on GitHub — it helps!
Aimeos is THE professional, full-featured and high performance e-commerce package for Flow/NeosCMS! You can install it in your existing Flow application within 5 minutes and can adapt, extend, overwrite and customize anything to your needs.
This document is for the latest Aimeos Flow 2019.10 release and later.
- LTS release: 2019.10
The Aimeos Flow/Neos web shop package is a composer based library that can be installed easiest by using Composer:
composer create-project neos/flow-base-distribution myshop
Make sure that the database is set up and it is configured. If you want to use a database server other than MySQL, please have a look into the article about supported database servers and their specific configuration.
Neos has a nice setup page for this when opening the /setup
URL of your installation.
For Flow, this is done in your Configuration/Settings.yaml
file and must
at least include these settings:
Neos:
Flow:
persistence:
backendOptions:
host: '<host name or IP address>'
dbname: '<database name>'
user: '<database user name>'
password: '<secret password>'
Important: The configuration file format requires each additional indention to be two spaces. Not more, not less and no tabs at all! Otherwise, you will get an error about an invalid configuration file format.
Then add these lines to your composer.json
of your Flow/Neos project:
"extra": {
"installer-paths": {
"Packages/Extensions/{$name}/": ["type:aimeos-extension"]
}
},
"prefer-stable": true,
"minimum-stability": "dev",
"require": {
"aimeos/aimeos-flow": "~2019.10",
...
},
Afterwards, install the Aimeos shop package using
composer update
To create all required tables and to add the demo data, you need to execute a Flow console command in the base directory of your Flow application:
./flow aimeos:setup --option=setup/default/demo:1
In a production environment or if you don't want that the demo data gets
installed, leave out the --option=setup/default/demo:1
option.
For Flow only you need to import the routes from the Aimeos web shop
package into your Configuration/Routes.yaml
nice looking URLs. Insert the lines
below to the beginning of the Routes.yaml file:
-
name: 'Aimeos'
uriPattern: 'shop/<AimeosShopRoutes>'
subRoutes:
AimeosShopRoutes:
package: 'Aimeos.Shop'
It's important to import the routes from the Aimeos web shop package before the
FlowSubroutes
lines. If you add it afterwards, the default Flow routes will
match first and you will get an error that the requested package/action wasn't
found.
Now Flow would basically know which controller/action it shall execute. But with Neos, one additional step is needed:
Add the following PrivilegeTarget to Configuration/Policy.yaml
privilegeTargets:
Neos\Flow\Security\Authorization\Privilege\Method\MethodPrivilege:
'MyShop:AllActions':
matcher: 'method(Aimeos\Shop\Controller\(.*)Controller->(.*)Action())'
roles:
'Neos.Flow:Everybody':
privileges:
-
privilegeTarget: 'MyShop:AllActions'
permission: GRANT
The above will grant access to all Aimeos Controller/Actions pairs, for everyone - probably not what you want. Please refine to your needs!
Then, you should be able to call the catalog list page in your browser using
http://<your web root>/shop/list
For the administration interface you have to setup authenticaton first and log in before you will be able to get into the shop management interface:
http://<your web root>/shop/admin
To simplify development, you should configure to use no content cache. You can
do this in the Configuration/Settings.yaml
file of your Flow/Neos application
by adding these lines at the bottom:
Aimeos:
Shop:
flow:
cache:
name: None
The Aimeos Flow/Neos package is licensed under the terms of the LGPLv3 license and is available for free.