ERP订单数据拖取

脚本定时任务操作,通过api,将商城平台的订单拖取(Pull)到erp订单表中

ERP订单数据拖取脚本

通过该脚本,进行订单数据拖取

1.脚本文件

文件路径:./addons/fecmall/fecerp/shell/order.sh

打开这个文件,你会发现2个部分,上面ORDER PULL部分就是订单拖取脚本

因为php的内存机制,php的脚本不易执行时间过长,因此,这里使用的是shell进行 的循环控制,详细您可以阅读里面的shell代码

执行订单pull的部分:$Cur_Dir/../../../../yii base/order/pullorder $siteId $j, 对于base/order/pullorder对应的文件是fecerp\app\console\modules\Base\controllers\OrderController ,您可以查看里面的actionPullorder($siteId, $pageNum)方法,查看具体的实现。

2.脚本控制

订单数据拖取,是通过时间区间进行查询拖取的,当次执行完成后的endAt时间戳,就是下一次执行脚本的beginAt时间戳

当然,这个过程要考虑订单拖取的失败情况,时间区间的限制情况,等等,这个部分的控制是fecmall 的Fecmall cron脚本时间区间控制机制来完成的,原理详细参看: Fecmall cron脚本时间区间控制

3.service文件介绍

3.1拖取订单数据的方法:Yii::$service->orderapi->getApiOrders()

3.2保存订单数据的方法:Yii::$service->orderapi->saveOrder($order, $siteId)

具体由初始化的$_orderApiService 来进行具体实现。

譬如fecmall部分,是由 @fecerp/services/orderapi/Fecmall.php来实现的,您可以打开这个文件查看这 两个函数。

关于该机制的具体原理,您可以参看:ERP订单扩展其他平台