【EC-CUBE4】販売価格が変更されたときに何かする方法

EC-CUBE4で販売価格が変更されたときに何かする方法です。

Doctrineのイベントを使えばデータ変更の検知などいろんなことが出来ます。

サンプルコードは以下のとおりです。

<?php
 
 
namespace Customize\Doctrine\EventSubscriber;
 
 
use Doctrine\Common\EventSubscriber;
use Doctrine\ORM\Event\PreUpdateEventArgs;
use Doctrine\ORM\Events;
use Eccube\Entity\ProductClass;
 
class PriceSubscriber implements EventSubscriber
{
    /**
     * @inheritDoc
     */
    public function getSubscribedEvents()
    {
        return [
            Events::preUpdate
        ];
    }
 
    /**
     * @param PreUpdateEventArgs $args
     */
    public function postUpdate(PreUpdateEventArgs $args)
    {
        $entity = $args->getObject();
 
        if ($entity instanceof ProductClass) {
            // 販売価格が変更されていたら
            if ($args->hasChangedField('price02')) {
                // 何かする
            }
        }
    }
}

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

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