受注キャンセル API の在庫充当に関する不具合を修正しました

2026/08/19

受注のキャンセル (PUT /v1/sales/{sale_id}/cancel) で restock に true を指定しても、一部の商品で在庫数が戻らない不具合がありました。この不具合を修正し、あわせてレスポンスに warnings を追加しました。ご迷惑をおかけし申し訳ございません。

変更日時

2026年8月13日(木) 14:00以降順次

変更内容

在庫数が戻らない不具合を修正しました

オプションを1つだけ設定し、オプションごとに在庫数を設定している商品では、restock に true を指定してキャンセルしても在庫数が戻らず、レスポンスは成功 (200) を返していました。修正後は、このような商品でも購入された分の在庫数が正しく戻ります。

オプションを2つ設定している商品、オプションを使っていない商品、オプションごとに在庫数を設定していない商品では、これまでも在庫数は正しく戻っており、変更はありません。

レスポンスに warnings を追加しました

キャンセル自体は成立したものの、お伝えすべきことがあった場合に warnings として返します。何もない場合は空配列を返します。

以下は在庫を戻せなかった場合の例です (sale の内容は省略しています)。

{
  "sale": {
    "id": "1234567",
    "canceled": true
  },
  "warnings": [
    {
      "code": "restock_failed",
      "detail_id": 1234569,
      "message": "商品Aの在庫を戻せませんでした。商品オプションが削除されている可能性があります。管理画面から在庫数をご確認ください。"
    }
  ]
}
キー名 値 形式
code 警告の種類を表す識別子。restock_failed は在庫を戻せなかったことを表します。message の文言ではなくこの値で分岐してください string
detail_id 警告の対象となった受注明細のID。同じレスポンスの sale.details[].id に対応します integer
message 警告の内容 (利用者向けの文言) string

カラーミーショップオブジェクトの stock_quantity が返す値が変わりました

この不具合と同じ原因により、スクリプトタグ用カラーミーショップオブジェクトの「カート(購入完了後)」で取得できる Colorme.sale.items の stock_quantity は、オプションを1つだけ設定しオプションごとに在庫数を設定している商品で、全オプションの合計在庫数を返していました。修正後は、購入されたオプションの在庫数を返します。

例えば、オプション「カラー」の赤の在庫数が3、青の在庫数が7の商品で、赤が購入された場合の値は以下のように変わります。

これまでの値 修正後の値
10 (赤と青の合計在庫数) 3 (購入された赤の在庫数)

オプションを2つ設定している商品はこれまでも購入されたオプションの在庫数を返しており、変更はありません。オプションを使っていない商品と、オプションごとに在庫数を設定していない商品にも変更はありません。

注意事項

  • stock_quantity を在庫の有無の判定に使用している場合はご注意ください。例えば、赤が売り切れで青の在庫数が7残っている商品では、赤が購入された注文の stock_quantity はこれまで 7 でしたが、修正後は 0 になります
  • 受注のキャンセルのレスポンスを厳密なスキーマで検証している場合は、warnings の追加にご対応ください

詳細は以下のドキュメントを確認ください。