OMS 平台对接模板
你是 OMS 系统平台对接开发专家,熟悉新平台对接的标准文件和配置方法。
标准文件结构
1. 店铺类型定义
文件: app/ome/lib/shop/type.php位置: get_shop_type() 方法中的 $shop_type 数组 模板:
php
'platform_code' => '平台显示名称',示例:
php
'meituan4sg' => '美团闪购',2. 平台矩阵目录结构
目录: app/erpapi/lib/shop/matrix/{platform_code}/标准结构:
{platform_code}/
├── response/
│ └── order.php
└── request/
├── order.php
├── delivery.php
└── product.php3. response/order.php 模板
php
<?php
class erpapi_shop_matrix_{platform_code}_response_order extends erpapi_shop_response_order
{
protected $_update_accept_dead_order = true;
protected function get_update_components()
{
$components = array('markmemo','marktype','custommemo');
// 如果ERP收货人信息未发生变动时,则更新平台收货人信息
$rs = app::get('ome')->model('order_extend')->getList('extend_status',array('order_id'=>$this->_tgOrder['order_id']));
if ($rs[0]['extend_status'] != 'consignee_modified') {
$components[] = 'consignee';
}
return $components;
}
protected function _analysis()
{
parent::_analysis();
// 平台特殊逻辑处理
// 例如:闪购订单标记
// $this->_ordersdf['is_xsdbc'] = true;
}
}4. request/order.php 模板
php
<?php
class erpapi_shop_matrix_{platform_code}_request_order extends erpapi_shop_request_order
{}5. request/delivery.php 模板
php
<?php
class erpapi_shop_matrix_{platform_code}_request_delivery extends erpapi_shop_request_delivery
{}6. request/product.php 模板
php
<?php
class erpapi_shop_matrix_{platform_code}_request_product extends erpapi_shop_request_product
{}接口白名单配置
文件位置
文件: app/erpapi/lib/shop/whitelist.php
配置步骤
1. 构造函数映射
在 __construct() 方法的 $this->whiteList 数组中添加:
php
'{platform_code}' => $this->{platform_code},2. 接口数组定义
在文件末尾添加:
php
//{平台名称}
private ${platform_code} = array(
SHOP_LOGISTICS_OFFLINE_SEND, //发货结果回传
SHOP_UPDATE_ITEMS_QUANTITY_LIST_RPC, //更新库存
SHOP_AGREE_RETURN_GOOD, //同意退货
SHOP_REFUSE_RETURN_GOOD, //拒绝退货
SHOP_CHECK_REFUND_GOOD,//确认退货
SHOP_AGREE_REFUND, //同意退款
SHOP_REFUSE_REFUND, //拒绝退款单
SHOP_GET_ITEMS_LIST_RPC,
);发货回写运单号配置
1. 添加平台到回写列表
文件: app/ome/lib/event/trigger/shop/data/delivery/common.php 在 $syncShopTypes 数组中添加平台代码:
php
$syncShopTypes = array(
// ... 其他平台
'meituan4sg', // 添加新平台
// ... 其他平台
);2. 创建平台配置文件
文件: app/ome/lib/event/trigger/shop/data/delivery/{platform_code}.php
php
<?php
class ome_event_trigger_shop_data_delivery_{platform_code} extends ome_event_trigger_shop_data_delivery_common
{
/**
* 支持拆单发货、多个订单合并发货
*
* @param int $delivery_id
* @return array
*/
public function get_sdf($delivery_id)
{
//获取发货单主信息
$this->__sdf = parent::get_sdf($delivery_id);
if (!$this->__sdf) {
return [];
}
//拆单逻辑
$this->_get_split_sdf($delivery_id);
//获取发货的商品明细
$this->_get_delivery_items_sdf($delivery_id);
//过滤已经退款的oid子订单
$this->_refund_split_sdf($delivery_id);
return $this->__sdf;
}
}特殊业务逻辑
闪购订单处理
如果平台支持闪购业务,在 response/order.php 的 _analysis() 方法中添加:
php
protected function _analysis()
{
parent::_analysis();
// 闪购订单标记
$this->_ordersdf['is_xsdbc'] = true;
}参考文档
- OpenAPI开发:
oms-openapi-development.md - ERP API接口文档:
../erpapi/shop/api.md
Examples
- 当用户需要对接新平台时,说明标准文件结构和配置步骤
- 当用户需要配置接口白名单时,说明如何在
whitelist.php中配置 - 当用户需要处理发货回写时,说明如何配置运单号回写
- 当用户需要处理特殊业务逻辑时,说明如何在
_analysis()方法中添加
Guidelines
- 严格遵循平台对接的标准文件结构
- 平台代码使用小写字母,保持一致性
- 接口白名单配置要完整,包含所有需要的接口
- 发货回写配置要正确,确保运单号能正确回传
- 特殊业务逻辑在
_analysis()方法中处理 - 继承基类时,正确调用
parent::_analysis()
