百搜论坛欢迎您的加入!
adimg adimg
 
昨日:篇  今日:篇   总帖:篇   会员:
博主最大Lv63   
CRMEB单商户4.x添加1688采集接口(Pro适用)     

新版本的采集使用付费采集的方式进行采集,比之前免费的采集准确,而且可以获取到商品的规格列表,系统默认自带淘宝、天猫、京东、苏宁、拼多多的采集接口,还有更多的数据接口需要大家自己去进行二开适配,本篇文章主要介绍怎么去对接1688的采集接口,后面其他采集接口也可以按照此方法进行二开适配。


先登陆http://www.99api.com/  添加 1688阿里巴巴API。

Image



        第一步,找到app\services\product\product\CopyTaobaoServices.php文件,在$host中添加1688,保证1688数据的URL地址能进行自动识别。

Image

        在copyProduct方法中的switch中添加1688,采集地址识别之后,系统判断执行1688中的程序,获取1688链接中的商品ID参数。将下方代码添加到下图位置。


  1. case '1688':
  2.     $params = [];
  3.     if (isset($url_arr['query']) && $url_arr['query']) {
  4.         $path = str_replace('.html', '', $url_arr['path']);
  5.         $params = explode('/', $path);
  6.     }
  7.     $id = $params[2] ?? '';
  8.     $shopid = $params[1] ?? '';
  9.     break;

复制代码


Image


        第二步,找到crmeb\services\CopyProductService.php文件,在$api中添加1688采集接口。

  1. '1688' => 'https://api03.6bqb.com/alibaba/detail',

复制代码

Image



       在下面getInfo方法里添加对应的1688代码,因为程序获取了对应链接中的固定文字如taobao、jd、1688作为方法名称的开头,而1688是数字不能作为方法名称开头使用,故在代码中将1688替换为alibaba。99api中1688采集接口只需要itemid。这里需要注意99api中获取详情的参数设置,每个接口都不一样。如果继续添加别的接口时需要注意


Image




第三步,上图中当采集数据为1688的商品时,$action的值为alibabaInfo,所以在本文件中添加alibabaInfo方法,发送request请求获取该链接的商品详情。

  1. public static function alibabaInfo(string $url, array $data, string $method = 'get')
  2. {
  3.     $info = HttpService::request($url, $method, $data);
  4.     $result = false;
  5.     if ($info) {
  6.         $result = $info;
  7.     }
  8.     return $result;
  9. }

复制代码


Image


        获取到的数据因为格式问题无法直接被系统使用,需要进行数据组合按照(图7)的格式进行组合,因为$deal_action值为alibabaDeal,所以调用方法为alibabaDeal,程序中新加alibabaDeal方法(图8)。组合的数据需要仔细阅读接口返回的数据,对应赋值,其中items为商品规格,里面有多个规格,每个规格里面value为规格的名称,detail为规格的值,detail为数组,每个规格也是数组,最后将组合放入items中。其余的参数比较容易读取。

Image


  1. public static function alibabaDeal(array $data)
  2. {
  3.     $result = self::$productInfo;
  4.     if ($data) {
  5.         $result['store_name'] = $data['title'] ?? '';
  6.         $result['store_info'] = $result['store_name'];
  7.         $result['slider_image'] = $data['images'] ?? [];
  8.         $result['price'] = $data['price'] ?? 0;
  9.         $result['description'] = $data['desc'] ?? '';
  10.         $items = [];
  11.         if (isset($data['skuProps']) && $data['skuProps']) {
  12.             $i = 0;
  13.             foreach ($data['skuProps'] as $passSUb) {
  14.                 $items[$i]['value'] = $passSUb['prop'];
  15.                 $items[$i]['detail'] = array_column($passSUb['value'],'name');
  16.                 $i++;
  17.             }
  18.         }
  19.         foreach ($items as $k => $item) {
  20.             $items[$k]['detail'] = array_unique($item['detail']);
  21.         }
  22.         $result['items'] = $items;
  23.     }
  24.     return $result;
  25. }

复制代码


$items的数据格式为(样例)

  1. $items = [
  2.     [
  3.         'value'=>'颜色',
  4.         'detail'=>[
  5.             '红色','蓝色'
  6.         ]
  7.     ],
  8.     [
  9.         'value'=>'大小',
  10.         'detail'=>[
  11.             '大','小'
  12.         ]
  13.     ]
  14. ];

复制代码


Image


写在最后,测试一下,完美实现(图9),如果要对接其他的采集,同理也可以按照此步骤,只是在数据组合的时候需要注意数据格式。

Image


 0  已被阅读了1273次  楼主 2020-09-12 20:37:26
回复列表

回复:CRMEB单商户4.x添加1688采集接口(Pro适用)

联系站长 友链申请桂ICP备19000949号-1     桂ICP备19000949号-1
您的IP:18.221.129.19,2024-04-25 02:27:02,Processed in 0.01412 second(s).
免责声明: 本网不承担任何由内容提供商提供的信息所引起的争议和法律责任。
Powered by HadSky 7.12.9
已有0次打赏
(0) 分享
分享
取消
免责声明
1、本站资源,均来自网络,版权归原作者,所有资源和文章仅限用于学习和研究目的 。
2、不得用于商业或非法用途,否则,一切责任由该用户承担 !
如果觉得本文还不错请点个赞或者打赏点轻币哦~
拒绝伸手党,拿走请回复,尊重楼主,尊重你我他~

侵权删除请致信 E-Mail:207882320@qq.com