Я создал наблюдателя событий, который будет отправлять электронную почту по завершении заказа. Я отправляю электронное письмо по адресу email_address1, когда продукт заказывается из категории1 и отправляет электронное письмо по адресу email_address2, когда продукт заказывается из cateogory2. Поэтому я создал для этого событие наблюдателя.
Но когда я нажимаю кнопку «Заказ места», ничего не происходит. В чем проблема?
в magento / app / etc / modules / Custom_Email.xml:
<?xml version="1.0"?> <config> <modules> <Custom_Email> <codePool>local</codePool> <active>true</active> </Custom_Email> </modules> </config>
в magento / app / code / local / Custom / Email / etc / 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>
в magento / app / code / local / Custom / Email / Model / Order / 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('addres@from.com'); $emailTemplate->setTemplateSubject('Subject'); $emailTemplate->send('to@addres.com','Name', $emailTemplateVariables); echo 'email sent'; } } ?>
Итак, кто-нибудь знает, где проблема?
Этот слой не существует в контексте заказа, а также не является категорией, из которой выбран продукт в качестве свойства котировки или позиций заказа. Это известный недостаток Magento, который, к сожалению, ограничивает сегментацию.