跳到主要内容

礼券、优惠券与套餐 (如果您的门店已启用)

创建和管理预付价值(礼券)、折扣(优惠券)和次数包(套餐)。POS 兑换;Admin 配置和追踪。

当前应用界面

三种资产类型​

资产是什么在哪售卖在哪兑换
礼券预付美元价值(如 $100 礼品卡)POS 柜台或线上结账(支付方式)
优惠券折扣(免费服务、%、固定 $ 或买 X 送 Y);可选实名绑定持有人Admin(批量发放)结账(支付方式)
套餐预付次数包(如 5×深层按摩)POS 柜台、Admin 或线上服务线(非结账)

三者都遵循模板 → 实例模式:设计模板(规则),然后从中售出/发放实例。

礼券模板​

Admin → 代金券管理 → 模板 标签页

字段用途
名称售卖时和礼券上显示
编码前缀生成编码的开头字符(如 GV-)
面值持有者可消费的金额
可变面值开启后由买方在售卖时自定金额,而非固定面值
售价买方支付的金额(促销时可与面值不同)
有效期数值 + 单位(天 / 月 / 年),自售出起计算
有效起始 / 截止日期可选的固定兑换时间窗口
最低消费兑换时所需的最低到店总额
适用服务分类限制只能兑换某些服务分类(空=全部)
允许部分使用默认开启——持有者可分多次到店使用余额直到用完;关闭则一次到店用尽

礼券实例​

实例在 POS 售卖礼券时(售卖礼券)或线上售出时创建。每个实例有唯一编码、剩余余额和过期日期,列在已售代金券标签页中,并可从那里通过邮件作为礼品投递。

优惠券模板​

Admin → 优惠券管理 → 模板 标签页

字段用途
名称对客户和 POS 显示
折扣类型free_service、percentage_discount、fixed_discount 或 buy_x_get_y
折扣值折多少 % 或 $(或免费/赠送的服务)
最大折扣金额百分比折扣的 $ 上限
有效天数从发放到过期的天数
最低消费使用条件的最低到店总额
适用服务优惠券适用于哪些服务(空=全部)
使用模式 / 最大总使用次数 / 总数量一个券码可兑换几次,以及该模板总共可发放多少券码
佣金基数技师提成按 after_discount(默认,折后)还是折前价格计算——这会改变技师报酬
排除的支付方式不能与优惠券组合使用的支付方式
实名优惠券开启后兑换时必须识别持有人——仅指定客户可用

发放优惠券​

优惠券从 Admin 按批次发放,一次最多从模板生成 100 个券码,可选设置过期天数。发放时券码不绑定客户;如需识别持有人,请将模板标记为实名。已发放的券码列在已发放优惠券标签页中,在 POS 结账时输入。

套餐模板​

Admin → 套餐管理 → 模板 标签页

字段用途
名称如"5×深层按摩 60分钟"
代码必填的套餐代码(如 PKG-001)
项目包含的服务 JSON 列表(服务 ID + 数量)
售价买方为套餐支付的金额
有效天数从购买到过期的天数
可转让持有者是否可将套餐转给他人
线上销售启用线上售卖;要求套餐不可转让,并设置线上政策代码 + 版本

套餐实例​

在 POS、Admin 或线上售出,列在已售套餐标签页中。每个实例追踪每种服务类型的剩余次数。兑换在服务线上发生(非支付步骤)——参见 收银 → 套餐。

线上销售与商业运营​

礼券和套餐也可以在线上售卖。线上订单经历 payment_pending → paid → fulfilled;在 Admin → 商业运营恢复(commerce.operations.read)监控,某一步失败时可在此重试履约或客户通知。

过期​

三种资产类型都有自动过期:

  • 每晚 Celery 任务(expire_assets)在平台时间午夜运行,将过了过期日期的实例标记为 expired。
  • 过期资产无法兑换。
  • 过期在实例详情和报表中可见。

跨店兑换(Twin)​

如果您的门店属于联合运营 Twin:

  • A 店售出的礼券可在 B 店兑换。
  • Twin 门店共享一个价值池(settlement_mode = shared_pool,无结算比率),因此跨店兑换不会产生跨店结算行。
  • Twin 激活时自动生效;无需额外配置。

提示​

  • 可变面值礼券:适合自定义礼品金额。买方在 POS 自己定价。
  • 优惠券定向:当券码只能由交付给的那位客户使用时,将模板标记为实名;非实名券码任何持有者都可兑换。
  • 套餐提成:技师按服务的门市价获得提成,而非套餐的折扣价。无论客户如何付费,都确保公平报酬。