2015-06-15 3 views
2

На моей странице list.phtml, я хочу, чтобы мой PHP-скрипт мог определить, находится ли какой-либо продукт в корзине, на основе его SKU.Magento: Является ли определенный товар в корзине?

Так мой условный бы теоретически так:

$_sku = 123; 

if($_sku->isInBasket() == true){ 
    echo 'Product: ' . $_sku . ' is in the cart'; 
} 

Как это может быть достигнуто реально?

+1

http://stackoverflow.com/questions/11670419/how-to-check-if-a-magento-product-is-already-added-in-cart-or-not –

ответ

0

Fetch все данные сессии оформления заказа и проверить выходы продукта в текущей сессии

$quote = Mage::getSingleton('checkout/session')->getQuote(); 

$foundInCart = false; 
foreach($quote->getAllVisibleItems() as $item) { 
    if ($item->getData('sku') == $_sku) { 
     $foundInCart = true; 
     break; 
    } 
} 

это очень плохо для проверки на SKU.

Из-за всякого конфигурируемого продукта тележка, то простой продукт sku in db.

Поэтому вам необходимо проверить использование идентификатора продукта. Для этого случая вам нужно найти идентификатор $ sku по Mage::getModel('catalog')->loadBySku($sku); перед запуском продуктов foreach loop.

$_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; 
    } 
} 
+3

Код плагиатом этот ответ. http://stackoverflow.com/a/11672465/2812842 –

Смежные вопросы