商品取扱店舗追加
const url = 'https://api.smaregi.dev/TARGET-CONTRACT-ID/ec-oms/products/example/shops';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"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"}]}]}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}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 を指定した場合のみ店舗別規格・店舗別規格値・店舗別商品規格も同時に追加します。
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”商品ID
Request Bodyrequired
Section titled “Request Bodyrequired”object
object
店舗ID
モール反映フラグ
0: 反映しない1: 反映する
店舗別商品管理番号
店舗種別テーブルに対象カラムがある場合に保存されます。
店舗別商品コード
指定しない場合は親商品の commonProductCode を使用します。
商品タイプ 店舗種別テーブルに対象カラムがある場合に保存されます。
0: 通常1: MOVE商品
※追加先商品の在庫タイプに2:項目選択肢別在庫を設定している場合は必須
object
店舗ID
productsSpecialShop.shopId と同じ値を指定してください。
商品種別
1: 通常商品3: 予約商品
JANコード
店舗別規格配列
通常店舗は最大2軸、楽天店舗は最大6軸まで指定できます。
object
店舗別規格名
店舗別規格軸
- 楽天以外:
1,2 - 楽天:
1〜6
店舗別規格値配列
1規格軸あたり20件まで指定できます。
object
店舗別規格値名
店舗別枝番
Examples
{ "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" } ] } ] }}Responses
Section titled “Responses”追加成功
object
追加された店舗別商品
object
商品ID
店舗ID
モール反映フラグ
店舗別商品管理番号
店舗種別テーブルにカラムがある場合のみ返却されます。
店舗別商品コード
商品タイプ 店舗種別テーブルに対象カラムがある場合のみ返却されます。
追加された店舗別規格配列
productsClassShop を指定した場合のみ返却されます。
object
店舗別規格ID
店舗ID
商品ID
店舗別規格名
店舗別規格軸
- 楽天以外:
1,2 - 楽天:
1〜6
object
店舗別規格値ID
店舗ID
店舗別規格ID
商品ID
店舗別規格値名
商品コード
店舗別枝番
追加された店舗別商品規格配列。
通常在庫商品では自動生成した基準行を返します。
項目選択肢別在庫商品では、削除扱いの基準行を含む今回生成したすべての店舗別商品規格行を返します。
object
店舗別商品規格ID
店舗ID
商品ID
店舗別規格値ID1。未使用時は 0
店舗別規格値ID2。未使用時は 0
店舗別規格値ID3。未使用時は 0
店舗別規格値ID4。未使用時は 0
店舗別規格値ID5。未使用時は 0
店舗別規格値ID6。未使用時は 0
店舗別商品コード
商品種別
モール在庫連携指定
在庫指定値
JANコード
Examples
{ "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を指定した場合
- 指定されたモール反映フラグが不正な場合
- 指定された商品種別が不正な場合
- 店舗別規格軸数が上限を超える場合
- 店舗別規格値数が上限を超える場合
- バリエーション数が上限を超える場合
object
Examples
{ "type": "about:blank", "title": "BadRequest", "detail": "productsSpecialShopは必須です", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "productsSpecialShopはオブジェクト形式で指定してください", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "productsClassShopは必須です", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "在庫タイプが項目選択肢別在庫ではないため、店舗別規格の追加はできません", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "productsClassShopはオブジェクト形式で指定してください", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "指定された項目が不正です: invalidKey", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "productsClassShopとproductsSpecialShopのshopIdが一致していません。productsSpecialShopにshopId=10を指定してください", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "classShopは必須です", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "classShopは配列形式で指定してください", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "classcategoryShopは必須です", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "classcategoryShopは配列形式で指定してください", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "classShop[0].classIdは登録時に指定できません", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "classShop[0].classcategoryShop[0].classcategoryIdは登録時に指定できません", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "該当するモール反映フラグが見つかりませんでした", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "該当する商品種別が見つかりませんでした", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "店舗別規格軸数は合計6件までです", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "店舗別規格値は20件までです", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "バリエーション数は合計400件までです", "status": 400}- 指定された商品が存在しない場合
- 指定された店舗が存在しない場合
object
Examples
{ "type": "about:blank", "title": "NotFound", "detail": "該当する商品IDが見つかりませんでした", "status": 404}{ "type": "about:blank", "title": "NotFound", "detail": "該当する店舗IDが見つかりませんでした", "status": 404}- 指定された店舗が既に商品へ登録済みの場合
- 指定された店舗別規格名が重複している場合
- 指定された店舗別規格値名が重複している場合
- 指定された店舗別枝番が重複している場合
object
Examples
{ "type": "about:blank", "title": "Conflict", "detail": "店舗IDが重複しています", "status": 409}{ "type": "about:blank", "title": "Conflict", "detail": "[店舗別規格名]が重複しています", "status": 409}{ "type": "about:blank", "title": "Conflict", "detail": "[店舗別規格値名]が重複しています", "status": 409}{ "type": "about:blank", "title": "Conflict", "detail": "[店舗別枝番]が重複しています", "status": 409}サーバー内部エラー
object
Examples
{ "type": "about:blank", "title": "InternalServerError", "status": 500}