Php Magento:购物车里有某种产品吗?
在我的list.phtml页面上,我希望我的PHP脚本能够根据商品的SKU判断购物车中是否有商品 所以我的条件理论上是这样的:Php Magento:购物车里有某种产品吗?,php,magento,Php,Magento,在我的list.phtml页面上,我希望我的PHP脚本能够根据商品的SKU判断购物车中是否有商品 所以我的条件理论上是这样的: $_sku = 123; if($_sku->isInBasket() == true){ echo 'Product: ' . $_sku . ' is in the cart'; } 如何切实做到这一点?从签出会话中获取所有数据,并在当前会话中检查产品出口 $quote = Mage::getSingleton('checkout/sessio
$_sku = 123;
if($_sku->isInBasket() == true){
echo 'Product: ' . $_sku . ' is in the cart';
}
如何切实做到这一点?从签出会话中获取所有数据,并在当前会话中检查产品出口
$quote = Mage::getSingleton('checkout/session')->getQuote();
$foundInCart = false;
foreach($quote->getAllVisibleItems() as $item) {
if ($item->getData('sku') == $_sku) {
$foundInCart = true;
break;
}
}
按sku检查真的很糟糕
因为无论何时都可以配置产品购物车,然后是数据库中的简单产品sku
因此,您需要使用产品id进行检查。对于这种情况,您需要通过Mage::getModel('catalog')->loadBySku($sku)
找到$sku的id;在每个循环的产品开始之前
$_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;
}
}
代码是从这个答案中剽窃的。