Token导航 LogoToken导航TokenDH.com
开发需要联网github未标认证来源可访问许可证需确认审计通过

cart-abandonment-recovery购物车放弃恢复

Agent Skill

cart-abandonment-recovery 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

635

周安装

27

GitHub Stars

19

下载量

222
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:cart-abandonment-recovery(购物车放弃恢复)
来源仓库:https://github.com/finsilabs/awesome-ecommerce-skills
仓库路径:skills/cart-abandonment-recovery
安装命令:
npx skills add https://github.com/finsilabs/awesome-ecommerce-skills --skill cart-abandonment-recovery
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

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

简介

cart-abandonment-recovery 指导搭建购物车弃单挽回自动化流程,最大化营收回收率。

  • 适用于电商平台配置邮件/SMS/推送等多渠道挽回序列,设置触发条件与内容模板。
  • 平均恢复率可达 20–35%,需平衡紧迫感与用户体验避免过度营销干扰。
  • 使用前应集成 Shopify/WooCommerce 等平台 API,并遵守 TCPA/GDPR 等合规要求。
  • 适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

SKILL.md

Cart Abandonment Recovery

Overview

Cart abandonment averages 70% across e-commerce, making recovery flows one of the highest-ROI automations available. A good recovery sequence sends 2–4 messages across email, SMS, and push — starting with a simple reminder, then adding social proof or urgency, and only offering a discount as a last resort. The sequence cancels immediately when the customer completes checkout.

This skill guides you through setting up cart abandonment recovery on your specific platform, choosing the right tools, and configuring the sequence for maximum revenue recovery without training customers to abandon on purpose.

When to Use This Skill

  • When more than 60% of initiated checkouts are not completed
  • When launching a new store and prioritizing quick revenue recovery
  • When adding SMS or push channels to an existing email-only abandonment flow
  • When the current flat-discount abandonment email is training customers to abandon intentionally
  • When needing to differentiate recovery strategy by cart value or customer segment
  • When A/B testing incentive timing (immediate vs. 24h vs. 48h discount reveal)

Core Instructions

Step 1: Determine the merchant's platform and recommend the right tool

Ask which platform the store runs on. The setup is completely different depending on the platform:

PlatformRecommended ToolWhy
ShopifyKlaviyo (free up to 250 contacts) or Shopify's built-in abandoned checkout emailsKlaviyo has deep Shopify integration, tracks cart events automatically, and supports email + SMS in one tool
WooCommerceAutomateWoo ($99/yr) or CartFlows + FluentCRMAutomateWoo hooks directly into WooCommerce cart events; CartFlows adds funnel recovery
BigCommerceKlaviyo or OmnisendBoth integrate natively with BigCommerce cart events
MagentoDotdigital (bundled with Adobe Commerce) or KlaviyoDotdigital is the default marketing automation for Magento; Klaviyo works for open-source Magento
Custom / HeadlessKlaviyo (via API) or build a custom sequence with BullMQ + SendGridUse Klaviyo's Track API to send cart events, then build flows in their visual editor

Step 2: Set up the recovery sequence

The optimal sequence follows this pattern — start without a discount and escalate only if needed:

Message 1 — Reminder (1 hour after abandonment)

  • Channel: Email
  • Content: Show the cart items with images + prices, a "Complete your purchase" button
  • No discount — most recoveries happen here without incentive

Message 2 — Social proof or urgency (4–6 hours)

  • Channel: Push notification or email
  • Content: "X people are viewing this item" or "Low stock — only Y left"
  • Still no discount

Message 3 — Small incentive (24 hours)

  • Channel: Email
  • Content: Free shipping (if cart > $75) or 10% off
  • Include a unique, single-use discount code that expires in 48 hours

Message 4 — Final push (48 hours)

  • Channel: SMS (only if opted in)
  • Content: "Last chance — your cart expires tomorrow" + discount reminder
  • This is the last message. Stop after this.
Never send more than 4 messages. Beyond that, you damage brand perception more than you recover revenue.

Step 3: Platform-specific setup


Shopify

Option A: Built-in abandoned checkout emails (free, basic)

  1. Go to Settings → Checkout → Abandoned checkouts
  2. Check "Automatically send abandoned checkout emails"
  3. Set the delay (recommend: 1 hour for first email, 10 hours for second)
  4. Customize the email template under Notifications → Abandoned checkout

Limitations: Shopify's built-in recovery only supports one email (or two on Plus), no SMS, no conditional incentives. Move to Klaviyo when you need a full sequence.

Option B: Klaviyo (recommended for multi-step flows)

  1. Install Klaviyo from the Shopify App Store
  2. Klaviyo automatically syncs with Shopify and tracks Checkout Started events
  3. In Klaviyo, go to Flows → Create Flow → Abandoned Cart (use their pre-built template)
  4. Configure the sequence:
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. To segment by cart value: add a Conditional Split on $value of the checkout event:

- Cart ≥ $100: offer free shipping - Cart < $100: offer 10% off

  1. To protect VIP customers from discounts: add a Split on Customer Lifetime Value or Total Orders — skip the discount step for repeat buyers

Shopify Flow (Plus only) — auto-tag for advanced routing:

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

Then use this tag in Klaviyo to route high-value abandoners to a VIP recovery sequence.


WooCommerce

Option A: AutomateWoo (recommended)

  1. Install and activate the AutomateWoo plugin
  2. Go to AutomateWoo → Workflows → Add Workflow
  3. Set the trigger to "Cart Abandoned"
  4. Configure timing and actions:
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. Set a Rule on each workflow: "Customer has not purchased since workflow started" — this auto-cancels the sequence on conversion
  2. For VIP segmentation: add a Rule checking Customer → Total Spent > $500 to skip the discount workflow

Option B: CartFlows + FluentCRM (free alternative)

  1. Install CartFlows (cart abandonment tracking) and FluentCRM (email automation)
  2. CartFlows captures abandoned checkouts and syncs to FluentCRM as contacts
  3. Build the email sequence in FluentCRM's automation builder

BigCommerce

  1. Install Klaviyo or Omnisend from the BigCommerce app marketplace
  2. Both platforms automatically track BigCommerce abandoned cart events
  3. Build the flow using the same 4-step sequence described above
  4. BigCommerce also has a built-in abandoned cart saver (Marketing → Abandoned Cart Emails) but it's limited to 3 emails with no SMS or conditional logic

Custom / Headless

For headless storefronts, you have two paths:

Path A: Use Klaviyo's API (recommended)

Send cart events to Klaviyo, then build the flow in Klaviyo's visual editor:

// 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}`,
          },
        },
      },
    }),
  });
}

Then build the abandoned cart flow in Klaviyo's UI — same 4-step sequence, no need to manage timers or queues yourself.

Path B: Build it yourself (only if you need full control)

If you need custom logic that Klaviyo can't handle (custom discount rules, proprietary channels, etc.), build the sequence with a job queue:

// 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();
  }
}

Step 4: Configure incentive strategy

Regardless of platform, follow these rules for discounts:

  1. Never offer a discount on the first message — most carts recover without one
  2. Use single-use codes — prevents sharing and reuse
  3. Set a 48-hour expiry on all discount codes — urgency converts
  4. Segment by customer value:

- New customers (0 orders): 10% off after 24 hours - Returning customers (1–5 orders): free shipping only - VIP customers (6+ orders or $500+ lifetime): no discount, just a reminder — they'll come back

  1. Track discount abuse — if a customer has abandoned and recovered with a discount 3+ times, remove them from discount flows

Step 5: Measure and optimize

Track these metrics weekly:

MetricGood BenchmarkHow to Find It
Recovery rate5–15% of abandoned cartsKlaviyo: Flow analytics. AutomateWoo: Reports → Workflows
Revenue recoveredTrack with UTM params (?utm_source=recovery&utm_medium=email)Google Analytics → Campaigns
Unsubscribe rate from recovery emails< 0.5% per sendYour email provider's analytics
Discount usage rate< 30% of recoveries should use a discountCompare discount vs. non-discount recovery orders

If more than 30% of recovered orders use a discount, you're revealing the discount too early. Push it to step 3 or 4, or increase the delay.

Best Practices

  • Capture email before payment — place the email field as the first checkout step so you can identify abandoners even if they don't finish
  • Include cart item images in every message — a visual reminder outperforms "you forgot something" text
  • Respect SMS opt-in — only send SMS recovery to customers who explicitly opted in; violations of TCPA/GDPR carry heavy fines
  • Suppress for 7 days after a prior sequence — if a customer abandoned again right after a recovery sequence, give them space
  • A/B test the first email's delay — try 30 min vs. 1 hour vs. 2 hours and measure recovery rate for each
  • Don't include discount codes in subject lines — it trains customers to look for them and damages brand perception

Common Pitfalls

ProblemSolution
Recovery email sent after order placedEnsure your flow checks "Has Placed Order" before each step (Klaviyo does this with flow filters; AutomateWoo uses rules)
Anonymous cart abandonment not capturedRequire email at the first checkout step, before payment details
Customers learn to abandon for discountsNever offer discount on message 1; skip discounts for repeat customers; track and exclude serial abandoners
SMS sends to customers who didn't opt inGate SMS behind explicit opt-in; use your platform's consent tracking (Klaviyo tracks SMS consent separately from email)
High unsubscribe rate from recovery emailsReduce to 2–3 messages instead of 4; ensure one-click unsubscribe link is prominent
Recovery emails land in spamUse your platform's authenticated sending domain (DKIM/SPF); avoid spam trigger words like "FREE" in caps

Related Skills

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

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

32.46%
按下载量换算72

Claude

31.53%
按下载量换算70

Cursor

18.92%
按下载量换算42

Gemini CLI

9.77%
按下载量换算22

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills