优惠盒子:有效期、资格与促销规则
构建一个具有真实截止日期或资格规则、完整条款、诚实的紧迫感、可访问状态以及机器可验证的结构化数据的优惠盒子。
优惠盒子以一个封闭单元的形式呈现一项限时或条件性的商业利益,连同兑换该利益所需的规则。它为买家提供价值、资格、截止日期、兑换方式和下一步行动;它从不制造不存在真实约束的紧迫感。
即使从页面中独立出来,这个渲染后的优惠也刻意保持完整:利益有单位、受众明确、优惠码为文本、排除条件在附近、截止日期包含时区、链接说明了下一步是什么。品牌、优惠码、日期和金额仅为示意,并非真实的 AmICited 推广内容。
为什么这个元素很重要
优惠会改变决策的时机或经济性。因此读者同时提出两个问题:“这对我有价值吗?“以及"我真的能兑换吗?“优惠盒子降低了回答这两个问题的难度——但前提是利益和约束同样可见。一个巨大的"打六折"字样后面跟着极小的资格细则,通过隐瞒决定承诺是否适用的关键事实来吸引注意力。这是通过模糊性进行的说服,而非有益的紧迫感。
真实的紧迫感帮助读者避免错失某个选项。虚假的紧迫感则向读者施压,同时保留卖家无限期延续促销的选择权。永远不要使用"仅限今日”、“最后机会”、重置式倒计时或"限时"等措辞,除非有经批准的来源定义了真正的截止时间。当促销延长时,来源、可见截止日期、缓存和结构化数据必须作为一个受控变更整体更新。反复移动截止日期会让回访读者认为计时器只是装饰。
机器可提取性是指爬虫、购物代理、搜索引擎或聚合系统能够保留优惠、其商品、价格影响、资格和有效期之间关系的能力。“省40"并非完整的描述:单位可能是货币或百分比,节省可能适用于每笔订单、每件商品或每月。一个结构良好的优惠应提供稳定的表述,例如"新客户使用优惠码 GROW40 购买年度 Growth 方案可节省 40 美元,优惠截止至 2026 年 8 月 31 日 23:59 欧洲/布拉迪斯拉发时间。”
到期时间是可操作的数据,而不仅仅是文案。如果发布系统能够渲染截止日期,但在期限过后无法更改活动状态,页面最终会做出虚假声明。在活动启动前,内容模型必须为渲染器提供机器可读的时间戳和安全的过期状态。
何时使用
当一项促销活动实质性改变正常交易,并且至少存在一个边界条件时使用优惠盒子:开始或结束时间、符合条件的受众、最低消费金额、产品或方案限制、地理限制、兑换上限或优惠码要求。常见用途包括季节性折扣、首单优惠、超过一定金额免运费、购买指定商品赠送赠品,或为现有客户提供临时升级。
仅当读者可以从当前页面操作该优惠,或明确知道在哪里进行兑换时才使用。编辑性提及"供应商有时会进行促销"并非优惠。对所有客户无限期有效的标准价格属于正常的商业信息,应放在价格表 或产品价格行中。
常见的界限模糊情况包括:
- 永久性的"新客户折扣"可以有条件而不限时。它仍需要资格定义、排除条件和验证日期,但不能说"抓紧”。
- 作为正常产品一部分的免费试用属于方案条款,而非促销,除非某个活动临时改变了其时长或范围。
- 联盟优惠券仅当发布者已验证当前条款并在附近清晰披露商业关系时才应放入优惠盒子。
- 产品有库存属于可用性,而非优惠。除非库存确实受限且库存数量声明来自实时源,否则不要将库存状态转化为紧迫感。
- 通用的"预约演示"邀请属于CTA 区块 ,而非优惠。如果咨询始终包含在内,添加免费咨询并不构成优惠。
元素编写规则 具有优先权:根据目的而非边框、颜色、标题或营销标签来选择区块。如果目的是传达一项封闭的商业激励,即使设计看起来像通知或 CTA,也应使用优惠元素。
放置位置
将优惠盒子放在读者可以识别其所适用的产品、服务或方案之后,以及在正常购买操作之前。在产品页上,通常放在价格和变体选择器旁边或正下方。在定价页上,直接放在符合条件的方案操作上方,或放在表格下方并附上受影响方案的明确列表。在编辑性购买指南或评价中,放在相关选项的评价之后,而非在证明推荐合理性的证据之前。
将优惠名称、利益、资格、截止日期、排除条件、优惠码和操作保持在一个阅读单元内。可能改变资格的条款可以在较长的披露内容中展开,但决定性条件不能隐藏在其中。读者不得需要点击链接才能发现最低消费、排除的方案、自动续费、地理限制或一次兑换限制。
不要将优惠盒子放在另一个促销活动旁边、与冲突的标准价格并列、与安全或适用性警告并列,或与要求不同操作的表单并列。不要将其夹在产品名称和其所修改的价格之间。远离结账错误区域,因为紧迫感可能干扰支付或验证消息。一个视口内不应包含两个倒计时或两个同等突出的兑换操作。
在移动端,保持以下顺序:利益、商品、资格、截止日期、优惠码、关键排除条件,然后是操作。粘性优惠可以摘要已查看的盒子,但不能隐藏内容、重置计时器,或成为条款显示的唯一位置。
结构
- 状态标签:根据时间戳显示"已计划”、“进行中"或"已过期”;不使用模糊的紧迫性用语。
- 利益:以货币、百分比、数量或配送条件说明确切的节省金额或附加价值。
- 适用商品:使用官方的产品、分类、服务或方案名称。
- 资格条件:定义谁和什么符合条件,包括地区、客户状态、最低消费和兑换上限。
- 有效期窗口:在相关时显示开始时间,以及精确的结束日期、时间和 IANA 时区。
- 兑换方式:提供可见的优惠码、自动折扣说明或精确的操作指引。
- 关键排除条件:将影响决策的限制保留在盒子内;更长的条款页面可提供法律细节,但不能推翻这些条件。
- 操作:指明下一步交易步骤,并链接到兑现该优惠的页面。
- 验证:说明优惠何时被核查,以及哪个经批准的推广来源拥有该优惠。
- 过期状态:在截止日期替换或移除有效的操作,并防止陈旧的 Structured Data。
设计示例
所有变体使用相同的契约。视觉差异反映了利益的计算方式,而非省略条款的许可。
金额或百分比折扣:用于"打八折"或"节省 40 美元"。说明计算基准。如果出现之前的价格,必须是经批准用于该市场的真实比较价格,而非虚高的锚点。
免运费:说明最低购物车金额、目的地、配送服务和排除的费用。超过 75 美元在美国本土通过标准陆运服务免运费"是可提取的;“运费我们包了"则不是。
捆绑或赠品:说明符合条件的购买和确切的赠品或服务。说明赠品是自动添加的还是需要手动操作,以及如果赠品不可用时的处理方式。
受众条件优惠:用于特定已验证群体,如学生、非营利组织或首次客户。说明如何验证身份,除非该活动确实有截止日期,否则避免使用有效期。
已计划和已过期状态:已计划内容显示优惠何时开始,不提供有效的兑换操作。已过期内容说明优惠已结束,并可链接到标准定价;不得保留可用的优惠码按钮或暗示旧条款仍然有效。
参数
下面的"来源"指渲染器获取字段的位置。它不替代用于验证声明的经批准活动记录。
| 名称 | 类型 | 必填 | 最小/最大 | 默认值 | 来源 | |
|---|---|---|---|---|---|---|
title | 纯文本字符串 | 是 | 4–12 个词 | 无 | 正文中的第一个标题 | |
variant | 枚举:discount, shipping, bundle, audience | 是 | 一个值 | discount | 属性 | |
benefit | 纯文本字符串 | 是 | 2–12 个词;80 个字符 | 无 | 属性 | |
item | 纯文本字符串 | 是 | 1–10 个词 | 无 | 属性 | |
eligibility | 纯文本 | 条件性 | 5–35 个词 | 无 | 正文 | |
startsAt | ISO 8601 日期时间 | 否 | 一个时间戳,带偏移 | 立即生效 | 属性 | |
expiresAt | ISO 8601 日期时间 | 限时优惠必填 | 一个时间戳,带偏移 | 无 | 属性 | |
timezone | IANA 时区名称 | 显示时间时必填 | 一个值 | 无 | 属性 | |
code | 纯文本字符串 | 条件性 | 3–24 个字符 | 无 | 属性 | |
redemption | 枚举:automatic, code, claim | 是 | 一个值 | automatic | 属性 | |
terms | 纯文本 | 是 | 1–5 项;总计 80 个词 | 无 | 正文 | |
ctaText | 纯文本字符串 | 有效时必填 | 2–6 个词;40 个字符 | 无 | 属性 | |
ctaUrl | 绝对或根相对 URL | 有效时必填 | 一个有效的目标地址 | 无 | 属性 | |
verified | ISO 8601 日期 | 是 | 一个确切日期 | 无 | 属性 | |
campaignSource | 纯文本标识符 | 是 | 3–80 个字符 | 无 | 正文 | |
expiredBehavior | 枚举:replace, hide | 否 | 一个值 | replace | 属性 | |
expiredText | 纯文本字符串 | 当行为为 replace 时必填 | 3–20 个词 | “此优惠已结束。” | 正文 |
至少有一个边界条件是强制性的:expiresAt 或 eligibility。没有 expiresAt 的限时优惠是无效的。expiresAt 中的偏移驱动状态变化;timezone 提供人类可读的时区。不要仅依赖日期值,因为不同时区的读者可能看到不同的有效截止时间。
语法和代码示例
可移植指令是作者编写的契约。Hugo 和 WordPress 映射相同的字段;它们不创建新的商业含义。
可移植 Markdown 指令
:::offer-box{variant=discount benefit="Save USD 40" item="Annual Growth plan" startsAt="2026-08-27T00:00:00+02:00" expiresAt="2026-08-31T23:59:00+02:00" timezone="Europe/Bratislava" code=GROW40 redemption=code ctaText="Choose an annual plan" ctaUrl="https://example.com/checkout/growth" verified=2026-08-27 expiredBehavior=replace}
## Save USD 40 on an annual Growth plan
Eligibility: New customers; one redemption per account.
Terms: Not valid with another discount. Code must be entered at checkout.
Campaign source: Growth annual launch, revision 2026-08-27.
Expired text: This offer ended on 31 August 2026.
:::
第一个标题映射到 title。带标签的正文行分别映射到资格条件、条款、活动来源和过期文本。可见渲染器应在保留精确机器时间戳的同时本地化日期。
Hugo 短代码
{{< offer-box
variant="discount"
benefit="Save USD 40"
item="Annual Growth plan"
expiresAt="2026-08-31T23:59:00+02:00"
timezone="Europe/Bratislava"
code="GROW40"
redemption="code"
ctaText="Choose an annual plan"
ctaUrl="https://example.com/checkout/growth"
verified="2026-08-27"
expiredBehavior="replace"
>}}
示例已被转义,以阻止 Hugo 调用不存在的短代码。当适配器构建完成后,它必须在服务器端计算状态,并支持客户端过期,而不依赖 JavaScript 来处理关键条款。缓存失效或定时发布必须确保服务器渲染的页面在截止日期后也能发生变化。
WordPress
<!-- wp:amicited/offer-box {"variant":"discount","benefit":"Save USD 40","item":"Annual Growth plan","expiresAt":"2026-08-31T23:59:00+02:00","timezone":"Europe/Bratislava","code":"GROW40","redemption":"code","ctaText":"Choose an annual plan","ctaUrl":"https://example.com/checkout/growth","verified":"2026-08-27","expiredBehavior":"replace"} -->
<div class="wp-block-amicited-offer-box">
<h2>Save USD 40 on an annual Growth plan</h2>
<p>New customers; one redemption per account. Not valid with another discount.</p>
<p>Use code <strong>GROW40</strong>. Ends 31 August 2026 at 23:59 Europe/Bratislava.</p>
</div>
<!-- /wp:amicited/offer-box -->
WordPress 区块同时存储类型化属性和可见文本。其编辑器应标记限时语言缺少到期日期的情况,并预览有效、已计划和已过期状态。
示例
好的示例
订单满 75 美元或以上享受免费标准配送 适用于美国本土的配送地址。超大件商品附加费仍然适用。折扣在结账时自动应用。验证日期:2026 年 8 月 27 日。
这是好的示例,因为它说明了利益、购物车门槛、符合条件的地理区域、服务级别、例外情况、兑换行为和验证日期。这是一个持续的条件规则,因此没有编造到期日或紧迫性措辞。
差的示例
抓紧——限时免运费! 部分限制条件适用。现在购买,以免错失。
这是差的示例,因为"限时"没有截止日期,“免运费"没有地区、门槛、方式或排除条件,而行动提供的是压力而非交易细节。爬虫无法确定谁符合条件,读者在结账前无法知道最终费用。
Schema 标记和无障碍
优惠盒子本身不创建 Schema。当页面确实提供已识别的产品或服务时,其经过验证的事实可以填入该产品或服务下的 Schema.org Offer:price、priceCurrency、availability、url、seller 和 priceValidUntil(当显示的价格确实在该日期结束时)。itemOffered 可以将独立的优惠连接到其主题。仅当存在一组真正的优惠时才使用 AggregateOffer,而非用于一个具有多种条件的单一优惠。
Structured Data 必须与可见内容和商务系统匹配。不要将折扣前的价格编码为有效价格,不要将百分比优惠券转换为虚构的数字价格,也不要在可见优惠过期后保留 priceValidUntil。Schema.org 的 discountCode 属性属于 Order,因此不要仅因为名称听起来合适就将优惠码附加到 Offer。将优惠码保留在可见内容和平台交易数据中,除非受支持的词汇表和消费者要求其他映射。
对于无障碍,当优惠是补充内容时使用 <aside> 或带标签的区域;当优惠是页面主要内容时使用普通的 section。保持标题在文档层级中。不要仅通过颜色传达有效、已计划或已过期状态。通过礼貌的实时区域宣布复制优惠码的结果,保持优惠码为可选择文本,并为复制控件提供类似"复制优惠码 GROW40"的标签。
倒计时不得每秒在实时区域中更新;这会反复打扰屏幕阅读器用户。以静态精确截止日期作为唯一真相来源。如果粗粒度倒计时有帮助,请对辅助技术隐藏重复的计时器变化,仅宣布有意义的转换,如"优惠已结束”。当有效 CTA 在到期时被替换时,键盘焦点不得跳转或消失。
编写规则
解释边界条件,因为它决定优惠对这位读者是否真实;然后才添加紧迫感。遵守以下制作限制:
- 标题控制在 4–12 个词,利益行控制在 80 个字符以内。将金额、百分比、赠品或配送利益放在活动文案之前。
- 每个盒子一个优惠,一个主要操作,不超过五项关键条款。将不相关的促销分开,而不是用"和"连接。
- 百分比折扣表示为数字加
%;当读者可能看到多个市场时,使用 ISO 货币代码表示货币利益。 - 用字面语言说明符合条件的产品、方案、订单价值、地区和受众。只有当盒子链接到完整的符合条件的商品集合时,才可以使用"选定商品”。
- 以日、月、年、时间和 IANA 时区的格式书写确切的截止日期。避免使用"午夜",因为其可能模糊地表示一天的开始或结束。
- 说明兑换是自动的、基于优惠码的还是需要申请的。绝不能让读者在点击后发现兑换机制。
- 将改变价格或资格的排除条件保留在盒子内。不要将最低消费、续费、税费、费用、地理限制或排除的变体隐藏在遥远的条款页面中。
- 使用事实性、平静的语言。绝不要使用重置式计时器、虚假库存、未经证实的"热销中"声明或永久的"限时"标签。
- 不要在盒子内放置客户评价、评分、不相关的产品利益、导航列表、法律政策文本或第二个促销活动。
- 在发布前验证来源、落地页、优惠码、开始时间、到期时间和过期状态。一个看起来有效但在结账时失败的优惠码仍然是无效的优惠。
使用此元素的内容类型
postTypes 前置元数据数组是此矩阵的权威来源。模板和 QA 工具应将该表与数组进行比对,而非维护单独的隐藏列表。
| 内容类型 | 典型用途 | 必要调整 |
|---|---|---|
| 产品页 | 针对单一商品的折扣、赠品或配送规则 | 将优惠绑定到所选变体,并保持正常价格可见。 |
| 分类页 | 跨符合条件的商品集合的促销 | 定义包含和排除的产品;不要暗示每个筛选后的商品都符合条件。 |
| 定价页 | 临时方案优惠或条件性账户积分 | 说明符合条件的方案、计费期限、续费行为以及优惠是否重复。 |
| 服务页 | 限时套餐或针对特定受众的咨询积分 | 定义范围、预订截止日期、履约窗口以及任何容量条件。 |
| 购买指南 | 附加到某一评估选项的已验证零售商优惠 | 加盖验证日期,披露商业关系,不要让优惠决定评测结论。 |
| Best X for Y 页面 | 候选选项的当前促销 | 保持排名方法独立,并对每个选项应用相同的优惠核查标准。 |
| 评价页 | 经过测试的产品,附带经过验证的读者优惠码 | 将产品判断与激励分开,并披露联盟或赞助关系。 |
| 用例页 | 针对特定客户场景的条件性激励 | 将优惠与符合条件的流程或受众联系起来,不编造稀缺性。 |
QA 检查清单
- 盒子代表一个真实的促销活动,拥有经批准的活动来源。
- 利益包括其单位、计算基准和适用商品。
- 限时措辞具有精确的
expiresAt时间戳,以及显示的日期、时间和时区。 - 非到期优惠是有条件的,且不包含虚假的稀缺性措辞。
- 受众、地区、最低消费、产品限制、兑换上限和重大排除条件在适用时可见。
- 优惠码为可选择文本,兑换方式已说明,目标页面兑现该优惠。
- 已计划、进行中和已过期状态已在精确边界的两侧进行测试。
- 过期移除了有效的兑换操作,并更新了缓存输出和 Structured Data。
- 当 JavaScript 不可用时,服务器渲染的页面仍然保持真实。
- 标题顺序、键盘路径、焦点行为、状态标签和复制优惠码反馈均可无障碍访问。
- Structured Data 描述的是真实可见的产品或服务优惠,并与价格、货币、URL、库存状态和有效期相匹配。
- 没有重置式倒计时,没有未经支持的稀缺性声明,且该活动未成为永久的"限时"优惠。
- 验证日期和运营负责人已记录,以便刷新和事故处理。
- 移动端布局保持利益、条件、截止日期、优惠码和操作符合逻辑的阅读顺序。
常见问题
以下常见问题涵盖了截止日期要求、过期行为、紧迫性措辞、优惠码展示以及 Offer Structured Data 的局限性。
准备好付诸实践了吗?
免费检查 · 7天试用 · 无需信用卡