按工作平台 OmsDataDay 源码 + 9.1-9.16 逐单对比反推,合并/明细基础信息一致率均达 99.9% 以上。
取数范围
- 换单配对:快递明细旧单号在出库单查不到时,配同订单下未被占用的出库单新单号
- 作废重出:同单号/同订单多张出库单时优先有效单、再取最新 io_date
- 订单已取消/已拆分/已合并的快递明细不出行;订单标签含"线上发货"同样排除
- 合包/拼单:按 单号+订单号 定位出库单;同单号不同交易单号的出库单照常补出
- 发货明细无单号:出库单单号 -> 订单单号 -> 空,不再借运费表里其它包裹单号
- 自动发货仓虚拟/补差单:单号已被别的包裹输出则留空
- @ 去重只在同一交易单号、本次同步时间段内比对,剩余 @ 前缀统一去掉
字段取值
- 发货时间取出库单 io_date;平台取视图 shop_site(无则映射);省市区取视图
- 合并商品名称/供应商取包裹内最后一个商品(原为 MIN);名称 & 转 ^
- 明细体积:数量×长×宽×高,代发仓非标准承运商不乘数量,指定快递为 0(config detail_volume)
- 组合件合并值单独存 m_* 列(新迁移),合并导出优先使用
- 仓库 {未指定发货仓} 导出为空;明细 0 尺寸/体积导出为空
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014nvGZkg27YMEdhry6eiuwf
62 lines
3.1 KiB
PHP
62 lines
3.1 KiB
PHP
<?php
|
||
|
||
/**
|
||
* 聚水潭(聚石塔/奇门)开放平台接入配置。
|
||
*
|
||
* caiwu 自建奇门客户端直连聚水潭拉取原始销售出库单,脱离 jiansun。
|
||
* 复用工作平台现有授权(同一套 app_key / app_secret / customerId / v)。
|
||
*
|
||
* 凭证只放 runtime/.env 或系统数据库私有配置,权限 600,不入 Git / PR / 日志。
|
||
* 未填 app_key / app_secret 前,客户端拒绝发起请求,不会同步任何数据。
|
||
*/
|
||
return [
|
||
// 奇门(聚石塔)网关地址,对应工作平台配置 ErpJSTUrl。
|
||
'gateway_url' => env('JST_QIMEN_URL', ''),
|
||
|
||
// 授权凭证(复用现有)。
|
||
'app_key' => env('JST_APP_KEY', ''),
|
||
'app_secret' => env('JST_APP_SECRET', ''),
|
||
'customer_id' => env('JST_CUSTOMER_ID', ''),
|
||
|
||
// 奇门固定参数。
|
||
'format' => env('JST_FORMAT', 'json'),
|
||
'version' => env('JST_API_VERSION', '2'),
|
||
'simplify' => env('JST_SIMPLIFY', 'true'),
|
||
|
||
// 落地存储连接:默认本地 MySQL 容器(jushuitan_local,见 config/database.php),
|
||
// 与远程共享镜像库隔离;上生产时用 env JST_DB_CONNECTION 覆盖。
|
||
'connection' => env('JST_DB_CONNECTION', 'jushuitan_local'),
|
||
|
||
// 同步参数。
|
||
'sync' => [
|
||
'page_limit' => (int) env('JST_SYNC_PAGE_LIMIT', 100), // 每页条数(奇门 limit)
|
||
'overlap_hours' => (int) env('JST_SYNC_OVERLAP_HOURS', 48), // 增量重叠窗口,补迟到更新
|
||
'window_hours' => (int) env('JST_SYNC_WINDOW_HOURS', 24), // 单次拉取时间窗口
|
||
'max_pages' => (int) env('JST_SYNC_MAX_PAGES', 0), // 单次最多翻页,0=不限
|
||
'request_timeout' => (int) env('JST_REQUEST_TIMEOUT', 30), // 秒
|
||
'retry_times' => (int) env('JST_RETRY_TIMES', 5),
|
||
'retry_sleep_ms' => (int) env('JST_RETRY_SLEEP_MS', 1000),
|
||
],
|
||
|
||
// 发货数据「导出明细」体积口径(对齐工作平台 OmsDataDay:明细体积默认 = 数量 × 长×宽×高)。
|
||
// 依据:工作平台 9.1-9.16 导出明细,非代发仓 8421/8421 行乘数量;代发仓走简尚线路快递的不乘数量。
|
||
// 合并口径体积不受此影响(单独存 m_volume_cm3)。
|
||
'detail_volume' => [
|
||
// 这些发货仓的明细体积不乘数量(工厂代发虚拟仓)
|
||
'no_qty_warehouses' => ['常州简尚家居有限公司'],
|
||
// 上述仓库中,用这些标准承运商发货时仍乘数量
|
||
'qty_carriers_in_no_qty_warehouses' => [
|
||
'中通快运', '韵达快递', '申通E物流', '安能物流', '邮政电商标快', '邮政快递包裹POSTB',
|
||
'壹米滴答', '百世物流', '德邦快递', '中通速递', '圆通速递',
|
||
],
|
||
// 这些快递的明细体积一律为 0
|
||
'zero_volume_expresses' => ['白云韵达-天猫亿家达', '中通礼品单'],
|
||
],
|
||
|
||
// 接口方法名(对应工作平台 ErpTradeData 中的调用)。
|
||
'methods' => [
|
||
'sctrade_list' => 'erp.sctrade.query', // 出库单列表(按时间窗分页)
|
||
'sctrade_detail' => 'erp.sradesku.query', // 单据完整明细(按 tradeId)
|
||
],
|
||
];
|