/composer-project

Skeleton for Shopware projects with composer

Primary LanguageShell

Composer template for Shopware projects

Starting with v5.4 Shopware supports installation using composer out of the box. Earlier versions of Shopware are not supported.

Installation

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 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/install.sh

Updating Shopware

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.

Prepare plugins for composer installation

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

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.