Starting with v5.4 Shopware supports installation using composer out of the box. Earlier versions of Shopware are not supported.
composer create-project shopware/composer-project my_project_name --no-interaction --stability=dev
This will clone the repository with all necessary dependencies into a new directory my_project_name
. You can then either
remove the history of this project by deleting the .git
directory and start from scratch by executing git init .
, or
keep the history and just add your own remote to push to.
Afterwards you either provide a .env
file for defining database credentials, the shop-url and Shopware version or have
one created for you using an interactive installer.
To use the installer, simply run:
$ ./app/bin/install.sh
Configuration settings like environment specific database settings, API tokens, server IPs or any type of credentials
should be set via environment variables. That way you don't have to include any environment specific or sensitive
information in your project. You can use a .env
file for local development or as a workaround.
You can also configure some generic project services in app/services.xml
. For instance, the error log is configured to
use stderr
output instead of default log file located at var/log
directory. New and additional services should be
provided using plugins, though.
Update the version number of shopware/shopware
in composer.json
. Then run composer update shopware/shopware
to install the new version. Do not forget to commit the new composer.lock
file to your project afterwards.
Given you have a plugin called SwagMediaSftp
add your dependencies in your plugins composer.json
file.
Also set the type
to shopware-plugin
. See the SwagMediaSftp
repository for the complete plugin.
{
"name": "shopwarelabs/swag-media-sftp",
"type": "shopware-plugin",
"description": "The SFTP adapter allows you to manage your media files in shopware on a SFTP environment.",
"license": "MIT",
"extra": {
"installer-name": "SwagMediaSftp"
},
"require": {
"league/flysystem-sftp": "^1.0"
}
}
For a complete list of the available Shopware-related types see the Composer Installers repository.
Plugins being installed like described above are installed into custom/plugins/
, legacy Shopware plugins are getting
installed into Plugins/
. Those directories are included in the .gitignore
of this repo so plugins installed via composer
are not being tracked by git.
In case you need some project specific plugins that you don't want to add to your project via composer but track them using
this repository, then you can add them to the custom/project
directory. Only plugins using the new plugin style are
supported.