我开发了类似的东西。我创建了一个由 cron 激活的模块(每天一次),用于检查最后一个“已交付”的订单(完成状态)。
要在你的 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>
为了有货的订单可以使用下面的代码sn-p
$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 中完成的