この記事について
誤ってポイントを変換してしまった場合や、注文がキャンセルになった場合に、クーポンを無効化してポイントを戻す必要があります。クーポンの管理機能と取り消しの仕組みを解説します。
クーポン管理の全体像
管理が必要なシーン
管理者が見れる情報
管理画面の機能: 検索(顧客ID/クーポンコード)、フィルター(すべて/未使用/使用済み)
取り消し機能
取り消しフローの全体像
管理者が取り消し対象のクーポンを選択
クーポンが未使用であることを確認(使用済みは取り消し不可)
Shopify Admin APIでクーポンを削除/無効化
POS APIで減算したポイントを戻す
顧客のクーポン情報をステータス更新
取り消し完了とポイント返還をメール通知
詳細フロー図
管理画面から対象クーポンを選択
未使用 → 続行 / 使用済み → エラー「すでに使用されています」
DELETE /admin/discount_codes/[id] → 以降、このコードは使用不可に
POST /customers/[id]/points/add → 減算した分を加算して残高を復元
status: "active" → "cancelled", cancelled_at を記録
「クーポンが取り消されました」「500ポイントが返還されました」
全ての操作を監査用に記録
取り消しの条件
取り消し可能な条件
使用済みクーポンの扱い
シナリオ: 注文がキャンセルになった
対応方法:
- 管理者がPOSでポイントを手動付与
- 付与理由: 「注文キャンセルによる返還」
- 履歴に記録
補足: 自動化も可能だが、不正防止のため注文キャンセル時のポイント返還は手動確認を推奨
ポイント返還の仕組み
返還処理の詳細
取り消し時の情報: クーポンコード: 70934-AB12CD-500, 使用ポイント: 500pt, 顧客ID: 12345
返還の追跡性
顧客12345のポイント履歴:
ポイント: 参照コードで変換と返還を紐付け可能、監査時に整合性を確認できる
顧客への通知
取り消し通知メールの内容
件名: クーポンが取り消されました
フッター: ご不明な点がございましたら、お気軽にお問い合わせください。
運用上の注意点
取り消し権限の管理
取り消し理由の記録
取り消し時に入力する項目:
記録例: cancelled_by: "山田花子", cancelled_at: "2024-01-20T15:00:00Z", reason: "顧客からの依頼", note: "間違えて変換したとのこと"
この仕組みがもたらす効果
運営側にとって
- 誤操作やキャンセルに柔軟に対応可能
- 全ての操作が記録され監査に対応
- 権限管理で不正を防止
顧客にとって
- 間違えても取り消しが可能で安心
- ポイントが確実に返還される
- 通知でステータスを把握できる