Recur
功能優惠促銷

價格優惠

百分比折扣、固定金額折扣、首期特價 - 直接減少顧客付款金額

價格優惠

透過價格優惠直接減少顧客的付款金額,吸引新客戶、獎勵老客戶,或進行節慶促銷。


固定金額折扣

直接折抵固定金額,顧客一眼就能看懂優惠。

運作方式

設定固定的折抵金額,無論訂單金額多少都折抵相同金額。

範例:

  • SAVE100 - 折抵 NT$100
  • WELCOME50 - 新會員折 NT$50

適用場景

  • 新客首購優惠 - 吸引新顧客嘗試
  • 節慶促銷 - 聖誕節、雙十一等活動
  • 會員專屬折扣 - 回饋忠實顧客

設定選項

選項說明
折扣金額固定折抵的金額(如 NT$100)
最低消費訂單需達此金額才能使用
適用商品全部商品或指定商品

百分比折扣

依購買金額按比例折扣,金額越高折越多。

運作方式

設定折扣百分比,系統自動計算折扣金額。

範例:

  • VIP20 - 8 折(20% off)
  • ANNUAL10 - 年繳 9 折

適用場景

  • 會員等級折扣 - VIP 專屬優惠
  • 大額訂單優惠 - 鼓勵升級高價方案
  • 長期合作方案 - 企業客戶優惠

週期性折扣

百分比折扣可設定持續多個計費週期:

設定說明
僅首次只有第一期有折扣
指定週期前 N 期有折扣(如前 3 個月)
永久訂閱期間永久有效

範例:

  • 前 3 個月 8 折,第 4 個月起恢復原價
  • 永久 9 折(適用於年度合作夥伴)

首期特價

顧客以特價訂閱第一期,後續自動恢復原價。

運作方式

設定首期的固定價格,不論原價多少,首期都以此價格收費。

範例:

  • 首月 $1,第 2 個月起恢復 $299/月
  • 首月 $99(原價 $299),第 2 個月起恢復原價

適用場景

  • 免費試用替代 - 用極低價格取代完全免費,篩選有意願的顧客
  • 新服務推廣 - 吸引用戶嘗試新功能
  • 降低入門門檻 - 減少顧客的決策成本

顧客體驗

顧客在結帳時會看到:

首月特價:$1
原價:$299/月
第 2 個月起將以原價 $299 續訂

續約處理

  • 首期結束前,系統自動發送提醒
  • 到期時以原價發起扣款
  • 顧客可在 Portal 查看續約價格

建立價格優惠

後台操作

  1. 前往「優惠促銷」
  2. 點擊「建立優惠」
  3. 選擇優惠類型:
    • 固定金額折扣
    • 百分比折扣
    • 首期特價
  4. 填寫設定:
    • 名稱 - 內部識別用
    • 金額/比例 - 折扣數值
    • 有效期限 - 開始與結束日期
    • 使用次數 - 總次數上限
    • 適用商品 - 選擇適用的商品
  5. 儲存

代碼格式

推廣碼的格式規則:

  • 僅允許大寫英文(A-Z)和數字(0-9)
  • 長度 3-20 字元
  • 不區分大小寫(自動轉換為大寫)

有效範例:

  • SAVE100
  • 2024NEWYEAR
  • VIP20OFF

限制設定

有效期限

設定優惠的有效期間:

  • 開始日期 - 何時開始生效
  • 結束日期 - 何時失效

使用次數

  • 總次數上限 - 所有顧客共用次數
  • 每顧客上限 - 單一顧客可使用次數

適用商品

  • 所有商品 - 適用於所有商品
  • 指定商品 - 僅適用於選擇的商品

最低消費

設定門檻金額,訂單需達到此金額才能使用。

顧客資格

限制特定類型的顧客才能使用此優惠:

設定說明使用場景
所有顧客不限制(預設)節慶促銷、全場優惠
僅限新顧客從未有付費訂閱的顧客獲客優惠、首購折扣
僅限現有顧客曾經或目前有付費訂閱的顧客升級優惠、留存/挽回優惠

判斷邏輯:

  • 新顧客:在您的組織內從未建立過 ACTIVEPAST_DUECANCELEDEXPIRED 狀態的訂閱
  • 現有顧客:曾經或目前有上述任一狀態的訂閱
  • 僅處於 TRIAL 狀態的顧客仍視為「新顧客」

使用情境範例:

優惠碼顧客資格用途
WELCOME20僅限新顧客首次訂閱享 8 折
UPGRADE30僅限現有顧客升級方案享 7 折
XMAS2024所有顧客聖誕節全場 9 折

注意事項:

  • 設為「僅限新顧客」的優惠碼,無法在 Customer Portal 的方案切換中使用(因為切換方案代表已是現有顧客)
  • 設為「僅限現有顧客」的優惠碼,無法在首次結帳時使用

使用統計

在優惠詳情頁面查看:

  • 使用次數 - 已使用 / 總次數
  • 使用率 - 使用次數 / 瀏覽次數
  • 折扣總額 - 累計折扣金額
  • 帶來營收 - 使用此優惠的訂單總額

技術整合

驗證優惠碼

const response = await fetch('https://api.recur.tw/v1/coupons/validate', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer sk_test_xxx',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    code: 'SAVE100',
    productId: 'prod_xxx',
  }),
});

const { valid, discount, message } = await response.json();

套用優惠碼

在建立 Checkout Session 時套用:

const response = await fetch('https://api.recur.tw/v1/checkout/sessions', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer sk_test_xxx',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    productId: 'prod_xxx',
    mode: 'SUBSCRIPTION',
    couponCode: 'SAVE100', // 套用優惠碼
    successUrl: 'https://your-site.com/success',
    cancelUrl: 'https://your-site.com/cancel',
  }),
});

相關 Webhook 事件

訂閱相關事件的 payload 會包含折扣資訊:

欄位說明
coupon優惠資訊(id, name, discount_type, discount_amount, duration)
coupon_remaining_cycles週期性折扣剩餘期數(僅 REPEATING 類型)
discount_amount本期折扣金額
promotion_code使用的推廣代碼

重要事件:

  • subscription.created - 訂閱建立,包含初始折扣設定
  • subscription.activated - 訂閱啟用,首期折扣已套用
  • subscription.renewed - 訂閱續訂,週期性折扣持續套用或恢復原價

週期性折扣追蹤範例:

// 首期(3 期折扣)
{
  "coupon_remaining_cycles": 2,
  "discount_amount": 60
}

// 第 2 期
{
  "coupon_remaining_cycles": 1,
  "discount_amount": 60
}

// 第 3 期
{
  "coupon_remaining_cycles": 0,
  "discount_amount": 60
}

// 第 4 期(恢復原價)
{
  "coupon": null,
  "coupon_remaining_cycles": null,
  "discount_amount": 0
}

詳細 Webhook payload 格式請參考 Webhook 事件類型


最佳實踐

  1. 簡單易記的代碼 - 如 SAVE100VIP20
  2. 設定合理期限 - 創造緊迫感
  3. 限制使用次數 - 控制促銷成本
  4. 清楚說明恢復價格 - 首期特價需明確告知後續價格
  5. 追蹤成效 - 定期檢視使用統計與續約率

On this page