B09 创建课程包 - 第 2 步:逐门定价 ECA 课程定价 / 课程包 · 核心页面
定价权下沉到每门课:运营逐门设定该课在包内的价格(默认 = 单卖价,可下调、不得高于单卖价、可为 0 元赠送)。 包总价由各课自动汇总,只读、不可直接编辑——因此不存在「总价与各课之和不一致」与尾差问题。
课程包基本信息 可填写
| 字段 | 类型 | 必填 | 校验 / 说明 |
|---|---|---|---|
| 课程包名称 | 输入 | * | ≤ 30 字;在售包不可重名 |
| 英文名称 | 输入 | * | ≤ 60 字;家长端英文站点与导出报表展示 |
| 课程包介绍 | 多行文本 | * | ≤ 300 字,家长端详情展示 |
| 封面图 | 图片上传 | — | 建议 16:9,≤ 2MB |
定价表格 「包内单价」可编辑,合计只读
| 序号 | 课程名称 | 批次号 / 开课学期 | 单卖价 (价格上限) |
包内单价 (可编辑) |
折算折扣 | 校验提示 |
|---|---|---|---|---|---|---|
| 1 | 篮球课 | BT20261000001 / 2026 秋季 | ¥300.00 | 10.0 折 | ||
| 2 | 游泳课 | BT20261000002 / 2026 秋季 | ¥300.00 | 8.0 折 | ||
| 3 | 舞蹈课 | BT20261000006 / 2026 秋季 | ¥350.00 | 8.6 折 | ||
| 包总价(自动汇总) | ¥840.00 只读·不可直接编辑 | |||||
派生规则:招生上限 = min(包内各课程招生人数)= 25(取包内招生人数最少的那门课,只读派生);
报名时间窗 = 各子批次交集;可售数量 = 招生上限 − 已售包数(按「包 + 学生」去重)。
含 0 元赠送课 时:该课不可单独购买,只能随包获得。
校验 保存 / 上架前统一执行
| # | 校验 | 提示 |
|---|---|---|
| 1 | 每门包内单价 ≤ 该课单卖价 | 「「游泳课」包内单价不能高于单卖价 ¥300」 |
| 2 | 每门包内单价 ≥ 0 | 「包内单价不能为负数」 |
| 3 | 包总价 > 0 | 「包总价必须大于 0」 |
| 4 | 包名称非空且不重复 | — |
为什么不做「折扣率 / 目标总价反推预填」:若提供,运营输入 8 折后系统仍需把差额摊回各课,
会重新引入「摊到 0 元」「尾差」等问题。本方案要求逐门录价,价格构成 100% 确定。