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. Solltest du von einer Installation per Admin zur Installation per Composer wechseln wollen, beachte bitte unbedingt die Hinweise hier. Gehe für die Installation via Composer wie folgt vor:
Füge in die composer.json
-Datei deines Shopware-Projektes folgende Repositories ein:
"repositories": [ { "type": "composer", "url": "https://packages.shopware.com/", "canonical": false },
{
"type": "path",
"url": "pickware-plugins/*/vendor/pickware/*"
},
{
"type": "path",
"url": "pickware-plugins/*"
} ]
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 ein eigenes Verzeichnis
pickware-plugins
deiner Shopware-Installation entpacken. Dies ist notwendig, da diese Plugins nicht über den Shopware Community Store bereitgestellt werden. -
Wichtig: Die Plugins Pickware WMS und Pickware POS dürfen nicht in die Verzeichnisse
custom/plugins
odercustom/static-plugins
abgelegt werden, da es sonst zu Problemen beim Update kommt.
Füge in die composer.json
-Datei deines Shopware-Projektes für jedes der Plugins, die du installieren willst einen Eintrag der require
-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": "pickware-plugins/*/vendor/pickware/*" } ]
Fehlt dieses Repository, kommt es beim Ausführen von composer install
zu einem Fehler ähnlich diesem:
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 (pickware-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\DoctrineBulkInsert\sql()
bei der Installation von Erweiterungen
Wenn du bei der Installation einer Erweiterung die Fehlermeldung Cannot redeclare Franzose\DoctrineBulkInsert\sql()
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/pickware-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)"
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.
Plugins werden beim Update aus der composer.json
entfernt
Dies passiert, wenn die Plugins im Verzeichnis custom
oder einem Unterverzeichnis davon liegen. Die Plugins von Pickware sollten in einem eigenen Verzeichnis liegen, welches nicht unter custom
liegt, wie z.B. <installation-root>/shopware-plugins
.
Was ist bei einem Wechsel von der Installation per Admin zur Installation per Composer zu beachten?
In diesem Fall müssen in der Datenbank-Tabelle plugin
in der Spalte path
die Plugin-Pfade korrigiert werden:
- Für Pickware POS:
vendor/pickware/pickware-pos
- Für Pickware WMS:
vendor/pickware/pickware-wms