Skip to main content

Commerce Default Gateway nach Bestellung

Um bei einer neuen Bestellung das Gateway zu setzen, kann mit einem Event gearbeitet werden. Natürlich muss die betreffende Gateway ID in einer Weise ermittelt werden, beispielsweise durch ein Feld beim Benutzeraccount.

const DEFAULT_GATEWAY_ID = 1;

// irgendwo im commerce base module (falls vorhanden)
Event::on(
    Order::class,
    Order::EVENT_BEFORE_SAVE,
    function (ModelEvent $e) {
        // We only care about new Orders, at the moment:
        if (!$e->isNew) {
            return;
        }

        $order = $e->sender;

        $order->gatewayId = self::DEFAULT_GATEWAY_ID;
    });