ERP direkt an den Shop anschließen
Mit der selbstentwickelten Schnittstelle MerWare zwischen der MERCATOR Warenwirtschaft und dem Shopware Shop-System bieten wir eine Plugin an, um Daten einfach und direkt bidirektional zwischen den Systemen austauschen zu können.
So können Artikel, Kategorien und Versanddaten aus MERCATOR heraus direkt in den Shop übertragen werden, Bestellungen die im Shop getätigt werden, können genauso einfach per Knopfdruck in MERCATOR übernommen werden.
Unterstützt werden alle Shops ab der Version 4.0.3 – mehr Informationen zur Shop-Anbindung (allgemein) können Sie der Seite Multichannel eCommerce entnehmen, eine Übersicht der Schnittstellen-Leistungsmerkmale finden Sie in unserer Online-Hilfe.
Eigenes Plugin-System
Es gibt vielleicht Fälle, in denen Sie als Nutzer in der an sich geschlossenen Kommunikation zwischen MERCATOR und Shop eingreifen möchten, um Daten zwischen Export aus MERCATOR und Import in den Shop manipulieren oder erweitern möchten. Genau aus diesem Grund haben wir unsere Schnittstelle mit einem eigenen und einfachen Plugin-System für Kunden erweitert, über das Sie eigene Plugin-Klassen innerhalb der Schnittstelle ablegen können. Diese können über von uns vordefinierte Events Datenobjekte erhalten, und vor der eigentlichen Verarbeitung im Shop angepasst werden.
Aufbau
Eigene Plugin-Klassen zur Datenmanipulation der Schnittstelle werden innerhalb des Plugins unter Components/TdsMerware/Plugins erwartet und abgelegt. Beachten Sie, dass der Dateiname dem Klassennamen entsprechen muss, um von der Schnittstelle erkannt und gefunden zu werden. Das Beispiel-Plugin mit dem Klassennamen ExamplePlugin wird somit als ExamplePlugin.php erwartet.
Damit Ihre Plugin-Klassen erkannt und komform verwendet werden können, müssen diese weitere Voraussetzungen erfüllen. Geben Sie zunächst Ihrer Klasse folgenden namespace, um im Pool der MerWare Kunden-Klassen erkannt zu werden:
namespace Shopware\Components\TdsMerware\Plugins;
Benutzen Sie per use die beiden mitgelieferten Plugin- und Event Standardklassen
use Shopware\Components\TdsMerware\Core\Plugin\AbstractPlugin;
use Shopware\Components\TdsMerware\Core\Plugin\PushEvent;
Ihre Klasse muss von dem Standard MerWare-Plugin AbstractPlugin erben, um alle notwendigen Methoden zu implementieren. Auf das Beispiel-Plugin bezogen:
class ExamplePlugin extends AbstractPlugin
Events
MerWare implementiert eine Reihe an vorgefertigter Events, um an definierten Punkten die Manipulation von Kunden-Plugins zu ermöglichen. Dafür reicht es die notwendigen Methoden in Ihrer eigenen Klasse zu definieren, die als Übergabewert alle relevanten Daten bekommen. Die Interfaces der möglichen Daten-Models werden in den Beispiel-Methoden angegeben und in der Auslieferung nicht verschlüsselt.
Folgende Event-Methode bekommt alle von MERCATOR exportierten Artikeldaten, direkt nach der Aufbereitung als Objekte und vor der weiteren Aufbereitung für den späteren Import. Als Beispiel wird dem Artikel EXAMPLE-ARTCODE bei jeder Übertragung unabhängig von MERCATOR ein Bestand von 1000 gesetzt.
/**
* @param \Shopware\Components\TdsMerware\Core\Plugin\PushEvent $event
*/
public function onImportArticles(PushEvent $event)
{
/**
* @var \Shopware\Components\TdsMerware\Import\Service\ArticleInterface $article
*/
foreach ($event->getData() as $article) {
$artcode = $article->getArtcode();
if ($artcode == 'EXAMPLE-ARTCODE') {
$article->setQuantity(1000);
}
}
}
Im gleichen Schema werden in weiteren Events Artikeldaten, Kategorien, Kunden, Versanddaten, Hersteller und Bestellungen übermittelt, die Sie wie im Beispiel genannt anpassen können. Ein Beispiel-Plugin, welches alle verfügbaren Events über Methoden implementiert, finden Sie innerhalb der ausgelieferten Schnittstelle im bereits beschrieben Plugin-Verzeichnis für Kunden-Erweiterungen. Das beschriebene Event-System ist ab der MerWare Version 3.0.0 standardmäßig verfügbar und aktiv.