magento开发时有个需求,后台发货后,想让用户能实时跟踪包裹的快递信息,于是便想到集成快递100的接口,快递100提供了诸多的快递以及接口方式,非常的方便,由于我的网站主要是手机端接入,所以选择了html5接口,接口api使用可以参考:http://www.kuaidi100.com/openapi/mobileapi.shtml#f04
选择好接口后,接下来就是集成了,我这里选择的是magento的自定义快递公司的方式来添加快递,当然,如果你已经将国内常用快递集成入magento了也是一样的,只是使用的字段的差别。
首先在后台订单选择发货,填写自定义的快递信息,如下图所示:
上图中有一个 追踪该订单 的链接,这个链接调用的是主题目录下的 template\shipping\tracking\popup.phtml 模板文件,为了达到自动跟踪快递的目的,我们来修改下这个文件,
由于是使用的自定义标题来作为快递名称,我们在这个文件中找到<?php elseif (isset($track[‘title’]) && isset($track[‘number’]) && $track[‘number’]): ?> 这个判断,也即129行左右位置(根据不同主题的自定义可能稍有不同),然后将整个判断作如下修改:
<?php elseif (isset($track['title']) && isset($track['number']) && $track['number']): ?> <!--if the tracking is custom value--> <!-- 重定向到快递100查询 --> <?php // 定义可查询的快递,以将要查询的快递转换成代码 $exp_arr = array( '安信达' => 'anxindakuaixi', '百世汇通' => 'huitongkuaidi', '邦送' => 'bangsongwuliu', '德邦' => 'debangwuliu', 'EMS' => 'ems', 'E邮宝' => 'ems', '飞康达' => 'feikangda', '飞快达' => 'feikuaida', '凡客如风达' => 'rufengda', '风行天下' => 'fengxingtianxia', '飞豹' => 'feibaokuaidi', '港中能达' => 'ganzhongnengda', '国通' => 'guotongkuaidi', '共速达' => 'gongsuda', '汇通快运' => 'huitongkuaidi', '汇强' => 'huiqiangkuaidi', '华宇' => 'tiandihuayu', '恒路' => 'hengluwuliu', '华夏龙' => 'huaxialongwuliu', '海航天天' => 'tiantian', '海外环球' => 'haiwaihuanqiu', '河北建华' => 'hebeijianhua', '海盟' => 'haimengsudi', '华企快运' => 'huaqikuaiyun', '山东海红' => 'haihongwangsong', '佳吉' => 'jiajiwuliu', '佳怡' => 'jiayiwuliu', '加运美' => 'jiayunmeiwuliu', '京广' => 'jinguangsudikuaijian', '急先达' => 'jixianda', '晋越' => 'jinyuekuaidi', '捷特' => 'jietekuaidi', '金大' => 'jindawuliu', '嘉里大通' => 'jialidatong', '快捷' => 'kuaijiesudi', '康力' => 'kangliwuliu', '跨越' => 'kuayue', '联昊通' => 'lianhaowuliu', '龙邦' => 'longbanwuliu', '蓝镖' => 'lanbiaokuaidi', '乐捷递' => 'lejiedi', '立即送' => 'lijisong', '隆浪' => 'longlangkuaidi', '门对门' => 'menduimen', '明亮' => 'mingliangwuliu', '全晨' => 'quanchenkuaidi', '全际通' => 'quanjitong', '全日通' => 'quanritongkuaidi', '全一' => 'quanyikuaidi', '全峰' => 'quanfengkuaidi', '七天连锁' => 'sevendays', '如风达' => 'rufengda', '申通' => 'shentong', '顺丰' => 'shunfeng', '三态' => 'santaisudi', '盛辉' => 'shenghuiwuliu', '速尔' => 'suer', '盛丰' => 'shengfengwuliu', '上大' => 'shangda', '三态' => 'santaisudi', '山东海红' => 'haihongwangsong', '赛澳递' => 'saiaodi', '圣安' => 'shenganwuliu', '穗佳' => 'suijiawuliu', '天地华宇' => 'tiandihuayu', '天天' => 'tiantian', '万家' => 'wanjiawuliu', '万象' => 'wanxiangwuliu', '新邦' => 'xinbangwuliu', '信丰' => 'xinfengwuliu', '新蛋奥硕' => 'neweggozzo', '圆通' => 'yuantong', '韵达' => 'yunda', '运通' => 'yuntongkuaidi', '邮政' => 'youzhengguonei', '远成' => 'yuanchengwuliu', '亚风' => 'yafengsudi', '一邦' => 'yibangwuliu', '优速' => 'youshuwuliu', '源伟丰' => 'yuanweifeng', '元智捷诚' => 'yuanzhijiecheng', '越丰' => 'yuefengwuliu', '源安达' => 'yuananda', '忠信达' => 'zhongxinda', '芝麻开门' => 'zhimakaimen', '银捷' => 'yinjiesudi', '中通' => 'zhongtong', '宅急送' => 'zhaijisong', '中邮' => 'zhongyouwuliu', '忠信达' => 'zhongxinda', '中速快件' => 'zhongsukuaidi', '芝麻开门' => 'zhimakaimen', '中天万运' => 'zhongtianwanyun' ); $preg = '/' . implode('|', array_keys($exp_arr)) . '/'; preg_match($preg, $this->escapeHtml($track['title']), $matchs); if ($matchs[0]) { $exp_code = $exp_arr[$matchs[0]]; $url = 'http://m.kuaidi100.com/index_all.html?type='.$exp_code.'&postid='.$this->escapeHtml($track['number']).'&callbackurl=javascript:history.go(-1);'; if($rowCount<=1){ $url = 'http://m.kuaidi100.com/index_all.html?type='.$exp_code.'&postid='.$this->escapeHtml($track['number']).'&callbackurl=javascript:history.go(-2);window.opener=null;window.open("","_self");window.close();'; echo '<script>window.location.href=\''.$url.'\';</script>'; }else{ echo "包裹".$counter.": <a href='$url'> ".$track['title'].": ".$track['number']."</a>"; } }else{ if($rowCount<=1){ echo "<b style='color:red'>对不起,系统暂时无法查询此快递,请至快递官网查询:".$track['title'].": ".$track['number']."</b>"; }else{ echo "包裹".$counter.": <a href='javascript:void(0)'> ".$track['title'].": ".$track['number']."</a><b style='color:red'> (对不起,系统暂时无法查询此快递,请至快递官网查询)</b>"; } } ?> <?php endif; ?>
其中的快递数组可以参考快递100的说明文档 http://www.kuaidi100.com/download/chaxun(20140729).doc 进行自定义,以上,就完成了接口的集成,感谢快递100免费提供这么好的接口。
转载请注明:Findever » magento集成快递100自动查询快递