1. 【新增】售后单售后原因类型支持搜索

2. 【新增】手工创建订单折扣可输入正数

3. 【优化】盘点申请单确认

4. 【修复】采购退货单模拟出库失败问题

5. 【新增】订单金额客户实付与结算金额

6. 【优化】仓库发货统计报表物料名称显示

7. 【优化】自有仓储虚拟发货逻辑

8. 【修复】基础物料分类管理问题
This commit is contained in:
chenping
2026-04-01 11:59:17 +08:00
parent 9341122827
commit 61783b7d01
754 changed files with 46179 additions and 5700 deletions

View File

@@ -0,0 +1,170 @@
<?php
/**
* 微盟2.0Lib方法类
*
* @author wangbiao@shopex.cn
* @version 2025.07.01
*/
class inventorydepth_service_shop_weimobr extends inventorydepth_service_shop_common
{
// 微盟商品接口weimob_shop/goods/getList一次最多支持拉取20条记录;
public $customLimit = 20;
/**
* 下载全部商品(包括普通现货、专供现货)
* 官方接口名weimob_shop/goods/getList
* 官方接口URLhttps://doc.weimobcloud.com/detail?menuId=19&childMenuId=1&tag=2396&id=2776&isold=2
*
* @param array $filter
* @param string $shop_id
* @param int $offset
* @param int $limit
* @param string $limit
* @return array
*/
public function downloadList($filter, $shop_id, $offset=0, $limit=30, &$error_msg=null)
{
$shopService = kernel::single('inventorydepth_rpc_request_shop_items');
// 开始执行
$result = $shopService->items_all_get($filter, $shop_id, $offset, $limit);
if($result === false){
$error_msg = $shopService->get_err_msg();
return false;
}
// check
if(!isset($result['totalCount']) || !isset($result['pageList'])){
$error_msg = '响应数据无效:没有总数和列表数据';
return false;
}
// 响应数据为空
if(empty($result['pageList'])){
$this->totalResults = 0;
return array();
}
// 平台商品总数
$this->totalResults = $result['totalCount'];
//格式化
$data = array();
foreach ($result['pageList'] as $skuKey => $goodsInfo)
{
// 店铺库存
$shop_store = isset($goodsInfo['goodsStock']['goodsStockNum']) ? $goodsInfo['goodsStock']['goodsStockNum'] : 0;
// 商品最小销售价
$minSalePrice = 0;
if(isset($goodsInfo['goodsPrice']['minSalePrice']) && $goodsInfo['goodsPrice']['minSalePrice']){
$minSalePrice = $goodsInfo['goodsPrice']['minSalePrice'];
}
// 商品最大销售价
$maxSalePrice = 0;
if(isset($goodsInfo['goodsPrice']['maxSalePrice']) && $goodsInfo['goodsPrice']['maxSalePrice']){
$maxSalePrice = $goodsInfo['goodsPrice']['maxSalePrice'];
}
// 商品是否上架
$approve_status = 'onsale';
if(isset($goodsInfo['isOnline']) && !$goodsInfo['isOnline']){
$approve_status = 'instock';
}
//spu
$data[] = array(
'iid' => $goodsInfo['goodsId'], //店铺商品ID
'outer_id' => ($goodsInfo['outerGoodsCode'] ? $goodsInfo['outerGoodsCode'] : $goodsInfo['goodsId']), //外部商品编码,是商户自有 ERP 系统的商品编码.
'title' => $goodsInfo['title'], //商品名称
'approve_status' => $approve_status, //商品是否上架
'price' => $minSalePrice,
'num' => $shop_store, //店铺库存
'simple' => 'false',
//'skus' => $skuList, // 微盟平台没有SKU列表
);
}
// 单独按iid拉取商品详细信息及SKU列表
//@todo微盟平台商品API接口没有SKU列表数据,需要单独请求SKU接口拉取数据;
if($data){
foreach ($data as $key => $itemInfo)
{
$itemDetailInfo = $this->downloadByIId($itemInfo['iid'], $shop_id, $error_msg);
if(empty($itemDetailInfo)){
$data[$key]['skus'] = [];
continue;
}
$data[$key]['skus'] = $itemDetailInfo['skus'];
}
}
return $data;
}
/**
* 通过IID下载 单个SKU
* 官方接口名weimob_shop/goods/sku/search
* 官方接口URLhttps://doc.weimobcloud.com/detail?menuId=19&childMenuId=1&tag=2396&id=4153&isold=2
*
* @param $iid
* @param $shop_id
* @param $error_msg
* @return array|false|void
*/
public function downloadByIId($iid, $shop_id, &$error_msg=null)
{
$shopService = kernel::single('inventorydepth_rpc_request_shop_items');
// store.item.get
$goodsInfo = $shopService->item_get($iid, $shop_id);
if ($goodsInfo === false) {
$error_msg = $shopService->get_err_msg();
return false;
}
// check
if(empty($goodsInfo['skuList'])){
$error_msg = $iid . '商品详情不存在!';
return false;
}
// 商品是否上架
$approve_status = 'onsale';
if(isset($goodsInfo['isOnline']) && !$goodsInfo['isOnline']){
$approve_status = 'instock';
}
// SKU列表
$skus = [];
foreach ($goodsInfo['skuList'] as $skuKey => $skuInfo)
{
$skus[] = array(
'sku_id' => $skuInfo['skuId'], //SKU ID
'outer_id' => $skuInfo['outerSkuCode'], //店铺货号
'barcode' => $skuInfo['skuBarCode'], //条形码
'price' => $skuInfo['salePrice'], //销售价,精确到 2 位小数
'quantity' => $skuInfo['skuStockNum'], //SKU店铺库存数量
//'costPrice' => $skuInfo['costPrice'], //成本价,精确到 2 位小数
//'marketPrice' => $skuInfo['marketPrice'], //市场价,精确到 2 位小数
//'properties' => $skuInfo['goodsPropertyList'], //商品属性
);
}
// 商品详细信息
$itemInfo = array(
'iid' => $goodsInfo['goodsId'], //店铺商品ID
'outer_id' => ($goodsInfo['outerGoodsCode'] ? $goodsInfo['outerGoodsCode'] : $goodsInfo['goodsId']), //外部商品编码,是商户自有 ERP 系统的商品编码.
'title' => $goodsInfo['title'], //商品名称
'approve_status' => $approve_status, //商品是否上架
'simple' => 'false',
//'price' => 0,
//'num' => 0,
'skus' => ['sku'=>$skus],
);
return $itemInfo;
}
}