コンテンツにスキップ

商品取扱店舗追加

POST
/products/{product_id}/shops
curl --request POST \
--url https://api.smaregi.dev/TARGET-CONTRACT-ID/ec-oms/products/example/shops \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "productsSpecialShop": { "shopId": 10, "orgExpFlg": 1, "code": "SHOP-ITEM-001", "productCode": "SHOP-PRODUCT-001", "productType": 1 }, "productsClassShop": { "shopId": 10, "productTypeId": 1, "rcatalogId": "4901234567890", "classShop": [ { "name": "カラー", "classType": 1, "classcategoryShop": [ { "name": "レッド", "subcode": "RED" }, { "name": "ブルー", "subcode": "BLU" } ] } ] } }'

既存商品に取扱店舗を1件追加します。
productsSpecialShop で店舗別商品を追加し、productsClassShop を指定した場合のみ店舗別規格・店舗別規格値・店舗別商品規格も同時に追加します。

product_id
required
string
>= 1 characters

商品ID

Media typeapplication/json
ProductShopAppendRequest
object
productsSpecialShop
required
ProductShopAppendSpecialShopRequest
object
shopId
required

店舗ID

integer
<= 999999999
orgExpFlg

モール反映フラグ

  • 0: 反映しない
  • 1: 反映する
integer
Allowed values: 0 1
code

店舗別商品管理番号
店舗種別テーブルに対象カラムがある場合に保存されます。

string
0 <= 50 characters
productCode

店舗別商品コード
指定しない場合は親商品の commonProductCode を使用します。

string
0 <= 50 characters
productType

商品タイプ 店舗種別テーブルに対象カラムがある場合に保存されます。

  • 0: 通常
  • 1: MOVE商品
integer
Allowed values: 0 1
productsClassShop
ProductShopAppendProductsClassShopRequest

※追加先商品の在庫タイプに2:項目選択肢別在庫を設定している場合は必須

object
shopId
required

店舗ID
productsSpecialShop.shopId と同じ値を指定してください。

integer
<= 999999999
productTypeId

商品種別

  • 1: 通常商品
  • 3: 予約商品
integer
Allowed values: 1 3
rcatalogId

JANコード

string
0 <= 50 characters
classShop
required

店舗別規格配列
通常店舗は最大2軸、楽天店舗は最大6軸まで指定できます。

Array<object>
>= 1 items <= 6 items
ProductShopAppendClassShopItem
object
name
required

店舗別規格名

string
>= 1 characters <= 50 characters
classType
required

店舗別規格軸

  • 楽天以外: 1, 2
  • 楽天: 16
integer
>= 1 <= 6
classcategoryShop
required

店舗別規格値配列
1規格軸あたり20件まで指定できます。

Array<object>
>= 1 items <= 20 items
ProductShopAppendClasscategoryShopItem
object
name
required

店舗別規格値名

string
>= 1 characters <= 50 characters
subcode

店舗別枝番

string
0 <= 32 characters
Examples
Exampledefault
{
"productsSpecialShop": {
"shopId": 10,
"orgExpFlg": 1,
"code": "SHOP-ITEM-001",
"productCode": "SHOP-PRODUCT-001",
"productType": 1
},
"productsClassShop": {
"shopId": 10,
"productTypeId": 1,
"rcatalogId": "4901234567890",
"classShop": [
{
"name": "カラー",
"classType": 1,
"classcategoryShop": [
{
"name": "レッド",
"subcode": "RED"
},
{
"name": "ブルー",
"subcode": "BLU"
}
]
}
]
}
}

追加成功

Media typeapplication/json
ProductShopAppendResponse
object
productsSpecialShop

追加された店舗別商品

object
productId

商品ID

string
>= 1 characters <= 9 characters
shopId

店舗ID

string
>= 1 characters <= 9 characters
orgExpFlg

モール反映フラグ

string
nullable >= 1 characters <= 1 characters
code

店舗別商品管理番号
店舗種別テーブルにカラムがある場合のみ返却されます。

string
nullable 0 <= 50 characters
productCode

店舗別商品コード

string
nullable 0 <= 50 characters
productType

商品タイプ 店舗種別テーブルに対象カラムがある場合のみ返却されます。

string
nullable >= 1 characters <= 1 characters
classShop

追加された店舗別規格配列
productsClassShop を指定した場合のみ返却されます。

Array<object>
ProductShopAppendClassShopResponseItem
object
classId

店舗別規格ID

string
>= 1 characters <= 9 characters
shopId

店舗ID

string
>= 1 characters <= 9 characters
productId

商品ID

string
>= 1 characters <= 9 characters
name

店舗別規格名

string
>= 1 characters <= 50 characters
classType

店舗別規格軸

  • 楽天以外: 1, 2
  • 楽天: 16
string
>= 1 characters <= 1 characters
Allowed values: 1 2 3 4 5 6
classcategoryShop
Array<object>
ProductShopAppendClasscategoryShopResponseItem
object
classcategoryId

店舗別規格値ID

string
>= 1 characters <= 9 characters
shopId

店舗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
productsClassShop

追加された店舗別商品規格配列。 通常在庫商品では自動生成した基準行を返します。
項目選択肢別在庫商品では、削除扱いの基準行を含む今回生成したすべての店舗別商品規格行を返します。

Array<object>
ProductShopAppendProductsClassShopResponseItem
object
productClassId

店舗別商品規格ID

string
>= 1 characters <= 9 characters
shopId

店舗ID

string
>= 1 characters <= 9 characters
productId

商品ID

string
>= 1 characters <= 9 characters
classcategoryId1

店舗別規格値ID1。未使用時は 0

string
>= 1 characters <= 9 characters
classcategoryId2

店舗別規格値ID2。未使用時は 0

string
>= 1 characters <= 9 characters
classcategoryId3

店舗別規格値ID3。未使用時は 0

string
>= 1 characters <= 9 characters
classcategoryId4

店舗別規格値ID4。未使用時は 0

string
>= 1 characters <= 9 characters
classcategoryId5

店舗別規格値ID5。未使用時は 0

string
>= 1 characters <= 9 characters
classcategoryId6

店舗別規格値ID6。未使用時は 0

string
>= 1 characters <= 9 characters
productCode

店舗別商品コード

string
nullable 0 <= 200 characters
productTypeId

商品種別

string
nullable >= 1 characters <= 1 characters
stockUpdateFlg

モール在庫連携指定

string
nullable >= 1 characters <= 1 characters
stockUpdateValue

在庫指定値

string
nullable >= 1 characters <= 9 characters
rcatalogId

JANコード

string
nullable 0 <= 50 characters
Examples
Exampledefault
{
"productsSpecialShop": {
"productId": "1001",
"shopId": "10",
"orgExpFlg": "1",
"code": "SHOP-ITEM-001",
"productCode": "SHOP-PRODUCT-001",
"productType": "1"
},
"classShop": [
{
"classId": "501",
"shopId": "10",
"productId": "1001",
"name": "カラー",
"classType": "1",
"classcategoryShop": [
{
"classcategoryId": "9001",
"shopId": "10",
"classId": "501",
"productId": "1001",
"name": "レッド",
"rakutenCode": "SHOP-PRODUCT-001",
"subcode": "RED"
}
]
}
],
"productsClassShop": [
{
"productClassId": "7001",
"shopId": "10",
"productId": "1001",
"classcategoryId1": "9001",
"classcategoryId2": "0",
"classcategoryId3": "0",
"classcategoryId4": "0",
"classcategoryId5": "0",
"classcategoryId6": "0",
"productCode": "SHOP-PRODUCT-001-01",
"productTypeId": "1",
"stockUpdateFlg": null,
"stockUpdateValue": null,
"rcatalogId": "4901234567890"
}
]
}
  • productsSpecialShopが存在しない場合
  • productsSpecialShopがオブジェクトでない場合
  • 在庫タイプが2:項目選択肢別在庫でproductsClassShopが存在しない場合
  • 在庫タイプが2:項目選択肢別在庫ではないのにproductsClassShopを指定した場合
  • productsClassShopがオブジェクトでない場合
  • 許可されていない項目が指定された場合
  • productsClassShop.shopIdとproductsSpecialShop.shopIdが一致しない場合
  • 在庫タイプが2:項目選択肢別在庫でclassShopが存在しない場合
  • classShopが配列でない場合
  • 在庫タイプが2:項目選択肢別在庫でclasscategoryShopが存在しない場合
  • classcategoryShopが配列でない場合
  • classIdを指定した場合
  • classcategoryIdを指定した場合
  • 指定されたモール反映フラグが不正な場合
  • 指定された商品種別が不正な場合
  • 店舗別規格軸数が上限を超える場合
  • 店舗別規格値数が上限を超える場合
  • バリエーション数が上限を超える場合
Media typeapplication/json
object
type
required
string
title
required
string
detail
One of:
string
status
integer
Examples
{
"type": "about:blank",
"title": "BadRequest",
"detail": "productsSpecialShopは必須です",
"status": 400
}
  • 指定された商品が存在しない場合
  • 指定された店舗が存在しない場合
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": "店舗IDが重複しています",
"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
}