メインコンテンツへスキップ

プロダクト = 課金オブジェクト

Waffo Pancake における プロダクト は、チェックアウト、課税、レポートに用いられるオブジェクトです。単なる商品ページのカードではなく、あなたが課金する「商業的なオファー」そのものです。
プロフェッショナルな使い方では、プロダクトを以下の課金エンティティとして捉えてください:
  • 固定価格のオファー
  • サブスクリプションプラン
  • チェックアウト時に動的価格で利用するベースプロダクト

コアモデル

単発払い

顧客が事前定義されたオファーに対して 1 回だけ支払います。
  • デジタルダウンロード
  • 永久ライセンス
  • テンプレート、コース、素材

サブスクリプション

顧客が定期的なスケジュールで請求されます。
  • SaaS プラン
  • メンバーシップ
  • サービス契約

動的価格

金額はチェックアウト時に計算されます。
  • 使用量超過分の課金
  • クレジットのチャージ
  • 個別交渉による見積り

プロダクトの作成

ダッシュボード —> プロダクト —> プロダクトを作成
{
  "storeId": "your-store-uuid",
  "name": "Pro Plan",
  "prices": {
    "USD": { "amount": "29.00", "taxIncluded": false, "taxCategory": "saas" }
  }
}
完了です。 固定価格販売向けの恒久的な購入リンク、またはプログラム経由のチェックアウトで再利用できる課金オブジェクトが得られます。

プロダクトフィールド

必須項目

フィールド説明
名前顧客に表示される内容
価格請求金額(最小単位)
通貨USD、EUR、GBP、CNY、JPY、HKD など
タイプ単発またはサブスクリプション
税カテゴリSaaS、Digital Goods、Software など

オプション項目

フィールドデフォルト用途
説明Markdown 形式、製品のアピール用
画像推奨 400x400px
リダイレクト URLチェックアウト後の遷移先。支払いが成功した場合も失敗した場合も同じ URL が使われます — 設定できるのは 1 つだけです。

価格の上下限

各通貨には設定可能な最低価格と最高価格があります。範囲外の価格は商品の保存時に拒否されます。
通貨最低最高
USD$1.00$7,500.00
EUR€1.00€7,400.00
GBP£1.00£6,400.00
JPY¥100¥1,250,000
HKDHK$8.00HK$61,000.00
CNY はダッシュボードの分析ビューで表示通貨として利用できますが、現時点では商品の価格設定通貨としては利用できません。

動的価格

最終的な金額が実行時まで確定しない場合、動的価格が適したモデルです。 例:
  • 使用量ベースの超過課金
  • 金額が可変のプリペイドクレジットパック
  • 契約ごとの個別見積り
  • サーバー側で計算する一時的なディスカウント

仕組み

  1. Waffo Pancake で ベースとなる単発プロダクト を作成します
  2. サーバー側で最終金額を計算します
  3. チェックアウトセッション作成時に priceSnapshot を渡します
const session = await client.checkout.createSession({
  storeId: "store_id",
  productId: "usage-overage-product-id",
  productType: "onetime",
  currency: "USD",
  priceSnapshot: {
    amount: calculatedAmount,
    taxIncluded: false,
    taxCategory: "saas",
  },
});
priceSnapshot は、そのチェックアウトセッションに対して保存されているプロダクト価格を上書きします。必ずサーバー側でのみ使用し、信頼できないクライアントコードからは使用しないでください。
金額がイベントベースの場合は、顧客がすでにサブスクリプション中であっても、単発課金として扱ってください。

無料トライアル

購入前にサブスクリプション製品をお試しいただけます。

トライアル不正利用防止

Waffo Pancake はプラットフォームレベルで消費者のトライアル履歴を自動的に追跡します。消費者が新しいサブスクリプションを開始する際、プラットフォームはその履歴に基づいて利用可能な最大トライアル日数を計算し、マーチャント側の追加対応なしにトライアルの繰り返し不正利用を防止します。 マーチャントは API で requested_trial_days を渡すことで、特定の顧客のトライアル期間を短縮またはスキップすることもできます。
効果的なトライアル悪用防止には buyerIdentity が必要です。認証済みチェックアウトを使用して、各購入者が製品ごとに1回のみトライアルを取得できるようにしてください。

請求サイクル

サイクル頻度最適な用途
週次7日ごと高使用量製品
月次毎月標準 SaaS
四半期3ヶ月ごとB2B ソフトウェア
年次12ヶ月ごと長期顧客
年間プランで 15-20% の割引 = 解約率低下 + キャッシュフロー改善。

プロダクト購入リンク

各プロダクトには有効期限のない恒久的な購入リンクが発行されます:
https://checkout.waffo.ai/{store-slug}/{product-slug}
テストモード:
https://checkout.waffo.ai/{store-slug}/{product-slug}/test
ウェブサイトに設置:
  • ウェブサイトのボタン
  • Twitter プロフィール
  • メール署名
  • Discord サーバー
主なメリット:
  • リンクは恒久的 — プロダクトの詳細を更新してもリンクは変わりません
  • セッションやトークンの管理は不要
  • 顧客がリンクを開いた瞬間にチェックアウトセッションが自動生成されます
リンクの取得:
  • ダッシュボード:任意のプロダクトの「リンクをコピー」をクリック
  • API:高度なユースケースでは、API でカスタムパラメータ付きのチェックアウトセッションを作成(動的リンク、TTL は 7 日間)
テストと本番環境:
  • ダッシュボード上部でテストモードを切り替えると、テストリンクでプレビューできます
  • テストリンクには /test サフィックスが付きます

プロダクトステータス

Active

公開中、顧客が購入可能。

Inactive

非表示、既存のサブスクリプションは継続。

プロダクトの更新

プロダクトはイミュータブルバージョニングを採用:
更新すると新しいバージョンが作成されます。既存のサブスクリプションは元のバージョンを維持します。
フィールド影響
名前/説明新バージョン作成
画像新バージョン作成
価格新規購入のみに影響
請求サイクル作成後は変更不可

環境同期

プロダクトバージョンをテスト環境から本番環境に公開:
POST /v1/actions/onetime-product/publish-product
{
  "id": "product-id"
}
公開は一方向(テスト → 本番)で、初回公開時のみ必要です。

ベストプラクティス

請求サイクルを含める:
  • 「Pro Plan - Monthly」
  • 「Pro Plan - Annual (Save 20%)」
  • 整数価格を使用(2929、28.73 ではなく)
  • 年間割引(15-20%)
  • 競合他社を調査
  • 最小 400x400px
  • PNG または JPG 形式
  • 2MB 未満