Eccube4 商品にマイナス価格を設定する

Eccube4 の商品の価格 Eccube\Form\Type\PriceType では0以上の数値のみが設定できる。
マイナス価格はエラーとなる。
マイナス価格をOKとするには、formのextensionで価格フィールドの設定を上書きすればよい。
・オプション「'accept_minus' => true」とし、
・値チェックのminを 0 でなくマイナス値にする。

app\Customize\Form\Extension\Admin\ProductClassFormExtension.php

namespace Customize\Form\Extension\Admin;

use Doctrine\ORM\EntityManagerInterface;
use Eccube\Common\EccubeConfig;
use Eccube\Form\Type\Admin\ProductClassType;
use Symfony\Component\Form\AbstractTypeExtension;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormEvents;
use Eccube\Form\Type\PriceType;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * Class ProductClassFormExtension .
 */
class ProductClassFormExtension extends AbstractTypeExtension
{
    /**
     * @var EccubeConfig
     */
    private $eccubeConfig;

    /**
     * @var EntityManagerInterface
     */
    private $entityManager;

    public function __construct(EccubeConfig $eccubeConfig, EntityManagerInterface $entityManager)
    {
        $this->eccubeConfig = $eccubeConfig;
        $this->entityManager = $entityManager;
    }

    /**
     * RelatedCollectionExtension.
     *
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
            $builder
                // マイナス価格を許容する
                ->add('price02', PriceType::class, [
                    'required' => true,
                    'accept_minus' => true,
                    'constraints' => [
                        new Assert\Length(['min' => (-1) * $this->eccubeConfig['eccube_price_len'], 'max' => $this->eccubeConfig['eccube_price_len']]),
                    ],
                ]) 

                ->add('price01', PriceType::class, [
                    'required' => false,
                    'accept_minus' => true,
                    'constraints' => [
                        new Assert\Length(['min' => (-1) * $this->eccubeConfig['eccube_price_len'], 'max' => $this->eccubeConfig['eccube_price_len']]),
                    ],
                ]) 

        ;
    }
    /**
     * product admin form name.
     *
     * @return string
     */
    public function getExtendedType()
    {
        return ProductClassType::class;
    }


    /**
     * product admin form name.
     *
     * @return string[]
     */
    public static function getExtendedTypes()
    {
        return [ProductClassType::class];
    }
}

追記:管理画面の方で、1か所だけ本体プログラムを修正する必要があった。どうしても回避できず・・・