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,94 @@
<?php
/**
* 补寄发货Event Trigger
* 监听发货完成事件,自动提交补寄发货接口
*/
class ome_event_trigger_reshipping_delivery
{
/**
* 发货完成后的处理
* 在发货完成事件中调用此方法
*
* @param array $deliveryData 发货单数据
* @return array
*/
public function afterDelivery($deliveryId)
{
$deliveryModel = app::get('ome')->model('delivery');
$orderModel = app::get('ome')->model('orders');
$reshippingModel = app::get('ome')->model('return_reshipping');
// 获取发货单信息
$delivery = $deliveryModel->db_dump(array('delivery_id' => $deliveryId), 'delivery_id,delivery_bn,logi_no,logi_id,logi_name');
if (empty($delivery)) {
return array('rsp' => 'fail', 'msg' => '发货单不存在');
}
// 通过 delivery_bn 获取 delivery_id并从 delivery_order 表获取 order_id
$deliveryOrderModel = app::get('ome')->model('delivery_order');
$delivery_order = $deliveryOrderModel->db_dump(array('delivery_id' => $delivery['delivery_id']), 'order_id');
if (empty($delivery_order) || empty($delivery_order['order_id'])) {
return array('rsp' => 'fail', 'msg' => '未找到对应订单ID');
}
$delivery['order_id'] = $delivery_order['order_id'];
// 获取订单信息
$order = $orderModel->db_dump($delivery['order_id'], 'order_id,order_bn,order_type');
if (empty($order)) {
return array('rsp' => 'fail', 'msg' => '订单不存在');
}
// 判断是否为补寄订单order_type=bufa
if ($order['order_type'] != 'bufa') {
return array('rsp' => 'succ', 'msg' => '不是补寄订单,无需处理');
}
// 通过订单号查找补寄申请单(订单号使用补寄申请单号)
$reshipping = $reshippingModel->db_dump(array('reshipping_bn' => $order['order_bn']), 'reshipping_id,reshipping_bn,shop_id,status,logi_no');
if (empty($reshipping)) {
return array('rsp' => 'fail', 'msg' => '补寄申请单不存在');
}
// 检查状态(只有等待卖家发货状态才能发货)
if (!in_array($reshipping['status'], array('1', '2'))) {
return array('rsp' => 'succ', 'msg' => '补寄申请单状态不正确,无需处理');
}
// 获取物流公司信息
$logiModel = app::get('ome')->model('dly_corp');
$logi = $logiModel->db_dump(array('corp_id' => $delivery['logi_id']), 'corp_id,type,name');
// 调用补寄发货接口
$apiParams = array(
'dispute_id' => $reshipping['reshipping_bn'],
'logistics_no' => $delivery['logi_no'],
'logistics_type' => '200', // 200表示快递
'company_name' => $logi ? $logi['name'] : $delivery['logi_name'],
'company_code' => $logi ? $logi['type'] : '',
'order_id' => $order['order_id'],
'order_bn' => $order['order_bn'],
);
if(empty($reshipping['logi_no'])) {
// 更新补寄申请单字段
$updateData = array(
'status' => '2', // 等待买家收货
'logi_name' => $apiParams['company_name'],
'logi_no' => $apiParams['logistics_no'],
'logi_id' => $delivery['logi_id'],
);
$rs = $reshippingModel->update($updateData, array('reshipping_id' => $reshipping['reshipping_id'], 'status' => ['1', '2']));
if(!is_bool($rs)) {
// 记录操作日志
$operationLogModel = app::get('ome')->model('operation_log');
$memo = '补寄发货,物流单号:' . $apiParams['logistics_no'];
$operationLogModel->write_log('return_reshipping@ome', $reshipping['reshipping_id'], $memo);
}
}
$apiResult = kernel::single('erpapi_router_request')->set('shop', $reshipping['shop_id'])->reshipping_consigngoods($apiParams);
if ($apiResult['rsp'] == 'fail') {
return array('rsp' => 'fail', 'msg' => $memo);
}
return array('rsp' => 'succ', 'msg' => '补寄发货成功');
}
}

View File

@@ -0,0 +1,67 @@
<?php
/**
* 补寄申请单Event Trigger
* 处理补寄申请单的单拉业务逻辑
*/
class ome_event_trigger_reshipping_order
{
/**
* 单拉补寄申请单
* 从平台拉取补寄详情并生成补寄申请单
*
* @param int $shop_id 店铺ID
* @param string $dispute_id 补寄单号
* @return array
*/
public function pullReshipping($shop_id, $dispute_id)
{
// 参数验证
if (empty($shop_id)) {
return array('rsp' => 'fail', 'msg' => '店铺ID不能为空');
}
if (empty($dispute_id)) {
return array('rsp' => 'fail', 'msg' => '补寄单号不能为空');
}
// 检查补寄申请单是否已存在
$reshippingModel = app::get('ome')->model('return_reshipping');
$existingReshipping = $reshippingModel->dump(array(
'reshipping_bn' => $dispute_id,
'shop_id' => $shop_id,
));
if ($existingReshipping) {
return array('rsp' => 'fail', 'msg' => '补寄申请单已存在,补寄单号:' . $dispute_id);
}
// 调用接口获取补寄详情
$apiResult = kernel::single('erpapi_router_request')->set('shop', $shop_id)->reshipping_get(array(
'dispute_id' => $dispute_id,
));
if ($apiResult['rsp'] != 'succ') {
$errorMsg = isset($apiResult['msg']) ? $apiResult['msg'] : '获取补寄详情失败';
return array('rsp' => 'fail', 'msg' => $errorMsg);
}
if (empty($apiResult['data'])) {
return array('rsp' => 'fail', 'msg' => '未获取到补寄详情数据');
}
// 直接使用接口返回的数据,添加必要的字段
$params = $apiResult['data'];
$params['dispute_id'] = $dispute_id;
// 通过 router_response 调用 erpapi_shop_response_reshipping->add
// 它会自动调用 response->add 进行数据转换,然后调用 process->add 进行业务处理
$routerResponse = kernel::single('erpapi_router_response');
$routerResponse->set_channel_id($shop_id);
$routerResponse->set_api_name('ome.reshipping.add');
$result = $routerResponse->dispatch($params);
return $result;
}
}

View File

@@ -30,7 +30,8 @@ class ome_event_trigger_shop_data_delivery_360buy extends ome_event_trigger_shop
$this->__sdf = parent::get_sdf($delivery_id);
if ($this->__sdf) {
$this->_get_delivery_items_sdf($delivery_id, true);
$this->_get_delivery_items_sdf($delivery_id);
$this->_get_split_sdf($delivery_id);
if(empty($this->__sdf['delivery_items'])) {
return array ();
@@ -57,10 +58,11 @@ class ome_event_trigger_shop_data_delivery_360buy extends ome_event_trigger_shop
$is_jdlvmi = kernel::single('ome_order_bool_type')->isJDLVMI($order['order_bool_type']);
if ($is_jdlvmi) {
if ($is_jdlvmi || $this->__sdf['is_split'] == 1) {
$this->_get_order_objects_sdf($delivery_id);
$delivery_package = $this->_get_delivery_package($delivery_id);
$this->__sdf['delivery_package'] = $delivery_package;
$packages = array();
@@ -68,8 +70,13 @@ class ome_event_trigger_shop_data_delivery_360buy extends ome_event_trigger_shop
$packages[$v['package_bn']][] = $v;
}
$this->__sdf['packages'] = $packages;
//不支持单运单全件分批出库
// 如果delivery_items中包含order_objects的所有商品且只有一个运单号重置is_split为0
if ($this->__sdf['is_split'] == 1) {
$this->_check_and_reset_split($delivery_id);
}
}
$is_jdzd = kernel::single('ome_bill_label')->isJDZD($order['order_id']);
if($is_jdzd){
@@ -78,4 +85,93 @@ class ome_event_trigger_shop_data_delivery_360buy extends ome_event_trigger_shop
return $this->__sdf;
}
/**
* 检查并重置is_split
* 当delivery_items包含order_objects的所有商品且只有一个运单号时重置is_split为0
*
* @param int $delivery_id 发货单ID
* @return void
*/
private function _check_and_reset_split($delivery_id)
{
// 1. 从delivery_items中提取所有order_obj_id和对应的sendnum按order_obj_id分组汇总
$delivery_items = $this->__sdf['delivery_items'];
if (empty($delivery_items)) {
return;
}
$delivery_items_by_obj = array();
foreach ($delivery_items as $item) {
if (isset($item['order_obj_id']) && isset($item['sendnum'])) {
$obj_id = $item['order_obj_id'];
$sendnum = intval($item['sendnum']);
if (!isset($delivery_items_by_obj[$obj_id])) {
$delivery_items_by_obj[$obj_id] = $sendnum;
} else {
// 取更大值
$delivery_items_by_obj[$obj_id] = max($delivery_items_by_obj[$obj_id], $sendnum);
}
}
}
// 2. 从order_objects中获取所有order_obj_id和对应的quantity排除已删除的商品
$order_objects = isset($this->__sdf['orderinfo']['order_objects']) ? $this->__sdf['orderinfo']['order_objects'] : array();
if (empty($order_objects)) {
return;
}
$order_objects_by_obj = array();
foreach ($order_objects as $obj_id => $obj) {
// 排除已删除的order_objects
if (isset($obj['delete']) && $obj['delete'] == 'true') {
continue;
}
if (isset($obj['quantity'])) {
$order_objects_by_obj[$obj_id] = intval($obj['quantity']);
}
}
// 3. 遍历order_objects中的每个order_obj_id检查是否在delivery_items中存在且sendnum == quantity
$all_items_included = true;
foreach ($order_objects_by_obj as $obj_id => $quantity) {
if (!isset($delivery_items_by_obj[$obj_id])) {
// order_obj_id不在delivery_items中
$all_items_included = false;
break;
}
if ($delivery_items_by_obj[$obj_id] != $quantity) {
// sendnum不等于quantity表示未全部发货
$all_items_included = false;
break;
}
}
if (!$all_items_included) {
return;
}
// 4. 检查运单号是否唯一
$logi_nos = array();
// 从delivery_package中提取所有非空的logi_no
$delivery_package = isset($this->__sdf['delivery_package']) ? $this->__sdf['delivery_package'] : array();
foreach ($delivery_package as $package) {
if (isset($package['logi_no']) && !empty($package['logi_no'])) {
$logi_nos[$package['logi_no']] = true;
}
}
// 获取主单的运单号
if (isset($this->__sdf['logi_no']) && !empty($this->__sdf['logi_no'])) {
$logi_nos[$this->__sdf['logi_no']] = true;
}
// 检查是否只有一个唯一的运单号
if (count($logi_nos) == 1) {
// 5. 如果所有条件满足重置is_split为0
$this->__sdf['is_split'] = 0;
}
}
}

View File

@@ -33,6 +33,7 @@ class ome_event_trigger_shop_data_delivery_aikucun extends ome_event_trigger_sho
$this->_get_split_sdf($delivery_id);
$this->_add_item_info();
$deleteOlds = array();
if($this->__sdf['oid_list']) {
$delivery = $this->__deliverys[$delivery_id];
@@ -42,7 +43,6 @@ class ome_event_trigger_shop_data_delivery_aikucun extends ome_event_trigger_sho
'status' => 'succ',
];
$shipMent = app::get('ome')->model('shipment_log')->getList('deliveryCode,oid_list', $filter);
$deleteOlds = array();
foreach ($shipMent as $value) {
if(!$value['oid_list'] || $delivery['logi_no'] == $value['deliveryCode']) {

View File

@@ -0,0 +1,40 @@
<?php
class ome_event_trigger_shop_data_delivery_b2b extends ome_event_trigger_shop_data_delivery_common
{
public function get_sdf($delivery_id)
{
$this->__sdf = parent::get_sdf($delivery_id);
if (!$this->__sdf) {
return [];
}
$this->_get_order_objects_sdf($delivery_id);
$this->_get_delivery_items_sdf($delivery_id);
// 订单拆单判断
$order = $this->__sdf['orderinfo'];
$is_split = $this->_is_split_order($delivery_id);
if ($is_split) {
// 判断第一单还是最后一单
$this->_nonsupport_mode_request($delivery_id);
$delivery = $this->__deliverys[$delivery_id];
$this->__sdf['is_last_delivery'] = false;
if ((in_array($delivery['delivery_id'], $this->lastDeliveryId) && $order['ship_status'] == '1') || ($delivery['parent_id'] > 0 && in_array($delivery['parent_id'], $this->lastDeliveryId))) {
$this->__sdf['is_last_delivery'] = true;
}
//拆单 最后一单发货时回写
if (!$this->__sdf['is_last_delivery']) {
return [];
}
}
$this->__sdf['is_split'] = $is_split;
$this->__sdf['order_objects'] = $order['order_objects'];
return $this->__sdf;
}
}

View File

@@ -143,7 +143,7 @@ class ome_event_trigger_shop_data_delivery_common
'aikucun','weimobv','yutang','mingrong','beibei','360buy','yangsc','yunji4fx',
'luban','xiaohongshu','xhs','weimobr','yunmall','meituan4medicine','yunji4pop',
'ecos.ecshopx','weixinshop','website','website_d1m','wxshipin','zkh','kuaishou','pinduoduo',
'meituan4bulkpurchasing','meituan4sg','website_v2',
'meituan4bulkpurchasing','meituan4sg','website_v2','xiaomi',
);
// 开启拆单
@@ -304,16 +304,29 @@ class ome_event_trigger_shop_data_delivery_common
foreach ($delivery_items_detail as $key => $value) {
$order_item = $order_objects[$value['order_obj_id']]['order_items'][$value['order_item_id']];
// 订单基础物料已经发货数量
$item_sendnum = intval($order_item['sendnum']);
if ($value['item_type'] == 'pkg') {
$number = $order_objects[$value['order_obj_id']]['quantity']*$value['number']/$order_item['nums'];
// 公式:子订单已发货数量 = (子订单数量 * 基础物料已发货数量) / 基础物料数量
// 先乘后除可以减少精度损失,使用 floor() 确保向下取整为整数
if ($order_item['nums'] > 0 && isset($order_objects[$value['order_obj_id']]['quantity'])) {
$obj_sendnum = intval($order_objects[$value['order_obj_id']]['quantity'] / $order_item['nums'] * $item_sendnum);
} else {
$obj_sendnum = 0;
}
$delivery_items['obj_'.$value['order_obj_id'] . '_' . $value['delivery_id']] = array(
'name' => trim($order_objects[$value['order_obj_id']]['name']),
'bn' => trim($order_objects[$value['order_obj_id']]['bn']),
'number' => $number,
'sendnum' => $obj_sendnum,
'item_type' => $value['item_type'],
'shop_goods_id' => $order_objects[$value['order_obj_id']]['shop_goods_id'],
'shop_product_id' => $order_item['shop_product_id'],
'oid' => $order_objects[$value['order_obj_id']]['oid'],
'main_oid' => $order_objects[$value['order_obj_id']]['main_oid'],
'logi_no' => $value['logi_no'] ? $value['logi_no'] : $this->__sdf['logi_no'],
@@ -1023,8 +1036,8 @@ class ome_event_trigger_shop_data_delivery_common
foreach ($object['order_items'] as $item) {
if ($product_serial[$item['item_id']] && $object['oid']){
foreach ($product_serial[$item['item_id']]['sn'] as $_sk => $_sn) {
$_imei = $product_serial[$item['item_id']]['imei'][$_sk];
$feature[] = $object['oid'].':'.$_sn.':'.explode(',', $_imei);
$_imei = $product_serial[$item['item_id']]['imei'][$_sk] ?? '';
$feature[] = $object['oid'].':'.$_sn.':'.$_imei;
}
}
}
@@ -1033,8 +1046,9 @@ class ome_event_trigger_shop_data_delivery_common
if ($feature) {
if ($this->__sdf['feature']) {
$this->__sdf['feature'] .= ';sn='.implode('|',$feature);
} else {
$this->__sdf['feature'] = 'sn='.implode('|',$feature);
}
$this->__sdf['feature'] = 'sn='.implode('|',$feature);
}
}

View File

@@ -99,53 +99,44 @@ class ome_event_trigger_shop_data_delivery_pinduoduo extends ome_event_trigger_s
$giftinfo = $this->isGIFT($order['order_id']);
if($giftinfo && $giftinfo['gift_order_status']){
$gift_items = $this->_get_gift_items_sdf($delivery_id);
if($giftinfo && $giftinfo['order_sn'] && $giftinfo['relation_type']==4){
$parent_order_bn = $giftinfo['order_sn'];
// 判断父订单是否已发货,未发货则不回传
$parent_order = app::get('ome')->model('orders')->dump(['order_bn' => $parent_order_bn],'order_id,ship_status');
if($parent_order['ship_status'] != '1'){
return [];
}
$this->__sdf['order_sn'] = $giftinfo['order_sn'];
$this->__sdf['gift_order_flag'] = 1;
}
$maininfo = $this->isMAINGIFT($order['order_id']);
if($maininfo){
$gift_items = $this->_get_gift_items_sdf($maininfo['order_sns']);
if($gift_items){
$this->__sdf['gift_items'] = $gift_items;
}
$this->__sdf['gift_order_status'] = $giftinfo['gift_order_status'];
$this->__sdf['gift_order_status'] = $maininfo['gift_order_status'];
}
return $this->__sdf;
}
protected function _get_gift_items_sdf($delivery_id)
{
$delivery_items = array();
$delivery_items_detail = $this->_get_delivery_items_detail($delivery_id);
$order_objects = $this->_get_order_objects($delivery_id);
$gift_items = [];
foreach ($delivery_items_detail as $key => $value) {
$order_item = $order_objects[$value['order_obj_id']]['order_items'][$value['order_item_id']];
$oid = $order_objects[$value['order_obj_id']]['oid'];
if ($value['item_type'] == 'gift' && $oid) {
$gift_items[] = array(
'oid' => $order_objects[$value['order_obj_id']]['oid'],
'logi_no' => $value['logi_no'] ? $value['logi_no'] : $this->__sdf['logi_no'],
'logi_type' => $value['logi_type'] ? $value['logi_type'] : $this->__sdf['logi_type'],
'logi_name' => $value['logi_name'] ? $value['logi_name'] : $this->__sdf['logi_name'],
);
}
}
if($gift_items) return $gift_items;
}
public function isGIFT($order_id){
//京东变成可发货
$ordLabelObj = app::get('ome')->model('bill_label');
$bills = $ordLabelObj->dump(array('label_code'=>'SOMS_GIFT_ORDER_STATUS','bill_type'=>'order','bill_id'=>$order_id),'bill_id,extend_info');
$bills = $ordLabelObj->dump(array('label_code'=>'SOMS_GIFT_RELATED_ORDER','bill_type'=>'order','bill_id'=>$order_id),'bill_id,extend_info');
if($bills){
@@ -157,4 +148,59 @@ class ome_event_trigger_shop_data_delivery_pinduoduo extends ome_event_trigger_s
return false;
}
public function isMAINGIFT($order_id){
//京东变成可发货
$ordLabelObj = app::get('ome')->model('bill_label');
$bills = $ordLabelObj->dump(array('label_code'=>'SOMS_GIFT_ORDER_STATUS','bill_type'=>'order','bill_id'=>$order_id),'bill_id,extend_info');
if($bills){
$extend_info = json_decode($bills['extend_info'],true);
// order_sns 可能是 JSON 字符串,需要解析
if(isset($extend_info['order_sns']) && is_string($extend_info['order_sns'])){
$extend_info['order_sns'] = json_decode($extend_info['order_sns'], true);
}
return $extend_info;
}
return false;
}
protected function _get_gift_items_sdf($order_sn)
{
// 判断订单是否已发货,未发货则返回空
$order = app::get('ome')->model('orders')->dump(['order_bn' => $order_sn],'order_id,ship_status,order_bn,sync');
if($order['ship_status'] != '1'){
return [];
}
if($order['sync'] == 'succ'){
return [];
}
// 获取发货包裹信息
$orderDelivery = app::get('ome')->model('delivery')->getAllDeliversOrderId($order['order_id']);
$gift_items = [];
foreach($orderDelivery as $value){
// 根据 logi_id 从 dly_corp 表获取 type 作为 logi_type
$dly_corp = app::get('ome')->model('dly_corp')->dump(['corp_id' => $value['logi_id']], 'type');
$gift_items[$value['logi_no']] = array(
'logi_no' => $value['logi_no'],
'logi_type' => $dly_corp['type'],
'logi_name' => $value['logi_name'],
'order_bn' => $order['order_bn'],
);
}
return $gift_items;
}
}

View File

@@ -34,24 +34,26 @@ class ome_event_trigger_shop_data_delivery_taobao extends ome_event_trigger_shop
$this->_get_split_sdf($delivery_id);
$this->__sdf['is_virtual'] = $this->_order_is_all_virtual($delivery_id);
if($this->__sdf['oid_list']) {
$delivery = $this->__deliverys[$delivery_id];
$shipMent = app::get('ome')->model('shipment_log')->getList('deliveryCode,oid_list', ['shopId'=>$delivery['shop_id'], 'orderBn'=>$this->__sdf['orderinfo']['order_bn']]);
foreach ($shipMent as $value) {
if(!$value['oid_list'] || $this->__sdf['logi_no'] == $value['deliveryCode']) {
continue;
}
$oid_list = explode(',', $value['oid_list']);
foreach ($this->__sdf['oid_list'] as $k => $v) {
if(in_array($v, $oid_list)) {
unset($this->__sdf['oid_list'][$k]);
}
}
if(empty($this->__sdf['oid_list'])) {
return false;
}
}
}
// if($this->__sdf['oid_list']) {
// $delivery = $this->__deliverys[$delivery_id];
// $shipMent = app::get('ome')->model('shipment_log')->getList('deliveryCode,oid_list', ['shopId'=>$delivery['shop_id'], 'orderBn'=>$this->__sdf['orderinfo']['order_bn']]);
// foreach ($shipMent as $value) {
// if(!$value['oid_list'] || $this->__sdf['logi_no'] == $value['deliveryCode']) {
// continue;
// }
// $oid_list = explode(',', $value['oid_list']);
// foreach ($this->__sdf['oid_list'] as $k => $v) {
// if(in_array($v, $oid_list)) {
// unset($this->__sdf['oid_list'][$k]);
// }
// }
// if(empty($this->__sdf['oid_list'])) {
// return false;
// }
// }
// }
$this->__sdf['order_extend'] = $this->_get_order_extend($delivery_id);
// BN对应的OID
$oidList = [];

View File

@@ -141,6 +141,10 @@ class ome_event_trigger_shop_data_delivery_vop extends ome_event_trigger_shop_da
}else{
$pkg_nums[$value['order_obj_id']]=$number;
}
// 解决捆绑商品回传销售物料重复且数量为0报“商品数量 必须大于等于1”的问题
if (!$number) {
continue;
}
$delivery_items[] = array(
'name' => trim($order_objects[$value['order_obj_id']]['name']),
'bn' => trim($order_objects[$value['order_obj_id']]['bn']),

View File

@@ -36,7 +36,46 @@ class ome_event_trigger_shop_data_delivery_weimobr extends ome_event_trigger_sho
$this->_get_order_objects_sdf($delivery_id);
$this->_get_delivery_items_sdf($delivery_id);
$this->_get_split_sdf($delivery_id);
// 拆单时过滤已经回写成功的oid
if($this->__sdf['oid_list']) {
$shop_id = isset($this->__deliverys[$delivery_id]['shop_id']) ? $this->__deliverys[$delivery_id]['shop_id'] : '-1';
$order_bn = isset($this->__sdf['orderinfo']['order_bn']) ? $this->__sdf['orderinfo']['order_bn'] : '-1';
// shipment_log
$shipMent = app::get('ome')->model('shipment_log')->getList('deliveryCode,oid_list', ['shopId'=>$shop_id, 'orderBn'=>$order_bn]);
if($shipMent){
foreach ($shipMent as $value)
{
if(!$value['oid_list'] || $this->__sdf['logi_no'] == $value['deliveryCode']) {
continue;
}
$oid_list = explode(',', $value['oid_list']);
foreach ($this->__sdf['oid_list'] as $k => $v)
{
if(in_array($v, $oid_list)) {
unset($this->__sdf['oid_list'][$k]);
}
}
// delivery_items
foreach ($this->__sdf['delivery_items'] as $dlyItemKey => $dlyItemValue)
{
if(in_array($dlyItemValue['oid'], $oid_list)) {
unset($this->__sdf['delivery_items'][$dlyItemKey]);
}
}
// check
if(empty($this->__sdf['oid_list'])) {
return false;
}
}
}
}
}
return $this->__sdf;
}
}

View File

@@ -22,7 +22,11 @@ class ome_event_trigger_shop_data_delivery_xiaomi extends ome_event_trigger_shop
$this->__sdf = parent::get_sdf($delivery_id);
if ($this->__sdf) {
$this->_get_order_all_objects_sdf($delivery_id);
// $this->_get_order_all_objects_sdf($delivery_id);
$this->_get_order_objects_sdf($delivery_id);
$this->_get_delivery_items_sdf($delivery_id);
}
return $this->__sdf;

View File

@@ -79,7 +79,13 @@ class ome_event_trigger_shop_delivery
$deliveryModel = app::get('ome')->model('delivery');
$delivery = $this->_getDelivery($delivery_id);
if (empty($delivery['logi_no'])) return ['rsp'=>'fail', 'msg'=>'运单号为空'];
if (empty($delivery['logi_no'])) {
// 提货物流允许 logi_no 为空,运单号由平台接口返回
$corpInfo = app::get('ome')->model('dly_corp')->dump($delivery['logi_id'], 'corp_model');
if ($corpInfo['corp_model'] != 'pickup') {
return ['rsp'=>'fail', 'msg'=>'运单号为空'];
}
}
if ($delivery['is_bind'] == 'true') { // 合单
$children_delivery_id = array();