ストアのデータを変更する
APIを使うと、商品の説明や価格など、ストアのデータを変更できます。
必要な項目だけを変更する
商品の説明を変更するために、すべての商品データを送る必要はありません。PATCHリクエストには、変更する項目と、その操作で必須とされる項目を含めてください。それ以外のデータは変更されません。
- 省略されたフィールド
- 値は変更されません。
- null
- フィールドが許可していれば、nullを送ると値が削除されます。操作の説明を確認してください。
- 空文字列
- ""は空の文字列です。nullとは異なり、すべてのフィールドで使用できるわけではありません。
この例ではドイツ語の商品説明を削除します。商品名とほかの言語の説明は変更されません。
PATCH
/api/v1/products/example?locale=decURLリクエスト
curl --disable --globoff --fail-with-body --silent --show-error \
--proto '=https' --connect-timeout 5 --max-time 30 \
--request PATCH \
--url 'https://shop.onshopently.com/api/v1/products/example?locale=de' \
--header 'Authorization: Bearer EXAMPLE_ACCESS_TOKEN' \
--header 'Idempotency-Key: example-product-clear-translation' \
--header 'Content-Type: application/json' \
--data-raw '{"description":null,"expected_version":1}'
レスポンス
{
"data": {
"deleted": false,
"id": "example",
"version": 2
},
"meta": {
"request_id": "example"
}
}
応答が届かない場合
応答が届かなくても、変更が保存されていないとは限りません。変更が完了した後に接続が切れた可能性があります。
データを保存するときは、一意の値を持つ Idempotency-Key ヘッダーを追加してください。レスポンスが届かず同じ変更を再試行する場合は、キー、URL、メソッド、リクエスト内容を変えずに送信します。
APIにそのリクエストの結果が保存されている場合、変更を再実行せずに保存済みの結果を返します。別の変更には新しいキーを使ってください。
同じキーを別のリクエストに使うと idempotency.key_reused になります。
同じデータがほかの人に変更された場合
変更する前に最新のデータを取得してください。操作に expected_version が必要な場合は、取得したバージョンをそのフィールドに指定します。
その間に誰かがデータを変更していた場合、APIは保存を拒否します。データを再取得し、予定した変更が適切か確認してください。そのうえで最新バージョンを指定した新しいリクエストを送信します。
価格の変更には、価格、バリエーション、価格表のバージョンも必要になる場合があります。必要なフィールドは操作の説明に記載されています。