当前位置: 首页 > 后端技术 > PHP

人人商城在从其他商城系统或接口引入商品

时间:2023-03-29 14:05:32 PHP

之前,为客户使用了一套独立的单商户微商城系统CRMEB。功能比较弱,不能满足部分客户的分销和积分兑换需求,二次开发成本太高,所以决定转投人人商城。成为一名程序员是一种懒惰的美德。编写代码导入产品信息很有趣,可以省去手动输入产品的痛苦。我之前对维清做过一些研究。改了一次扩展,好久没做了,忘记了。赶紧又查了一遍微清的开发文档,主要是如何连接外部数据库,下载远程文件,找到人人商城根据微清的路由规则快速添加商品。goods.create的程序位置,加断点输出json,可以看到人人商城添加商品添加的参数。只需要修改一些字段,然后存入仓库即可。还有就是直接从合作伙伴的APP界面采集最新产品的需求。我们使用FIDDLER抓包https包获取伙伴APP接口。需要在开发机上设置手机代理,并在手机上安装相关证书文件,合作伙伴的APP其实是用APICLOUD做的,所以很容易看到源码。如果有接口,使用微引擎框架自带的http相关方法,获取json数据,解析,处理入库。func('文件');解决问题$data=json_decode('{"uniacid":3,"title":"\u6563\u517b\u9ed1\u732a\u4e94\u82b1\u8089","unit":"\u4ef6","keywords":"","type":1,"thumb_first":0,"isrecommand":0,"isnew":0,"ishot":0,"issendfree":0,"isnodiscount":0,"marketprice":100,"minprice":100,"maxprice":100,"productprice":"100","costprice":"100","virtualsend":0,"virtualsendcontent":"","virtual":0,"cash":0,"收银员":0,"发票":0,"发货类型":0,"发货价格":"","发货编号":0,"状态":0,"商品编号":"","产品编号":"","权重":"","总计":0,"showtotal":0,"totalcnf":0,"hasoption":0,"副标题":"","shorttitle":"","内容":"

<\/p>","createtime":1545794595,"video":"","\{\{"type"":0,\"default\":\"\",\"default_pay\":\"\"}","pcate":"3","ccate":"9","tcate":0,"cates":"9","pcates":"","ccates":"9","tcates":"","thumb":"images\/3\/2018\/12\/kCbCcZiEccDBEy8Wz4WWlqwD9Ifmjx.jpg","thumb_url":"a:0:{}","isstatustime":0,"statustimestart":1545794220,"statustimeend":1548472620}',true);//var_dump($data);die();//遍历之前的数据库重置数组相关参数下载远程文件saveproduct$other_database=array('host'=>'www.linsen18.com',//数据库IP或域名'username'=>'',//数据库连接用户名'password'=>'',//数据库连接密码'database'=>'wx_zchszxx_com',//数据库名'port'=>3306,//数据库连接端口'tablepre'=>'eb_',//表前缀,如果没有前缀,留空'charset'=>'utf8',//数据库默认编码'pconnect'=>0,//是否使用长连接);$other_db=newDB($other_database);//查询uid为1的会员信息$products=$other_db->getall('store_product');foreach($productsas$product){if($product["id"]>43&&$product["id"]<46){$data["title"]=$product['store_name'];$data["unit"]=$product['unit_name'];$data["marketprice"]=$product['price'];$data["minprice"]=$product['price'];$data["maxprice"]=$product['价格'];$data["productprice"]=$product['价格'];$data["costprice"]=$product['price'];$data["content"]=$this->replaceimg($product['description']);$data["createtime"]=$product['add_time'];$data["thumb"]=$product['image'];$file=file_remote_attach_fetch($product['image']);如果(!is_error($file)){$data->thumb=$文件;}//var_dump($data);//远程文件保存pdo_insert("ewei_shop_goods",$data);回声$数据[“标题”]。"导入成功
";}}}公共函数importkl(){exit();错误报告(E_ALL);设置时间限制(0);ignore_user_abort();load()->func('文件');load()->func("通讯");$data=json_decode('{"uniacid":3,"title":"\u6563\u517b\u9ed1\u732a\u4e94\u82b1\u8089","unit":"\u4ef6","keywords":"",“type”:1,“thumb_first”:0,“isrecommand”:0,“isnew”:0,“ishot”:0,“issendfree”:0,“isnodiscount”:0,“marketprice”:100,“minprice”":100,"maxprice":100,"productprice":"100","costprice":"100","virtualsend":0,"virtualsendcontent":"","virtual":0,"cash":0“收银员”:0,“发票”:0,“调度类型”:0,“调度价格”:“”,“调度ID”:0,“状态”:0,“商品编号”:“”,“产品编号”:”","weight":"","total":0,"showtotal":0,"totalcnf":0,"hasoption":0,"字幕":"","shorttitle":"","content":"

<\/p>","createtime":1545794595,"video":"","discounts":"{\"type\":0,\"default\":\"\",\"default_pay\":\"\"}","pcate":"3","ccate":"9","tcate":0,"cates":"9","pcates":"","ccates":"9","tcates":"","thumb":"images\/3\/2018\/12\/kCbCcZiEccDBEy8Wz4WWlqwD9Ifmjx.jpg","thumb_url":"a:0:{}","isstatustime":0,"statustimestart":1545794220,"statustimeend":1548472620}',true);//var_dump($data);die();$resp=ihttp_get("https://odoapi.kangerys.com:8443/odoapi/product/list/c270a2babe5946c8b82a09a8eb25ad00?pageSize=100&pageOffset=1&phone=undefined&version=1.0");$json=$resp['content'];对于each(json_decode($json)->data->datasas$key=>$pro){//保存实体//var_dump($pro);if($key>20){//打开详情页$info=ihttp_get("https://odoapi.kangerys.com:8443/odoapi/product/get/".$pro->productId."?version=1.0");//下载缩略图//正则匹配内容下载图片到本地,替换为新地址。不能同时下载多个吗?$proinfo=json_decode($info['content'])->data;$data["title"]=$proinfo->name;$file=file_remote_attach_fetch($proinfo->thumbUrl);如果(!is_error($file)){$data["thumb"]=$file;}$data["marketprice"]=$proinfo->retailPrice/100;$data["minprice"]=$proinfo->retailPrice/100;$data["maxprice"]=$proinfo->retailPrice/100;$data["productprice"]=$proinfo->retailPrice/100;$数据["costprice"]=$proinfo->retailPrice/100;$data["content"]=$this->replaceimg($proinfo->details);$data["createtime"]=time();$data["total"]=$proinfo->stock;$data["sales"]=$proinfo->sales;//var_dump($data);//远程文件保存pdo_insert("ewei_shop_goods",$data);echo$data["title"]."导入成功
";}}}有几点需要注意:json解码后生成的对象或数组,Microengine的数据库存储要求是数组,所以在json_decode($data,true)添加true