コンテンツにスキップ

商品共通規格更新

PATCH
/products/{product_id}/variants
curl --request PATCH \
--url https://api.smaregi.dev/TARGET-CONTRACT-ID/ec-oms/products/example/variants \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "class": [ { "name": "サイズ", "classcategory": [ { "name": "S", "subcode": "01" }, { "name": "M", "subcode": "02" } ] }, { "classId": 10, "name": "カラー", "classcategory": [ { "classcategoryId": 101, "name": "赤" }, { "name": "青", "subcode": "03" } ] } ] }'

商品共通規格を追加・更新します。

  • classId / classcategoryId を指定しない要素は新規追加し、指定した要素は既存データを更新します。
  • 既存規格の更新では name / classcategory のうち1つ以上、既存規格値の更新では name / subcode のうち1つ以上を指定してください。
  • class / classcategory 配列に含めなかった既存の規格・規格値は更新・削除されません。
  • IDを指定した更新では、name / subcode などリクエストに含めなかったプロパティは現在の値を保持します。
  • リクエスト内のいずれかの追加・更新に失敗した場合は、リクエスト全体を更新せず、部分的な更新は行いません。
  • 更新後に存在する各規格軸の規格値数の積をバリエーション数とし、合計400件まで登録できます。
  • classType はシステムが自動設定します。リクエストに含めても使用されず、設定値には反映されません。
  • 既存規格の classType は、リクエスト内の配列順にかかわらず現在の値を維持します。
  • 新規規格には、未使用の classType12)をリクエスト内の追加対象の先頭から昇順に割り当てます。すべて使用済みの場合は規格軸上限エラーになります。

※規格・規格値を追加または更新した場合、商品SKU紐づけ・規格別価格情報などが初期化されることがあります。
※商品規格コードは、商品の共通商品コードと各規格値の枝番から自動生成され、商品詳細更新APIで直接更新した値が初期化される場合があります。

product_id
required
string
>= 1 characters

商品ID

Media typeapplication/json
ProductVariantPatchRequest
object
class
required

規格配列

Array<object>
>= 1 items <= 2 items

新規追加時は nameclasscategory が必須です。 classId を指定する更新時は name / classcategory のうち1つ以上を指定してください。

object
classId

規格ID
指定しない場合は、新規の規格追加として処理します

integer
>= 1 <= 999999999
name

規格名
※新規作成時は必須。更新時も指定する場合は空文字不可

string
>= 1 characters <= 50 characters
classcategory

規格値配列 ※新規作成時は必須。更新時は省略でき、省略した場合は既存の規格値を変更しません

Array<object>
>= 1 items <= 20 items

新規追加時は name が必須です。 classcategoryId を指定する更新時は name / subcode のうち1つ以上を指定してください。

object
classcategoryId

規格値ID
指定しない場合は、新規の規格値追加として処理します

integer
>= 1 <= 999999999
name

規格値名
※新規作成時は必須。更新時も指定する場合は空文字不可

string
>= 1 characters <= 50 characters
subcode

枝番

string
0 <= 32 characters
Examples
Exampledefault
{
"class": [
{
"name": "サイズ",
"classcategory": [
{
"name": "S",
"subcode": "01"
},
{
"name": "M",
"subcode": "02"
}
]
},
{
"classId": 10,
"name": "カラー",
"classcategory": [
{
"classcategoryId": 101,
"name": ""
},
{
"name": "",
"subcode": "03"
}
]
}
]
}

更新成功

Media typeapplication/json
ProductVariantPatchResponse
object
productId

商品ID

string
>= 1 characters <= 9 characters
class

規格配列

Array<object>
object
classId

規格ID

string
>= 1 characters <= 9 characters
productId

商品ID

string
>= 1 characters <= 9 characters
name

規格名

string
>= 1 characters <= 50 characters
classType

システムによって自動設定される規格軸

  • 1: 横軸(規格1)
  • 2: 縦軸(規格2)
string
>= 1 characters <= 1 characters
Allowed values: 1 2
classcategory
Array<object>
object
classcategoryId

規格値ID

string
>= 1 characters <= 9 characters
classId

規格ID

string
>= 1 characters <= 9 characters
productId

商品ID

string
>= 1 characters <= 9 characters
name

規格値名

string
>= 1 characters <= 50 characters
rakutenCode

商品コード

string
nullable 0 <= 200 characters
subcode

枝番

string
nullable 0 <= 32 characters
productsClass

規格値の組み合わせに応じた商品規格配列

Array<object>
object
productClassId

商品クラスID

string
>= 1 characters <= 9 characters
productId

商品ID

string
>= 1 characters <= 9 characters
classcategoryId1

商品規格ID(横軸)

string
nullable <= 9 characters
classcategoryId2

商品規格ID(縦軸)

string
nullable <= 9 characters
productCode

商品番号

string
0 <= 200 characters
price02

販売価格

string
>= 1 characters <= 9 characters
productTypeId

商品種別

string
>= 1 characters <= 1 characters
stockUpdateFlg

在庫連携指定

string
>= 1 characters <= 1 characters
stockUpdateValue

在庫指定値

string
nullable <= 9 characters
rcatalogId

JANコード

string
nullable <= 50 characters
delvdateChk

在庫納期情報個別設定

string
nullable <= 1 characters
restoreInventoryFlag

在庫戻し設定

string
nullable <= 1 characters
backorderFlag

在庫切れ時の注文

string
nullable <= 1 characters
normalDelvdateId

在庫あり時の納期管理番号

string
nullable >= 1 characters <= 9 characters
normalDelvdateIdJa

在庫あり時の納期管理番号(和名)

string
nullable >= 1 characters <= 50 characters
backorderDelvdateId

在庫切れ時の納期管理番号

string
nullable >= 1 characters <= 9 characters
backorderDelvdateIdJa

在庫切れ時の納期管理番号(和名)

string
nullable >= 1 characters <= 50 characters
Examples
Exampledefault
{
"productId": "1001",
"class": [
{
"classId": "11",
"productId": "1001",
"name": "サイズ",
"classType": "1",
"classcategory": [
{
"classcategoryId": "201",
"classId": "11",
"productId": "1001",
"name": "S",
"rakutenCode": "ABC001",
"subcode": "01"
},
{
"classcategoryId": "202",
"classId": "11",
"productId": "1001",
"name": "M",
"rakutenCode": "ABC001",
"subcode": "02"
}
]
},
{
"classId": "10",
"productId": "1001",
"name": "カラー",
"classType": "2",
"classcategory": [
{
"classcategoryId": "101",
"classId": "10",
"productId": "1001",
"name": "",
"rakutenCode": "ABC001",
"subcode": null
},
{
"classcategoryId": "102",
"classId": "10",
"productId": "1001",
"name": "",
"rakutenCode": "ABC001",
"subcode": "03"
}
]
}
],
"productsClass": [
{
"productClassId": "501",
"productId": "1001",
"classcategoryId1": "201",
"classcategoryId2": "101",
"productCode": "ABC0010101",
"price02": "2980",
"productTypeId": "1",
"stockUpdateFlg": "1",
"stockUpdateValue": "10",
"rcatalogId": "4900000000012",
"delvdateChk": "1",
"restoreInventoryFlag": "1",
"backorderFlag": "0",
"normalDelvdateId": "2",
"normalDelvdateIdJa": "3営業日以内",
"backorderDelvdateId": "4",
"backorderDelvdateIdJa": "入荷次第発送"
},
{
"productClassId": "502",
"productId": "1001",
"classcategoryId1": "202",
"classcategoryId2": "102",
"productCode": "ABC0010203",
"price02": "2980",
"productTypeId": "1",
"stockUpdateFlg": "1",
"stockUpdateValue": "10",
"rcatalogId": "4900000000012",
"delvdateChk": "1",
"restoreInventoryFlag": "1",
"backorderFlag": "0",
"normalDelvdateId": "2",
"normalDelvdateIdJa": "3営業日以内",
"backorderDelvdateId": "4",
"backorderDelvdateIdJa": "入荷次第発送"
}
]
}
  • 在庫タイプが2:項目選択肢別在庫ではない商品に新規規格を追加する場合
  • 指定された項目が不正な場合
  • 更新項目が指定されていない場合
  • 規格軸数が上限を超える場合
  • 規格値が上限を超える場合
  • バリエーション数が上限を超える場合
Media typeapplication/json
object
type
required
string
title
required
string
detail
One of:
string
status
integer
Examples
{
"type": "about:blank",
"title": "BadRequest",
"detail": "在庫タイプが項目選択肢別在庫ではないため、規格の追加はできません"
}
  • 指定された商品が存在しない場合
  • 指定された規格が存在しない場合
  • 指定された規格値が存在しない場合
Media typeapplication/json
object
type
required
string
title
required
string
detail
One of:
string
status
integer
Examples
{
"type": "about:blank",
"title": "NotFound",
"detail": [
"該当する商品IDが見つかりませんでした"
],
"status": 404
}
  • 指定された規格名が重複している場合
  • 指定された規格値名が重複している場合
  • 指定された枝番が重複している場合
Media typeapplication/json
object
type
required
string
title
required
string
detail
One of:
string
status
integer
Examples
{
"type": "about:blank",
"title": "Conflict",
"detail": "[規格名]が重複しています",
"status": 409
}

サーバー内部エラー

Media typeapplication/json
object
type
required
string
title
required
string
detail
One of:
string
status
integer
Examples
Exampledefault
{
"type": "about:blank",
"title": "InternalServerError",
"status": 500
}