首配、预订单与首批配货专题
本文整理首配方案、预订单、预售活动、提货、售后和首批配货订单。它们属于采购主链路的特殊来源,排查时要关注 orderType、srcOrderType 和预订单表。
业务目标
- 为新服务站或指定服务站配置首配方案和模板。
- 支持预订单创建、支付、提货、售后。
- 首配或预订单最终可能转采购单、采购退货或售后单。
入口文件
- 采购预订:
application/controllers/scm/InvPre.php - 预订单内部:
application/controllers/inner/PreOrder.php - 预订单任务:
application/controllers/tasks/PreOrder.php - 预订单服务:
application/Services/PreOrders/* - 首配配置:
application/config/tables.php中BS_DELIVERY_PLAN、BS_SETOUT_* - 市场预订单:
application/controllers/market/PreOrder.php
核心表
| 表 | 用途 | | --- | --- | | t_pre_order / t_pre_order_info | 新预订单 | | t_pre_after_sale | 预订单售后 | | t_pre_order_province | 预订单提货省份 | | t_scm_preorder / t_scm_preorder_info | 旧预订单 | | t_scm_preorder_pay | 预订单支付 | | t_scm_preorder_spend | 预订单提货 | | t_bs_delivery_plan | 首配方案 | | t_bs_setout_template | 首配模板 | | t_bs_setout_template_item | 方案模板关系 | | t_bs_setout_goods | 首配模板商品 |
主流程
flowchart TD
A["配置首配/预售方案"] --> B["服务站下预订单"]
B --> C["支付或授信"]
C --> D["提货/转采购"]
D --> E["采购出库/入库"]
E --> F["售后或关闭"]
关键规则
- 预订单相关采购来源通常不是普通采购,必须看
srcOrderType。 - 提货数量、已提数量、售后数量要和采购明细数量分开看。
- 预订单退款和采购退款可能走不同回调和状态。
- 首配模板变更会影响后续新建订单,通常不应反改历史订单。
常用排查命令
rg -n "PreOrder|SCM_PRE_ORDER|SCM_PREORDER|PRE_ORDER|ORDERTYPE_PRE_ORDER|SRC_ORDER_TYPE_PRE_ORDER" application
rg -n "BS_DELIVERY_PLAN|BS_SETOUT_TEMPLATE|BS_SETOUT_GOODS|first|首配" application
rg -n "preorderrefund|TYPE_ORDERCENTER_PREORDER|pre_after_sale" application/controllers/tasks application/KzData/Enums application/Services
改动风险和回归清单
- 预订单新增、支付、提货、售后、关闭。
- 首配模板、首配商品、首配方案。
- 预订单转采购、采购关闭、退款。
- 预订单报表和采购报表口径。