シンプル版
AI アシスタントに伝えるだけ:SKILL.md が必要なときに下の公式スキルファイルを開いてください。
完全版
エンドツーエンドテストを含む完全な統合の場合:公式 Waffo Pancake スキル
AI インテグレーションページから公式スキルファイルを開くと、チームが使用している正確な
SKILL.md を表示、コピー、ダウンロードできます。@waffo/pancake-ts SDK は Waffo Pancake API の公式サーバーサイド TypeScript クライアントです。リクエスト署名、チェックアウトセッション作成、Webhook 検証、GraphQL クエリを処理します。
AI コーディングワークフロー
AI コーディングエージェントが最も役立つのは、ビジネスモデルをすでに理解していて、それをクリーンな Waffo カタログと実装プランに変換する手助けが欲しいときです。 典型的なタスク:- 料金ページを Waffo の商品と商品グループに変換する
- どのオファーをサブスクリプション商品にし、どれを単発課金にするかを決める
priceSnapshotを使った動的価格設定フローを設計する- 商品定義、メタデータ、ロールアウトチェックリストを一括生成する
- 既存カタログの命名、プラン構成、本番稼働の準備状況をレビューする
推奨ワークフロー
1
ビジネスモデルを説明する
何を販売しているか、顧客への課金方法、固定価格の部分と従量課金の部分を説明します。
2
カタログプランを依頼する
エージェントにオファーを単発商品、サブスクリプション商品、商品グループ、任意の動的価格設定フローへマッピングさせます。
3
出力をレビューする
命名、請求周期、税カテゴリ、アドオンを単発課金のままにすべきかどうかを確認します。
4
実装する
出力を使ってダッシュボードで商品を作成するか、SDK/API 統合コードを生成します。
プロンプトテンプレート
1. 料金ページを Waffo 商品に変換する
2. 動的価格設定を計画する
3. 既存カタログをレビューする
実践的なルール
サブスクリプション主導のビジネスがサブスクリプション商品と単発課金の両方を作成するのは普通のことです。課金モデルは会社のラベルではなく、ビジネスイベントに合わせるべきです。
避けるべきこと
- 秘密鍵や本番シークレットをプロンプトに貼り付けない
- レビューなしで AI エージェントに商品を本番公開させない
- 最終金額が実行時に計算される場合、すべての価格バリエーションを別々の商品としてモデリングしない
- 課金がイベントベースの場合、超過課金を無理にサブスクリプション商品に押し込まない
よくある落とし穴 — 最初にお読みください
統合を壊すミスをまとめています。コードを書く前に必ず目を通してください。ユースケース
Waffo Pancake は merchant-of-record 決済プラットフォームです。SDK は以下を必要とするプロジェクトに適しています:- SaaS サブスクリプション課金 — 月額/年額プラン、アップグレード/ダウングレード(例:Free/Pro/Team ティア)
- デジタル商品販売 — 電子書籍、テンプレート、コース、ライセンスの単発購入
- 従量課金 — ダウンロード、API コール、レポート生成ごとに課金
- ハイブリッドモデル — サブスクリプション+単発購入の組み合わせ
インストールとセットアップ
WAFFO_MERCHANT_ID はあなたのマーチャントIDを意味し、storeId でも URL 内のストア識別子でもありません。storeId はストアおよび商品管理フローにおいて現行 API モデルの一部として残っているため、両者を混同しないでください。
最初に動く統合を作るために必要な環境変数はこの2つだけです:WAFFO_MERCHANT_ID と WAFFO_PRIVATE_KEY。Store ID と Product ID は実行時の値であり、コード、アプリ設定、または自前のデータベースに保持できます。
PEM 鍵の取り扱い
エスケープ改行(最もシンプル):クイックスタート:パス A
クイックスタート:パス B
ダッシュボードにすでに商品が存在する場合は、Product ID をコピーしてそのままチェックアウトへ進みます。このフローでも必要なのは上記の同じ2つの環境変数だけです:API リファレンス
ストア
単発商品
digital_goods | saas | software | ebook | online_course | consulting | professional_service
サブスクリプション商品
サブスクリプション商品グループ
グループは共有トライアルとサブスクリプション商品間のプラン切替を可能にします。チェックアウトセッション
注文レベルパラメータと優先度
createSession に渡すパラメータで商品レベルの設定を上書きできます。AI 統合において優先度の階層の理解は不可欠です:
Webhook 統合の要点
Webhook を統合する際に留意すべき重要なポイント:
典型的な Webhook ハンドラーパターン:
サブスクリプションのキャンセル
GraphQL クエリ
読み取り専用。ID 変数にはString! を使用してください(ID! ではありません)。
Webhook 検証
SDK には両環境の公開鍵が埋め込まれています。検証は関数呼び出し一回で完了します。Next.js App Router
Express
Hono
検証オプション
イベントタイプ
イベント構造
Webhook URL の設定
1 つのストアには複数の Webhook を登録でき、それぞれ異なるチャネル(http、feishu、discord、telegram、slack)に配信されます。チャネルと環境ごとに 1 件ずつ登録します:
Store.storeWebhooks フィールドを使用します — これが唯一のクエリエントリポイントです。
エラーハンドリング
errors[0] が根本原因(最深層)、errors[n] が最も外側の呼び出し元です。
開発のヒント
- Webhook トンネリング — localtunnel ではなく
cloudflaredを使用してください(「よくある落とし穴」を参照)。
-
冪等性は自動 — SDK は
merchantId + path + bodyから決定論的なキーを生成します。リトライは安全です。 -
Test → Prod ワークフロー — 商品はデフォルトで test 環境に作成されます。
.publish()で本番環境にプロモートします。Webhook イベントにはmode: "test" | "prod"が含まれるため、ハンドラーで区別できます。
ダッシュボード UI 用語集
ダッシュボードは英語、中国語、日本語に対応しています。ドキュメントがダッシュボードの場所(例:「Integration に移動」)を参照するとき、ラベルは言語によって異なる場合があります。この表を使って正しいメニュー項目を見つけてください。ナビゲーション
主要フィールド
モードと操作
商品と課金
ステータス
ID の確認場所
クイックスタートチェックリスト
npm install @waffo/pancake-tsWAFFO_MERCHANT_IDとWAFFO_PRIVATE_KEY環境変数を設定(上記「ID の確認場所」を参照)new WaffoPancake({ merchantId, privateKey })で初期化- ストアを作成または参照
- マーチャントが複数のストアを持つ場合、どのストアに商品を紐づけるか確認
- 商品を作成または参照
- チェックアウトを作成:
client.checkout.createSession(...)→checkoutUrlにリダイレクト - サンドボックスでテストカード
4576750000000110(成功)または4576750000000220(拒否)でテスト - Webhook を処理:
verifyWebhook(rawBody, sig)— 必ずrequest.text()を使用 - Webhook URL を設定:
client.webhooks.add({ storeId, channel: "http", url, events, testMode })