2012-02-07 5 views
1

Magento(Enterprise)からCatalogEvent情報を受け取って保存し、その情報をカスタム処理する拡張機能に取り組んでいます。Magento Enterprise CatalogEvent

は、ここで私はイベントに耳を傾けるために使用するコードです:

<?xml version="1.0"?> 
<config> 
    <global> 
    <models> 
     <mage4ucustomredirect> 
      <class>Mage4u_Customredirect</class> 
     </mage4ucustomredirect> 
    </models> 
    <events> 
     <enterprise_catalogevent_event> 
      <observers> 
       <abc> 
        <type>singleton</type> 
        <class>Mage4u_Customredirect_Model_Observer</class> 
        <method>on_enterprise_catalogevent_event</method> 
       </abc> 
      </observers> 
     </enterprise_catalogevent_event> 
    </events> 
    </global> 
</config> 

、これは、観察者である:

class Mage4u_Customredirect_Model_Observer 
{ 
    public function on_enterprise_catalogevent_event(Varien_Event_Observer $observer) 
    { 
     Mage::log("on_enterprise_catalogevent_event"); 
    } 

} 
?> 

私はCatalogEventを保存すると、私はコールを受信しません。私のコードの問題を見つけることができますか?

答えて

0

enterprise_catalog_eventモデルではなくイベントあるので、あなたのオブザーバーは、呼び出されません。

app/code/core/Enterprise/CatalogEvent/etc/config.xmlを参照してください:

<config> 
    : 
    <global> 
     <models> 
      <enterprise_catalogevent> 
       <class>Enterprise_CatalogEvent_Model</class> 
       <resourceModel>enterprise_catalogevent_resource</resourceModel> 
      </enterprise_catalogevent> 
      <enterprise_catalogevent_resource> 
       : 
       <entities> 
        <event> 
         <table>enterprise_catalogevent_event</table> 
        </event> 
        : 
       </entities> 
      </enterprise_catalogevent_resource> 
     </models> 
     : 
    </global> 
    : 
</config> 

私の知る限りenterprise_catalogevent/eventは、独自のセーブイベントを送出しませんが、あなたは、このようなモデルが保存/作成されるたびにコールバックを受け取るために、一般的なmodel_save_beforeまたはmodel_save_afterイベントを観察することができました。

あなただけの最初にこれらの一般的なイベントに渡されるオブジェクトを識別する必要があります:返信用

$oObject = $observer->getEvent()->getObject(); 
if ($oObject instanceof Enterprise_CatalogEvent_Model_Event) { 
    if ($oObject->isObjectNew()) { 
     // it is/was a create 
    else { 
     // it is/was a save 
    }   
} 
+0

ありがとう。なぜそれが動作していないのかわかります...しかし、どのイベントを利用すればよいのですか?CatalogEventが作成/保存されるたびにコールバックを受け取ることができますか? – Bassam

+0

私の答えを更新しました。 –

+0

WowJürgen...それは動作します!大変ありがとうございました!あなたは最高です:-) – Bassam

0

これを試してください:

<events> 
    <enterprise_catalogevent_event> 
     <observers> 
      <mage4u_customredirect_model_observer> 
       <type>singleton</type> 
       <class>Mage4u_Customredirect_Model_Observer</class> 
       <method>on_enterprise_catalogevent_event</method> 
      </mage4u_customredirect_model_observer> 
     </observers> 
    </enterprise_catalogevent_event> 
</events> 
+0

感謝を。私はそれを試した...何も変わっていない。あなたが使用しているイベント名が正しいことを確認できますか?私は "enterprise_catalogevent_event"を意味します – Bassam

+0

このイベントトリガーを試みてください:catalogevent_event_save_after – sondoha

+0

いいえ...これはどちらも動作しません – Bassam