Unsere App bietet die Möglichkeit, den Export des Datenfeeds mit einem eigenen App zu erweitern und anzupassen. So lassen sich z. B. die Felder im Feed anpassen sowie Informationen aus Dritt-Apps (z. B. Rabatt Apps) im Datenfeed aussteuern.
Funktion anpassen
In der App findet sich bereits ein Export Subscriber welcher die Möglichkeiten zur Beeinflussung des Datenfeeds aufzeigt. Der Inhalt kann, updatesicher, in die eigene App übernommen und entsprechend angepasst werden. Der Subscriber findet sich in folgendem Pfad:
Die Daten des Datenfeeds können mit 7 Events erweitert bzw. modifiziert werden.
bstInstaShopping_ExportHandler_Filter_Select
Dieses Event erlaubt Ihnen, den Select Part des Datenbank Queries anzupassen und so weitere Daten für den Datenfeed verfügbar zu machen. Im Standard können alle Felder der nachfolgenden Tabelle verwendet werden:
s_articles
s_articles_details
s_articles_categories_ro
s_categories
s_core_tax
s_articles_img
s_articles_prices
s_media
s_articles_supplier
Im folgenden Code Beispiel, erweitern wir den Query um ein weiteres Tabellenfeld feld1 aus der Datenbanktabelle drittanbieter_app_tabelle.
Wenn Sie ein Feld hinzufügen, welches nicht in den oben aufgeführten Datenbanktabellen enthalten ist, muss die neue Datenbanktabelle im Query mit angegeben werden. Dies passiert im Event bstInstaShopping_ExportHandler_Filter_ProductQuery
Der Kategorie Query ermittelt alle Kind-Kategorien der in den App Einstellungen ausgewählten Hauptkategorie. Eine Beeinflussung ist über dieses Event möglich.
Haben Sie den Select des Queries angepasst und verwenden darin ein Datenbankfeld welches nicht in der Liste oben aufgeführt ist z. B. von einer Drittanbieter App, muss die Datenbanktabelle ebenfalls hinzufügt werden. Das passiert in diesem Event.
Im folgenden Code Beispiel, erweitern wir den Query um eine weitere Tabelle drittanbieter_app_tabelle und verknüpfen diese mittels der Detail Id des Artikels.
Dieses Event bietet Ihnen die Möglichkeit, die Produktdaten, direkt vor dem Einfügen in die Datenfeed CSV Datei zu modifizieren. Im Beispiel wird geprüft, ob in dem Feld, welches den Kategoriepfad bzw. die Breadcrumb enthält, das Wort special vorkommt. Ist das der Fall, wird als Kategoriepfad SALE ausgesteuert.
/** * @param\Enlight_Event_EventArgs $args */publicfunctiononFilterProductsData(\Enlight_Event_EventArgs $args){/** @var\bstInstaShopping\Components\ExportHandler $handler */ $handler = $args->get('subject');/** @vararray $products */ $products = $args->getReturn();// products modforeach ($products as $orderNumber => $fields) {// if category path contains "specials" use SALE as Category Nameif (strpos($fields[12],'specials')!==false) { $fields[12] ='SALE'; $products[$orderNumber] = $fields; } }return $products;}