Questions tagged «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>"; } } 请检查下图以获得更好的理解。我的收藏或循环中有任何错误吗? 请帮我!!!
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.