TL;DR 特定のお客さんに割引(クーポン)を発行して請求を安くする機能。核心は「定価は触らず、割引は別管理。実額は Stripe の請求書の数字だけ見せる」。いきなり本番ではなく、土台 → 管理画面で適用 → 実額表示 → 上書き対策 → 1社だけ本番、と安全に一段ずつ進める。0+1 で実用でき、残りは育てる。
特定のお客さんに割引(クーポン)を発行して、その人の請求を安くする。
営業の特別対応、引き留め、お試しの値引きなどで使います。「誰にでも配るキャンペーン」ではなく、運営が相手を選んで当てる、ピンポイントの値引きです。
たとえ話で言うと——
= 実際のお財布。クーポン機能はもともと持っている。だから「Stripe で割引を当てる」こと自体はできる。
= お財布の中身を見て「定価の値札」をコピーして貼っているだけ。割引しても、この値札は変わらない。
問題はここです。
「定価の値札」は絶対に触らない。割引は “別の付箋” で管理する。
なぜか:定価の値札は、プラン判定・画面表示・アプリ内課金などいろんな所がぶら下がっている土台です。ここを「割引後の実額」に書き換えると、複数割引・期間(1回だけ/毎月/ずっと)・税・日割りが絡んで、アプリ側で請求額を計算し直すことになり、必ずどこかでズレて事故ります。
誤爆を防ぐ仕掛け(当てる前の確認):
お金まわりは、一度の事故が痛い(過剰請求=信用問題、過少請求=損失)。だから「いきなり全部作って本番」ではなく、安全を確かめながら一段ずつ進めます。各段に「ここまで確認できたら次へ」という関門(ゲート)を置きます。
| フェーズ | やること | 終わると |
|---|---|---|
| 0. 土台づくり | 割引を記録する箱と操作ログを用意。Stripe への書き込みはまだしない。テスト環境で「割引を読めて・保存できる」だけ確認 | 安全に始める助走が完了 |
| 1. 管理画面から当てられる (最小で使える形) |
運営が選んだクーポンを対象のお客さんに当てる/外せる。画面は「定価+クーポン適用中」と表示。テスト環境で「当てる・外す・二重に当たらない」を確認 | ここで実際に “使える” ようになる |
| 2. 実際いくらかを正しく表示 | Stripe の請求書から実額を取って見せる | 「結局いくら払うの?」が正確に出る |
| 3. 上書き仕組みにも割引を分からせる | 定期同期が割引を消さないようにする | 長く運用しても崩れない |
| 4. 本番でまず1社だけ慎重に | 全顧客でなく、まず1社で実地確認してから広げる | 本番事故ゼロで展開 |
これは「ちょっとした追加」ではなく、お金まわりを慎重に作る、複数段階のエンジニア案件です。ただし段階を分けてあるので、各段は小さく・安全。フェーズ 0+1 まで作れば運営は実用でき、残りは様子を見ながらで構いません。