好的,一直在搜索这个,并且无法想出任何东西......我们通过Dydacomp的邮件订单管理器软件的同步程序在Magento社区1.7.0.2中外部填充跟踪号码... - 它关闭了在Magento中订购并添加跟踪号,但不会在法师中触发发送跟踪电子邮件功能。 - 我已经研究过,并且看到有观察员等似乎可以做到这一点,但是经过20个小时搜索我能找到的每个博客等等都无法提出任何有用的东西!
这个链接似乎真正朝着正确的方向......但是在哪里放置这段代码?我已经尝试过把它放在各种各样的地方,但都没有用: Programmaticly send email when shipping tracking number is set
非常感谢任何帮助。
答案 0 :(得分:1)
要在cron magento模块中运行一个函数,请添加到config.xml
<crontab>
<jobs>
<myModule_myFunction>
<schedule><cron_expr>*/60 * * * *</cron_expr></schedule>
<run><model>emailtracker/cron::myFunction</model></run>
</myModule_myFunction>
</jobs>
</crontab>
有关耗材的订单,您可以使用以下代码段
$orders = Mage::getModel('sales/order')->getCollection()
->addFieldToFilter('status', 'complete')
->addAttributeToFilter('created_at', array('gteq' => $dataForFilter));
请注意我创建的订单集合,我按日期过滤以避免检索已经完成的所有订单。
通过收集最近和完整的订单,可以接收跟踪电子邮件,我实际上可以处理重要的订单。
我创建了一个foreach来运行我的集合并在该循环中,检索跟踪号。
foreach($orders as $order) {
$trackings = Mage::getResourceModel('sales/order_shipment_track_collection')
->setOrderFilter($order)
->getData();
for($i=0;$i<count($trackings);$i++) {
$trackingNumber = $trackings[$i]['track_number'];
//Make your php magic here
}
}
从这一点开始,您可以按照自己的方式处理此信息。您可以创建一个功能,通过API检查跟踪号的状态,并且其传递服务发送电子邮件,或者您可以想象。
重要提示:请记住检查您的magento cron是否处于活动状态。 注意:我是在Magento 1.6.1.0
中完成的