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にも受注ステータスを追加するようにしてください。

ECCUBE制作トップへ

EC-CUBEカスタマイズに関するお問い合わせはこちら

    脆弱性修正