質問 > フロント機能 > お届け先が複数あると購入エラーになる。 |
フロント機能
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
sg_dev |
投稿日時: 2020/5/26 15:20
対応状況: −−−
|
新米 登録日: 2020/2/25 居住地: 投稿: 7 |
お届け先が複数あると購入エラーになる。 [EC-CUBE] 4.0.3
[OS] Windows10 pro x64 [PHP] xampp 7.2.26/PHP 7.2.26 [データベース] MySQL 5.7.26 [WEBサーバ] xampp 7.2.26/Apatch 2.4.41 [ブラウザ] Googole Chrome(最新) [導入プラグインの有無] なし [カスタマイズの有無] 「ShoppingController.php」の「public function complete(Request $request)」に「dtb_order」等から注文データをテキストへ出力する処理追加。 [現象] 〇「site-2020-05-26.log」ログに書かれた内容 ※改行は自分で見やすくするため入れました。 [2020-05-26 11:01:03] front.ERROR [9j56a8bl0s5fs22tuo1drv57i9] [015f425] [1150] [[Eccube\Log\Logger:log:66] - [注文処理] 予期しないエラーが発生しました. ["An exception occurred while executing 'UPDATE dtb_customer SET last_buy_date = ?, buy_times = ?, buy_total = ?, point = ?, update_date = ? WHERE id = ?' with params [\"2020-05-26 02:00:12\", 2, 3200, 0, \"2020-05-26 02:00:12\", 1150]:\n\n SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction"] [POST, /eccube4/shopping/checkout, 192.168.0.152 , http://localhost/eccube4/shopping/confirm , Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36] 〇現象 ・お届け先が3つ以上あると「dtb_customer」のロックのエラーが発生してしまう。 〇再現手順 1.3品目をカートに入れる。 2.カートへ進む。 3.「2.ご注文手続き」へ進み「お届け先」を3つ追加する。 4.品目毎に異なるお届け先を設定。 ※1品目に3つのお届け先を設定しても同様 5.「3.ご注文内容確認」で「注文する」をクリック。 6.しばらくすると購入失敗となる。 ※5回ほど試していたらエラーが出なくなってしまいました。 〇ログを追っていくと、「ShoppingController.php」の「$this->entityManager->flush()」で発行されるSQL文でエラーとなっているようです。 問題の箇所周辺 log_info('[注文処理] PaymentMethod::checkoutを実行します.'); if ($response = $this->executeCheckout($paymentMethod)) { return $response; } $this->entityManager->flush(); log_info('[注文処理] 注文処理が完了しました.', [$Order->getId()]); } catch (ShoppingException $e) { log_error('[注文処理] 購入エラーが発生しました.', [$e->getMessage()]); 問題解決のため何かアドバイスなどがあればよろしく願い致します。 |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |