storeGoodsImportBatchVerify($parameter); //验证且获取供给仓信息 if ($verify['status'] != 1) { return $verify; } //第三方平台商品编码验证 if ($platform_type == 2) { $LittleGoodsClass = new \LittleGift\Business\Goods(); $verifyResult = $LittleGoodsClass->importVerify([ 'merchant_id' => $merchant_id, 'id_arr' => $checkGoodsArr ]); if ($verifyResult['status'] == 0) { $res['status'] = 0; $res['remark'] = $verifyResult['message']; return $res; } $third_code_error = $verifyResult['data'] ? $verifyResult['data'] : []; } $warehouse_id = $verify['data']['warehouseInfo']['id']; //供给仓id $remark = ''; $goodsModel = new RetailGoodsModel(); $goodsImportModel = new GoodsImportModel(); $brandClass = new Brand(); foreach ($checkGoodsArr as &$val) { $goods = $goodsImportModel->getFindTrue([ 'merchantid' => $merchant_id, 'storeid' => $store_id, 'id' => $val, 'status' => 0 ], 'id'); //要导入的商品信息 if (empty($goods)) { $remark .= '未找到改商品信息'; continue; } if (!empty($goods['goods_brand'])) { $result = $brandClass->brandAdd([ 'merchant_id' => $merchant_id, 'store_id' => $store_id, 'goods_brand' => $goods['goods_brand'] ]); //商品品牌 if ($result['status'] == 1) { $goods['goods_brand_id'] = $result['data']['brandId']; } else { $goods['goods_brand_id'] = 0; //品牌id } } $result = $this->storeImportBatchGoodsVerify([ 'merchant_id' => $merchant_id, 'store_id' => $store_id, 'goods' => $goods, 'platform_type' => $platform_type, 'third_code_error' => $third_code_error ]); //商品信息验证 if ($result['status'] != 1) { $remark .= $result['remark']; continue; } $goods = $this->storeGoodsImportBatchConversion($goods); //字段转换 $add = $goods; unset($add['sku_json']); $add['merchant_id'] = $merchant_id; $add['store_id'] = $store_id; $goods_id = $goodsModel->addOrder($add); //添加商品档案 if (empty($goods_id)) { $remark .= $goods['goods_name'] . '-档案添加失败,'; continue; // 商品档案添加失败,跳出循环 } $add['warehouse_id'] = $warehouse_id; $add['goods_id'] = $goods_id; if ($goods['attribute_state'] == 1) { //无规格 $result = A('Api/Inventory')->addSaleGoods($add, 1); if ($result['status'] == 0) { $remark .= $goods['goods_name'] . '-库存表录入失败'; continue; } } else if ($goods['attribute_state'] == 2 && $goods['sku_json']) { //规格 $result = $this->storeGoodsSkuImportAdd([ 'merchant_id' => $parameter['merchant_id'], 'store_id' => $parameter['store_id'], 'sku_json' => $goods['sku_json'], 'content' => $add, 'platform_type' => $platform_type, 'third_code_error' => $third_code_error ]); if ($result['status'] == 0) { $remark .= $goods['goods_name'] . $result['msg']; // 商品规格添加失败 接着执行 } } else { $remark .= $goods['goods_name'] . '商品规格属性有误'; continue; } $save_res = $goodsImportModel->updateOrder([ 'merchantid' => $merchant_id, 'storeid' => $store_id, 'id' => $val ], [ 'status' => 1 ]); //修改商品导入表状态 if (!$save_res) { $remark .= $goods['goods_name'] . '-状态修改失败,'; } } if (!empty($remark)) { return ['status' => 0, 'remark' => $remark]; } else { return ['status' => 1, 'remark' => $remark]; } } /** * 门店商品导入添加至商品档案规格添加 * @param $parameter * [ * platform_type 商户平台类型 1默认系统 2微礼平台 * merchant_id * store_id * content 商品信息 * sku_json 规格信息 json字符串 * third_code_error 未通过第三方商品编码验证的商品编码集合 * ] * @return mixed */ public function storeGoodsSkuImportAdd($parameter) { $platform_type = $parameter['platform_type']; $third_code_error = $parameter['third_code_error'] ? $parameter['third_code_error'] : []; $sku_json = json_decode($parameter['sku_json'], true); //规格信息 $store_id = $parameter['store_id']; $merchant_id = $parameter['merchant_id']; $content = $parameter['content']; $title = $sku_json['sku_name_title']; $sku_list = $sku_json['sku_list']; $goods_id = $content['goods_id']; if (empty($title) || empty($sku_list)) { return ['status' => 0, 'msg' => '规格有误']; } $goodsModel = new RetailGoodsModel(); $goodsInfo = $goodsModel->getFind([ 'id' => $goods_id ]); if (empty($goodsInfo)) { return ['status' => 0, 'msg' => '商品有误']; } $skuAttributeClass = new SkuAttribute(); $skuGoodsModel = new RetailSkuGoodsModel(); $arr = []; foreach ($title as &$val) { $result = $skuAttributeClass->skuAttributeAdd([ 'merchant_id' => $merchant_id, 'store_id' => $store_id, 'name' => $val ]); if ($result['status'] == 1) { array_push($arr, $result['data']['skuAttributeId']); } } foreach ($sku_list as &$value) { $result = $this->storeImportBatchSkuGoodsVerify([ 'merchant_id' => $merchant_id, 'store_id' => $store_id, 'sku_info' => $value, 'platform_type' => $platform_type, 'third_code_error' => $third_code_error ]); if ($result['status'] != 1) { return $result; } $sku_id_list = []; //规格名称id拼接 $sku_name = []; //添加规格名称 foreach ($value['name'] as $ko => &$vo) { $sku_name[] = $vo; $result = $skuAttributeClass->skuNameAdd([ 'merchant_id' => $parameter['merchant_id'], 'store_id' => $parameter['store_id'], 'name' => $vo, 'attributeId' => $arr[$ko] ]); //规格名称添加 if ($result['status'] != 1) { return $result; } $sku_id_list[] = $result['data']['skuNameId']; } unset($value['name']); $sku_content = $value; $sku_content['store_id'] = $store_id; $sku_content['goods_id'] = $goods_id; $sku_content['sku_id_list'] = implode(',', $sku_id_list); $sku_content['add_time'] = time(); $sku_content['weight_value'] = $value['sku_weight_value'] ? round($value['sku_weight_value'], 3) : null; $sku_content['purchase_price'] = $value['purch_price']; $sku_content['sku_num'] = 1; unset($value['sku_weight_value']); $skuId = $skuGoodsModel->addOrder($sku_content); if (empty($skuId)) { return ['status' => 0, 'msg' => '新规格添加失败']; } $warehouse_content = $content; $warehouse_content['goods_num'] = $value['goods_num']; $warehouse_content['more_num'] = $value['more_num']; $warehouse_content['less_num'] = $value['less_num']; $warehouse_content['purchase_price'] = $value['purch_price']; $warehouse_content['sku_id'] = $skuId; $warehouse_content['sku_name'] = implode(',', $sku_name); $warehouse_content['sku_id_list'] = $sku_content['sku_id_list']; $warehouse_content['sku_goods_number'] = $value['sku_goods_number']; $warehouse_content['sku_code'] = $value['sku_code']; $warehouse_content['sku_num'] = $value['sku_num']; $warehouse_content['third_goods_code'] = $value['third_goods_code'] ? $value['third_goods_code'] : ''; A('Api/Inventory')->addSaleGoods($warehouse_content, 1); unset($sku_content); unset($warehouse_content); } return ['status' => 1, 'msg' => '添加成功']; } /** * 门店商品导入的商品同步至商品档案规格商品验证 * @param $parameter * [ * merchant_id * platform_type 商户平台类型 1默认系统 2微礼平台 * sku_info 规格信息 * store_id * third_code_error 未通过第三方商品编码验证的商品编码集合 * ] * @return array */ public function storeImportBatchSkuGoodsVerify($parameter) { $platform_type = $parameter['platform_type']; $third_code_error = $parameter['third_code_error'] ? $parameter['third_code_error'] : []; $sku_info = $parameter['sku_info']; $store_id = $parameter['store_id']; $skuGoodsModel = new RetailSkuGoodsModel(); if ($sku_info['sku_code']) { $sku_id = $skuGoodsModel->getFindField([ 'store_id' => $store_id, 'state' => 0, 'sku_code' => $sku_info['sku_code'] ], 'id'); if (!empty($sku_id)) { return ['status' => 0, 'msg' => '-规格条码出现重复,']; } } if (empty($sku_info['sku_goods_number'])) { return ['status' => 0, 'msg' => '规格货号有误']; } else { $sku_goods_number = $skuGoodsModel->getFindField([ 'store_id' => $store_id, 'state' => 0, 'sku_goods_number' => $sku_info['sku_goods_number'] ], 'id'); if (!empty($sku_goods_number)) { return ['status' => 0, 'msg' => '规格货号出现重复']; } } //第三方平台商品编码 if ($platform_type == 2) { if (empty($sku_info['third_goods_code'])) { return ['status' => 0, 'msg' => '-规格第三方商品编码未设置']; } $LittleGoodsClass = new \LittleGift\Business\Goods(); $verifyResult = $LittleGoodsClass->verifyQ3Code([ 'merchant_id' => $parameter['merchant_id'], 'third_goods_code' => $sku_info['third_goods_code'] ]); if ($verifyResult['status'] != 1) { return ['status' => 0, 'msg' => '-规格商品Q3编码'.$verifyResult['message']]; } if (!empty($third_code_error) && in_array($sku_info['third_goods_code'], $third_code_error)) { return ['status' => 0, 'msg' => '-规格商品编码在第三方不存在,']; } } return ['status' => 1, 'msg' => '验证成功']; } /** * 门店商品导入的商品同步至商品档案字段转换 * @param $goods * @return mixed */ public function storeGoodsImportBatchConversion($goods) { $goods['goods_number'] = $goods['good_number']; $goods['online_state'] = $goods['issellonline']; $goods['attribute_state'] = $goods['attribute']; $goods['pricing_method'] = $goods['can_exchange_weigh']; $goods['purchase_price'] = $goods['purch_price']; $goods['weight_value'] = round($goods['weight_value'], 3); $goods['status'] = 0; $goods['add_time'] = time(); unset($goods['good_number']); unset($goods['addtime']); unset($goods['sell_num']); unset($goods['merchantid']); unset($goods['storeid']); unset($goods['issellonline']); unset($goods['goods_class_name']); unset($goods['type']); unset($goods['attribute']); unset($goods['can_exchange_weigh']); unset($goods['goods_brand']); unset($goods['good_image']); return $goods; } /** * 门店商品导入的商品同步至商品档案商品验证 * @param $parameter * [ * platform_type 商户平台类型 1默认系统 2微礼平台 * merchant_id * store_id * goods 商品导入表的商品信息 * third_code_error 未通过第三方平台的商品编码 * ] * @return array */ public function storeImportBatchGoodsVerify($parameter) { $goodsModel = new RetailGoodsModel(); $goodsClassModel = new RetailGoodsClassModel(); $store_id = $parameter['store_id']; $goods = $parameter['goods']; $platform_type = $parameter['platform_type']; $third_code_error = $parameter['third_code_error'] ? $parameter['third_code_error'] : []; //商品货号 if (!empty($goods['good_number'])) { $id = $goodsModel->getFind([ 'goods_number' => $goods['good_number'], 'store_id' => $store_id, 'status' => ['neq', 2] ], 'id'); if ($id) { $remark = $goods['goods_name'] . '-货号在商品档案中已存在,'; return ['status' => 0, 'remark' => $remark]; } } else { $remark = $goods['goods_name'] . '-货号未设置,'; return ['status' => 0, 'remark' => $remark]; } // 商品条码 if (!empty($goods['goods_code'])) { $id = $goodsModel->getFind([ 'goods_code' => $goods['goods_code'], 'store_id' => $store_id, 'status' => ['neq', 2] ], 'id'); if ($id) { $remark = $goods['goods_name'] . '-条码在商品档案中已存在,'; return ['status' => 0, 'remark' => $remark]; } } //第三方平台商品编码 if ($platform_type == 2 && $goods['attribute'] == 1) { if (empty($goods['third_goods_code'])) { $remark = $goods['goods_name'] . '-第三方商品编码未设置'; return ['status' => 0, 'remark' => $remark]; } $LittleGoodsClass = new \LittleGift\Business\Goods(); $verifyResult = $LittleGoodsClass->verifyQ3Code([ 'merchant_id' => $parameter['merchant_id'], 'third_goods_code' => $goods['third_goods_code'] ]); if ($verifyResult['status'] != 1) { $remark = $goods['goods_name'] . 'Q3编码' . $verifyResult['message']; return ['status' => 0, 'remark' => $remark]; } if (!empty($third_code_error) && in_array($goods['third_goods_code'], $third_code_error)) { $remark = $goods['goods_name'] . '-第三方商品编码不存在'; return ['status' => 0, 'remark' => $remark]; } } if ($goods['can_exchange_weigh'] == 2 && empty($goods['company'])) { $remark = $goods['goods_name'] . '-开启称重,单位必填'; return ['status' => 0, 'remark' => $remark]; } //商品分类 $class = $goodsClassModel->getFind([ 'id' => $goods['goods_class_id'], 'status' => 0 ]); if (empty($class)) { $remark = $goods['goods_name'] . '-商品分类不存在,'; return ['status' => 0, 'remark' => $remark]; } if ($goods['attribute'] == 2) { $sku_json = json_decode($goods['sku_json'], true); if ((empty($sku_json['sku_name_title']) || empty($sku_json['sku_list']))) { $remark = $goods['goods_name'] . '-规格信息有误'; return ['status' => 0, 'remark' => $remark]; } } return ['status' => 1, 'remark' => '验证通过']; } /** * 门店商品导入的商品同步至商品档案参数验证 * @param $parameter * [ * merchant_id * store_id * checkGoodsArr 商品导入表id的集合 * ] * @return array * [ * status * remark * data=>[ * warehouseInfo 仓库信息 * ] * ] */ public function storeGoodsImportBatchVerify($parameter) { if (empty($parameter['merchant_id']) || empty($parameter['store_id'])) { return ['status' => 0, 'remark' => '登录超时']; } if (!$parameter['checkGoodsArr']) { return ['status' => 0, 'remark' => '请选择要删除的商品']; } $warehouseClass = new WarehousingRecord(); $warehouseInfo = $warehouseClass->getStoreSaleWarehouse([ 'merchant_id' => $parameter['merchant_id'], 'store_id' => $parameter['store_id'] ]);//查询门店仓库id if (empty($warehouseInfo)) { return ['status' => 0, 'remark' => '请先创建供给仓']; } return ['status' => 1, 'remark' => '验证成功', 'data' => ['warehouseInfo' => $warehouseInfo]]; } }