Neu Plugin zum Ergänzen der ShopID

css_evo-con

Neues Mitglied
8. Oktober 2021
1
0
Ich möchte ein Plugin für den Connector erstellen, das die id_shop einer Besellung als Attribut an den übertragenen customerOrder Datensatz anhängt. Leider passiert nichts. Ich habe im Ordner plugins den Ordner multishop angelegt und darin die Datei Bootstrap.php mit folgenden Inhalt:

PHP:
<?php

namespace multishop;

use jtl\Connector\Core\Logger\Logger;
use jtl\Connector\Event\CustomerOrder\CustomerOrderAfterPullEvent;
use jtl\Connector\Model\CustomerOrderAttr;
use jtl\Connector\Model\Identity;
use jtl\Connector\Plugin\IPlugin;
use Symfony\Component\EventDispatcher\EventDispatcher;

//Every plugin which occurs in the connector/plugins is registered by the connector
class Bootstrap implements IPlugin
{
    //Using the registerListener function, provided by the PluginInterface to define when the plugin should call what method
    public function registerListener(EventDispatcher $dispatcher)
    {
        //Using static variables to define the wanted event name which is used to determine when the plugins is called
        $eventName = CustomerOrderAfterPullEvent::EVENT_NAME;

        $dispatcher->addListener($eventName, [$this, "handle"]);
    }

    public function handle(CustomerOrderAfterPullEvent $event)
    {
        Logger::write('Handler called', Logger::DEBUG, 'plugin');
        $intPSOrderID = (int)$event->getCustomerOrder()->getId()->getEndpoint();

        $intShopID = \Db::getInstance()->getValue('
            SELECT o.id_shop FROM ps_orders o WHERE o.id_order = '.$intPSOrderID.'
        ');

        $event->getCustomerOrder()->addAttribute(
            (new CustomerOrderAttr())
            ->setId(new Identity('ShopID'.$intShopID))
            ->setCustomerOrderId($event->getCustomerOrder()->getId())
            ->setKey('ShopID')
            ->setValue($intShopID)
        );
    }
}

Muss ich noch etwas anderes machen um das Plugin zum laufen zu bekommen? Oder fällt euch ein Fehler in meinem Code auf? Das ist mein erster Kontakt mit einem Connector-Plugin, ich bin für jeden Hinweis dankbar.
 

Immanuel

Gesperrter Benutzer
24. August 2016
1.542
329
Hallo @css_evo-con und herzlich willkommen im Forum!

Hab gerade mal nachgeschaut, der Dateiname muss bootstrap.php (komplett klein geschrieben) sein.

PS: Code sieht auf den ersten Blick in Ordnung aus.
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Installation von Plugin PayPal Check-Out fehlgeschlagen, keine Verbindung zum Webshop Plugins für JTL-Shop 6
Neu Plugin Preisvorschlag Plugins für JTL-Shop 6
Neu Plugin Allgemeine Fragen zu JTL-POS 1
Neu Betatester gesucht - Plugin: Geizhals Basket Tracking inkl. EMID Übermittlung Plugins für JTL-Shop 0
Neu JTL-Shop "Plugin-Vorlage" gesucht User helfen Usern 3
Neu Cross Selling Plugin Plugins für JTL-Shop 1
Neu Beim Versuch Paypal-Plugin mit Paypal-Konto zu verbinden Shop nicht mehr erreichbar Plugins für JTL-Shop 2
Neu Neues Plugin: Produktbundles mit Rabatten Plugins für JTL-Shop 1
Neu Widerrufsformular als kostenloses Plugin für Shops ab 5.1.5 Plugins für JTL-Shop 9
Neu Neues Plugin: Kaufimpuls Paket Plugins für JTL-Shop 0
Neu Paypal Checkout Plugin - Ist vorhanden aber nichts funktioniert Plugins für JTL-Shop 9
Neu Gini Scan & Pay wird zum 1. Juni 2026 eingestellt. Gibt es Alternativen? Plugins für JTL-Shop 8
Lieferschein löschen führt zum Absturz JTL-Wawi 2.0 2
Neu Wichtige Info: Abkündigung der DHL-Schnittstelle zum 31.05.2026 News, Events und Umfragen 0
Neu Verständnisfrage zum Mahnlauf Workflow User helfen Usern - Fragen zu JTL-Wawi 0
gelöst: Für diesen User wurde zum angegebenen Mandanten keine Firma gefunden!! JTL-Wawi 1.10 13
PDF zum Herunterladen in Pickliste JTL-Wawi 1.10 0

Ähnliche Themen