我目前正在使用批量导入+导出订单到CSV扩展程序:
https://www.magentocommerce.com/magento-connect/bulk-import-export-orders-to-csv.html
我需要的主要功能是导出订单功能,工作正常。因为这可以让我将magento订单导入订单处理系统,该系统用于运送产品。
我想要实现的是让导出功能自动运行,最好是在收到每个订单后。如果不是至少在一天中的某些时间。
我环顾四周似乎找不到我需要查找的信息来修改它以允许cron功能。生成的csv文件非常适合我的处理系统,订单扩展不会根据需要格式化文件。
我不是最有经验的,但我正在学习。请有人指出我需要查看的地方,以便通过cron作业提供导出功能。
所有建议都表示赞赏,该网站正在运行magento 1.9.2.2。
由于
答案 0 :(得分:0)
您需要添加一个观察者,该观察者在每个下订单后触发,或者每天按计划发射一次/两次的cronjob。
每个订单后的观察者:
编辑:
app/code/community/Raveinfosys/Exporter/etc/config.xml
添加:
<!-- Add to global tag for frontend/backend orders -->
<events>
<sales_order_place_after>
<observers>
<!-- Can be named anything so long as it doesn't clash so make it specific -->
<namespace_export_orders_after_each_order>
<class>Raveninfosys_Exporter_Model_Observer</class>
<method>exportOrders</method>
</namespace_export_orders_after_each_order>
</observers>
</sales_order_place_after>
</events>
然后创建调用导出顺序函数的观察者:
app/code/community/Raveinfosys/Exporter/Model/Observer.php
<?php
class Raveinfosys_Exporter_Model_Observer
{
public function exportOrders( Varien_Event_Observer $oObserver )
{
$oOrder = $oObserver->getEvent()->getOrder();
if( $oOrder && $oOrder->getId() )
{
Mage::getModel('exporter/exportorders')->exportOrders( array( $oOrder->getId() ) );
}
}
}
按计划出口多个订单的Cronjob:
编辑:
app/code/community/Raveinfosys/Exporter/etc/config.xml
<crontab>
<jobs>
<raveinfosys_exporter_cron>
<schedule>
<!-- Edit this to controller how often to export -->
<cron_expr>*/1 * * * *</cron_expr>
</schedule>
<run>
<model>raveinfosys_exporter/exportorders::checkForRejectedMessages</model>
</run>
</raveinfosys_exporter_cron>
</jobs>
</crontab>
并在以下方法中添加以下方法:
app/code/community/Raveinfosys/Exporter/Model/Exportorders.php
public function exportCronOrders()
{
// Edit this date to correspond with the order timeframe.
// There may be overlaps and you may need to add a flag to orders to indicate if they have already been exported.
$sYesterday = date( 'Y-m-d H:i:s', strtotime( 'yesterday' ) );
$oOrders = Mage::getModel( 'sales/order' )->getCollection()->addFieldToFilter( 'created_at', array( 'gt'=> $sYesterday ) );
$fileName = 'order_export_'.date("Ymd_His").'.csv';
$fp = fopen(Mage::getBaseDir('export').'/'.$fileName, 'w');
$this->writeHeadRow($fp);
foreach ($oOrders as $oOrder)
{
$this->writeOrder($oOrder, $fp);
}
fclose($fp);
}
答案 1 :(得分:0)
我想指出用于向config.xml文件添加观察者的代码中存在拼写错误:
行: Raveninfosys_Exporter_Model_Observer 应该: Raveinfosys_Exporter_Model_Observer
即。是正确的“Raveinfosys”而不是“Raveninfosys”