# 分销开票金额拆分（方案二·售后扣减）

> 繁花惠 / 优花速达开票快照的拆分顺序、售后「谁售后扣谁」、优惠券如何被吸收、带数字的例子，以及实开会不会大于实付

- 类型：业务口径
- 分类：分销开票
- 后端服务：purchaser
- 状态：已上测
- 测试分支：kpsh
- 更新：2026-11-03
- 网页版：https://doc.xfun.fun/partner-invoice-split-v2

## 结论

- 开票金额在 **确认收货满 5 天** 时按当时数据拆一次并固化（开票快照），之后运费、可开票状态、售后都不再改它。
- 快照时 **各票据项之和恒等于用户实付**（现金 + 寻梦币，已扣优惠券、满减和此前的售后退款），所以快照时实开不会大于实付。
- 唯一会出现「实开 \> 最终实付」的情况：**快照之后才发生的售后**。按「开票后的售后不管」口径不再扣减。

## 拆分顺序

```text
用户实付 = 现金实付 + 寻梦币抵扣        （优惠券、满减、快照前的售后退款都已不在其中）
```

按下表顺序依次分配，后一项只能分前面剩下的钱：

| 顺序 | 票据项 | 金额 | 出票方 |
|----|----|----|----|
| 1 | 花材发票 | 可开票供应商：供货价 × 扎数 − 该供应商承担的售后额 | 对应供应商 |
| 2 | 花材收据 | 不可开票供应商：供货价 × 扎数 − 该供应商承担的售后额 | 平台出具 |
| 3 | 物流费 | min（实际运费，用户付的物流加价，剩余额度） | 捷通公司发票或收据 |
| 4 | 供应链服务费 | min（打包服务费，剩余额度） | 花序公司 |
| 5 | 平台服务费 | 剩余全部 | 花古德公司 |

## 售后怎么扣（谁售后扣谁）

- 只看 **发货后的售后**：用户 / 客服售后、质检处罚、售后申诉，且退款成功。发货前退款已经减了扎数，不再重复扣。
- 每一笔售后明细扣减额 = min（供应商承担额，退给用户的商品金额），从 **承担的那个供应商** 的花材发票或收据里扣，扣到 0 为止。
- 质检处罚多罚供应商的部分不影响开票；城市仓、到场货账号承担的部分没有对应花材，随剩余额度由平台服务费吸收。

## 优惠券怎么处理

优惠券不单独列项。它让「用户实付」变少，于是：

1. 先挤占排在最后的平台服务费，然后是供应链服务费、物流费；
2. 这三项挤完仍不够时，倒扣花材收据；
3. 收据也扣到 0 仍不够（实付低于全部供货价）时，按各供应商金额比例下调花材发票，尾差补给金额最大的一项，保证合计正好等于实付。

## 例子

设定：A 供应商可开票，供货 30 元 × 10 扎 = 300；B 供应商不可开票，供货 20 元 × 5 扎 = 100；用户物流加价 40，实际运费 35，打包服务费 10。

| 情况 | 用户实付 | A 花材发票 | B 花材收据 | 物流费 | 供应链 | 平台 | 合计 |
|----|----|----|----|----|----|----|----|
| 无券、无售后，原价 500 | 500 | 300 | 100 | 35 | 10 | 55 | 500 |
| 用 50 元券 | 450 | 300 | 100 | 35 | 10 | 5 | 450 |
| 50 元券 + 售后退用户 70（A 承担 60） | 380 | 240 | 100 | 35 | 5 | 0 | 380 |
| 150 元券 + 同上售后 | 280 | 240 | 40 | 0 | 0 | 0 | 280 |
| 券极大，实付只剩 200 | 200 | 200 | 0 | 0 | 0 | 0 | 200 |

逐行说明：

- 第 2 行：50 元券全部由平台服务费吸收（55 → 5）。
- 第 3 行：A 承担 60，A 发票 300 → 240；实付再少 70，剩余额度只够供应链 5，平台为 0。
- 第 4 行：花材 240 + 100 = 340 已超过实付 280，物流、供应链、平台全为 0，B 收据倒扣 60 → 40；A 发票不动。
- 第 5 行：收据扣到 0 仍超 40，A 发票按比例下调到 200。

## 测试环境真实订单

| 订单 | 用户实付 | 售后 | 拆分结果 | 合计 |
|----|----|----|----|----|
| T20261031999108498792 | 188.00 − 37.60 = 150.40 | 退用户 37.60，供应商承担 30 | 花材发票 150 − 30 = 120，物流 13，供应链 2.50，平台 14.90 | 150.40 |
| T20261102999108164205 | 216.90（已扣售后 24.10） | 退用户 24.10，供应商承担 15.50 | 花材收据 155 − 15.50 = 139.50，物流 51，供应链 10，平台 16.40 | 216.90 |

## 会不会实开大于实付

| 场景 | 会不会 | 说明 |
|----|----|----|
| 快照时的订单合计 | 不会 | 平台服务费取剩余，不够依次倒扣收据、下调发票，合计恒等于实付 |
| 用了优惠券 | 不会 | 券先由平台项吸收，最终兜底下调发票 |
| 快照前发生的售后 | 不会 | 实付已减少，花材按承担额扣减，差额由平台项吸收 |
| 快照后才发生的售后 | **会** | 按「开票后的售后不管」不再扣减；例如开票 150 后又退 30，最终实付 120，发票仍为 150 |
| 单个供应商维度 | 可能 | 发票按供货价开，券先由平台项吸收；某供应商发票可能高于用户为这几扎券后实付的钱，订单合计不受影响 |

> [!IMPORTANT]
> 若要完全避免「快照后售后」造成实开大于实付，只能二选一：限制确认收货 5 天后不能再发起售后，或接受这部分差额。

## 供应商端订单明细

供应商端「发票任务 → 查看订单」：

- 商品行显示 供货价 × 扎数 − 售后扣减额，快照之后的售后不计；
- 分销订单的合计直接取开票快照金额，因此与商品行之和一致；仅在实付低于全部供货价、发票被按比例下调时，合计会小于各行之和。
