受注管理のお問い合わせ番号(出荷伝票番号)は標準状態のEC-CUBEですと英数字とハイフンしか登録することができません。
伝票番号はクロネコヤマトで小口数分の番号が発行されたりするので、カンマで区切って複数登録したい場合があると思います。その場合のカスタマイズ方法をご紹介します。
ShippingType.phpで伝票番号のフォーム定義を確認すると、下記のようなコードになっています。src/Eccube/Form/Type/Admin/ShippingType.php
->add('tracking_number', TextType::class, [
'required' => false,
'constraints' => [
new Assert\Length([
'max' => $this->eccubeConfig['eccube_mtext_len'],
]),
new Assert\Regex([
'pattern' => '/^[0-9a-zA-Z-]+$/u',
'message' => 'form_error.graph_and_hyphen_only',
]),
],
])
正規表現の制約がついていますね。
何の文字でも入力できるようにする(日本語も)
->add('tracking_number', TextType::class, [ 'required' => false, 'constraints' => [ new Assert\Length([ 'max' => $this->eccubeConfig['eccube_mtext_len'], ]), ], ])
Regexを削除してしまえば文字の種類に制限がなくなります。
英数字・記号やカンマを入力可能にする
->add('tracking_number', TextType::class, [ 'required' => false, 'constraints' => [ new Assert\Length([ 'max' => $this->eccubeConfig['eccube_mtext_len'], ]), new Assert\Regex([ 'pattern' => '/^[[:graph:][:space:]]+$/i', 'message' => '半角の英数字、記号で入力してください。', ]), ], ])
EC-CUBEカスタマイズに関するお問い合わせはこちら
[重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。
![EC-CUBEバージョンアップ](https://umebius.com/wp-content/uploads/version-up-banner-1.png?v=1)