Benutzer-Werkzeuge

Webseiten-Werkzeuge


public:shopware-fatchipafterbuy

Shopware Plugin - Afterbuy

1. Vorwort / Anmerkungen

1.1 Voraussetzungen

  • php-curl
  • PHP 7.1
  • Shopware 5.3

Empfehlungen

  • Shopware Cronjob-Ausführung über die CLI
  • PHP memory_limit von mindestens 768Mb

1.2 Beschränkungen

Die maximale Anzahl an Varianten für einen Artikel ist aktuell auf 250 begrenzt. Shopware-Artikel müssen über einen Hersteller und einen Preis verfügen. Artikel ohne Hersteller und Preis werden importiert, sind aber keine validen Artikel und werden von daher auf inaktiv gesetzt. Shopware unterstützt keine negativen Preise.

1.3 bitte beachten!

Die Konfiguration bezüglich des führenden Systems sollte nicht im Betrieb geändert werden. Es werden stets die IDs des führenden Systems verwendet, was bei Änderung dazu führen kann, dass Duplikate erstellt werden.

Es empfiehlt sich, das nicht führende System vor Inbetriebnahme zu leeren.

Bei Nutzung der Config Option „Bestellnummer Mapping: Produkt ID“ werden von Afterbuy importierte Artikel mit der Bestellnummer entsprechend der Afterbuy-ProduktId versehen. Diese ist eineindeutig. Alternativ haben Sie hier die Möglichkeit, als Bestellnummer die Afterbuy-Artikelnummer zu vergeben. Dies wird zu Problemen führen, wenn Artikelnummern doppelt oder gar nicht vergeben sind!


2. Installation

2.1 Über den Pluginmanager / Community-Store

Die Installation von Plugins über den Pluginmanager wird hier beschrieben: https://docs.shopware.com/de/shopware-5-de/einstellungen/plugin-manager

2.2 manuelle Installation

Entpacken Sie das heruntergeladene Archiv und verschieben Sie dessen Inhalt in das Verzeichnis custom/plugins. Anschließend kann die Erweiterung wie gewohnt über den Plugin-Manager installiert werden.


3. Konfiguration

Die Konfiguration ist sowohl über ein eigens bereitgestelltes Formular (empfohlen), sowie über die Pluginkonfiguration möglich.

  • Um die Pluginkonfiguration aufzurufen, klicken Sie im Menü Einstellungen auf den Menüpunkt „AfterbuyConnector“.
  • Alternativ dazu können Sie die Konfiguration über den Pluginmanager aufrufen. Dazu öffnen Sie den Pluginmanager und klicken Sie im linken Menü auf „Installiert“, um dort mit einem Klick auf den Stift die Plugineinstellungen für das jeweilige Plugin zu öffnen.

Aufruf der Pluginkonfiguration

Anders als das Formular im Pluginmanager bietet das von der Erweiterung bereitgestellte Formular die Möglichkeit, Verbindungsdaten direkt zu testen. Darüber hinaus wird nach dem Ändern der Konfiguration der Konfigurations-Cache unmittelbar gelöscht, damit die vorgenommenen Änderung direkt in Kraft treten können.

3.1 Tab Verbindung

3.1.1 User & Passwort

Die Zugangsdaten, mit denen Sie sich bei Afterbuy anmelden

3.1.2 Partner Id & Partner Password

Die Zugangsdaten für die bestellten Schnittstellen (Diese finden Sie in Ihrem Afterbuy-Konto unter Einstellungen → Tarif & Rechnung → Tarifinformationen im unteren Teil der Seite)

3.2 Tab Allg. Einstellungen

Ansicht der Pluginkonfiguration

3.2.1 Dateführendes System

Shopware
  • Artikel und Kategorien (noch nicht übermittelt oder geändert seit letztem Export) werden von Shopware an Afterbuy übertragen.
  • Bestellungen (seit letztem Import) werden aus Afterbuy importiert.
  • Der Status von abgeschlossenen Bestellungen wird vor jedem Bestellimport an Afterbuy übermittelt. Alle Änderungen an der Bestellung (z.B. Tracking-Code), die mit zu Afterbuy übertragen werden sollen, müssen nach der letzten Statusänderung, aber vor der nächsten Status-Übertragung an Afterbuy gemacht werden.
Afterbuy
  • Artikel und Kategorien (noch nicht übermittelt oder geändert seit letztem Import) werden von Afterbuy importiert.
  • Im Shop getätigte Bestellungen (seit letztem Export) werden an Afterbuy übermittelt.
  • Der Status nicht versendeter Bestellungen (Status „Offen“) wird seitens Shopware regelmäßig bei Afterbuy abgefragt. Hat sich dieser in Afterbuy geändert, wird er nach Shopware übertragen und die Bestellung als „ausgeliefert“ markiert. Ist diese Bestellung darüber hinaus in Afterbuy als bezahlt markiert, in Shopware aber nicht, wird dieser Status im Shop ebenfalls entsprechend gesetzt.

Eine schnelle Übersicht, welche Aktion bei der Einstellung des datenführenden Systems erlaubt ist, bietet folgende Tabelle:

Aktion/Modus Shopware-Shop Afterbuy
Artikelexport Erlaubt Nicht erlaubt
Bestellimport Erlaubt Nicht erlaubt
Bestellstatusexport Erlaubt Nicht erlaubt
Artikelimport Nicht erlaubt Erlaubt
Bestellexport Nicht erlaubt Erlaubt
Bestellstatusimport Nicht erlaubt Erlaubt

3.2.2 Bestellnummer Mapping

Diese Einstellung ist nur relevant, wenn Afterbuy das datenführende System ist.

Bei Nutzung der Option „Produkt ID“ werden von Afterbuy importierte Artikel mit der Bestellnummer entsprechend der Afterbuy-ProduktId versehen. Diese ist eineindeutig. Alternativ haben Sie hier die Möglichkeit, als Bestellnummer die Afterbuy-Artikelnummer zu vergeben. Dies wird zu Problemen führen, wenn Artikelnummern doppelt oder gar nicht vergeben sind!

3.2.3 Stammkategorie

Diese Einstellung ist nur relevant, wenn Afterbuy das datenführende System ist.

Hier kann eine Stammkategorie für den Import definiert werden (ab 0.9.6). Unterhalb dieser werden sämtliche importierte Kategorien abgelegt. Wird hier keine Kategorie definiert, erfolgt die Ablage unterhalb der Stammkategorie „Shopware“. Somit können auch Subshop-spezifische Kategorien mit dem Import übernommen werden.

3.2.4 Alle Artikel exportieren

Diese Einstellung ist nur relevant, wenn Shopware das datenführende System ist.
Standardmäßig werden alle Artikel an Afterbuy übermittelt. Wird diese Option deaktiviert, können einzelne Artikel in den jeweiligen Artikeleinstellungen explizit zum Export markiert werden.

3.2.5 Zielshop für Bestellungen

Diese Einstellung ist nur relevant, wenn Shopware das datenführende System ist.
Definiert, welchem Shop Bestellungen beim Import aus Afterbuy zugeordnet werden.

3.2.6 Versandart

Diese Einstellung ist nur relevant, wenn Shopware das datenführende System ist.
Definiert, mit welcher Versandart Bestellungen beim Import aus Afterbuy versehen werden.

3.2.7 Kundengruppe

Diese Einstellung ist nur relevant, wenn Shopware das datenführende System ist.
Definiert, welcher Kundengruppe Bestellungen beim Import aus Afterbuy zugeordnet werden.

3.3 Tab Zahlungsarten Zuordnungen

Diese Einstellung ist nur relevant, wenn Shopware das datenführende System ist.

Hier können den standard Zahlungsarten von Afterbuy Zahlungsarten in Shopware zugewiesen werden, die beim Bestellimport gemappt werden sollen. Damit eine Zahlart hier auswählbar ist, muss sie vorher in Shopware angelegt worden sein.

3.4 Zeitversatz Orderabruf (datenführendes System: Shopware)

Unter den Plugineinstellungen im Plugin Manager finden Sie diese Einstellung. Im Regelfall muss hier keine Einstellung vorgenommen werden.
Sie können hier einen Zeitversatz in Minuten eingeben. Dieser wird dann vom Zeitpunkt des letzten Orderimports abgezogen/hinzugefügt.
Dadurch können Bestellungen von Afterbuy importiert werden, die nach dem letzten Bestellimport erstellt wurden, aber ein Bestelldatum in der Vergangenheit haben. Die kann z. b. bei Amazon-Bestellungen passieren.

4 Synchronisierung aktivieren / Cronjob-Konfiguration

Es gibt 2 Möglichkeiten, die Cronjobs für automatisierte Synchronisationsaufgaben zu konfigurieren:

  • als Shopware Cronjob
  • als Terminal-Command

4.1 Shopware Cronjob

Hinweis: Sind die Shopware Cronjobs derart konfiguriert, dass sie über die Url (wie im Browser) aufgerufen werden, besteht die Gefahr, dass diese je nach Serverkonfiguration vorzeitig durch einen Timeout beendet werden. (Standardeinstellung sind hier 30s) Die einzelnen Aufgaben erfordern mitunter mehr Zeit. Es empfiehlt sich daher, diese so zu konfigurieren, dass sie direkt auf der Shell „abgearbeitet“ werden. Dies wird seitens Shopware hier beschrieben: https://docs.shopware.com/de/shopware-5-de/einstellungen/system-cronjobs#wie-starte-ich-einen-cronjob

Die grundsätzliche Konfiguration einzelner Cronjobs wird hier beschrieben: https://docs.shopware.com/de/shopware-5-de/einstellungen/system-cronjobs#konfiguration-in-shopware

Diese Erweiterung stellt 3 Cronjobs bereit, die je nach Konfiguration für das führende System entsprechende Aufgaben abarbeiten. Diese sind standardmäßig deaktiviert und müssen daher aktiviert und ggf. getimed. Dies erfolgt in den Shopware-Grundeinstellungen im Reiter Cronjobs.

Die von der Erweiterung bereitgestellten Cronjobs lauten:

  • Sync Afterbuy Orders
  • Sync Afterbuy Products
  • Sync Stock

Anmerkung: Das Stock-Update steht nur für die Variante zur Verfügung, wenn Afterbuy das datenführende System ist. Sollte Shopware das datenführende System sein, wird der Bestand bei einem Produkt-Update aktualisiert.

Anmerkung: Die Afterbuy-API ist je Abruf auf 250 Elemente limitiert. Sollte sich zeigen, dass beispielsweise Bestellungen schneller eintreffen, als dass diese Importiert werden, so muss der entsprechende Cronjob häufiger - also in geringeren Zeitabständen ausgeführt werden.

Anmerkung²: Es besteht keine Abhängigkeit zwischen den Cronjobs. Sollen also lediglich Produkte oder Bestellungen übermittelt werden, muss nur der entsprechende Cronjob aktiviert werden.

4.2 Terminal-Command

Für fachkundige Anwender empfiehlt sich ggf. die Ausführung als Command in der Shell. Die Nutzung von CLI-Befehlen wird seitens Shopware hier beschrieben: https://docs.shopware.com/de/shopware-5-de/tutorials-und-faq/shopware-cli

Die bereitgestellten Commands lauten:

  • Afterbuy:Update:Orders
  • Afterbuy:Update:Products
  • Afterbuy:Update:Stock

Anmerkung: Das Stock-Update steht nur für die Variante zur Verfügung, wenn Afterbuy das datenführende System ist. Sollte Shopware das datenführende System sein, wird der Bestand bei einem Produkt-Update aktualisiert.


5. Die Logdatei

Diese Erweiterung nutzt den von Shopware bereitgestellten Logger mit dem jeweiligen Debug-Level. Unter „Einstellungen → Logfile“ kann dieses im Tab „System-Log“ aufgerufen werden.

5.1 Erweitertes Logging

Um das Debuglogging zu aktivieren, erweitern Sie bitte ihr Config.php im Shopware-Stammverzeichnis um folgenden Parameter:

'logger' => [
    'level' => 100,
],

6. Verbindungstest

Mittels „Einstellungen“ » „Afterbuy Connector“ » „Verbindungstest“ kann die Verbindung nach dem Speichern der Zugangsdaten getestet werden. Die Ausgabe erscheint als Shopware-Mitteilung und wird auch im Shopware-Log gespeichert.

Zusätzlich gibt es die Möglichkeit, den Verbindungstest aus dem Plugin eigenen Konfigurationsformular aufzurufen.


7. Anmerkungen

7.1 interne Artikelnummer (ab 0.9.6)

Als Identifyer für den Import aus Afterbuy wird die AfterbuyId verwendet, da nur diese zwangsläufig eineindeutig ist. Die interne Artikelnummer wird in ein neu angelegtes Shopware-Freitextfeld importiert, damit diese auf Rechnungen, in Emails und auch im Frontend nach Anpassung ausgegeben werden kann.

7.2 Grundeinheit (ab 0.9.6)

Die nur in Shopware verfügbare Grundeinheit wird stets mit dem Wert 1 importiert.

7.3 Kategoriezuordnung

In der Konfiguration kann eine Stammkategorie definiert werden (ab 0.9.6). Unterhalb dieser werden sämtliche importierte Kategorien abgelegt. Wird hier keine Kategorie definiert, erfolgt die Ablage unterhalb der Stammkategorie „Shopware“. Somit können auch subshopspezifische Kategorien mit dem Import übernommen werden.

7.4 Shopware-Artikel restlos entfernen

SET foreign_key_checks = 0;
TRUNCATE `s_addon_premiums`;
TRUNCATE `s_articles`;
TRUNCATE `s_articles_also_bought_ro`;
TRUNCATE `s_articles_attributes`;
TRUNCATE `s_articles_avoid_customergroups`;
TRUNCATE `s_articles_categories`;
TRUNCATE `s_articles_categories_ro`;
TRUNCATE `s_articles_categories_seo`;
TRUNCATE `s_articles_details`;
TRUNCATE `s_articles_downloads`;
TRUNCATE `s_articles_downloads_attributes`;
TRUNCATE `s_articles_esd`;
TRUNCATE `s_articles_esd_attributes`;
TRUNCATE `s_articles_esd_serials`;
TRUNCATE `s_articles_img`;
TRUNCATE `s_articles_img_attributes`;
TRUNCATE `s_articles_information`;
TRUNCATE `s_articles_information_attributes`;
TRUNCATE `s_articles_notification`;
TRUNCATE `s_articles_prices`;
TRUNCATE `s_articles_prices_attributes`;
TRUNCATE `s_articles_relationships`;
TRUNCATE `s_articles_similar`;
TRUNCATE `s_articles_similar_shown_ro`;
TRUNCATE `s_articles_supplier`;
TRUNCATE `s_articles_supplier_attributes`;
TRUNCATE `s_articles_top_seller_ro`;
TRUNCATE `s_articles_translations`;
TRUNCATE `s_articles_vote`;
TRUNCATE `s_article_configurator_dependencies`;
TRUNCATE `s_article_configurator_groups`;
TRUNCATE `s_article_configurator_options`;
TRUNCATE `s_article_configurator_options_attributes`;
TRUNCATE `s_article_configurator_option_relations`;
TRUNCATE `s_article_configurator_price_variations`;
TRUNCATE `s_article_configurator_sets`;
TRUNCATE `s_article_configurator_set_group_relations`;
TRUNCATE `s_article_configurator_set_option_relations`;
TRUNCATE `s_article_configurator_templates`;
TRUNCATE `s_article_configurator_templates_attributes`;
TRUNCATE `s_article_configurator_template_prices`;
TRUNCATE `s_article_configurator_template_prices_attributes`;
TRUNCATE `s_article_img_mappings`;
TRUNCATE `s_article_img_mapping_rules`;
TRUNCATE `s_filter_articles`;
SET foreign_key_checks = 1;

7.5 Dauer und Speicherverbrauch des Artikelimports

In einem Test mit rund 2500 Artikeln benötigte der initiale Import eben dieser mitsamt Bildern etwa 7h (der Großteil entfällt auf Download und Import der Artikelbilder) bei einem Speicherverbrauch von rund 470Mb. Bei künftigen Imports werden nur aktualisierte Artikel übermittelt, Ausführzeit und Speicherverbrauch sinken somit drastisch.

Daraus ergeben sich folgenden Empfehlungen:

  • das PHP memory_limit sollte mindestens 768Mb betragen
  • die Cronjobs sollten über die CLI ausgeführt werden
  • Der zeitliche Abstand zwischen Ausführung der Cronjobs zur Artikelsynchronisation sollte anfänglich mindestens 8h betragen

7.6 Liste der aktuell (Release 1.0.8) übertragenden Inhalte

7.6.1 führendes System: Shopware

Artikel

  • Name
  • Beschreibung
  • Artikelnummer
  • Kategoriezuordnung
  • Bild-Urls
  • Hersteller
  • Preis
  • Gewicht
  • Variantenoptionen
  • Bestand
  • Umsatzsteuersatz
  • Standardfreitextfelder
  • Mindestbestand
  • EAN
  • Herstellernummer

Kategorien

  • Name
  • CMS-Text
  • Bild-url

Bestellungen (Import nach Shopware)

  • Artikelpositionen (Bestellnummer, Menge, Artikelnummer, Preis)
  • Lieferanschrift
  • Rechnungsanschrift
  • Geburtstag (wenn vorhanden)
  • Datum der Bestellungen
  • Versandart
  • Versandkosten
  • Zahlungsart
  • Steuersatz
  • Währung
  • Transaktionsnummer
  • Zahl- und Lieferstatus
  • Bestandsreduktion im Shop

Bestellstatus (Rückmeldung an Afterbuy)

7.6.2 führendes System: Afterbuy

Artikel

  • Name
  • Beschreibung
  • Artikelnummer
  • Kategoriezuordnung
  • Bild-Urls
  • Hersteller
  • Preis
  • Gewicht
  • Variantenoptionen
  • Bestand
  • Umsatzsteuersatz
  • Standardfreitextfelder
  • Mindestbestand
  • EAN
  • Herstellernummer

Kategorien

  • Name
  • CMS-Text
  • Bild-url

Bestellungen (Export nach Shopware)

  • Artikelpositionen (Bestellnummer, Menge, Artikelnummer, Preis)
  • Lieferanschrift
  • Rechnungsanschrift
  • Geburtstag (wenn vorhanden)
  • Datum der Bestellungen
  • Versandart
  • Versandkosten
  • Zahlungsart
  • Steuersatz
  • Währung
  • Transaktionsnummer
  • Zahl- und Lieferstatus

Bestellstatus (Rückmeldung an Shop)

7.6.3 Feldentsprechungen

Artikel

Shopware Afterbuy Anmerkungen
Artikel-Bezeichnung Name
Beschreibung Beschreibung
Produkt-Id Artikelnummer Nur für Export relevant
Artikelnummer Externe Artikelnummer, Artikelnummer oder Produkt ID Beim Import aus Afterbuy: ProduktID oder Artikelnummer Bei Export aus Shopware: Externe Artikelnummer
Kategorien Kataloge
Hauptbild Bilder / Standardbilder
weitere Bilder Bildgalerie
Hersteller Marke/Hersteller
Preis Verkaufspreis Preis wird für in Plugineinstellungen definierte Kundengruppe bezogen
Gewicht Gewicht
Variantenoptionen Neuer Artikel zugeordnet zu Produkt-Set Artikelname [Variantenoption 1] [Variantenoption 2] …
Lagerbestand Afterbuy-Shop-Bestand
MwSt. Umsatzsteuer
Attribute Freifeld 1…10 Nur für Import aus Afterbuy relevant. Freifelder müssen in der Afterbuy-Konfiguration aktiviert sein.
Lager-Mindestbestand Mindestbestand Artikel in Shopware nach Unterschreitung weiterhin kaufbar, wird genutzt für Benachrichtigung bzgl. kritischem Bestand
Herstellernummer Herstellernummer

Kategorien

Shopware Afterbuy Anmerkungen
Bezeichnung Katalogname
Kategorietext Zusatztext
Metadescription Katalogbeschreibung

Bestellungen

Shopware Afterbuy Anmerkungen
Bestellnummer OrderId Übermittlung an Afterbuy nicht möglich, da Afterbuy stets auf die eigene ID zurückgreift
Betrag Verkaufspreis
Bestelldatum Verkaufsdatum
MwSt\. Verkaufspreis MwSt\.
Zahlungsart Zahlart
Bestellpositionen siehe Bestellposition
Versandkosten Versandkosten
Versandkosten MwSt\. Wird in Afterbuy nicht explizit ausgewiesen
Versandstatus Bezahlt \(Datum\)
Zahlungsstatus Versanddatum
TransaktionsId Beim Bestellexport erforderlich, wird in Afterbuy nicht ausgegeben
Rechnungsadresse siehe Adresse
Lieferadresse siehe Adresse
Kundennummer Wird in Afterbuy nicht explizit ausgewiesen
Währung Währung

Bestellposition

Shopware Afterbuy Anmerkungen
Artikelbezeichnung Artikelbezeichnung
Preis Einzelpreis
Artikelnummer Artikelnummer
Anzahl Menge
MwSt\. MwSt\.

Adresse

Shopware Afterbuy Anmerkungen
Firma Firma
Vorname Vorname
Nachname Nachnahme
eMail E\-Mail
Straße Straße
zusätzliche Adresszeile Straße \(Zeile 2\)
Postleitzahl Postleitzahl
Stadt Ort
Land Land
Geburtsdatum Geburtsdatum
Telefon Telefon

Support

Bitte wenden Sie sich mit Support-Fragen direkt an: https://www.afterbuy.de/kundenservice/support-afterbuy-interessenten/

public/shopware-fatchipafterbuy.txt · Zuletzt geändert: 2022/11/07 11:36 von markusmichalski