我想显示弹出当产品第一次添加到购物车在Magento和不想显示,如果再次或updated.In短加入该产品的弹出式窗口,我想知道这是会在添加产品购物车是第一次出现或没有?如何检查Magento产品是否已添加到购物车中?
回答
答案在很大程度上取决于你想如何处理父/子类型的产品(如果需要)。
如果你只用简单的产品只处理或者您有父/子类型的产品,你需要测试孩子的ID,那么:或者
$productId = 1;
$quote = Mage::getSingleton('checkout/session')->getQuote();
if (! $quote->hasProductId($productId)) {
// Product is not in the shopping cart so
// go head and show the popup.
}
,如果你面对的父/子类产品而你只想要测试父ID,然后在:
$productId = 1;
$quote = Mage::getSingleton('checkout/session')->getQuote();
$foundInCart = false;
foreach($quote->getAllVisibleItems() as $item) {
if ($item->getData('product_id') == $productId) {
$foundInCart = true;
break;
}
}
编辑
的问题是在评论中询问为什么设置controller_action_predispatch_checkout_cart_add
中的注册表值无法在cart.phtml中检索。
基本上注册表值只能通过一个请求的生命 - 你正在发布到结帐/购物车/添加,然后被重定向到结帐/购物车/索引 - 所以你的注册表值丢失。
如果你想持续在这些值,那么你可以改用会话:
在您的观察:
Mage::getSingleton('core/session')->setData('your_var', 'your_value');
检索值
$yourVar = Mage::getSingleton('core/session')->getData('your_var', true);
真正的旗帜传递到的getData将从SESS删除值离子为你。
为了检查该产品是否已在购物车或没有,你可以简单地使用下面的代码:
$productId = $_product->getId(); //or however you want to get product id
$quote = Mage::getSingleton('checkout/session')->getQuote();
$items = $quote->getAllVisibleItems();
$isProductInCart = false;
foreach($items as $_item) {
if($_item->getProductId() == $productId){
$isProductInCart = true;
break;
}
}
var_dump($isProductInCart);
希望这有助于!
感谢您的回复..它是完美的解决方案。我在观察者中使用了这个逻辑,现在我的问题是如何在购物车页面上获得$ isProductInCart值,因为我希望此值显示购物车页面中的弹出窗口。一个phtml文件中的变量值... – Tamanna 2012-07-27 10:27:33
您可以简单地在产品ID作为函数参数的某些函数中包装上述代码,并且可以从任何地方调用它。 – MagePsycho 2012-07-27 10:33:51
我的回答也被低估了 – 2012-07-27 18:39:39
- 1. Magento - 如何检查商品已添加到购物车
- 2. Magento:产品添加到购物车
- 3. Codeigniter购物车 - 检查商品是否已添加到购物车
- 4. Magento - 如何检查产品是否已从购物车中移除
- 5. Magento Ajax检查购物车是否已包含产品或者当前产品是否已添加到购物车
- 6. 如何添加产品到购物车?
- 7. 检查Magento购物车是否有特定AttributeSetName产品
- 8. Android-Magento-如何使用ksop2添加产品到购物车
- 9. 如何将隐藏的产品添加到magento购物车?
- 10. 如何检查类别产品是否在购物车中
- 11. WordPress的购物车添加动态产品到购物车
- 12. Magento:Nick-naming产品添加到购物车
- 13. 将产品添加到购物车
- 14. Virtuemart:产品不添加到购物车
- 15. 添加产品到购物车Rails
- 16. 产品未添加到购物车
- 17. 将产品添加到购物车WooCommerce?
- 18. Magento产品未加入购物车
- 19. 使用拖放在magento中添加产品到购物车
- 20. Magento Theme在IE(Javascript)中将产品2x添加到购物车
- 21. 跟踪客户在Magento中将产品添加到购物车
- 22. Magento附加产品未添加到购物车product_addtocart_form
- 23. Magento的AJAX添加到购物车产品未找到错误
- 24. 仅将基础产品添加到Magento中捆绑产品的购物车中
- 25. 在magento中添加产品时,如何检查产品是否已被选定?
- 26. Magento从订购商品中添加可配置产品到购物车
- 27. 阿贾克斯添加到购物车未将产品添加到购物车
- 28. Magento购物车:检查商品清空购物车
- 29. PHP和SQL的购物车是不是将产品添加到购物车
- 30. magento:无法将产品添加到购物车 - 主钥匙
我在使用“controller_action_predispatch_checkout_cart_add”获取产品ID之前,它将其添加到购物车..我使用寄存器变量获取产品ID在购物车上的phtml页面......并准备一个函数进行条件检查。但现在我无法在注册表页面上获得productid ..请帮我解决这个问题.. – Tamanna 2012-07-27 12:37:17
已经更新了答案,以便为你解释这个问题 – 2012-07-27 13:17:49
非常感谢你Drew Hunter ..对我来说一个完美的解决方案。谢谢你的帮助...:):) – Tamanna 2012-07-27 13:43:58