我想显示弹出当产品第一次添加到购物车在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. 如何将隐藏的产品添加到magento购物车?
- 4. Android-Magento-如何使用ksop2添加产品到购物车
- 5. WordPress的购物车添加动态产品到购物车
- 6. 产品未添加到购物车
- 7. 添加产品到购物车Rails
- 8. Magento:Nick-naming产品添加到购物车
- 9. 将产品添加到购物车WooCommerce?
- 10. 跟踪客户在Magento中将产品添加到购物车
- 11. 在magento中添加产品时,如何检查产品是否已被选定?
- 12. Magento购物车:检查商品清空购物车
- 13. Magento将可配置产品添加到购物车
- 14. magento:无法将产品添加到购物车 - 主钥匙
- 15. Magento:将产品添加到购物车后减少库存
- 16. 通过SKU添加可配置产品到购物车 - Magento
- 17. Magento的:同样的产品添加到购物车几次
- 18. Magento - 添加到购物车的数量字段Upsell产品
- 19. Magento - 使用循环将产品添加到购物车
- 20. Magento SOAP API v2 - 将可配置产品添加到购物车
- 21. Magento的:添加一个“假”的产品到购物车/报价
- 22. 多个产品添加到购物车 - Magento的
- 23. Magento:将产品添加到购物车后减少库存
- 24. 添加选项价值产品,然后到Magento购物车
- 25. 检查购物车是否有任何分组产品
- 26. Jquery添加购物车产品 - ideasoft
- 27. 在显示当我尝试将产品添加到Magento的购物车结账购物袋购物车
- 28. 添加产品ID到购物车产品分类
- 29. 检查特定产品是否在我的购物车
- 30. 添加到购物车显示“您的购物车中没有产品”?
我在使用“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