バージョン選択

フォーラム

メニュー

オンライン状況

57 人のユーザが現在オンラインです。 (50 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 57
もっと...

サイト内検索

質問 > フロント機能 > Preprocessor でカートに商品を追加するとエラー

フロント機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
h_tanaka
投稿日時: 2020/3/4 16:59
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
Preprocessor でカートに商品を追加するとエラー
EC-CUBE 4.0.3

商品をカートに入れた時に条件を満たしていればプレゼント商品を自動でカートに入れる処理を ItemHolderPreprocessor を用いて独自で実装しました。

app/config/eccube/packages/purchaseflow.yaml
eccube.purchase.flow.cart.holder_preprocessors:
    class: Doctrine\Common\Collections\ArrayCollection
    arguments:
        - #
            - '@Eccube\Service\PurchaseFlow\Processor\PresentPreprocessor'


src/Eccube/Service/PurchaseFlow/Processor/PresentPreprocessor.php
public function process(ItemHolderInterface $itemHolder, PurchaseContext $context)
{
    ...(条件のチェック)...

    $this->cartService->addProduct($ProductClass->getId());
}

しかし、カートページを表示すると次のエラーが発生してしまいます。

InvalidArgumentException: Entity has to be managed or scheduled for removal for single computation Eccube\Entity\CartItem@000000005a631e1500000000065c3715 (uncaught exception) at /Applications/MAMP/htdocs/test/local2/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php line 504

エラーの発生箇所は次です。
Eccube/Service/CartService.php (line 287)
public function addProduct($ProductClass, $quantity = 1)
{
    ...

    $this->restoreCarts($allCartItems);
}

public function restoreCarts($cartItems)
{
    foreach ($this->getCarts() as $Cart) {
        foreach ($Cart->getCartItems() as $i) {
            $this->entityManager->remove($i);
            $this->entityManager->flush($i);    // ★ ここでエラー
        }
        $this->entityManager->remove($Cart);
        $this->entityManager->flush($Cart);
    }
    ...
}


このエラーを解決するにはどうすればよいでしょうか?
フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
 » Preprocessor でカートに商品を追加するとエラー h_tanaka 2020/3/4 16:59
     Re: Preprocessor でカートに商品を追加するとエラー h_tanaka 2020/3/4 20:44
       Re: Preprocessor でカートに商品を追加するとエラー h_tanaka 2020/3/4 20:49
         Re: Preprocessor でカートに商品を追加するとエラー h_tanaka 2020/3/16 18:54

 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,308名です
総投稿数は109,693件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.