【EC-CUBE4】対応状況を注文取消し(キャンセル)したときに何かするプラグインを作る方法

EC-CUBE4で対応状況を注文取消し(キャンセル)したときに何かするプラグインを作る方法です。

まずは以下のコマンドでプラグインの雛形を作ります。

プラグインコードはなんでも良いのですが、今回は「CancelStatus」にしてください。

bin/console eccube:plugin:generate

注文取消し時に何かするイベントを登録

自動生成されたプラグイン一式内にServiceディレクトリを作り、以下のOrderStateMachine.phpファイルを設置して下さい。

<?php

namespace Plugin\CancelStatus\Service;

use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Eccube\Service\PurchaseFlow\PurchaseContext;

// SymfonyのWorkflowコンポーネントのイベントを使用します。
use Symfony\Component\Workflow\Event\Event;

/**
 * @author Akira Kurozumi <info@a-zumi.net>
 */
class OrderStateMachine implements EventSubscriberInterface {

    public static function getSubscribedEvents(): array
    {
        return [
            'workflow.order.transition.cancel' => [['cancel']],
        ];
    }

    /**
     * 対応状況が注文取消しに変わったときの処理
     * 
     * @param Event $event
     */
    public function cancel(Event $event)
    {
        // 注文取消しになった受注データ
        $Order = $event->getSubject()->getOrder();
        
        // 注文取消しになった会員データ
        $Customer = $Order->getCustomer();
    }
}

cancelメソッドに処理したいことを書けば完成です。

プラグインをインストール・有効化すると動作します。

このプラグインのファイル一式はこちら

お気軽にコメントをどうぞ

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください