Installation

shopware » Einstellungen » plentymarkets

 
Bevor Sie beginnen

Die auf der Handbuchseite Voraussetzungen genannten Anforderungen, Kenntnisse und wichtigen Hinweise sind elementar wichtig, um den Shopware Connector erfolgreich und fehlerfrei einrichten und betreiben zu können. Lesen Sie die Hinweise dieser Seite sorgfältig, um Fehlfunktionen zu vermeiden.

Systemvoraussetzungen

Dieses Plugin benötigt mindestens die plentymarkets-Version 5.0 und shopware 4.1 Professional Edition. Für shopware muss das Plugin Cron installiert und aktiviert sein. Die Einrichtung dieses Plugins ist hier beschrieben. Weiterhin muss in shopware mindestens ein Hersteller hinterlegt sein.

Für den reibungslosen Datenaustausch wird ein Root-Server mit vollem Zugriff auf alle Konfigurationsdateien vorausgesetzt. Außerdem sollten Sie Erfahrung im Umgang mit Linux haben. Auf Managed Servern oder bei anderen Hosting-Angeboten - Ausnahme z.B. unser Hostingpartner Profihost - ist es generell nicht möglich, die erforderlichen Konfigurationen vorzunehmen oder die Cronjobs per Konsole zu starten.

Servereinstellungen

Das folgende Videotutorial veranschaulicht die shopware-Servereinstellungen:

Video 1: shopware-Servereinstellungen

PHP SAPI

Für den Betrieb des Connectors müssen die Cron-Prozesse über die richtige Schnittstelle PHP SAPI (Server Application Programming Interface) über die Crontab gestartet werden. Dabei muss es sich zwingend um eine Schnittstelle des Typs CLI handeln (CLI = Command Line Interface). Weitere Informationen zum Einsatz von PHP auf der Kommandozeile finden sie auf http://www.php.net/manual/de/features.commandline.php.

Um die SAPI eines PHP-Binarys zu ermitteln, eignet sich folgender Shell-Befehl:

/usr/bin/php -v

In der Ausgabe steht die SAPI direkt hinter der Versionsnummer:

PHP 5.4.17 (cli) (built: Aug 25 2013 02:03:38)  
Copyright (c) 1997-2013 The PHP Group
Datenaustausch

Der kontinuierliche Datenaustausch findet nur statt, wenn Sie CLI verwenden und somit der Wert cli ausgegeben wird. Bei abweichenden Werten (z. B. cgi oder cgi-fcgi) findet kein Datenaustausch statt. Eine unbegrenzte Laufzeit kann bei diesen SAPIs nicht gewährleistet werden.

PHP-Ressourcen erweitern

Besonders für den automatischen Datenabgleich via Cron werden ausreichende System-Ressourcen benötigt. Es muss daher sichergestellt sein, dass PHP-Prozesse unendlich laufen und genügend Speicher verbrauchen dürfen. Eine unbegrenzte Laufzeit der PHP-Prozesse sowie ausreichend Speicher werden mit den folgenden Einstellungen erreicht:

max_execution_time = 0
memory_limit = 1024M

Grundsätzlich sollten Änderungen an Konfigurationsdateien nur von einem Systemadministrator vorgenommen werden.

Werte beachten

Die oben gezeigte Höhe des Speicher-Limits (memory_limit) dient als Richtwert und muss je nach Datenmenge ggf. angepasst werden. Eine unbegrenzte Laufzeit (max_execution_time) ist zwingend erforderlich.

Ändern Sie diese Angaben in der korrekten PHP-Konfigurationsdatei. Diese finden Sie über den folgenden Shell-Befehl:

/usr/bin/php -i | grep php.ini

Mögliche Ausgabe:

Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini

In diesem Fall ändern Sie die PHP-Konfigurationsdatei mit diesem Befehl:

nano /etc/php5/cli/php.ini

PHP-Fopen-Wrappers

PHP muss die Möglichkeit erhalten, externe URLs zu öffnen. shopware benötigt diese Einstellung u.a., um ArtikelBilder aus plentymarkets abzurufen. Daher muss in der oben genannten PHP-Konfigurationsdatei die folgende Einstellung überprüft werden:

allow_url_fopen = On
default_socket_timeout = 20

Cron-Prozess einrichten

Der permanente Datenabgleich zwischen plentymarkets und shopware wird per Cronjob gesteuert. Dafür ist ein shopware-Plugin mit der Bezeichnung Cron nötig. Dieses muss vorher installiert und konfiguriert werden. Beachten Sie dazu die Anleitung für dieses Plugin: http://wiki.shopware.de/Cronjobs_detail_1102.html

Die Ausführung des shopware-Cron-Prozesses muss über die Shell (per crontab-Eintrag) erfolgen. Die Einrichtung wird auch per Video (siehe oben) erklärt. Sie erreichen die Shell über die folgenden Shell-Befehle:

sudo -s
crontab -e

Gemäß der Anleitung des shopware-Plugins Cron erfolgt die Ausführung über eine Befehlskette nach dem folgenden Schema:

cd /pfad-zu-shopware/ && /usr/bin/php shopware.php /backend/cron

Testen Sie die Ausführung dieses Befehls per Shell und übertragen Sie den Befehl erst in die crontab, wenn die Ausführung fehlerfrei funktioniert.

Mögliche Ausgabe:

Processing Plentymarkets Order Export
Processing Plentymarkets Order Incoming Payment Export
Processing Plentymarkets Item Import
Processing Plentymarkets Item Price Import
Processing Plentymarkets Item Stock Import
Processing Plentymarkets Order Import
Processing Plentymarkets Export
Processing Plentymarkets Cleanup
Processing Plentymarkets Item Cleanup
Processing Plentymarkets Mapping Cleanup
Processing Plentymarkets Item Import Stack Update

Wenn Sie keine Ausgaben mit dem Namen Processing Plentymarkets ... erhalten, dann prüfen Sie in shopware den Bereich Einstellungen » Grundeinstellungen » System » Cronjobs. Bei einem Abbruch des Cron-Prozesses könnten die plentymarkets-Cronjobs dauerhaft auf inaktiv stehen und müssen einzeln von Ihnen auf aktiv geändert werden.

Im Standardfall sollte der Pfad /usr/bin/php korrekt sein und auf PHP in Version 5.x verweisen. Bei manchen Providern kann dieser Pfad abweichen (z.B. /usr/bin/php5 oder /usr/bin/php53).

SAPI prüfen

Prüfen Sie in jedem Fall wie oben beschrieben, ob die korrekte SAPI verwendet wird.

Der crontab-Eintrag mit einer Ausführung alle 15 Minuten würde demnach folgendem Schema folgen:

 */15 * * * * cd /pfad-zu-shopware/ && /usr/bin/php shopware.php /backend/cron

shopware bietet zwar die Möglichkeit, Cron-Prozesse per Browser zu starten, diese Vorgehensweise ist jedoch für derart komplexe Abläufe nicht geeignet. Daher kann ein problemloser Datenaustausch zwischen beiden Systemen ausschließlich durch Cron-Prozesse per Shell (crontab) gewährleistet werden.

Installation des Plugins

Das shopware-Plugin kann direkt über den Community Store bezogen werden. Es ist dort unter dem Namen PlentyConnector verfügbar. Der Quelltext ist auf github einsehbar.

Nach oben