質問 > 管理機能 > データベース上のorder_Itemのquantityが更新されない。 |
管理機能
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
gk117 |
投稿日時: 2023/11/15 10:13
対応状況: −−−
|
新米 登録日: 2023/11/15 居住地: 投稿: 3 |
データベース上のorder_Itemのquantityが更新されない。 [EC-CUBE] EC-CUBEのバージョン 4.0.5
[レンタルサーバ] AWS EC2 [OS] MacOS Monterey 12.6.7 [PHP] PHP Version 7.4.11 [データベース] MySQL 5.7 [現象] 「StockMultipleValidator.php」のカスタマイズにて、在庫数以上の商品を購入しようとした場合、 配布数(quantity)を在庫数に変更してエラーを出さず続行するという処理に変更しようとしていいます。 その際に、setQuantityで該当の商品の配布数を変更し、 処理の最後にentityManager->flush()でDBへの永続化をしようとしているのですが、 購入完了後に orderitem のテーブルを確認すると、配布数が変更されていないことがわかりました。 どのようにすれば永続化が正しく行われるでしょうか? 勉強不足で大変恐縮ですが、ご教示いただけましたら幸いです。 ※setQuantityの前後でログ出力をして、 OrderItemエンティティ内でquantityが変更されていることは確認しました。 -----------ソースコード----------- foreach ($OrderItemsByProductClass as $id => $Items) { /** @var ProductClass $ProductClass */ $ProductClass = $this->productClassRepository->find($id); if ($ProductClass->isStockUnlimited()) { continue; } $stock = $ProductClass->getStock(); $isZero = false; $isZeroBonus = false; if ($stock == 0) { foreach ($Items as $Item) { $Item->setQuantity($stock); if ($Item->isBonus()) { $isZeroBonus = true; } else { $isZero = true; } } if ($isZero) { $this->throwInvalidItemException('front.shopping.out_of_stock_zero', $ProductClass, true); } elseif ($isZeroBonus) { continue; } } $isOver = false; $isOverBonus = false; foreach ($Items as $Item) { if ($stock - $Item->getQuantity() >= 0) { $stock = $stock - $Item->getQuantity(); } else { $Item->setQuantity($stock); $stock = 0; if ($Item->isBonus()) { $isOverBonus = true; } else { $isOver = true; } } } if ($isOver) { $this->throwInvalidItemException('front.shopping.out_of_stock', $ProductClass, true); } elseif ($isOverBonus) { //nothing } $Items->entityManager->flush(); } -----------ソースコード----------- |
フラット表示 | 前のトピック | 次のトピック |
題名 | 投稿者 | 日時 |
---|---|---|
» データベース上のorder_Itemのquantityが更新されない。 | gk117 | 2023/11/15 10:13 |
Re: データベース上のorder_Itemのquantityが更新されない。 | yuh | 2023/11/15 10:47 |
Re: データベース上のorder_Itemのquantityが更新されない。 | gk117 | 2023/11/15 10:54 |
Re: データベース上のorder_Itemのquantityが更新されない。 | mcontact | 2023/11/15 12:44 |
Re: データベース上のorder_Itemのquantityが更新されない。 | gk117 | 2023/11/16 19:15 |