EC-CUBEにはmtb_customer_order_statusというテーブルが存在するのをご存知でしょうか? mtb_order_statusというマスターテーブルがありこちらが管理画面で表示される受注状況(ステータス)の一覧となっているのは周知の事実だと思いますが、mtb_customer_order_statusはどのような役割を果たしているのでしょうか?
端的にいうと下のような区別があります。
管理画面に表示するステータス:mtb_order_status
マイページに表示するステータス:mtb_customer_order_status
どちらもdtb_orderのstatusというカラムから参照されており、受注のステータスを表していますが、管理者が見る受注状況とユーザーが見る注文状況は異なる表示をしたいことが多いのでこのような仕様となっています。
mtb_order_statusだけに受注ステータスを追加してmtb_customer_order_statusに対応するデータが存在しないと、マイページにおいて次のようなエラーが発生します。
FatalErrorException in Core.php line 0:
Error: Method DoctrineProxy\__CG__\Eccube\Entity\Master\CustomerOrderStatus::__toString() must not throw an exception
[重要]mtb_order_statusに受注ステータスを追加した場合は、必ず同じIDでmtb_customer_order_statusにも受注ステータスを追加するようにしてください。
EC-CUBEに関するお問い合わせ
[重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。