コンテンツにスキップ
ShopentlyLearn

ストアのデータを変更する

APIを使うと、商品の説明や価格など、ストアのデータを変更できます。

必要な項目だけを変更する

商品の説明を変更するために、すべての商品データを送る必要はありません。PATCHリクエストには、変更する項目と、その操作で必須とされる項目を含めてください。それ以外のデータは変更されません。

省略されたフィールド
値は変更されません。
null
フィールドが許可していれば、nullを送ると値が削除されます。操作の説明を確認してください。
空文字列
""は空の文字列です。nullとは異なり、すべてのフィールドで使用できるわけではありません。

この例ではドイツ語の商品説明を削除します。商品名とほかの言語の説明は変更されません。

PATCH/api/v1/products/example?locale=de

cURLリクエスト

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は保存を拒否します。データを再取得し、予定した変更が適切か確認してください。そのうえで最新バージョンを指定した新しいリクエストを送信します。

価格の変更には、価格、バリエーション、価格表のバージョンも必要になる場合があります。必要なフィールドは操作の説明に記載されています。