在我的list.phtml页面上,我希望我的PHP脚本能够根据它的SKU来判断购物车中是否有任何产品。
所以我的条件理论上会是这样的:
$_sku = 123;
if($_sku->isInBasket() == true){
echo 'Product: ' . $_sku . ' is in the cart';
}
如何实现这一目标?
答案 0 :(得分:0)
从结帐会话中获取所有数据并检查当前会话中的产品退出
$quote = Mage::getSingleton('checkout/session')->getQuote();
$foundInCart = false;
foreach($quote->getAllVisibleItems() as $item) {
if ($item->getData('sku') == $_sku) {
$foundInCart = true;
break;
}
}
通过sku检查真的很糟糕。
因为无论什么时候可配置的产品购物车都是db。中的简单产品sku。
因此您需要使用产品ID进行检查。对于这种情况,您需要通过Mage::getModel('catalog')->loadBySku($sku)
找到$ sku的ID;在产品foreach循环开始之前。
$_skuPId='';
$matchPro=Mage::getModel('catalog')->loadBySku($sku);
if($matchPro->getId()){
$_skuPId=$matchPro->getId();
}
$quote = Mage::getSingleton('checkout/session')->getQuote();
$foundInCart = false;
foreach($quote->getAllVisibleItems() as $item) {
if ($item->getData('prodduct_id') == $_skuPId) {
$foundInCart = true;
break;
}
}