Für meine Warenwirtschaft benötige ich die Bestellungen in einer .txt Datei.
Ich möchte die Bestellung in Laufzeit in die Datei schreiben.
Leider wird mein Plugin nicht erkannt.
Hier mein Ansatz:
Im Verzeichnis Plugins habe ich den Ordner BestellungExportieren angelegt.
Darin die Datei BestellungExportieren/composer.json
{
"name": "MeinShop/bestellung-exportieren",
"description": "Ein Plugin zum Exportieren von Bestellungen",
"version": "v1.0.0",
"type": "shopware-platform-plugin",
"license": "MIT",
"authors": [
{
"name": "JuergenS",
}
],
"require": {
"shopware/core": "*"
},
"extra": {
"shopware-plugin-class": "BestellungExportieren\\BestellungExportieren",
"label": {
"de-DE": "Bestellung Exportieren",
"en-GB": "Order Export"
}
}
}
Dann den Ordner src (BestellungExportieren/src) mit Unterverzeichnis BestellungExportieren/src/Resources und BestellungExportieren/src/Subscriber sowie die Datei BestellungExportieren/src/BestellungExportieren.php
<?php declare(strict_types=1);
namespace BestellungExportieren;
use Shopware\Core\Framework\Plugin;
class BestellungExportieren extends Plugin
{
}
Die Datei BestellungExportieren/src/Resources/config/services.xml
<?xml version="1.0" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<services>
<service id="BestellungExportieren\Subscriber\OrderSubscriber">
<tag name="kernel.event_subscriber"/>
</service>
</services>
</container>
sowie die Datei BestellungExportieren/src/Resources/Ordner Subscriber/OrderSubscriber.php
<?php declare(strict_types=1);
namespace BestellungExportieren\Subscriber;
use Shopware\Core\Checkout\Order\OrderEvents;
use Shopware\Core\Framework\DataAbstractionLayer\Event\EntityWrittenEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class OrderSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents(): array
{
return [
OrderEvents::ORDER_WRITTEN_EVENT => 'onOrderWritten',
];
}
public function onOrderWritten(EntityWrittenEvent $event): void
{
$orderData = $event->getPayloads();
// Schreiben Sie die Bestellungsdaten in eine Datei
file_put_contents(__DIR__ . '/orders.txt', print_r($orderData, true), FILE_APPEND);
}
}
Das Plugin wird unter „Meine Erweiterungen“ nicht angezeigt. :-((
Da habe ich irgendwo einen Fehler.
Kann mir jemand helfen?
Danke im Voraus,
Jürgen