Aktionsschnittstelle nutzen

  • Bei der Freitschaltung von Bestellungen kann beliebiger PHP-Code ausgeführt werden. Dieser kann dazu verwendet werden, um externe Systeme an den Shop anzubinden.
    Photo by Michal Jarmoluk on pixabay
    Die Aktionsschnittstelle kann im ACP > Shop > Produkte > Produkte auflisten > bearbeiten > Erweiterte Einstellungen > Aktionsschnittstelle gesetzt werden.



    Damit die Aktionsschnittstelle korrekt funktioniert, muss diese diverse Voraussetzungen erfüllen. Wichtig ist, dass das Interface shop\system\order\action\IOrderAction implementiert wird. Dieses Beispiel zeigt Ihnen die wichtigsten Schritte.


    Wir empfehlen, dass Sie die Aktionsschnittstelle im Order /shop/lib/system/order/action/ ablegen. Das nachfolgende Beispiel beschreibt die Einbindung der Schnittstelle unter dem Namen MyExternalScript. Passen Sie den Namen für Ihre Anpassung an allen Stellen (Code, Eingaben, Dateinamen, etc.) an.


    Zuerst muss die Datei /shop/lib/system/order/action/MyExternalScript.class.php angelegt werden. Aus Ausgangspunkt empfehlen wir folgenden Inhalt.

    PHP: /shop/lib/system/order/action/MyExternalScript.class.php
    <?php
    namespace shop\system\order\action;
    use shop\system\order\action\IOrderAction;
    use shop\data\order\Order;
    use shop\data\product\Product;
    class MyExternalScript implements IOrderAction {
        public static function execute(Order $order, $product) {
            // insert your code here
        }
    }

    Das Kommentar zeigt die Stelle, an welche Sie Ihren Code einfügen können. Beachten Sie, dass Sie für Ihren Code möglicherweise weitere Importe ("use") benötigen. Über die Variablen $order und $product können Sie auf diverse wichtige Informationen zugreifen. Beispielhaft sind hier einige wichtige Codefragmente angeführt, welche für Sie interessant sein können. Wenn das Benutzer-Objekt der Bestellung verwendet werden soll, darf nicht WCF::getUser() verwendet werden, da die Aktionsschnittstelle nicht zwingend vom selben Benutzer ausgelöst wird. Über new User($order->userID) kann das korrekte Benutzer-Objekt geladen werden.


    Bestellnummer: $order->identifier
    UserID des Bestellers: $order->userID
    Zeitpunkt der Bestellung: $order->time
    ID des Produkts: $product->productID


    Sobald Sie mit Ihrem Code fertig sind, müssen Sie diesen noch für das Produkt aktivieren. Tragen Sie dafür unter ACP > Shop > Produkte > Produkte auflisten > bearbeiten > Erweiterte Einstellungen > Aktionsschnittstelle folgenden Wert ein: shop\system\order\action\MyExternalScript.


    Ab sofort wird Ihr Code automatisch bei der Freischaltung ausgeführt.