Bestellung in Datei schreiben

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

1 Like

Auf der CLI bin/console plugin:refresh ausgeführt? Alternativ könnte es auch mit Cache leeren im Backend funktionieren.

Hallo Max_Shop,
Danke für deine Antwort.
Den Cache hatte ich schon gelöscht, den Refresh habe ich jetzt auch gemacht.
Aber keine Änderung, das Plugin wird nicht angezeigt.

Hier der Link zu den Dateien zum Testen https://we.tl/t-WNjMObFPkw