Install
openclaw skills install @xxjrq/shop-promo-eligibility-check-cnopenclaw skills install @xxjrq/shop-promo-eligibility-check-cn根据用户给定事实核对最多 10 条优惠与 20 条购物行(同一已知币种)。交付:条件状态表、每一步金额依据与仅在规则完整时给出的应付草稿。
提供 JSON,含 currency、cart、promotions;每条购物行都要有 SKU、单价和正整数数量。优惠应包含有效期/timezone、threshold_basis、threshold、threshold_includes_shipping、eligible_skus、优惠类型和金额或折扣。threshold_includes_shipping 为 true 时还需提供 shipping_fee。多券还应给出 stacking_order;当前时刻为 current_time。折扣和“优惠后商品额”门槛只按该规则的适用 SKU 计算。
百分比优惠使用 percent 表示应付比例(90 表示应付 90%,即 9 折;10 表示应付 10%,即减免 90%),避免把中文“9 折”误作 90% 减免。必须提供商家确认的 rounding_mode: "total_half_up_2",该模式表示先对适用金额合计计算优惠,再按四舍五入保留两位小数;缺少舍入方式时,优惠额和应付草稿保持待确认。若舍入后的减免高于适用商品余额,金额处理规则未提供时也保持待确认,不产生负余额或程序错误。多行固定或百分比优惠影响后续优惠的部分 SKU、且后续优惠仍可能生效并改变余额时,需要明确 allocation_rule: "cart_order"(按购物车行顺序依次扣减);后续优惠确定不适用(例如其优惠前门槛已不足)、确定没有减免(固定减免为 0、percent 为 100),或中间一项已确定清空相关适用 SKU 余额时,不要求无关分摊规则。缺少必要分摊规则时,优惠和应付草稿保持待确认,且行级扣减显示待确认;不会把购物车顺序当作平台规则。任一购物行余额待确认时,整单应付小计也待确认,即使其他 SKU 的优惠条件可以单独计算。
rounding_mode 执行。固定优惠额超过当前适用商品余额时,不会截断为余额,而是标为“待确认”,直到商家给出余额不足的处理规则。反向有效期(开始晚于结束)标为待确认。percent、舍入与分摊方式都不代表任何平台的通用规则。python3 scripts/check_eligibility.py < fixtures/success.json
python3 scripts/self_test.py