一:功能:
设置定时任务,把导入到(鑫/3)蝶ERP,并在(鑫/3)蝶ERP已经发货(有物流单号、物流公司)的订单,回传到导入订单的后台,并更改该后台相对应的订单发货状态。
其实可以理解为是两个平台之间的数据交换:即A平台给B平台导入订单数据,B平台向A平台反馈订单数据的发货状态。
二:先说一下设计理念:
1.一定有从外部(比如微商后台),导到(鑫/3)蝶ERP的订单,并且有相应的订单记录,至少要有订单号(唯一主键);
2.需要设置定时任务,并且由于鑫/3)蝶ERP使用Sql Server数据库,需要设置Windows环境的定时任务(这个网上能搜索到怎么设置,如果确切需要可评论留言,我有空整理一下发博);
3.需要考虑(鑫/3)蝶ERP拆单发货的情况;
4.需要做好相关的日志记录。
三:上代码:
【第一部分,拉取目标已发货的订单数据】:
曾考虑过,方向放在查出(鑫/3)蝶ERP的发货记录,但是想了想这肯定不现实,数据量太多了而且即便加了时间范围也不好控制人为更新发货状态的时间;
所以,应是搜索本地导入鑫/3)蝶ERP的订单数据记录:
//查询本地物流单号为空(即未发货)的(鑫/3)蝶订单主键:映射关系,我本地的order_id对应(鑫/3)蝶ERP的FSiteOrderID(网上订单号),local_id对应(鑫/3)蝶ERP的FOrderID(本地订单号):
$order_id_str = '';
$local_id_arr = array();
$selectSql = "select order_id,local_id from order where jindie_k3_wuliuid = '' or jindie_k3_wuliuid is null;";
$result = $conn->query($selectSql);
while($row = $result->fetch_assoc()) {
if($row['order_id']){//用来查主单订单数据
$order_id_str.= "'".$row['order_id']."',";
}
if($row['local_id']){//用来查拆单订单数据
$local_id_arr[$row['order_id']] = $row['local_id'];
}
}
if($order_id_str){
//查本地订单未发货数据在(鑫/3)蝶erp的发货情况---