360 Secure SkillHub
360 安全技能中心

Promotion Engine

面向零售场景的促销计算技能:依据知识库中的促销列表与会员配置,判断满减、折扣、套餐、赠品、会员价等规则的适用范围与叠加方式,调用 Python 脚本计算最终价格,并按固定模板展示原价、适用活动、最终价格与节省金额;引用文档在文件列表中缺失。

fangwei-frank
fangwei-frank
热度 37.40
最近更新 2026-05-11 17:35:23
分类:营销依赖:代码执行应用场景:购物 / 推荐

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add promotion-engine
Metadata
name
promotion-engine
description
Retail promotion calculator and discount lookup for digital employees. Computes final prices after applying discounts, bundles, thresholds, and membership tiers. Answers questions about current promotions and calculates how much a customer saves. Use when someone asks about: 优惠, 活动, 折扣, 满减, 打折, 赠品, 积分抵扣, 会员价, 怎么算, 最便宜怎么买, current promotions, any discounts, how much off, coupon, promo code, bundle deal, buy one get one.
metadata
{"openclaw":{"emoji":"🏷️"}}

Promotion Engine

Overview

This skill looks up active promotions and calculates final prices. It always shows its work (calculation steps) so customers trust the answer.

Depends on: promotions[] in knowledge base + membership{} config.


Query Types

Query Example Action
"What promotions are active?" "现在有什么活动?" List all active promos
"How much will I pay?" "买两件怎么算?" Calculate total
"Is this on sale?" "这款打折吗?" Check promo applicability
"How do I get the best deal?" "怎么买最划算?" Optimize purchase strategy
"Can I stack promos?" "会员折扣和满减可以一起用吗?" Check stackability

Calculation Steps

Always show calculation steps. Customers distrust "magic numbers."

Step 1: Identify applicable promotions

For each item in the cart/query:

  1. Check promotions[] for active promos (not expired)
  2. Filter by applicable_to scope (does this product qualify?)
  3. Check excluded list (is this product excluded?)
  4. Check membership tier for additional discounts

Step 2: Apply promotion rules

Use scripts/calculate_promotion.py for accurate computation.

Promotion types:

Type Rule format Example
threshold 满X减Y 满300减50
discount X折 or X% off 8折, 20% off
bundle 买X件享Y价 买2件第2件半价
gift 满X赠品 满200赠小样
member_price 会员专属价 VIP价¥199

Step 3: Handle stacking

Check stackable field on each promotion.

  • stackable: true → can combine with others
  • stackable: false → use highest-value single promo
  • When in doubt: use the rule that benefits the customer more

Step 4: Present result

Show original price → applicable promos → final price → total savings.


Answer Format

Single item query

这款连衣裙 原价:¥399
✨ 夏日大促:满300减50
会员折扣:9折(VIP专享)

最终价格:¥309(节省¥90)

Cart calculation

您的购物清单:
  白色连衣裙 ×1   ¥399
  条纹衬衫   ×1   ¥259
  小计:¥658

✨ 满300减50 → -¥50
✨ 满600再减80 → -¥80(两件合计超过600!)

最终合计:¥528(节省¥130 🎉)

No active promotions

目前[产品/全场]暂无特别优惠活动。
当前售价:¥[price]

Edge Cases

Conflicting promos: Always apply the rule that benefits the customer most. State which was applied.

Expired promo mentioned by customer: "这个活动已于[date]结束了,目前[有/没有]新的优惠。"

Promo not in KB but customer claims it exists: "我目前没有查到这个活动的信息,建议向店员确认一下,以免信息有误。"

Membership tier unknown: "您的会员等级我暂时查不到,建议核实后,会员专属折扣会自动应用。"


Script

Use scripts/calculate_promotion.py for accurate numeric calculation. Reference: promo-rules-guide.md — detailed rule parsing.