Die Installation aller Erweiterungen ist grundsätzlich über die Shopware Admin oder per Composer möglich. Bitte beachte, dass es nicht möglich ist, beide Installationsweisen zu mischen. Das bedeutet, dass entweder alle Erweiterungen über die Shopware Admin oder via Composer zu installieren sind.
Erweiterungen erwerben
Im Shopware Community Store kannst du folgende Erweiterungen von Pickware erwerben:
Lizenzen für Pickware WMS und Pickware POS können ausschließlich über den Pickware Account gebucht werden.
Installation über die Shopware Administration
Alle Erweiterungen, die über den Shopware Community Store bezogen wurden, können direkt in der Shopware 6 Administration installiert werden. Öffne dazu deinen Shopware Administration und wähle dort links im Menü Erweiterungen → Meine Erweiterungen aus. Klicke dort für die jeweilige Erweiterung auf Installieren.
Die Installationsanleitung für POS und WMS findest du in einem separaten Beitrag.
Installation per Composer
Alle Erweiterungen, inklusive Pickware WMS und Pickware POS, lassen sich ebenfalls via Composer installieren. Bitte beachte, dass alle Erweiterungen entweder über die Shopware Admin oder via Composer zu installieren sind. Gehe für die Installation via Composer wie folgt vor:
- Füge in die
composer.json
-Datei deines Shopware-Projektes folgende Path-Repositories ein, wenn diese noch nicht existieren. Mehr Informationen zu Path-Repositories findest du in der Composer-Dokumentation.
"repositories": [ { "type": "composer", "url": "https://packages.shopware.com/", "canonical": false }, { "type": "path", "url": "custom/plugins/*" }, { "type": "path", "url": "custom/plugins/*/vendor/pickware/*" } ]
Unter Umständen ist das Repository des Shopware-Community-Store ("shopware-packages"
) bereits eingefügt. Es muss unbedingt beachtet werden, dass dieses Repository vor den neuen Path-Repositories eingefügt werden muss und die Eigenschaft "canonical": false
gesetzt ist.
-
Wenn Du Pickware WMS oder Pickware POS abonniert hast, musst du zusätzlich aus deinem Pickware-Account die Zip-Dateien für die entsprechenden Plugins herunterladen und in das Verzeichnis
custom/plugins/
deiner Shopware-Installation entpacken. Dies ist notwendig, da diese Plugins nicht über den Shopware Community Store bereitgestellt werden. -
Füge in die
composer.json
-Datei deines Shopware-Projektes für jedes der Plugins, die du installieren willst einen Eintrag derrequire
-Sektion ein. Ersetze dabei die Version (hier“^2.0.0”
und“^1.6.3”
) aus dem folgenden Beispiel mit der entsprechenden aktuellen Version der Erweiterung.
Beispiel:
“store.shopware.com/pickwareerpstarter”: “^2.0.0”, “pickware/pickware-wms”: “^1.6.3”,
Erweiterung |
require -Bezeichner |
---|---|
Pickware ERP | store.shopware.com/pickwareerpstarter |
Pickware ERP Pro | store.shopware.com/pickwareerppro |
Deutsche Post Versand | store.shopware.com/pickwaredeutschepost |
DHL Versand | store.shopware.com/pickwaredhl |
GLS Versand | store.shopware.com/pickwargls |
Pickware WMS | pickware/pickware-wms |
Pickware POS | pickware/pickware-pos |
- Führe den Befehl
composer update pickware/* --with-dependencies
aus. - Nutze den dort erscheinenden Namen des Plugins um das Plugin zu installieren:
./bin/console plugin:install [Pluginname] --activate -c.
Beispiel für Pickware ERP:
./bin/console plugin:install PickwareErpStarter --activate -c
Troubleshooting
Die zur Installation benötigten Pakete werden jeweils mit der Erweiterung in dem Verzeichnis vendor ausgeliefert. Damit Composer diese Pakete findet, muss folgendes Path-Repository in deiner composer.json-Datei hinterlegt sein.
"repositories": [ { "type": "path", "url": "custom/plugins/*/vendor/pickware/*" } ]
Fehlt dieses Repository, kommt es beim Ausführen von composer install zu einem Fehler ähnlich wie folgt:
pickware/pickware-erp-starter 1.1.0 requires pickware/shopware-plugins-dal-bundle ^2.0.0 -> no matching package found.
Teilweise werden Abhängigkeiten von Pickware POS oder Pickware WMS mitgebracht, welche nicht im Shopware-Community-Store verfügbar sind. Dabei kann es zu folgendem oder einem ähnlichen Fehler kommen:
Problem 1 - Root composer.json requires pickware/pickware-wms ^2.1.0 -> satisfiable by pickware/pickware-wms[2.1.0]. - pickware/pickware-wms 2.1.0 requires pickware/document-bundle ^2.4.16 -> satisfiable by pickware/document-bundle[2.4.16] from path repo (custom/plugins/*/vendor/pickware/*) but pickware/document-bundle[2.0.1, ..., 2.4.15.4] from composer repo (https://packages.shopware.com/) has higher repository priority. The packages from the higher priority repository do not match your constraint and are therefore not installable. That repository is canonical so the lower priority repo's packages are not installable. See https://getcomposer.org/repoprio for details and assistance.
Dies passiert, wenn das Repository für den Shopware-Community-Store ("shopware-packages"
) nicht vor dem Path-Repository steht und/oder für dieses Repository die Eigenschaft "canonical": false
nicht gesetzt ist.
Fehlermeldung "Cannot redeclare Franzose" bei der Installation von Erweiterungen
Wenn du bei der Installation einer Erweiterung die Fehlermeldung Cannot redeclare
Franzose
erhältst, kann dies daran liegen, dass du gerade versuchst, eine Erweiterung über die Shopware Admin zu installieren, obwohl du zuvor bereits Erweiterungen per Composer installiert hast.
Fatal error: Cannot redeclare Franzose\DoctrineBulkInsert\sql() (previously declared in /var/www/html/vendor/franzose/doctrine-bulk-insert/src/functions.php:9) in /var/www/html/custom/plugins/PickwarePos/vendor/franzose/doctrine-bulk-insert/src/functions.php on line 20
Symfony\Component\ErrorHandler\Error\FatalError^ {#63
#message: "Compile Error: Cannot redeclare Franzose\DoctrineBulkInsert\sql() (previously declared in /var/www/html/vendor/franzose/doctrine-bulk-insert/src/functions.php:9)"
#code: 0
#file: "/var/www/html/custom/plugins/PickwarePos/vendor/franzose/doctrine-bulk-insert/src/functions.php"
#line: 20
-error: array:4 [
"type" => 64
"message" => "Cannot redeclare Franzose\DoctrineBulkInsert\sql() (previously declared in /var/www/html/vendor/franzose/doctrine-bulk-insert/src/functions.php:9)"
"file" => "/var/www/html/custom/plugins/PickwarePos/vendor/franzose/doctrine-bulk-insert/src/functions.php"
"line" => 20
]
}
Grundsätzlich musst du dich bei der Installation deiner Erweiterungen gesamt gesehen für eine Variante entscheiden: Installation per Composer oder Installation per Admin. Um das vorliegende Problem zu lösen, muss die betreffende Erweiterung demnach ebenfalls per Composer installiert werden.
Wir empfehlen dazu folgende Schritte:
- Stelle sicher, dass alle Pickware Plugins in der
require
-Section dercomposer.json
-Datei hinterlegt sind - Prüfe mit dem Konsolen-Befehl
bin/console plugin:refresh
, dass alle Plugins installiert sind - Überprüfe in der Datenbank, dass in der Tabelle
plugin
für die Einträger aller Pickware Plugins der Wertmanaged_by_composer
auf1 (True)
steht.