0

製品がカートに追加されたときにキャッチするために、Magento 1.7.0.2 でオブザーバーを使用しようとしています。

そのイベントが発生した後 (イベント checkout_cart_add_product_complete だと思います)、顧客が購入したばかりの製品の概要を示すポップアップを表示したいと思います。これは、カート内の商品ラインに表示されるものです。

このイベントをキャッチするモジュールを構築しようとしましたが、同じイベントがあるかどうか、どのモデルを使用する必要があるかなど、ほとんどすべてをテストする方法が見つかりません。

ここまで、ここまで書いてきました

public function checkoutCartAddProductComplete (Varien_Event_Observer $observer)
{
    $product = $observer->getEvent()->getProduct();
    $session = Mage::getSingleton("checkout/session")->addSuccess($message);
    $message = $this->__('Changed! You added %s to your shopping cart.', Mage::helper('core')->escapeHtml($product->getName()));
    $session->addSuccess($message);
}

ただし、そのコードをインターネットから取得しましたが、機能していないようです。

\app\code\core\Mage\Checkout\controllers\CartController.php (205 行目あたり) には、eventDispatcher とメッセージを表示するコードを示すものがありますが、これを実際に移植する方法がわかりません。ファイル全体をコピーして上書きすることを除いて、モジュール。

これをモジュールとして実行しようとしているので、さまざまなプロジェクトで使用できますが、それ自体がプロジェクトであることが判明しています...

4

1 に答える 1

0

$session 変数は次のように設定されます。

$session = Mage::getSingleton("checkout/session")->addSuccess($message);

しかし同時に、あなた$messageはまだ準備ができていません。

したがって、メッセージを設定してメッセージを保存しようとしているときは、実際に行っています。

Mage::getSingleton("checkout/session")->addSuccess($message)->addSuccess($message);

セッション変数から削除->addSuccess($message);すれば問題ありません。

于 2013-05-22T14:53:46.443 に答える