Plugin-Funktionen

Das Modul Afterbuy ist die Schnittstelle zwischen Shopware 5 und dem Warenwirtschaftssystem Afterbuy. Sie können damit Artikel, Kategorien und Bestellstatus einfach zwischen Ihrem Onlineshop und Afterbuy abgleichen.

Im Einzelnen können Sie mithilfe des Plugins:

  • Artikel und Kategorien importieren und exportieren1, manuell über das Backend oder automatisiert per Cronjob2
  • Bestellungen mit Kundendaten zu Afterbuy exportieren
  • Bestellungen mittels Afterbuy-Markierungsdefinition3 in Afterbuy hervorheben
  • Bestellstatus bidirektional abgleichen
  • Feldmappings durch Individuelle User-Klassen selbstständig an Ihre Bedürfnisse anpassen
  • je Mandant einen anderen Afterbuy Account verwenden und die unterschiedlich konfigurieren
  • Daten-Feeds anlegen, womit es möglich ist erweiterte Einstellungen für jeden Import sowie Export zu treffen
  • Der Import sowie der Export von Artikeln und Kategorien kann durch die Verwendung von Filtern individuell angepasst werden
  • Fehler in der Artikel- und Kategorieverwaltung können durch ein erweitertes Fehlerlogging einfacher erkannt werden
  • Cronjobs passwortgeschützt aufrufen, um so unberechtigte Aufrufe zu verhindern
  • auswählen, ob die Artikel vollständig importiert werden sollen oder ob diese lediglich geupdated werden sollen, bei Update können Sie zusätzlich wählen ob sie nur Beschreibungen, Bilder, Bestände oder Preise aktualisieren möchten
  • alle mit Afterbuy verbundenen Artikel können in der Artikelübersicht gefiltert werden (Artikel haben eine AfterbuyID) oder alle nicht verbundenen Artikel (Artikel haben keine AfterbuyID)
  • es kann nach der Afterbuy ID in der Artikelübersicht gesucht werden

1 Es ist nicht empfehlenswert permanent in beide Richtungen Kategorien und Artikel abzugleichen, da dies zu Problemen in der Bildverlinkung führen kann. Es sollte generell immer nur eine Variante, entweder Import oder Export verwendet werden.
2 Sie bekommen im Backend einen Link ausgegeben den Sie bei Ihrem Provider entsprechend einrichten müssen
3 Sie müssen eine entsprechende Markierungsdefinition zuvor in Afterbuy anlegen

Systemvoraussetzung

Systemvoraussetzung für dieses Plugin ist Shopware ab Version 5.3.
Soll das Plugin über das Shopware-Backend installiert werden, muss das Verzeichnis /engine/Shopware/Plugins/Community/ und seine Unterordner über die vollen Schreibrechte verfügen (777) sowie auf dem Server die ZIP-Unterstützung installiert und aktiviert sein.

Bitte beachten Sie, dass auf dem Server die Einstellung „allow_url_fopen“ aktiviert sein muss!

Installation aus dem Community Store

Das Plugin wird wie andere Plugins auch über den Plugin-Manager installiert. Informationen dazu finden Sie in der Dokumentation von Shopware: http://community.shopware.com/Plugin-Manager-ab-Shopware-5_detail_1856_643.html

Bild oben: Menüpunkt „Plugin-Manager“ im Backend von Shopware 5

Installation mit FTP-Upload auf einen Server

  • 1. Entpacken Sie die ZIP-Datei des Plugins auf Ihrem lokalen Rechner.
  • 2. Legen Sie die Lizenzdatei in den Ordner /lic. Sollte dieser Ordner nicht vorhanden sein, legen Sie ihn bitte im Hauptverzeichnis an.
  • 3. Laden Sie die Dateien mit einem FTP-Client auf den Server in folgendes Verzeichnis: …/engine/Shopware/Plugins/Community/Backend
  • 4. Aktivieren Sie das Plugin im Plugin-Manager (siehe Bildschirmfoto oben) und laden Sie das Shopware-Backend neu.

ACHTUNG:

Wird ein eigener SwpAfterbuyOrderUser-Controller verwendet und dort die Funktion „getOrdersSqlForSendOrdersToAfterbuy()“ überschrieben / verändert, dann muss ein Teil der SQL-Anweisung angepasst werden.

  • Vor Version 5.02.19:
    ‚AND o.ordernumber != 0‘;
  • Neu ab Version 5.02.19:
    ‚AND o.ordernumber != 0 AND o.status != -1‘;

Wird ein eigener SwpAfterbuyOrderUser-Controller verwendet und dort die Funktion „setParamsBeforeRequest“ überschrieben / verändert, dann muss dieser folgender Weise angepasst werden:

  • Vor Version 5.02.25:
    protected function setParamsBeforeRequest(buildOrderData &$newOrderData, buildProductData &$newOrderProduct , array $order)
  • Neu ab Version 5.02.25:
    protected function setParamsBeforeRequest(buildOrderData &$newOrderData, buildProductData &$newOrderProducts , array $order)

Falls die Variable $newOrderProduct in der Funktion setParamsBeforeRequest verwendet wurde, müssen diese nun in $newOrderProduct[$k] geändert werden, wobei $k die Position des Artikels innerhalb der Bestellung angibt.

Hinweis:
Plugins, die Sie von Module-Factory erworben haben, können nicht über den Shopware Community Store aktualisiert werden. Diese müssen manuell von Module-Factory geladen und im Shop über FTP aktualisiert werden. Prüfen Sie vor dem Update sicher das Ihre Lizenz mit der neuen Version kompatibel ist. Gegebenenfalls wird ein Lizenz­Update benötigt.

Einstellmöglichkeiten beim Aktivieren des Plugin

Bild oben: Bearbeitungsfenster des Plugins

Einstellungsmöglichkeiten

Schnittstellendaten

  • Afterbuy Partner-ID:
    Bitte Tragen Sie hier Ihre Afterbuy Partner ID ein.
  • Afterbuy Partner-Passwort:
    Bitte Tragen Sie hier Ihre Afterbuy Partner Passwort ein.
  • Afterbuy Benutzer-ID:
    Bitte Tragen Sie hier Ihre Afterbuy User ID ein.
  • Afterbuy Benutzer-Passwort:
    Bitte Tragen Sie hier Ihre Afterbuy User Passwort ein.
  • Sprache der Meldungen von Afterbuy:
    Bitte geben Sie hier an, in welcher Sprache Sie die Fehlermeldungen erhalten möchten, die von Afterbuy zurückgegeben werden.
  • Schnittstellendaten Testen:
    Button zum Testen Ihrer Schnittstellendaten (funktioniert nur bei aktivierten Plugin).

Bestellübermittlung

  • Bestellexport Klasse:
    Auswahl der Export Klasse. Falls Sie über eine Individuelle Exportklasse verfügen und diese verwenden möchten, können Sie diese hier zuweisen. Diese benötigen Sie wenn Sie die Logik des Bestellexports verändern möchten. Hierfür sind Programmierkenntnisse erforderlich.
  • Bestellübermittlung:
    Hier können Sie einstellen, ob Sie Bestellungen übermitteln wollen und wie die übermittelt werden sollen. Zur Auswahl stehen 3 Möglichkeiten:
    – Keine Bestellübertragung
    – Übertragung erfolgt Live nach Bestellabschluss
    – Übertragung erfolgt per Cronjob
  • Art der Kundenerkennung:
    Anhand welchen Wertes sollen Kunden bei der Bestellübermittlung erkannt werden. Zur Auswahl stehen 3 Werte:
    – Ohne → Jeder Kunde wird immer wieder neu in Afterbuy angelegt bspw. wie bei Gastbestellung
    – Kunden Email → Der Kunde wird anhand seiner Email in Afterbuy gefunden und aktualisiert
    – Kunden ID → Der Kunde wird anhand seiner Shop Internen ID in Afterbuy gefunden und aktualisiert
  • Feedback-Typ von Afterbuy:
    Sie können unter folgenden Optionen wählen: kein Feedback, Feedback-Datum setzen ohne E-Mail-Versand, E-Mail-Versand ohne Feedback-Datum, Feedback-Datum setzen mit E-Mail-Versand
  • Zahlstatus für komplette Zahlung:
    Geben Sie an welcher Status für „Komplett bezahlt“ steht
  • Versandstatus für Versand:
    Geben Sie an welcher Status für Komplett versandt steht.
  • Status-Mail bei einer Änderung des Zahlstatus senden?:
    Regelt, ob vom Shop eine E-Mail versendet werden soll, wenn der Status der Bestellung im Shop durch den Bestellstatus-Abgleich vom Plugin geändert / aktualisiert wird.
  • Status-Mail bei einer Änderung des Versandstatus senden?:
    Regelt, ob vom Shop eine Mail versendet werden soll, wenn der Status der Bestellung im Shop durch den Bestellstatus-Abgleich vom Plugin geändert / aktualisiert wird.
  • Bestellbestätigung per E-Mail senden?:
    Regelt, ob vom Shop eine Bestellbestätigungsmail versendet werden soll oder nicht.
  • Übertragung ab Datum:
    Geben Sie an ab welchen Zeitpunkt Bestellungen für die Bestellübertragung und den Statusabgleich berücksichtigt werden sollen.
  • Zeitraum in dem Bestellungen beachtet werden sollen:
    Geben Sie an wie lange Bestellungen nach Eingang bei der Bestellübertragung und dem Statusabgleich berücksichtigt werden sollen.
  • Bestellstatusabgleich: Ignoriere Zahlungsstatus:
    Um die Anzahl der zu verarbeitenden Bestellungen beim Bestellstatusabgleich zu reduzieren, kann man hier einstellen bei welchen Zahlungsstatus der Zahlungsstatus nicht mehr aktualisiert werden muss (z. B. Status: „Vorgang wurde abgebrochen“, „Es wurde kein Kredit genehmigt“)
  • Bestellstatusabgleich: Ignoriere Versandstatus:
    Um die Anzahl der zu verarbeitenden Bestellungen beim Bestellstatusabgleich zu reduzieren kann man hier einstellen bei welchen Bestellstatus der Bestellstatus nicht mehr aktualisiert werden muss (z. B. Status: „Storniert“, „Komplett abgeschlossen“).
  • Bestellstatus nach der Übertragung an Afterbuy:
    Wählen Sie aus welchen Status die Bestellung nach der Übertragung an Afterbuy erhalten soll.
  • Markierungs-ID für die Bestellungen:
    Hier können Sie ein Kürzel festlegen, um Bestellungen zu markieren.
  • Markierung-ID Vorrang:
    Geben Sie an ob Ihre hinterlegte Markierungs-ID oder die Markierungs-ID für Packstationen in Afterbuy Vorrang hat.
  • Prefix für VID-Check bei Bestellübermittlung:
    Hier können Sie einen Präfix für die Bestellübertragung angeben, um den Shop zu identifizieren. Sollten Sie mehrere Shops an Afterbuy angebunden haben und diese Shops einen gleichen Bestellnummernkreis verwenden, dann kann es sein das Afterbuy die Bestellungen zurückweist, da diese bereits übertragen sind. Mit diesem Präfix können Sie dies verhindern.
  • Zeitraum für den die Logs der Bestellungen gespeichert bleiben

Artikel Im-/Export

  • Präfix für Artikelnummer, bei Verwendung mit Multishops:
    Dieser Einstellung ist zwingend notwendig wenn Sie mehrere Mandanten mit Afterbuy verwenden möchten. Hinweis: Wir empfehlen Ihnen vor der Verwendung ein Beratungsgespräch mit einem unserer Mitarbeiter.
  • Bestandsart (Im-/Export):
    Wählen Sie aus welcher Bestand aus Afterbuy für den Import/Export verwendet werden soll.
  • Kundengruppen für Händlerpreise:
    Wählen Sie welche Ihrer Kundengruppen Händler sind.
  • Zeitraum für den die Logs der Daten-Feeds gespeichert bleiben

Artikel-Import

  • Folgende HTML-Tags aus Artikelbeschreibung entfernen:
    Tragen Sie kommasepariert HTML Tags ein die beim Import aus der Artikelbeschreibung entfernt werden sollen.
  • Afterbuy-ID als Artikelnummer (Bestellnummer) beim Produkt-Import setzen
    Soll die AfterbuyID als Artikelnummer beim Artikelimport verwendet werden?
  • Kategorie-Zuweisung beim Produkt-Import:
    Soll beim Import die Kategoriezuweisung aus Afterbuy übernommen werden? Beachten Sie, dass Sie vorher einen Kategorieimport durchführen müssen.

Artikel-Export

  • Kategorie-Zuweisung beim Produkt-Export:
    Soll beim Export die Kategoriezuweisung aus Shopware übernommen werden? Beachten Sie, dass Sie vorher einen Kategorieexport durchführen müssen.

Allgemein/Sonstiges

  • Frontend Klasse:
    Verwenden Sie eine individuelle Klasse um bspw. den Live-Bestandsabgleich in Frontend anzupassen. Hierfür sind Programmierkenntnisse erforderlich.
  • Live-Bestandsermittlung:
    Wenn Sie diesen Punkt aktivieren, wird der Bestand beim Betreten der Artikeldetailseite von Afterbuy für diesen Artikel geholt und aktualisiert.
  • Live-Bestandsermittlung: Umgang mit gelöschten Artikeln:
    Was soll mit Artikeln geschehen, die beim Bestandsabgleich in Afterbuy nicht gefunden werden? Sie haben 4 Auswahlmöglichkeiten: „Nicht tun“, „Menge auf 0 setzten“, „Artikel deaktivieren“, „Artikel löschen“
  • Cronjob Passwort:
    Definieren Sie ein Passwort, mit dem Ihre Cronjobs geschützt werden sollen. Beachten Sie dass Sie nach dem Ändern dieses Passworts den Cache leeren müssen und auch alle Cronjobs geändert werden müssen.

Um sicher zu stellen, dass nach dem ändern der Konfiguration auch alle Einstellungen korrekt übernommen werden, sollten Sie in jedem Fall den Cache leeren (Einstellungen → Shopchache leeren).

Beachten Sie, dass Sie nach dem Ändern des Cronjob Passworts Ihre bereits eingerichteten Cronjobs ebenso aktualisieren müssen.

Importieren und Exportieren

Bild oben: neuer Punkt „Afterbuy“ im Menü „Inhalte“

WICHTIG!!
Wenn Kategorien oder Artikel im Afterbuy gelöscht werden, dann müssen diese im Shopware Backend per Hand gelöscht werden, da es nicht automatisch durch die Schnittstelle abgedeckt werden kann. Das gleiche gilt für den umgekehrten Weg, wenn Kategorien oder Artikel im Shopware Backend gelöscht werden, dann müssen diese per Hand in Afterbuy gelöscht werden.

Bilder die importiert werden, dürfen keinen „.“ Punkt und keine Leerzeichen im Dateinamen enthalten, da diese sonst in Shopware nicht importiert werden können.

Zum Importieren / Exportieren von Kategorien und Artikeln, wählen Sie im Hauptmenü Inhalt den Menüpunkt Afterbuy und darunter den Unterpunkt Daten­Feeds aus. In dem sich öffnenden Fenster, haben Sie auf der linken Seite die Möglichkeit zwischen folgenden Aufgaben zu wählen:

Import

  • Kategorien importieren
  • Artikel importieren

Export

  • Kategorien exportieren
  • Artikel exportieren

Bild oben: Übersicht der Datenfeeds

Bild oben: Verarbeitung der Datenfeeds

Bild oben: Logs der Datenfeeds

Kategorieimport

  • Anlegen eines Datenfeeds

Im Feld Shop ID geben Sie an für welchen Mandant der Import durchgeführt werden soll. Betiteln Sie im Feld Title eine Bezeichnung, der diesen Feed identifiziert (Wird nur für Sie zur Wiedererkennung bspw. in den Logs benötigt). Geben Sie im Feld Status an ob dieser Feed aktiviert oder deaktiviert ist.

  • Konfigurieren eines Datenfeeds

Unterhalb der Tabelle mit den angelegten Daten­Feeds sehen Sie die dazu gehörige Konfiguration. Diese zeigt immer die Konfiguration des oberhalb, in der Liste, markierten Daten­Feeds an.

Im Tab Import Filter haben Sie die Möglichkeit, die zu importierenden Kategorien zu filtern, dazu stehen Ihnen 3 Filter zur Verfügung:

  • Level:
    Filtern Sie anhand der in Afterbuy hinterlegten Level bei den Kategorien.
  • Katalog/Kategorie ID Bereich:
    Filtern Sie anhand der in Afterbuy zugewiesenen Produkt ID in dem Sie einen Bereich von/bis angeben.
  • Katalog/Kategorie ID Start:
    Alle Kategorien unterhalb dieser werden importiert.
  • Allgemeine Informationen

Die Erkennung erfolgt anhand der Afterbuy Katalog ID. Wenn eine Kategorie anhand der Katalog ID im Shop gefunden wird, wird die gefundene Kategorie aktualisiert, wenn nicht, wird diese neu angelegt. Bereits existierende Kategorien finden dabei keine Beachtung.

Folgende Felder sind standardmäßig gemappt:

  • Position (Afterbuy Position → Shopware Position)
  • Elternkategorie (Afterbuy Parent → Shopware Parent)
  • Status (Afterbuy Show → Shopware Active)
  • Name (Afterbuy Name → Shopware Name)
  • Beschreibung (Afterbuy Description → Shopware cmstext)

Kategorieexport

  • Anlegen eines neuen Datenfeeds

Im Feld Shop ID geben Sie an für welchen Mandant der Import durchgeführt werden soll. Betiteln Sie im Feld Title eine Bezeichnung, der diesen Feed identifiziert (Wird nur für Sie zur Wiedererkennung bspw. in den Logs benötigt). Geben Sie im Feld Status an ob dieser Feed aktiviert oder deaktiviert ist.

  • Allgemeine Informationen

Die Erkennung erfolgt anhand der Afterbuy ID (Afterbuy Katalog ID). Sollte keine Afterbuy ID bei der Kategorie hinterlegt sein, wird die shopwareinterne Kategorie ID verwendet. Bei letzterer wird die Kategorie in jedem Fall neu angelegt. Wenn eine Kategorie anhand der übergebenen ID gefunden wird, wird diese aktualisiert.

Folgende Felder sind standardmäßig gemalt:

  • Position (Shopware Position → Afterbuy Position)
  • Level (Default: 0)
  • Elternkategorie (gleiche Hierarchie wie in Shopware)
  • Name (Shopware Name → Afterbuy CatalogName)
  • Description (Shopware cmstext → Afterbuy CatalogDescription)
  • Status (Shopware active → Afterbuy ShowCatalog)

Artikelimport

  • Anlegen eines neuen Datenfeeds

Im Feld Shop ID geben Sie an für welchen Mandant der Import durchgeführt werden soll. Betiteln Sie im Feld Title eine Bezeichnung, der diesen Feed identifiziert (Wird nur für Sie zur Wiedererkennung bspw. in den Logs benötigt). Geben Sie im Feld Status an ob dieser Feed aktiviert oder deaktiviert ist.

  • Konfigurieren eines Datenfeeds

Im Tab Import Filter haben Sie die Möglichkeit, die zu importierenden Kategorien zu filtern, dazu stehen Ihnen 5 Filter zur Verfügung:

  • Level:
    Filtern Sie alle Artikel nach dem Level im vorgegebenen Bereich.
  • Artikelnummer:
    Filtern Sie alle Artikel nach der Artikelnummer im vorgegebenen Bereich.
  • Produkt ID:
    Filtern Sie alle Artikel nach der Produkt ID im vorgegebenen Bereich
  • Änderungsdatum Fix:
    Filtern Sie alle Artikel die in einem vergebenen Zeitraum (von Datum/ bis Datum) geändert wurden.
  • Änderungsdatum Dyn → Änderungsdatum Dynamisch:
    Filtern Sie alle Artikel die X Tage, Wochen oder Monate zuletzt geändert wurden.

Wenn Sie keinen Filter auswählen/definieren, werden alle Artikel verarbeitet.

 

Im Tab Importkriterien wählen Sie aus, ob Sie einen vollständigen Import , d.h. es werden alle gemappten Daten angelegt/aktualisiert, oder nur ein Update durchführen möchten. Bei einem Update werden nur die gewählten Daten aktualisiert.
Hierbei haben Sie folgende Auswahlmöglichkeiten:

  • Beschreibungen:
    Name, Kurzbeschreibung, Beschreibung, Keywords
  • Preise:
    Einkaufspreis, Verkaufspreis, Händlerpreis
  • Bestand:
    Bestand, Mindestbestand, Lagerartikel/Ablaufartikel­-Einstellung
  • Bilder:
    Artikelbild Groß, Bildergalerie 1-6
  • weitere Einstellungen:
    Importklasse:
    Auswahl der Importklasse. Falls Sie über eine Individuelle Importklasse verfügen und diese verwenden möchten, können Sie diese hier zuweisen. Diese benötigen Sie wenn Sie die Logik des Artikelimports verändern möchten.
    Limit:
    Geben Sie an wie viele Datensätze pro Importschritt verarbeitet werden sollen. Verringern Sie den Wert, sollten Sie Probleme mit der Scriptlaufzeit haben oder erhöhen Sie die Scriptlaufzeit auf Ihrem Server. Die meisten Server haben eine Standard Scriptlaufzeit von 30 Sekunden.
    Log Level:
    Geben Sie an welche Informationen ins Log geschrieben werden sollen

 

Zusätzlich haben Sie die Möglichkeit die folgenden Daten beim Import zu manipulieren:

  • Kundengruppen ausschließen:
    Wählen Sie, welche Kundengruppen den Artikeln nicht zugeordnet werden sollen. Diese Artikel werden im Frontend bei diesen Kundengruppen nicht angezeigt.
  • Preismanipulation:
    Erhöhen oder verringern Sie den Artikelpreis beim Import um einen festen oder einen prozentualen Betrag.
  • Artikelbestand:
    Wählen Sie, ob Artikel ohne Bestand aktiviert oder deaktiviert werden sollen.
  • Allgemeine Informationen

Die Erkennung erfolgt anhand der Afterbuy ID (Afterbuy Product ID), sollte kein Artikel gefunden werden, wird anhand der Artikelnummer gesucht. Wird auch diese nicht gefunden, wird der Artikel neu angelegt. Jeder Artikel muss eine eindeutige Artikelnummer haben. Doppelt vergebene Artikelnummern verursachen Fehler beim Importieren.

Folgende Felder sind standardmäßig bei Variationsartikeln gemappt, bei normalen Artikel und Produktsets kommen alle Information vom jeweiligen Artikel aus Afterbuy:

  • Artikelbezeichnung → vom Variationsset
  • Kurzbeschreibung → vom Variationsset
  • Beschreibung → vom Variationsset
  • Keywords → vom Variationsset
  • Bilder → vom Variationsset + Varianten
  • MwSt → vom Variationsset
  • Hersteller → vom Variationsset
  • Artikelstatus → vom Variationsset
  • Kategorien → vom Variationsset
  • Abverkaufsstatus → vom Variationsset
  • Artikelummer → von Variante
  • Preise → von Variante
  • Bestand → von Variante
  • Mindestbestand → von Variante
  • EAN → von Variante
  • Inhalt → von Variante
  • Maßeinheit → von Variante
  • Grundeinheit → von Variante
  • Herstellernummer → von Variante
  • Gewicht → von Variante
  • Lieferzeit → von Variante
  • Attribute 1-10 → von Variante
  • Konfigurationsset → von Variante
  • Konfigurationsoptionen → von Variante
  • Zusätzlicher Text → von Variante
  • Artikelstatus → von Variante

Eine Kategoriezuweisung ist nur möglich, wenn:

  • die Kategorien zuvor aus Afterbuy importiert wurde und eine gültige Afterbuy ID zugewiesen hat.
  • der Konfigurationswert Kategorie­zuweisung beim Artikel­import aktiviert ist.
  • die Artikel in Afterbuy der jeweilig tiefsten ebene im Kategoriebaum zugewiesen sind.

Zu beachten ist, dass wenn Artikel in Afterbuy keine Kategorie­zuweisung haben oder die zugeordnete Kategorie im Shop nicht gefunden wird, die Artikel keiner Kategorie zugeordnet werden und somit im Shop nicht sichtbar sind.

Artikelexport

  • Anlegen eines neuen Datenfeeds

Im Feld Shop ID geben Sie an für welchen Mandant der Export durchgeführt werden soll. Betiteln Sie im Feld Title eine Bezeichnung, der diesen Feed identifiziert (Wird nur für Sie zur Wiedererkennung bspw. in den Logs benötigt). Geben Sie im Feld Status an ob dieser Feed aktiviert oder deaktiviert ist.

  • Konfigurieren eines Datenfeeds

Im Tab ExportFilter haben Sie die Möglichkeit, die zu importierenden Artikel zu filtern, dazu stehen Ihnen 2 Filter zur Verfügung:

  • Änderungsdatum Fix:
    Filtern Sie alle Artikel die in einem vergebenen Zeitraum (von Datum/ bis Datum) geändert wurden.
  • Änderungsdatum Dyn → Änderungsdatum Dynamisch:
    Filtern Sie alle Artikel die X Tage, Wochen oder Monate zuletzt geändert wurden.

Wenn Sie keinen Filter auswählen/definieren, werden alle Artikel verarbeitet.

Im Tab Export Kriterien wählen Sie aus, ob Sie einen vollständigen Import , d.h. es werden alle gemappten Daten angelegt/aktualisiert, oder nur ein Update durchführen möchten. Bei einem Update werden nur die gewählten Daten aktualisiert.
Hierbei haben Sie folgende Auswahlmöglichkeiten:

  • Beschreibungen:
    Name, Kurzbeschreibung, Beschreibung, Keywords
  • Preise:
    Einkaufspreis, Verkaufspreis, Händlerpreis
  • Bestand:
    Bestand, Mindestbestand, Lagerartikel/Ablaufartikel­-Einstellung
  • Bilder:
    Artikelbild Groß

Die Erkennung erfolgt anhand der Afterbuy ID (Afterbuy Product ID), sollte keine hinterlegt sein, wird stattdessen die Artikelnummer verwendet. Die Artikelnummer muss beim Export immer numerisch sein. Alphanumerische Artikelnummer erzeugen beim Export Fehler.

Bestellexport

Bestellungen können Live übertragen werden oder per Cronjob (Siehe Cronjobs). Beides in Kombination ist nicht möglich. Diese Möglichkeit haben wir deaktiviert, da es in der Vergangenheit des öfteren zu Doppelübertragungen kam. Um dies von vornherein zu unterbinden, haben wir diese Möglichkeit entfernt.

Bestellungen werden bei der Verwendung des Crons übermittelt, wenn diverse Parameter stimmen:

● Afterbuy ID ist 0 oder NULL
● Afterbuy Status ist 0 oder NULL
● Bestellnummer ist ungleich 0

Bei Live-Bestellübermittlung wird die Bestellung, direkt nach dem Bestätigen der Bestellung im Frontend durch den Kunden, gesendet.

Bestellstatusabgleich

Die Bestellstatus, Zahlstatus und Versandstatus können mittels zweier Cronjobs (siehe Cronjobs) abgeglichen werden. Einer holt die Status aus Afterbuy und aktualisiert diese im Shop der andere macht das gleiche nur umgekehrt.

Folgende Bedingungen müssen erfüllt sein, dass die Bestellungen in Shopware aktualisiert werden:

  • Afterbuy ID muss gesetzt sein (>0 und gültig sein)
  • Bestellnummer muss gesetzt sein (>0)
  • Zahlstatus oder Versandstatus dürfen nicht, wie in der Pluginkonfiguration eingestellt, bereits erreicht worden sein
  • Zahlstatus und Versandstatus dürfen nicht die zu ignorierenden Status, wie in der Pluginkonfiguration eingestellt, erreicht haben
  • Das Datum ab dem Bestellungen exportiert werden dürfen, muss älter oder gleich dem Bestelldatum sein
  • Die Bestellung darf nicht weiter zurückliegen als in der Pluginkonfiguration bei Bearbeitungszeitraum angegeben.

Folgende Bedingungen müssen erfüllt sein, dass die Bestellungen in Afterbuy aktualisiert werden:

  • Afterbuy ID muss gesetzt sein (>0 und gültig sein)
  • Afterbuy Status muss 0 oder NULL sein
  • Bestellnummer muss gesetzt sein (>0)
  • Zahlstatus oder Versandstatus müssen, wie in der Pluginkonfiguration eingestellt, bereits erreicht worden sein und das Änderungsdatum muss neuer sein, als die letzte Übertragung.
  • Das Datum ab dem Bestellungen exportiert werden dürfen, muss älter oder gleich dem Bestelldatum sein.
  • Die Bestellung darf nicht weiter zurückliegen als in der Pluginkonfiguration bei Bearbeitungszeitraum angegeben.

Cronjobs

Sie können jeden von Ihnen angelegten Feed als Cronjob verwenden. Zu beachten ist, dass, sollten Sie das Cron­Passwort in der Pluginkonfiguration ändern, alle eingerichteten Cronjobs aktualisieren müssen. Die URLs für den Aufruf der Daten­Feeds, entnehmen Sie der Einstellung des entsprechenden Feeds im Tab Cronjobs.

Desweiteren können Sie noch folgende Cronjobs anlegen. Beachten Sie das Sie bei diesen, Ihr gewähltes/generiertes Passwort anhängen müssen:

Bestellübermittlung, anstelle der Liveübermittlung:

HinweisBestellstatus nach der Bestellübertragung, Übertragungsdatum, Zeitraum der Bestellübertragung und einige Einstellungen mehr können/müssen in der Pluginkonfiguration eingestellt werden.
http://www.ihre­domain.de/SwpAfterbuyOrder/sendOrdersToAfterbuy/pass/PASSWORT

Bestellstatus von Shopware an Afterbuy übermitteln

HinweisZahl- und Versandstatus, Übertragungsdatum, Zeitraum der Bestellübertragung, zu ignorierende Zahl- und Versandstatus können/müssen in der Pluginkonfiguration eingestellt werden.
http://www.ihre­domain.de/SwpAfterbuyOrder/updateOrderStatusInAfterbuy/pass/PASSWORT

Bestellstatus von Afterbuy an Shopware übermitteln

Hinweis: Zahl- und Versandstatus, Übertragungsdatum, Zeitraum der Bestellübertragung, zu ignorierende Zahl- und Versandstatus können/müssen in der Pluginkonfiguration eingestellt werden.
http://www.ihre­domain.de/SwpAfterbuyOrder/updateOrderStatusInShopware/pass/PASSWORT

Logs automatisch löschen

Hinweis: Der Aufbewahrungszeitraum kann in der Pluginkonfiguration für Feeds und Bestellungen separat eingestellt werden.

http://www.ihre­domain.de/SwpAfterbuy/clearLogs/pass/PASSWORT

User-Mapping

Es ist über User­Klassen möglich in die Funktionsweise des Plugins einzugreifen und an seine Bedürfnisse anzupassen. Sie können Feldzuordnungen, Preis­Manipulationen, Kategorie­Zuordnungen, Import/Export Filter erweitern, usw.

Dem Plugin stehen folgende User­Controller als Vorlage zur Verfügung:

/Controllers/Backend/

SwpAfterbuyFeedsImportArticlesUserExample.php
SwpAfterbuyFeedsExportArticlesUserExample.php
SwpAfterbuyFeedsImportCategoriesUserExample.php
SwpAfterbuyFeedsExportCategoriesUserExample.php

/Controllers/Frontend/

SwpAfterbuyUserExample.php
SwpAfterbuyOrderUserExample.php

Sie können diese kopieren und umbenennen und so viele erstellen wie sie benötigen. Frontend­Controller können Sie in der Plugin­Konfiguration je Mandant einen hinterlegen und Backend­Controller je Daten­Feed.

Wie fange ich an?

Kopieren Sie im Pluginverzeichnis im Ordner /Controllers/Backend/ die entsprechende Klasse (…ImportArticles…, …ExportArticles…, …ImportCategories…, …ExportCategories…) und benennen Sie die um. Ersetzen Sie den Suffix “Example”. Der erste Buchstabe muss groß und alle weiteren klein geschrieben sein.

Anschließend öffnen Sie die Datei in einem Editor und editieren den Klassennamen.

Nachdem Sie die Datei und den Klassennamen, in der Datei, umbenannt haben, gehen Sie in das Backend und öffnen die Afterbuy­Feeds, wenn Sie den Im­-/Export von Artikel oder Kategorien manipulieren wollen. Wählen Sie den entsprechenden Feed aus und im Tab “Import Kriterien“ wählen Sie unter weitere Einstellungen im Dropdown Import Klasse, die eben angelegt Klasse aus und speichern diesen Feed. Wenn Sie jetzt einen Feed neu starten, bereits laufende Feeds sind davon nicht betroffen, wird die individuell eingestellte Klasse verwendet.

Der Beispiel User Controller, den Sie zuvor umbenannt haben, wird mit jedem Update erneut erstellt, so dass Sie immer eine aktuelle Beispiel Klasse zur Verfügung haben.

In der User Klasse finden Sie alle Klassen­-Variablen, ­-Konstanten, ­-Methoden, die Sie manipulieren können. Als Default wird standardmäßig die geerbte Methode aufgerufen und der entsprechende Wert zurückgegeben.

Was muss/sollte ich beachten?

Um zu vermeiden, dass versehentlich übergeordnete Methoden/Variablen überschrieben werden, setzen Sie Ihr Entwickler Prefix oder Ihre Initialen oder etwas anderes als eindeutigen Präfix vor die von Ihnen definierten Variablen und Methoden.

Welche Möglichkeiten habe ich?

  • Einfache User­Klasse

Sie führen alle vorangegangenen Schritte so wie beschrieben aus.

  • Basis User­Klasse + Individuelle User­Klasse

Sie erstellen wie in den vorangegangenen Schritten ihre Individuelle User­Basis­Klasse, welche Sie einem Feed direkt über das Backend zuordnen können oder als Basis für weitere individuelle User­-Klassen verwenden.

In dem Fall erben Sie in den weiteren erstellen User­-Klassen nicht mehr von „Shopware_Controllers_Backend_SwpAfterbuyFeedsImportArticles“, sondern von der Basis­-Klasse die Sie erstellt haben. In diesem Fall müssen Sie nicht für jeden Feed dieselben Logiken immer wieder kopieren, sondern können so gemeinsam genutzte Methoden in die Basis­-Klasse packen und alle Feed individuellen Methoden in die individuelle User­-Klasse packen.

Debugging

Definieren Sie bspw. in der Shopware config.php folgende Konstante und setzen Sie diese auf “true”: SWPAB_DEBUG:

define(‚SWPAB_DEBUG‘, true);

Dies verhindert das automatische Fortsetzen des Datenfeeds, d.h. Sie müssen nach jeder Umleitung manuell über den Button “weiter” den Vorgang im Backend fortsetzen. Des Weiteren werden Ihnen durch setzen dieser Konstante die Feed Parameter ausgegeben.

Zum Debuggen können Sie folgende Methode verwenden:

__debug( $variable, ‘Beschreibung’ );

An die Konfiguration, des Plugins, des Feeds oder des Vorgangs (Base) kommen sie über folgende Methode:

$this­>getConfig(‘Plugin’);

Es wird ein Array zurückgeben, welches alle Plugin­Einstellungen enthält

$this­>getConfig(‘Feed’);

Es wird ein Array zurückgeben, welches alle Feed­Einstellungen enthält

$this­>getConfig(‘Base’);

Es wird ein Array zurückgeben, welches alle notwendigen Parameter des aktuellen Feeds enthält. Bspw. Letzter verarbeiteter Artikel, wie viele wurden bereits importiert wie viele verarbeitet und wie viele Datensätze (Artikel,Kategorien) sind es Insgesamt.

Einzelne Parameter können auch folgendermaßen Abgefragt werden:
$this­>getConfig(‘Base’, ‘Parameter’); Dieser Aufruf gibt den Wert des Parameters “Parameter” der Konfiguration “Base” zurück.

Artikelimport Controller

$this­>currentProductData;

Diese Klassen­-Variable enthält alle Informationen die je Artikel (bei Variationen, inkl Varianten) importiert werden sollen, als Array. Der Aufbau des Array orientiert sich an der Shopware Artikel­-API. Je nachdem in welchem Verarbeitungsschritt man sich befindet, sind mehr oder weniger Information in diesem Array zu finden.

Jeder Artikel wird einzeln Importiert, bei Variationssets inkl. Varianten. Es werden je Seitenaufruf die im Feed unter Limit angegeben Zahl von Artikeln importiert. Sollte ein Variations­artikel mehr Varianten enthalten als bei Limit angeben, so werden die Varianten in mehreren Schritten importiert. Je höher der Wert für Limit desto länger dauert ein Aufruf, dass bedeutet die Scriptlaufzeit erhöht sich. Insgesamt wird die Dauer des Vorgangs jedoch reduziert, da weniger Anfragen gesendet werden müssen.

Das Limit darf maximal 250 sein, da Afterbuy maximal 250 Artikel mit einer Anfrage zurückgeben kann.

Die Variablen und Methoden sind soweit alle im Controller Dokumentiert und teils auch selbsterklärend, daher gehen wir an dieser Stelle nicht weiter darauf ein.

Garantie/Support

Wir geben Ihnen mit den User­-Klassen die Möglichkeit, das Mapping selbstständig an Ihre Bedürfnisse anzupassen, jedoch können wir für User­Klassen keinen kostenfreien Support anbieten.

Bei Fragen oder Problemen

Bekannte Probleme Artikelimport

Fehlermeldung:
Fatal Error: Call to a member function getNumber() on a non­object …

Lösung 1 – In Afterbuy ist keine Artikelnummer hinterlegt:
Pluginkonfigurationswert AfterbuyID als Artikelnummer beim Import setzen

Lösung 2 – In Afterbuy ist keine Artikelnummer hinterlegt, aber der zuvor genannte Konfigurationswert ist gesetzt:
In diesem Fall handelt es sich wahrscheinlich um ein VariationsSet. Prüfen Sie, ob einer der zugewiesenen Varianten als Default gesetzt ist. Falls nicht, wählen Sie eine Variante aus und setzten Sie diesen als Default­Variante.

Wir benötigen folgende Informationen um Ihnen schnellstmöglich helfen zu können:

  • Shopversion
  • Pluginversion
  • Einzel oder Multimandanten System
  • Problem
    ■ Artikel/Kategorien/Bestellungen/Bestellstatus, Import oder Export
    ■ Eine Beschreibung, wie sie vorgegangen sind um welches Ziel zu erreichen.
    ■ Die Fehlermeldung, die Ihnen ausgegeben wird bzw. in den Logs gespeichert ist
  • Bestenfalls FTP und Backend Zugangsdaten, damit wir uns das Problem direkt in Ihrem Shop anschauen können