単発商品のコンテンツを更新します。コンテンツが変更された場合、新しいイミュータブルバージョンが自動的に作成されます。コンテンツが現在のバージョンと同一の場合、新しいバージョンは作成されません。
POST /v1/actions/onetime-product/update-product
認証: API Key
商品のステータス(active/inactive)を変更するには、ステータスの更新エンドポイントを使用してください。このエンドポイントはコンテンツの更新のみです。
リクエストボディ
| フィールド | 型 | 必須 | 説明 |
|---|
id | string | Yes | 商品 ID(Short ID フォーマット PROD_xxx) |
name | string | No | 更新後の商品名(64 文字以下) |
description | string | null | No | 更新後の説明(null または "" で消去可能) |
prices | object | No | 更新後のマルチ通貨価格マップ |
media | array | No | 更新後のメディアアイテム |
successUrl | string | null | No | 更新後のリダイレクト URL(512 文字以下、有効な http(s) URL であること;null または "" で消去可能) |
metadata | object | No | 更新後のカスタムメタデータ |
prices と media のオブジェクトフォーマットについては、商品の作成を参照してください。
リクエスト例
const { product } = await client.onetimeProducts.update({
id: "PROD_3kF9mNpQrStUvWxYz1A2bC",
name: "Premium Template Pack v2",
description: "75 premium design templates — expanded collection.",
prices: {
USD: { amount: "59.00", taxIncluded: false, taxCategory: TaxCategory.DigitalGoods },
EUR: { amount: "55.00", taxIncluded: true, taxCategory: TaxCategory.DigitalGoods },
},
successUrl: "https://example.com/thank-you",
});
成功レスポンス (200)
{
"data": {
"product": {
"id": "PROD_3kF9mNpQrStUvWxYz1A2bC",
"storeId": "STO_2aUyqjCzEIiEcYMKj7TZtw",
"name": "Premium Template Pack v2",
"description": "75 premium design templates — expanded collection.",
"prices": {
"USD": { "amount": "59.00", "taxCategory": "digital_goods" },
"EUR": { "amount": "55.00", "taxCategory": "digital_goods" }
},
"media": [],
"successUrl": "https://example.com/thank-you",
"metadata": {},
"status": "active",
"createdAt": "2026-01-15T10:30:00.000Z",
"updatedAt": "2026-01-15T11:00:00.000Z"
}
}
}
レスポンスフィールド
商品の作成レスポンスと同じです。
商品バージョンはイミュータブルです。既存の注文は元のバージョンを保持します。新規購入は常に最新バージョンを使用します。送信されたコンテンツが現在のバージョンと同一の場合、新しいバージョンは作成されず、既存のバージョンが返されます。
エラー
リトライポリシー:4xx は一切リトライしない — リクエストを修正してから再送信。5xx は指数バックオフでリトライ(5s 開始、最大 3 回)。
| ステータス | errors[0].message | 意味 | 推奨処理 |
|---|
| 400 | Missing required field: id | id が指定されていません | ボディを修正して再送信 |
| 400 | Invalid ID format | 指定された Short ID をデコードできませんでした | id のフォーマットを修正して再送信 |
| 400 | Invalid currency code | 通貨コードは ISO 4217 に準拠した3文字の大文字である必要があります(例:USD、EUR、JPY) | 有効な ISO 4217 コードを使用して再送信 |
| 400 | Invalid amount | 金額は正の数値文字列である必要があります(例:"9.99"、"100") | 正の数値文字列を使用して再送信 |
| 400 | Product X has no version in environment Y | 商品が対象環境にまだバージョンを持たない(例:prod 未公開で更新を試みた) | 先に Publish Product で商品を対象環境に公開 |
| 404 | Product not found | 商品が存在しないかアクセスできません | id が現在のマーチャントに属することを確認 |
| 500 | Internal server error | サーバ側の予期しない障害 | 指数バックオフでリトライ(5s 開始、最大 3 回) |