- name
- promotion-engine
- description
- >
- 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:
- Check
promotions[]for active promos (not expired) - Filter by
applicable_toscope (does this product qualify?) - Check
excludedlist (is this product excluded?) - 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 othersstackable: 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.