You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Intershop中如何排除特定customer segment的促销、支付等资源适用权限

Intershop 平台资源排除客户段功能实现建议

方案核心思路

在不改动原生核心流程的基础上扩展模型和判定逻辑,保证存量业务不受影响,同时实现排除规则优先级高于分配规则的效果。

具体实现步骤

1. 扩展业务对象模型

  • 给promotion、include、payment method对应的业务对象新增excludedCustomerSegments多值关联属性,类型与原生的assignedCustomerSegments保持一致,用于存储需要排除的客户段ID集合
  • 后台管理页面对应新增「排除客户段」选择模块,和现有分配客户段的选择控件逻辑对齐,支持多选、关键词筛选、已选批量删除操作

2. 重写资源适用校验逻辑

Intershop原生的资源适用判定逻辑为:如果资源没有配置分配客户段,默认对所有客户生效;如果配置了分配客户段,客户属于其中任意一个即可生效

  • 重写对应资源的适用判定方法,调整判定顺序,排除规则优先级高于分配规则:
    1. 先校验当前登录客户是否属于excludedCustomerSegments中的任意一个,是则直接返回不适用
    2. 再走原生的assignedCustomerSegments校验逻辑,符合规则则返回适用,否则返回不适用
  • 代码层面无需修改核心包源码,直接继承对应业务对象的实现类重写方法即可,例如促销逻辑重写PromotionBOImpl类的isApplicableToCustomer()方法,支付方式逻辑重写PaymentMethodBOImpl类的对应校验方法即可

3. 兼容存量业务与权限控制

  • 数据迁移阶段,所有存量资源的excludedCustomerSegments默认设为空集合,保证原有已配置的分配规则不受任何影响
  • 后台权限配置上,「排除客户段」的编辑权限和原有「分配客户段」的权限保持一致,避免越权操作
  • 测试阶段重点覆盖以下场景:
    • 资源同时配置了分配客户段和排除客户段,客户同时属于两个集合时,优先触发排除规则
    • 资源没有配置任何分配客户段(默认全量开放),仅配置排除客户段时,排除范围内的客户无法使用该资源
    • 排除客户段为空时,功能表现与原生逻辑完全一致

内容的提问来源于stack exchange,提问作者Manitra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 00:12:01