タグ付けされた質問 「sales-quote」

1
カートルールが無効になった場合のイベントまたはプラグインスポットはありますか?
ショッピングカートの価格ルールが有効でなくなったとき(有効期限が切れたとき、または適用されなくなった他の製品の数量を変更したときなど)にプラグインできるイベントまたは場所はありますか?カートから自動的に削除されることはわかっていますが、コードでこれが発生している場所を見つけることができません。 小計がXの金額を超えるクーポンのカートに無料の製品を追加するモジュールを書いています。カート内のアイテム数を減らして小計がXを下回る場合を除いて、すべて正常に機能しています。クーポンは削除されますが、商品はカート内に残ります。 これまでのところ、私はこれまでに必要なことをするために次のイベントを利用しました... salesrule_validator_process checkout_cart_update_items_after sales_quote_collect_totals_before とメソッドMagento\Quote\Model\CouponManagementがあるのでどちらが有望に思えるかはわかりましたが、カートが更新されたときに呼び出されていないようです。set()remove() でcheckout_cart_update_items_after、それはまた、私は確認することができます論理的な場所のように思えるが、それはまだに応じて設定されたルールを表示されます$cart->getQuote()->getAppliedRuleIds() 更新:ルールがまだカートにあるかどうかを知っているcheckout_cart_save_after後に実行されるイベントのオブザーバーを追加することcollectTotals()になりました。次に、と比較$quote->getAppliedRuleIds()し$quote->getOrigData('applied_rule_ids')て、ルールが削除されているかどうかを確認します。これを行うにはもっと良い方法があるように感じますが、今のところうまくいきます。クーポンの有効期限が切れてもまだ問題があります...

3
特定の製品Magento 2に割り当てられていなくても、カートページの製品属性の値を取得する
見積もりから製品属性を取得しています。間違った値が来るようです。以下のコードを確認してください。 $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $cart = $objectManager->get('\Magento\Checkout\Model\Cart'); $itemsCollection = $cart->getQuote()->getItemsCollection(); $itemsVisible = $cart->getQuote()->getAllVisibleItems(); $items = $cart->getQuote()->getAllItems(); $product_object = $objectManager->create('Magento\Catalog\Model\Product'); foreach($itemsVisible as $item){ if($option = $item->getOptionByCode('simple_product')) { $productId = $option->getProduct()->getId(); $item_s = $product_object->load($productId); echo $screen_size = $productId."/".$item_s->getScreenFrameSize()."/".$item_s->getFiberglassScreenRollSize()."/".$item_s->getScreenCornerSize()."<br>"; } } 下の画像を確認してください。コレクションまたはループにエラーはありますか? 私を助けてください!!!
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.