我正在寻找一种方法,以便在为订单分配跟踪号时以编程方式向用户发送电子邮件.我需要能够以编程方式执行此操作,因为我使用外部源来填充跟踪信息.
我想我在这里真正需要的是一个特定的触发器或事件,我可以用来触发当管理员点击"发送跟踪信息"按钮时通常会发送的电子邮件.我已经浏览了核心代码,并且无法指出按下该按钮时实际触发的操作.
我们正在使用第三方(eBridge)连接我们的销售工具.一旦订单被标记为已发货并且跟踪号输入到eBridge工具中,它将与magento对话并将跟踪号输入到订单中.问题在于它没有告诉magento发送电子邮件以向客户提供这个新输入的跟踪号码.我想要做的是,一旦将信息发送到magento,就会从magentos端发送一封电子邮件.这可能吗?简而言之,我们想要的是能够让magento发送带有跟踪信息的电子邮件,而无需手动输入每个订单并单击"发送跟踪信息"按钮.
我正在尝试为magento编写一个观察员,当订单被标记为已发货且已获得跟踪编号时将触发该观察员.
当我通过管理员进入并下订单,发票然后去运送我需要调用的功能从未实际调用,我不明白为什么.
我在magento网站上浏览了几页以了解我可能做错了什么,但我无法弄明白(http://www.magentocommerce.com/wiki/5_-_modules_and_development/0_-_module_development_in_magento/ customizing_magento_using_event-observer_method&http://www.magentocommerce.com/knowledge-base/entry/magento-for-dev-part-2-the-magento-config).
请注意,我确实在管理高级区域中看到该模块并且已启用.
如果有人可以查看我附上的代码,让我知道我的问题在哪里,我将不胜感激.
这是我的Observer类,它位于app/code/local/WR/TrackingEmail/Model/Observer.php中
class WR_TrackingEmail_Model_Observer
{
public function sendTrackEmail($observer)
{
$track = $observer->getEvent()->getTrack();
$shipment = $track->getShipment(true);
$shipment->sendEmail();
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的模块的config.xml
<config>
<global>
<modules>
<wr_trackingemail>
<version>0.1.1</version>
</wr_trackingemail>
</modules>
<events>
<sales_order_shipment_track_save_after>
<observers>
<Wr_trackingemail_model_observer>
<type>singleton</type>
<class>WR_TrackingEmail_Model_Observer</class>
<method>sendTrackEmail</method>
</Wr_trackingemail_model_observer>
</observers>
</sales_order_shipment_track_save_after>
</events>
</global>
</config>
Run Code Online (Sandbox Code Playgroud)
这是我的app/etc/modules/WR_TrackingEmail.xml
<config>
<modules>
<WR_TrackingEmail>
<active>true</active>
<codePool>local</codePool>
</WR_TrackingEmail>
</modules>
</config>
Run Code Online (Sandbox Code Playgroud)