如何在magento中发送基于类别的订单电子邮件?

时间:2011-11-25 07:36:51

标签: magento

我的magento网站中有两个根类别。一个是“家庭产品”,另一个是“办公产品”。

这两个根类别也有一些子类别 我想将“Home Products”相关订单发送到此电子邮件地址“email_home@example.com”,
并将“Office Products”相关订单发送到此电子邮件地址“email_office@example.com”。

我将如何做到这一点?

2 个答案:

答案 0 :(得分:1)

我建议您编写自己的Observer来订购。

sales_order_place_after

活动最适合您的目的。

如果买家只能从1个cateogry添加到购物车商品。

您的模块应该:

  1. 通过观察员获取订单。
  2. 获取订单第一项并获取其类别
  3. 根据类别选择电子邮件
  4. 发送电子邮件

     public function sendOrder(){
        $order = $observer->getEvent()->getOrder(); 
                ...
                //Implement logic here
                ...
    
        $emailTemplate  = Mage::getModel('core/email_template')
                        ->loadDefault('your_template');                            
        $emailTemplateVariables = array();
        $emailTemplateVariables['order'] = $order;      
        $emailTemplate->setSenderName('Your shops name');
        $emailTemplate->setSenderEmail('addres@from.com');
        $emailTemplate->setTemplateSubject(Subject');
        $emailTemplate->send('to@addres.com','Name', $emailTemplateVariables);          
     }
    

    更新1

    首先,我坚持要求您在评论区域中看到我提供的链接。

    然后: 要创建模块:

    1. 在app / etc / modules / Company_Module.xml文件中创建。内容与此类似:

                                                 真正                 本地                            这个eill告诉magento,在app / code / local / Company / Module中有一些值得关注的东西。

    2. 创建正确的文件夹和文件结构。 对于你的模块,我认为这就足够了:

      Company
      -Module
      --etc
      ---config.xml
      --Model
      ---Observer.php
      --Helper
      ---Data.php
      
    3. Magento应该了解您的模块的一切。此外,您应该为事件定义观察者。 重要提示:我们将抓住Magento的活动。不是我们的。
    4. config.xml中:

          <?xml version="1.0"?>
          <config>
              <modules>
                  <Company_Module>
                      <version>0.1.0</version>
                  </Company_Module>
              </modules>
              <global>
                  <models>
                      <company_module>
                          <class>Company_Module_Model</class>
                      </company_module>
                  </models>
                  <helpers>
                      <cmod>
                          <class>Company_Module_Helper</class>
                      </cmod>
                  </helpers>
                  <events>
                      <sales_order_place_after>
                          <observers>
                              <sales_order_place_after_observer>
                                  <class>company_module/observer</class>
                                  <method>handleOrder</method>
                              </sales_order_place_after_observer>
                          </observers>
                      </sales_order_place_after>
                  </events>
              </global>
          </config>
      

      Data.php - 它是空的,但应该是。

          class Company_Module_Helper_Data extends Mage_Core_Helper_Abstract{
      
          }
      

      Observer.php

          class Company_Module_Model_Observer{
                  public function handleOrder($observer){
                          $order = $observer->getEvent()->getOrder();   
                                  ...
                                  //Implement logic here
                                  ...
      
                          $emailTemplate  = Mage::getModel('core/email_template')
                                  ->loadDefault('your_template');                            
                          $emailTemplateVariables = array();
                          $emailTemplateVariables['order'] = $order;        
                          $emailTemplate->setSenderName('Your shops name');
                          $emailTemplate->setSenderEmail('addres@from.com');
                          $emailTemplate->setTemplateSubject(Subject');
                          $emailTemplate->send('to@addres.com','Name', $emailTemplateVariables); 
                  }
          }
      

答案 1 :(得分:0)