css_evo-con
Neues Mitglied
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:
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.
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.