質問 > フロント機能 > dtb_orderのorder_status_idがnull |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
ino88 |
投稿日時: 2021/6/30 11:43
対応状況: −−−
|
新米 登録日: 2021/1/28 居住地: 投稿: 5 |
dtb_orderのorder_status_idがnull [EC-CUBE] 4.0.5
お世話になります。 ShoppingController.phpの$this->orderHelper->initializeOrder()[110行目付近]で最初の注文データを生成する際、 dtb_orderは order_status_id=OrderStatus::PROCESSING で生成されることになっているかと思いますが、実際に生成されたdtb_orderのレコードを見ると、order_status_idがnullとなっており、 決済画面へ行けない状況になっています。 これまで問題なく動いていたのですが、突然このようになってしまい何が影響しているのか分からない状況です。 [確認した事] OrderHelper.phpのcreatePurchaseProcessingOrder()[128行目付近]を確認すると、以下のコードがあります。 $OrderStatus = $this->orderStatusRepository->find(OrderStatus::PROCESSING); これがNULLを返していました。 ログを見ると、「[注文手続] 受注の初期化処理を開始します.」の後にある「mtb_order_status」からデータを取得するSQLに AND ((t0.id <> 7 AND t0.id <> 8)) と記載がありました。 この処理の直前の「dtb_order_item」からデータを取得するSQLにも AND (d1_.order_status_id <> 7 AND d1_.order_status_id <> 8) の記載があるのを確認しました。 これが原因だと考えているのですが、これがどこから来ているのかが分かりません。 何か設定するような箇所等ありましたでしょうか? 恐れ入りますが皆様のお力添えを頂けないでしょうか。 何卒、よろしくお願い申し上げます。 |
468 |
投稿日時: 2021/6/30 14:00
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: dtb_orderのorder_status_idがnull $this->orderStatusRepository->find(OrderStatus::PROCESSING);
がnullということは、dtb_order_statusテーブルに該当するレコードが見つからないという事ではないでしょうか? マスタデータに手を加えていたりしますか?
|
ino88 |
投稿日時: 2021/6/30 14:12
対応状況: −−−
|
新米 登録日: 2021/1/28 居住地: 投稿: 5 |
Re: dtb_orderのorder_status_idがnull ご返信ありがとうございます。
mtb_order_statusには手を加えておりません。デフォルトのままで、対象のレコードは存在しています。 記載の通り、mtb_order_statusからfindするところでPROCESSINGが弾かれているように思えます。 試しに、以下の変更をして実行してみました。 $this->orderStatusRepository->find(OrderStatus::PROCESSING) ↓ $this->orderStatusRepository->find(OrderStatus::NEW) すると、order_status_id=1でレコードが正しく生成されていました。 |
ino88 |
投稿日時: 2021/7/1 9:31
対応状況: 解決済
|
新米 登録日: 2021/1/28 居住地: 投稿: 5 |
Re: dtb_orderのorder_status_idがnull 自己解決しました。
$this->orderHelper->initializeOrder()の前に、購入履歴の有無をチェックしていたのですが、そのクエリが影響していました。 勉強不足でした。 お手数をおかけして申し訳ありませんでした。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |