1

(特定の基準に基づいて)カートに製品を自動的に追加する小さなモジュールを作成しています。ただし、その後ユーザーがその自動商品をカートから削除した場合は、現在のセッションで再度追加しないように知っておく必要があります。

カートオブジェクトには、商品がカートからすでに削除されているかどうかを知ることができるものがありますか?

4

2 に答える 2

2

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それを使用して、上記のオブザーバーで収集した製品IDを保存します。次に、そのセッションオブジェクト(によって呼び出されるMage::getSingleton())を参照して、カートにあった製品を確認できます。

于 2010-11-24T16:06:33.967 に答える
0

はい、次のようにカートに現在のアイテムを入れることができます:-

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/

于 2010-11-23T10:42:18.273 に答える