mcpField
C
cart-abandonment-recovery

cart-abandonment-recovery

github.com/finsilabs营销与增长60114 次安装5 天前更新
代码仓库

关于 cart-abandonment-recovery

面向电商团队的弃购挽回技能,指导在不同商店平台配置和优化挽回流程。内容涵盖定时邮件、推送和短信,并说明购买状态检查、优惠策略与客户细分。

主要功能

  1. 01设计定时挽回流程
  2. 02使用邮件、推送和短信
  3. 03购买后停止后续消息
  4. 04按购物车和客户细分优惠
  5. 05衡量挽回效果

适用场景

  1. 01创建弃购挽回流程
  2. 02在邮件提醒中加入短信或推送
  3. 03限制对回头客的折扣
  4. 04测试优惠发放时机

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/finsilabs/awesome-ecommerce-skills --skill cart-abandonment-recovery

安装后在 Claude Code 中输入/cart-abandonment-recovery确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

tile.json
evals/multi-channel-sequence-with-incentive-es/
criteria.json
task.md
evals/recovery-link-endpoint-cart-snapshot-and/
criteria.json
task.md
evals/server-side-abandonment-detection-and-jo/
criteria.json
task.md

详细介绍

购物车弃购挽回

概述

电商行业的购物车弃购率平均为 70%,因此挽回流程是投资回报率最高的自动化方案之一。优秀的挽回序列会通过电子邮件、短信和推送发送 2–4 条消息——先发送简单提醒,再添加社会认同或紧迫感,最后才考虑提供折扣。客户完成结账后,序列会立即取消。

本技能将指导你在特定平台上设置购物车弃购挽回,选择合适的工具,并配置序列,以最大限度挽回收入,同时避免让客户养成故意弃购的习惯。

何时使用此技能

  • 当已开始结账但未完成的比例超过 60% 时
  • 当开设新店并优先考虑快速挽回收入时
  • 当为现有仅使用电子邮件的弃购挽回流程添加短信或推送渠道时
  • 当当前统一折扣的弃购邮件让客户养成故意弃购的习惯时
  • 当需要根据购物车金额或客户细分群体制定不同的挽回策略时
  • 当对优惠时机进行 A/B 测试时(立即、24 小时后或 48 小时后揭晓折扣)

核心说明

步骤 1:确定商家的平台并推荐合适的工具

询问商店使用哪个平台。根据平台不同,设置方式会有很大差异:

平台推荐工具原因
ShopifyKlaviyo(最多 250 个联系人免费)或 Shopify 内置的弃单结账邮件Klaviyo 与 Shopify 深度集成,可自动追踪购物车事件,并在同一工具中支持电子邮件和短信
WooCommerceAutomateWoo(每年 $99)或 CartFlows + FluentCRMAutomateWoo 可直接接入 WooCommerce 购物车事件;CartFlows 可添加漏斗挽回功能
BigCommerceKlaviyo 或 Omnisend两者都可与 BigCommerce 购物车事件原生集成
MagentoDotdigital(与 Adobe Commerce 捆绑)或 KlaviyoDotdigital 是 Magento 的默认营销自动化工具;Klaviyo 适用于开源 Magento
自定义 / HeadlessKlaviyo(通过 API)或使用 BullMQ + SendGrid 构建自定义序列使用 Klaviyo 的 Track API 发送购物车事件,然后在其可视化编辑器中构建流程
步骤 2:设置挽回序列

最佳序列遵循以下模式——先不提供折扣,仅在必要时逐步加码:

消息 1 — 提醒(弃购后 1 小时)

  • 渠道:电子邮件
  • 内容:展示购物车商品的图片和价格,并附上“完成购买”按钮
  • 不提供折扣——大多数挽回无需优惠便会在此阶段完成

消息 2 — 社会认同或紧迫感(4–6 小时后)

  • 渠道:推送通知或电子邮件
  • 内容:“有 X 人正在查看此商品”或“库存紧张——仅剩 Y 件”
  • 仍不提供折扣

消息 3 — 小额优惠(24 小时后)

  • 渠道:电子邮件
  • 内容:免运费(购物车金额 > $75 时)或 10% 折扣
  • 附上唯一的一次性折扣码,该码将在 48 小时后失效

消息 4 — 最后提醒(48 小时后)

  • 渠道:短信(仅限已选择接收短信的客户)
  • 内容:“最后机会——您的购物车明天就会过期” + 折扣提醒
  • 这是最后一条消息。之后停止发送。

发送的消息绝不能超过 4 条。 超出此数量对品牌形象造成的损害会超过挽回的收入。

步骤 3:平台专属设置

Shopify

方案 A:内置的弃购邮件(免费,基础功能)

  1. 前往 Settings → Checkout → Abandoned checkouts
  2. 勾选“Automatically send abandoned checkout emails”
  3. 设置延迟时间(建议:第一封邮件延迟 1 小时,第二封延迟 10 小时)
  4. 在 Notifications → Abandoned checkout 下自定义邮件模板

限制:Shopify 内置的弃购恢复功能仅支持发送一封邮件(Shopify Plus 支持两封),不支持短信,也不支持有条件的优惠。需要完整的邮件序列时,请改用 Klaviyo。

方案 B:Klaviyo(推荐用于多步骤流程)

  1. 从 Shopify 应用商店安装 Klaviyo
  2. Klaviyo 会自动与 Shopify 同步,并跟踪 Checkout Started 事件
  3. 在 Klaviyo 中前往 Flows → Create Flow → Abandoned Cart(使用其预建模板)
  4. 配置序列:
Trigger: "Checkout Started" event
  ↓
Wait 1 hour → Check: "Has Placed Order since starting flow?" → If no:
  ↓
Email 1: Cart reminder (no discount)
  ↓
Wait 4 hours → Check: "Has Placed Order?" → If no:
  ↓
Email 2: Urgency/social proof
  ↓
Wait 20 hours → Check: "Has Placed Order?" → If no:
  ↓
Email 3: Include discount code (use Klaviyo's coupon block — creates unique single-use Shopify discount codes)
  ↓
Wait 24 hours → Check: "Has Placed Order?" → If no:
  ↓
SMS 4 (only to SMS-consented contacts): Final reminder with discount
  1. 按购物车金额细分:为结账事件的 $value 添加 Conditional Split:
    • 购物车金额 ≥ $100:提供免运费
    • 购物车金额 < $100:提供 10% 折扣
  2. 避免向 VIP 客户提供折扣:按 Customer Lifetime Value 或 Total Orders 添加 Split——对回头客跳过折扣步骤

Shopify Flow(仅限 Plus)——自动添加标签以支持高级路由:

Trigger: Checkout abandoned
Condition: Cart total > 200
Action: Add customer tag "high-value-abandoner"

然后在 Klaviyo 中使用此标签,将高价值弃购客户导向 VIP 弃购恢复序列。


WooCommerce

方案 A:AutomateWoo(推荐)

  1. 安装并启用 AutomateWoo 插件
  2. 前往 AutomateWoo → Workflows → Add Workflow
  3. 将触发条件设为 “Cart Abandoned”
  4. 配置时间安排和操作:
Workflow 1: Cart Reminder
  Trigger: Cart Abandoned
  Timing Rule: Wait 1 hour
  Action: Send Email (template: cart contents with images)

Workflow 2: Urgency Email
  Trigger: Cart Abandoned
  Timing Rule: Wait 6 hours
  Action: Send Email (template: "Items selling fast")

Workflow 3: Discount Email
  Trigger: Cart Abandoned
  Timing Rule: Wait 24 hours
  Action: Generate Coupon (10% off, single-use, expires in 48 hours)
  Action: Send Email (template: include generated coupon code)

Workflow 4: SMS Last Chance (requires Twilio add-on)
  Trigger: Cart Abandoned
  Timing Rule: Wait 48 hours
  Opt-in Rule: Customer has SMS marketing consent
  Action: Send SMS via Twilio
  1. 为每个工作流设置一条 Rule:“客户自工作流启动后尚未购买”——客户完成购买后,系统会自动取消此序列
  2. 要细分 VIP 客户:添加一条 Rule,检查 Customer → Total Spent > $500,以跳过折扣工作流

方案 B:CartFlows + FluentCRM(免费替代方案)

  1. 安装 CartFlows(弃购跟踪)和 FluentCRM(邮件自动化)
  2. CartFlows 会捕获弃购结账信息,并将其作为联系人同步到 FluentCRM
  3. 在 FluentCRM 的自动化构建器中创建邮件序列

BigCommerce
  1. 从 BigCommerce 应用市场安装 Klaviyo 或 Omnisend
  2. 这两个平台都会自动跟踪 BigCommerce 弃购事件
  3. 使用上文所述的相同 4 步序列创建流程
  4. BigCommerce 还内置了弃购挽回功能(Marketing → Abandoned Cart Emails),但最多只能发送 3 封邮件,不支持短信或条件逻辑

自定义/无头架构

对于无头店面,有两种方案:

方案 A:使用 Klaviyo 的 API(推荐)

将购物车事件发送到 Klaviyo,然后在 Klaviyo 的可视化编辑器中创建流程:

// When a cart is updated, send the event to Klaviyo
async function trackCartUpdate(cart: Cart) {
  await fetch('https://a.]klaviyo.com/api/events/', {
    method: 'POST',
    headers: {
      'Authorization': `Klaviyo-API-Key ${process.env.KLAVIYO_PRIVATE_KEY}`,
      'Content-Type': 'application/json',
      'revision': '2024-10-15',
    },
    body: JSON.stringify({
      data: {
        type: 'event',
        attributes: {
          metric: { data: { type: 'metric', attributes: { name: 'Checkout Started' } } },
          profile: { data: { type: 'profile', attributes: { email: cart.customerEmail } } },
          properties: {
            value: cart.totalValue,
            items: cart.items.map(i => ({
              ProductName: i.name,
              ProductURL: i.url,
              ImageURL: i.imageUrl,
              Price: i.price,
              Quantity: i.quantity,
            })),
            checkout_url: `${process.env.STORE_URL}/checkout?cart=${cart.id}`,
          },
        },
      },
    }),
  });
}

然后在 Klaviyo 界面中创建弃购流程——使用相同的 4 步序列,无需自行管理计时器或队列。

方案 B:自行构建(仅在需要完全控制时使用)

如果你需要 Klaviyo 无法处理的自定义逻辑(自定义折扣规则、专有渠道等),请使用作业队列构建序列:

// Detect abandoned carts — run every 5 minutes via cron
async function findAbandonedCarts() {
  const cutoff = new Date(Date.now() - 60 * 60000); // 1 hour inactive
  const carts = await db.carts.findWhere({
    lastActiveAt: { lt: cutoff },
    status: 'active',
    recoveryTriggered: false,
    customerEmail: { not: null },
  });

  for (const cart of carts) {
    await db.carts.update(cart.id, { recoveryTriggered: true });
    await recoveryQueue.add('send-step-1', { cartId: cart.id }, { delay: 0 });
    await recoveryQueue.add('send-step-2', { cartId: cart.id }, { delay: 4 * 3600000 });
    await recoveryQueue.add('send-step-3', { cartId: cart.id }, { delay: 24 * 3600000 });
    await recoveryQueue.add('send-step-4', { cartId: cart.id }, { delay: 48 * 3600000 });
  }
}

// Cancel on conversion
async function onOrderCompleted(orderId: string) {
  const order = await db.orders.findById(orderId);
  if (!order.cartId) return;
  const jobs = await recoveryQueue.getJobs(['delayed']);
  for (const job of jobs) {
    if (job.data.cartId === order.cartId) await job.remove();
  }
}
第 4 步:配置优惠策略

无论使用哪个平台,折扣都应遵循以下规则:

  1. 第一条消息绝不提供折扣——大多数购物车无需折扣就能挽回
  2. 使用一次性优惠码——防止分享和重复使用
  3. 为所有优惠码设置 48 小时有效期——紧迫感能促成转化
  4. 按客户价值细分:
    • 新客户(0 笔订单):24 小时后提供 10% 折扣
    • 回头客(1–5 笔订单):仅提供免运费
    • VIP 客户(6 笔以上订单或终身消费 $500 以上):不提供折扣,只发送提醒——他们会回来
  5. 跟踪折扣滥用情况——如果客户弃购后使用折扣挽回订单达到 3 次以上,请将其从折扣流程中移除
第 5 步:衡量和优化

每周跟踪以下指标:

指标良好基准查找方式
挽回率弃购购物车的 5–15%Klaviyo:流程分析。AutomateWoo:Reports → Workflows
挽回收入使用 UTM 参数跟踪(?utm_source=recovery&utm_medium=email)Google Analytics → Campaigns
挽回邮件退订率每次发送 < 0.5%你的邮件服务商的分析数据
折扣使用率使用折扣的挽回订单应低于 30%对比使用折扣和未使用折扣的挽回订单

如果超过 30% 的挽回订单使用了折扣,说明你过早透露了折扣。将折扣推迟到第 3 或第 4 步,或延长等待时间。

最佳实践

  • 在付款前收集邮箱 — 将邮箱字段设为结账流程的第一步,这样即使客户未完成结账,你也能识别弃购客户
  • 在每条消息中加入购物车商品图片 — 视觉提醒比“你忘了点什么”这样的文字更有效
  • 遵守 SMS 订阅同意规则 — 只向明确同意接收短信的客户发送弃购挽回短信;违反 TCPA/GDPR 会面临高额罚款
  • 在上一次序列结束后暂停 7 天 — 如果客户刚完成挽回序列就再次弃购,给他们一些空间
  • 对第一封邮件的发送延迟进行 A/B 测试 — 尝试 30 分钟、1 小时和 2 小时,并分别衡量挽回率
  • 不要在主题行中加入折扣码 — 这会让客户养成寻找折扣码的习惯,并损害品牌形象

常见问题

问题解决方案
订单完成后才发送挽回邮件确保流程在每一步之前都检查“是否已下单”(Klaviyo 使用流程筛选器实现此检查;AutomateWoo 使用规则)
未捕获匿名购物车弃购要求客户在结账第一步、填写付款信息之前提供邮箱
客户学会为了折扣而弃购第一条消息绝不提供折扣;对回头客跳过折扣;跟踪并排除反复弃购的客户
向未同意接收短信的客户发送 SMS仅在明确同意后发送 SMS;使用平台的同意记录功能(Klaviyo 会将 SMS 同意与邮件同意分开跟踪)
挽回邮件退订率高将邮件数量从 4 封减至 2–3 封;确保一键退订链接醒目易见
挽回邮件进入垃圾邮件使用平台经过身份验证的发送域(DKIM/SPF);避免在邮件中使用大写的“免费”等垃圾邮件触发词

相关技能

  • @email-marketing-automation
  • @push-notifications
  • @sms-marketing
  • @conversion-rate-optimization
  • @exit-intent-popups

评论

支持 Markdown