コンテンツにスキップ

商品一括削除

POST
/products/bulk_delete
curl --request POST \
--url https://api.smaregi.dev/TARGET-CONTRACT-ID/pos/products/bulk_delete \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "products": [ { "productId": "123456789012345" } ], "callbackUrl": "https://example.com" }'

商品情報を一括削除します。

※ 商品の削除処理は非同期で実行されます。処理完了後、指定されたコールバックURLにWebhook通知されます。

※ 商品は1リクエストにつき100件まで削除できます。

※ 存在しない商品ID、またはすでに削除済みの商品IDが指定された場合、受付時点でエラーになります。ジョブは登録されず、Webhook通知は行われません。

対象プラン

  • スタンダード
  • プレミアム
  • プレミアムプラス
  • フードビジネス
  • リテールビジネス
Media typeapplication/json
object
products
required
商品情報

削除対象の商品ID一覧

Array<object>
>= 1 items <= 100 items unique items
object
productId
required
商品ID

商品ID:数字15桁以内。

※ ユーザーアクセストークンを利用する場合、ユーザーの所属する店舗で販売している商品IDを指定してください。

string format: int
>= 1 characters <= 15 characters
callbackUrl
required
処理完了通知URL

処理が完了した際にその結果をWebhook通知するURL

string format: uri
<= 511 characters /^https?://\S+$/
Example
{
"products": [
{
"productId": "123456789012345"
}
],
"callbackUrl": "https://example.com"
}

処理受付完了

Media typeapplication/json
object
requestId

問い合わせ用ID:弊社への問い合わせの際にご利用ください

integer
callbackUrl

処理完了通知URL:処理が完了した際に、その結果をWebhook通知するURL

Webhook通知について

Request Header:

key value
Content-Type application/json;charset=UTF-8

Request Body (削除処理完了):

Object

key value
requestId レスポンス時に返却したリクエストID (Integer)
result 処理結果 (Array of Objects)
result[].productId 商品ID:1以上15桁以内の数値文字列 (String)
result[].status 商品ごとの処理結果:deleted=削除成功、already_deleted=削除済み、not_found=存在なし、failed=予期せぬエラー (String)
result[].message 商品ごとの処理結果メッセージ。メッセージがない場合は空文字 (String)

リクエスト例:

{
  "requestId": 700,
  "result": [
    {
      "productId": "123",
      "status": "deleted",
      "message": ""
    },
    {
      "productId": "456",
      "status": "already_deleted",
      "message": "削除済みです。"
    },
    {
      "productId": "789",
      "status": "failed",
      "message": "予期せぬエラーが発生しました。"
    }
  ]
}

Request Body (ジョブ実行失敗):

Object

※ システムエラーにより非同期ジョブ全体を継続できず、商品ごとの削除処理および処理結果の生成を行えない場合に通知されます。

※ 商品単位の失敗は、本形式ではなく result を含む削除処理完了Webhookで通知されます。

key value
requestId レスポンス時に返却したリクエストID (Integer)
message エラーメッセージ (String)

リクエスト例:

{
  "requestId": 700,
  "message": "エラーメッセージ"
}

※ 存在しない商品ID、またはすでに削除済みの商品IDが指定された場合は受付時点でエラーになるため、ジョブは登録されず、callbackUrlへのWebhook通知は行われません。

商品ごとの処理結果メッセージ:

※ Webhook通知では、既存データを参照した上での結果を返します

ケース status message
削除した場合 deleted 空文字
受付後に別処理で削除された場合、または内部処理を再実行した場合 already_deleted 削除済みです。
受付後から内部処理までの間に商品が存在しなくなった場合 not_found 商品IDが存在しません。
予期せぬエラーが発生した場合 failed 予期せぬエラーが発生しました。

商品ごとの処理結果:

resultの内容 処理結果
すべて deleted または already_deleted 全件成功
deleted または already_deleted と、not_found または failed が混在 一部成功・一部失敗
すべて not_found または failed 全件失敗

※ 商品ごとに処理を行うため、一部の商品で処理に失敗しても、その他の商品に対して完了した削除処理は取り消されません。

※ already_deleted および not_found は、受付後の状態変更や内部処理の再実行時に返却される場合があります。受付時点ですでに削除済み、または存在しない商品IDが含まれている場合、受付時にエラーになります。

string format: uri
Example
{
"requestId": 700,
"callbackUrl": "https://example.com"
}
  • 処理完了通知URLで指定されたURLのフォーマットが正しくない場合
  • リクエスト上限数を超えている場合
  • 商品情報が1件も送られてこなかった場合
  • 同一の商品IDを重複して指定した場合
  • 商品IDに数値文字列でない値を指定した場合
  • 商品IDに16桁以上の値を指定した場合
  • 存在しない商品ID、またはすでに削除済みの商品IDを指定した場合

※ errorsは、存在しない商品ID、またはすでに削除済みの商品IDを指定した場合に、エラーとなった商品IDごとに1件返却します。

Media typeapplication/json
object
type
required
string
title
required
string
detail
string
status
integer
errors

受付時にエラーとなった商品情報。

商品IDの存在状態にエラーがある場合に、エラーとなったすべての商品を返します。

Array<object>
>= 1 items
object
productId
required

商品ID

string
status
required

エラー理由

string
Allowed values: not_found already_deleted
message
required

エラーメッセージ

string
Examples
{
"type": "about:blank",
"title": "Bad Request",
"detail": "処理完了通知URLのフォーマットが不正です。(処理完了通知URL-{処理完了通知URL})",
"status": 400
}