首配、预订单与首批配货专题

本文整理首配方案、预订单、预售活动、提货、售后和首批配货订单。它们属于采购主链路的特殊来源,排查时要关注 orderTypesrcOrderType 和预订单表。

业务目标

  • 为新服务站或指定服务站配置首配方案和模板。
  • 支持预订单创建、支付、提货、售后。
  • 首配或预订单最终可能转采购单、采购退货或售后单。

入口文件

  • 采购预订:application/controllers/scm/InvPre.php
  • 预订单内部:application/controllers/inner/PreOrder.php
  • 预订单任务:application/controllers/tasks/PreOrder.php
  • 预订单服务:application/Services/PreOrders/*
  • 首配配置:application/config/tables.phpBS_DELIVERY_PLANBS_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

改动风险和回归清单

  • 预订单新增、支付、提货、售后、关闭。
  • 首配模板、首配商品、首配方案。
  • 预订单转采购、采购关闭、退款。
  • 预订单报表和采购报表口径。