Magento - Как проверить, был ли продукт уже удален из корзины - PullRequest
1 голос
/ 23 ноября 2010

Я пишу небольшой модуль, который будет автоматически добавлять товар в корзину (на основе определенных критериев).Однако, если пользователь впоследствии удалит этот автоматический продукт из корзины, который мне нужно знать, чтобы я не добавил его снова в текущем сеансе.

Содержит ли объект корзины что-либо, что может сказать мне, еслиуже удален из корзины?

Ответы [ 2 ]

2 голосов
/ 24 ноября 2010

Magento не ведет учет того, какие предметы были удалены, вам придется сделать это самостоятельно.Начните с прослушивания события;

app / local / YOURMODULE / etc / config.xml

<config>
...
    <frontend>
        <events>
            <sales_quote_remove_item>
                <observers>
                    <class>YOURMODULE/observer</class>
                    <method>removeQuoteItem</method>
                </observers>
            </sales_quote_remove_item>
        </events>
    </frontend>
...

app / local / YOURMODULE / Model /Observer.php

<?php

class YOU_YOURMODULE_Model_Observer
{
    public function removeQuoteItem(Varien_Event_Observer $observer)
    {
        $product = $observer->getQuoteItem()->getProduct();
        // Store `$product->getId()` in a session variable
    }
}

?>

Создайте класс сеанса, который расширяет Mage_Core_Model_Session_Abstract, и используйте его для хранения идентификаторов продуктов, которые вы собираете в приведенном выше наблюдателе.Затем вы можете обратиться к этому объекту сеанса (называемому Mage::getSingleton()), чтобы увидеть, какие товары были в корзине.

0 голосов
/ 23 ноября 2010

Да, вы можете получить текущие товары в корзине, как это: -

foreach ($session->getQuote()->getAllItems() as $item) {

    $output .= $item->getSku() . "<br>";
    $output .= $item->getName() . "<br>";
    $output .= $item->getDescription() . "<br>";
    $output .= $item->getQty() . "<br>";
    $output .= $item->getBaseCalculationPrice() . "<br>";
    $output .= "<br>";
}

Эта ссылка может быть полезной http://www.magentocommerce.com/boards/viewthread/19020/

...