Magento - получить элементы корзины для данного идентификатора продукта - PullRequest
6 голосов
/ 05 декабря 2011

Я пытаюсь получить элементы корзины для данного товара;

Я пробовал этот код:

$product = Mage::getModel('catalog/product')
    ->setStoreId(Mage::app()->getStore()->getId())
    ->load('2784');

$quote = Mage::getSingleton('checkout/cart')->getQuote();
$cartItems = $quote->getItemByProduct($product);
foreach ($cartItems as $item) {
    echo $item->getId()."<br/>";
}

, но он ничего не дает.

Как я могу изменить свой код, чтобы использовать "getItemByProduct" в правильной форме?

Спасибо за помощь.

Ответы [ 3 ]

10 голосов
/ 05 декабря 2011

getItemByProduct() возвращает первое совпадение Mage_Sales_Model_Quote_Item, поэтому дополнительный цикл не требуется.

$item = $quote->getItemByProduct($product);
if ($item !== false) echo $item->getId();
1 голос
/ 16 апреля 2014

Вы не можете использовать функцию getItemByProduct() на модели checkout/cart или checkout/quote, поскольку этот метод относится к модели sales/quote.

Этот метод можно найти на Mage_Sales_Model_Quote class.поэтому он используется с sales/quote.надеюсь, что это полезно.

1 голос
/ 05 декабря 2011

Я бы использовал

foreach ($quote->getItems() as $item) {
    if ($item->getProductId() == $product->getId()) {
        print_r($item->getData());
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...