Skip to content

等级分销与货源集市多渠道规则 ​

等级分销和货源集市是同一商品的不同供货渠道,不再分别生成代理商品,也不再把商品永久锁定到某一个渠道。

商品关系 ​

  • 同一“下级商户 + 直属上级 + 上级商品”只能有一条 goods_agent_relation。
  • 已从任一渠道对接后,其他入口统一显示“已对接”。
  • goods_agent_relation.source、relation_id、cost_price 保留用于兼容旧客户端,含义调整为当前解析结果,不是永久绑定来源。
  • 商户主动解除商品对接后,渠道恢复不会自动重新创建商品。

渠道关系 ​

agent_relation_channel 独立保存上下级之间的渠道授权;goods_agent_supply_channel 保存已对接商品在该渠道下的实时价格和有效性。

  • channel_type=1:等级分销,价格来自启用的 goods_agent_price。
  • channel_type=2:货源集市,价格来自 goods.hall_price,同时校验名片、访问权限和大厅分类。

每个渠道独立保存状态、范围、价格、继续分销权限、失效原因和报价版本。调整等级只替换等级渠道,不删除大厅渠道。

当前供货价 ​

系统从所有有效渠道选择最低价。价格相同时:

  1. 当前渠道仍有效则保持当前渠道。
  2. 当前渠道失效则按优先级选择。
  3. 优先级相同按渠道 ID 选择,避免反复切换。

例如等级价 39 元、大厅价 42 元时使用 39 元;等级渠道失效而大厅仍有效时自动切换到 42 元。全部渠道失效才显示“无对接权限”。

继续向下分销 ​

  • 商户自己销售时,从全部有效渠道选择最低供货价。
  • 商户继续向下分销时,只能从 can_proxy=1 的有效渠道中选择成本基准。
  • 货源集市渠道默认 can_proxy=0。
  • 没有允许继续分销的渠道时,代理商品不能继续开放等级或大厅供货。
  • distribution_enabled 保存商户自己的分销开关,proxy_supply_available 表示上游 PROXY 渠道是否可用,effective_can_proxy 为两者共同计算的最终能力。
  • 上游 PROXY 能力失效只更新最终能力,不覆盖商户开关,也不清空等级价、大厅价或分类;RETAIL 渠道仍有效时,商户仍可正常零售。

状态变化 ​

调整等级、关闭等级商品、价格变化、大厅权限变化、封禁/解封、总分销权限和上级商品状态变化,统一调用供货渠道解析器:

text
渠道变化
→ 重新计算有效渠道
→ 选择最低有效供货价
→ 对比原供货价
→ 更新商品兼容字段和业务状态
  • 有其他有效渠道:保持商品对接并自动切换。
  • 全部渠道失效:自动下架,显示“无对接权限”。
  • 拉黑或全局停供:自动下架,显示“停供已下架”。
  • 上级商品下架:显示“上级已下架”。
  • 权限恢复后重新计算全部渠道、最低有效供货价和继续分销权限,并清除已经解除的异常标记;商品保持当前下架状态,不自动替商户上架,必须由商户确认后手动上架。

涨价规则 ​

  • 新成本导致售价不足最低利润:无论是否开启涨价自动下架,都下架并显示“售价待调整”。
  • 新成本上涨、售价仍有利润、开启涨价自动下架:下架并显示“售价待调整”。
  • 新成本上涨、售价仍有利润、未开启:只更新成本,保持原上下架状态。
  • 成本下降或不变:更新成本,不自动改变上下架状态。

兼容说明 ​

旧商户端可以继续读取:

  • source:当前实际渠道类型。
  • cost_price:当前最低有效供货价。
  • can_proxy:兼容字段,等同当前 effective_can_proxy,不能再作为商户开关的唯一存储。
  • proxy_status / proxy_status_text:当前业务状态。

新版接口会额外返回 distribution_enabled、proxy_supply_available、effective_can_proxy、current_channel_id、supply_version 和 supply_channels。旧客户端忽略新增字段即可。