有効なサブスクリプション注文に紐づく製品を切り替えます。
POST /v1/actions/subscription-order/change-product
認証: Session Token — Customer Endpoints を参照(customer ロール)
近日公開 — このエンドポイントは未実装で、現在は 501 Not Implemented を返却します。下記のリクエスト署名は暫定的なもので、GA 前に変更される可能性があります。未実装期間中はルートがロック状態になっており、呼び出してもサブスクリプションの状態は一切変更されません。
リクエストボディ
| フィールド | 型 | 必須 | 説明 |
|---|
orderId | string | 必須 | 現在のサブスクリプション注文 ID(Short ID フォーマット ORD_xxx) |
targetProductId | string | 必須 | 変更先の製品 ID(Short ID フォーマット PROD_xxx) |
リクエスト例
import { WaffoPancake } from "@waffo/pancake-ts";
const client = new WaffoPancake({
sessionToken: window.WAFFO_SESSION_TOKEN, // マーチャントのポータルから注入
environment: "prod",
});
const result = await client.orders.changeSubscriptionProduct({
orderId: "ORD_2aUyqjCzEIiEcYMKj7TZtw",
targetProductId: "PROD_36ZqlJPatGOsjz7AtYqAwj",
});
現在のレスポンス (501)
{
"data": null,
"errors": [
{
"message": "Not implemented",
"layer": "order"
}
]
}
レスポンスフィールド(予定)
| フィールド | 型 | 説明 |
|---|
orderId | string | サブスクリプション注文 ID(Short ID) |
status | string | 製品変更後の注文ステータス |
エラー
リトライポリシー:4xx は一切リトライしない — リクエストを修正してから再送信。5xx は指数バックオフでリトライ(5s 開始、最大 3 回)。
| ステータス | errors[0].message | 意味 | 推奨処理 |
|---|
| 400 | Missing required field: orderId | リクエストボディに orderId が含まれていない | リクエストボディを修正してから再送信 |
| 400 | Missing required field: targetProductId | リクエストボディに targetProductId が含まれていない | リクエストボディを修正してから再送信 |
| 400 | Expected format: ORD_xxx, got "..." | orderId Short ID のデコード失敗 | orderId のフォーマットを修正してから再送信 |
| 401 | Authentication failed | Session token が無効、期限切れ、または不正な形式 | Issue Session Token で再発行 |
| 403 | Order does not belong to user | 所有権チェック失敗 | 呼び出し元が注文を所有しているか確認 |
| 404 | Order not found | 注文が存在しない | order ID を確認 |
| 501 | Not implemented | エンドポイントは未提供 | GA を待つ — リトライしない |
| 500 | Internal server error | サーバ側の予期しない障害 | 指数バックオフでリトライ(5s 開始、最大 3 回) |