Wie installiere ich Pickware Erweiterungen aus dem Shopware Community Store?

  • Aktualisiert

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 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”,
Folgende Bezeichner gelten dabei für die Erweiterungen:
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: 

  1. Stelle sicher, dass alle Pickware Plugins in der require-Section der composer.json -Datei hinterlegt sind
  2. Prüfe mit dem Konsolen-Befehlbin/console plugin:refresh, dass alle Plugins installiert sind
  3. Überprüfe in der Datenbank, dass in der Tabelle plugin für die Einträger aller Pickware Plugins der Wert managed_by_composer auf 1 (True) steht.