2011-11-29 4 views
2

주문 완료시 이메일을 보낼 이벤트 관찰자를 만들었습니다. category1에서 제품을 주문한 경우 email_address1로 전자 메일을 보내고 cateogory2에서 제품을 주문한 경우 email_address2로 전자 메일을 보냅니다. 그러므로 저는 이것을위한 관찰자 이벤트를 만들었습니다.magento sales_order_place_after 관찰자가 작동하지 않음

하지만 '주문하기'버튼을 클릭해도 아무런 변화가 없습니다. 문제가 무엇입니까? 마 젠토/응용 프로그램/등/모듈/Custom_Email.xml에서

: 마 젠토에

<?xml version="1.0"?> 
<config> 
    <modules> 
     <Custom_Email> 
      <codePool>local</codePool> 
      <active>true</active> 
     </Custom_Email> 
    </modules> 
</config> 

/응용 프로그램/코드/지역/사용자 정의/이메일/등/config.xml에 :

<?xml version="1.0"?> 
<config> 
    <global> 
     <models> 
      <customemail> 
       <class>Custom_Email_Model</class> 
      </customemail> 
     </models> 
<events> 
     <sales_order_place_after> 
      <observers> 
       <custom_email_order_observer> 
        <type>singleton</type> 
        <class>customemail/order_observer</class> 
        <method>sendOrder</method> 
       </custom_email_order_observer> 
      </observers> 
     </sales_order_place_after> 
    </events> 
     </global> 
</config> 

마 젠토/응용 프로그램/코드/지역/사용자 정의/이메일/모델/주문/Observer.php :

<?php 
class Custom_Email_Model_Order_Observer 
{ 
    public function __contruct() 
    { 

    } 

    /** 
    * Exports new orders to an xml file 
    * @param Varien_Event_Observer $observer 
    * @return Feed_Sales_Model_Order_Observer 
    */ 
public function sendOrder($observer){ 
    $order = $observer->getEvent()->getOrder(); 
    $cat_id = Mage::getModel('catalog/layer')->getCurrentCategory()->getId(); 
    echo $cat_id; 
      //Implement logic here 
      ... 

    $emailTemplate = Mage::getModel('core/email_template') 
        ->loadDefault('rehab');        
    $emailTemplateVariables = array(); 
    $emailTemplateVariables['order'] = $order;  
    $emailTemplate->setSenderName('Your shops name'); 
    $emailTemplate->setSenderEmail('[email protected]'); 
    $emailTemplate->setTemplateSubject('Subject'); 
    $emailTemplate->send('[email protected]','Name', $emailTemplateVariables); 
echo 'email sent';  
} 
} 
?> 

그래서 어떤 사람은 문제가 어디에 알아?

+2

관찰자를 확인 했습니까? (예를 들어 로그를 넣으십시오). 기록에 뭐라도있어? – OSdave

+0

@sidrasultana : "아무 일도 일어나지 않는"것을보다 정확하게 정의하십시오. –

+0

@OSdave : 내 관찰자가 어떻게 확인됩니까? – Ahmad

답변

1

계층이 주문 컨텍스트에 없으며 제품을 선택한 범주가 견적 또는 주문 항목의 속성으로 사용할 수 없습니다. 불행히도 분할을 제한하는 Magento의 알려진 결함입니다.

+1

동의 함, 그러나 설명하지 않음, "주문하기"를 클릭 한 후 "아무 반응이 없음". 현재 우리는 후크에 도달했는지 여부를 알지 못합니다. OP는 아직 OSdave의 질문에 대답하지 않았습니다. 아마 OP가 Ajax 오류를 발생시켜 이벤트 전달에 도달하기까지 ^^ –

+0

동의어, Jürgen,이 게시물은 실제로 http://stackoverflow.com/questions/8265989/how-to-send-category-based-order에 속해 있지만 -email-in-magento (이 질문은 거기에 링크되어 있습니다). 제안하신 내용이 정확하므로 +1했습니다 :-) – benmarks

관련 문제