2010-12-09 21 views
0

私はこの作業をしていますが、私はそれに固執しています。顧客が購入したカテゴリ名を取得しようとしています。この情報は通常設定されていません。だから最初のステップで私はイベントcheckout_cart_product_add_afterをキャプチャし、製品のカテゴリを設定しようとしています。商品を購入したカテゴリを取得する

だから私のObserver.phpに私がで、現在のカテゴリを取得しよう:

Mage::registry('current_category')->getName()

が、current_categoryオブジェクトがメイジレジストリに設定されていないことが表示されます。どのようにカテゴリを商品に別の方法で追加できますか? (製品は多くのカテゴリに属しているかもしれませんが、購入した製品のみが必要です)。

よろしく、 ヴェントゥス

答えて

1

このデータをユーザーセッションに保存それほど良い考えではありません。別の方法があります。 商品ページには、$product->getCategory()->getEntityId()で受信できる現在のカテゴリIDの隠し番号inputタグを追加します。

第2ステップはより困難です。以前はとsales_flat_order_itemに新しいフィールド(属性)を追加しました。これはfrom_category(私のカスタム名;)です)。今私はイベントsales_quote_save_beforeのためにオブザーバーを使用し、私は見積項目に私のカスタム属性を設定しました。


<fieldsets> 
    <sales_convert_quote_item> 
    <from_category> 
     <to_order_item>*</to_order_item> 
    </from_category> 
    </sales_convert_quote_item> 
</fieldsets> 

今、私はチェックアウト時に、それを使用することができます。私のカスタムでアイテムを注文するために引用項目を変換するには

は、私はちょうどglobalセクションをからconfig.xmlに追加属性。

1

メイジ::レジストリをあなたのセッションオブジェクトを作成し、保存する( 'current_category') - >のgetName();そこ:あなたは、ユーザーが製品ページを離れ

  • を移動した場合でも、それを得ることができ、これは空で、クライアントが直接
  • 製品ページにアクセスした場合

    • あなたは何をすべきかを決定することができます

      もちろん、これは簡単な解決策ではないことをクライアントに伝えることができます。代わりにGoogleアナリティクスの目標到達プロセスを設定し、ページ上のクライアントの所在に関する正しい統計情報を得ることができます

    関連する問題