商品登録
const url = 'https://api.smaregi.dev/TARGET-CONTRACT-ID/ec-oms/products';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"commonCode":"pfapi_test_product_test","commonProductCode":"pfapi_test_product_test","name":"プラットフォームAPIテスト商品_test","taxFlag":1,"status":1,"zaikoType":2,"inventoryType":2,"inventoryDisp":10,"taxRate":10,"rcatalogId":"01024","name1":"PFAPIテスト商品","name2":"プラットフォームAPIテスト商品","delivKbn":1,"restoreInventoryFlag":1,"backorderFlag":1,"normalDelvdateId":1,"backorderDelvdateId":1,"productsClass":{"price02":1000,"productTypeId":1,"stockUpdateFlg":2,"stockUpdateValue":100,"rcatalogId":"010245","delvdateChk":1,"restoreInventoryFlag":1,"backorderFlag":1,"normalDelvdateId":2,"backorderDelvdateId":2,"posProductId":999,"class":[{"name":"サイズ","classType":1,"classcategory":[{"name":"S","rakutenSubcode":"-s"},{"name":"M","rakutenSubcode":"-m"},{"name":"L","rakutenSubcode":"-l"}]},{"name":"カラー","classType":2,"classcategory":[{"name":"青","rakutenSubcode":"-b"},{"name":"赤","rakutenSubcode":"-r"},{"name":"緑","rakutenSubcode":"-g"}]}]},"productsClassShop":[{"shopId":1,"productTypeId":1,"rcatalogId":"4900000000001","classShop":[{"name":"サイズ","classType":1,"classcategoryShop":[{"name":"S","rakutenSubcode":"-s"},{"name":"M","rakutenSubcode":"-m"}]},{"name":"カラー","classType":2,"classcategoryShop":[{"name":"青","rakutenSubcode":"-b"},{"name":"赤","rakutenSubcode":"-r"}]}]},{"shopId":2,"productTypeId":1,"rcatalogId":"4900000000002","classShop":[{"name":"サイズ","classType":1,"classcategoryShop":[{"name":"S"},{"name":"M"}]}]}],"productsSpecialShop":[{"shopId":1,"productCode":"testProductCode","code":"testCode","orgExpFlg":1,"productType":1},{"shopId":2,"orgExpFlg":1,"productType":0}]}'};
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 \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "commonCode": "pfapi_test_product_test", "commonProductCode": "pfapi_test_product_test", "name": "プラットフォームAPIテスト商品_test", "taxFlag": 1, "status": 1, "zaikoType": 2, "inventoryType": 2, "inventoryDisp": 10, "taxRate": 10, "rcatalogId": "01024", "name1": "PFAPIテスト商品", "name2": "プラットフォームAPIテスト商品", "delivKbn": 1, "restoreInventoryFlag": 1, "backorderFlag": 1, "normalDelvdateId": 1, "backorderDelvdateId": 1, "productsClass": { "price02": 1000, "productTypeId": 1, "stockUpdateFlg": 2, "stockUpdateValue": 100, "rcatalogId": "010245", "delvdateChk": 1, "restoreInventoryFlag": 1, "backorderFlag": 1, "normalDelvdateId": 2, "backorderDelvdateId": 2, "posProductId": 999, "class": [ { "name": "サイズ", "classType": 1, "classcategory": [ { "name": "S", "rakutenSubcode": "-s" }, { "name": "M", "rakutenSubcode": "-m" }, { "name": "L", "rakutenSubcode": "-l" } ] }, { "name": "カラー", "classType": 2, "classcategory": [ { "name": "青", "rakutenSubcode": "-b" }, { "name": "赤", "rakutenSubcode": "-r" }, { "name": "緑", "rakutenSubcode": "-g" } ] } ] }, "productsClassShop": [ { "shopId": 1, "productTypeId": 1, "rcatalogId": "4900000000001", "classShop": [ { "name": "サイズ", "classType": 1, "classcategoryShop": [ { "name": "S", "rakutenSubcode": "-s" }, { "name": "M", "rakutenSubcode": "-m" } ] }, { "name": "カラー", "classType": 2, "classcategoryShop": [ { "name": "青", "rakutenSubcode": "-b" }, { "name": "赤", "rakutenSubcode": "-r" } ] } ] }, { "shopId": 2, "productTypeId": 1, "rcatalogId": "4900000000002", "classShop": [ { "name": "サイズ", "classType": 1, "classcategoryShop": [ { "name": "S" }, { "name": "M" } ] } ] } ], "productsSpecialShop": [ { "shopId": 1, "productCode": "testProductCode", "code": "testCode", "orgExpFlg": 1, "productType": 1 }, { "shopId": 2, "orgExpFlg": 1, "productType": 0 } ] }'商品を登録します。
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
商品管理番号
※ユニークでなければエラーになります。
商品番号
商品名
消費税
倉庫指定
1: 販売中2: 倉庫
在庫タイプ
在庫表示設定(通常在庫)
※在庫タイプに1:通常在庫を設定している場合は必須
0: 残り在庫を表示しない1: 残り在庫を表示する2: 在庫がn以下になったら「残りあとわずか」を表示する
残り表示閾値(通常在庫)
※在庫表示設定(通常在庫)に2:在庫がn以下になったら「残りあとわずか」を表示するを設定している場合は必須
在庫表示設定(項目選択肢別在庫)
※在庫タイプに2:項目選択肢別在庫を設定している場合は必須
1: 残り在庫を表示する2: 残り在庫を表示しない3: 在庫がn以下になったら「△」の印を表示する
残り表示閾値(項目選択肢別在庫)
※在庫表示設定(項目選択肢別在庫)に3:在庫がn以下になったら「△」の印を表示するを設定している場合は必須
消費税率
JANコード
商品略称(内部用)
商品略称(お客様用)
配送温度区分
在庫戻し設定
0: 注文キャンセル時に在庫を戻さない1: 注文キャンセル時に在庫を戻す(増やす)
在庫切れ時の注文
0: 在庫切れになったら注文を受け付けない1: 在庫切れになっても注文を受け付ける
在庫あり時の納期
在庫切れ時の納期
object
販売価格
商品種別
1: 通常商品3: 予約商品
在庫連携指定
0: 連携しない1: 有効在庫2: 指定値3: 比率(%)
在庫指定値
※在庫連携指定に2:指定値、3: 比率(%)を設定している場合は必須
JANコード
在庫納期情報個別設定
0: 在庫を個別で設定しない1: 在庫を個別で設定
在庫戻し設定
0: 注文キャンセル時に在庫を戻さない1: 注文キャンセル時に在庫を戻す(増やす)
在庫切れ時の注文
0: 在庫切れになったら注文を受け付けない1: 在庫切れになっても注文を受け付ける
在庫あり時の納期管理番号
在庫切れ時の納期管理番号
スマレジ商品ID
※在庫タイプに2:項目選択肢別在庫を設定している場合は必須
object
規格名
規格軸
1: 横軸(規格1)2: 縦軸(規格2)
object
規格名詳細
枝番
object
店舗ID
商品種別
1: 通常商品3: 予約商品
JANコード
※在庫タイプに2:項目選択肢別在庫を設定している場合は必須
object
店舗別規格名
店舗別規格軸
- 楽天以外:
1,2 - 楽天:
1〜6
店舗別規格値
object
店舗別規格値名
店舗別規格枝番
object
店舗ID
商品コード
商品管理番号
モール反映フラグ
0: なし1: あり
商品タイプ ※一部の店舗にのみ設定されます
0: 通常1: MOVE商品
Example
{ "commonCode": "pfapi_test_product_test", "commonProductCode": "pfapi_test_product_test", "name": "プラットフォームAPIテスト商品_test", "taxFlag": 1, "status": 1, "zaikoType": 2, "inventoryType": 2, "inventoryDisp": 10, "taxRate": 10, "rcatalogId": "01024", "name1": "PFAPIテスト商品", "name2": "プラットフォームAPIテスト商品", "delivKbn": 1, "restoreInventoryFlag": 1, "backorderFlag": 1, "normalDelvdateId": 1, "backorderDelvdateId": 1, "productsClass": { "price02": 1000, "productTypeId": 1, "stockUpdateFlg": 2, "stockUpdateValue": 100, "rcatalogId": "010245", "delvdateChk": 1, "restoreInventoryFlag": 1, "backorderFlag": 1, "normalDelvdateId": 2, "backorderDelvdateId": 2, "posProductId": 999, "class": [ { "name": "サイズ", "classType": 1, "classcategory": [ { "name": "S", "rakutenSubcode": "-s" }, { "name": "M", "rakutenSubcode": "-m" }, { "name": "L", "rakutenSubcode": "-l" } ] }, { "name": "カラー", "classType": 2, "classcategory": [ { "name": "青", "rakutenSubcode": "-b" }, { "name": "赤", "rakutenSubcode": "-r" }, { "name": "緑", "rakutenSubcode": "-g" } ] } ] }, "productsClassShop": [ { "shopId": 1, "productTypeId": 1, "rcatalogId": "4900000000001", "classShop": [ { "name": "サイズ", "classType": 1, "classcategoryShop": [ { "name": "S", "rakutenSubcode": "-s" }, { "name": "M", "rakutenSubcode": "-m" } ] }, { "name": "カラー", "classType": 2, "classcategoryShop": [ { "name": "青", "rakutenSubcode": "-b" }, { "name": "赤", "rakutenSubcode": "-r" } ] } ] }, { "shopId": 2, "productTypeId": 1, "rcatalogId": "4900000000002", "classShop": [ { "name": "サイズ", "classType": 1, "classcategoryShop": [ { "name": "S" }, { "name": "M" } ] } ] } ], "productsSpecialShop": [ { "shopId": 1, "productCode": "testProductCode", "code": "testCode", "orgExpFlg": 1, "productType": 1 }, { "shopId": 2, "orgExpFlg": 1, "productType": 0 } ]}Responses
Section titled “Responses”登録成功
object
商品ID
商品管理番号
商品番号
商品名
消費税
倉庫指定
在庫タイプ
在庫表示設定(項目選択肢別在庫)
残り表示閾値(項目選択肢別在庫)
消費税率
JANコード
商品略称(内部用)
商品略称(お客様用)
配送温度区分
在庫戻し設定
在庫切れ時の注文
在庫あり時の納期
在庫切れ時の納期
規格情報
object
規格ID
規格名
規格軸
1: 横軸(規格1)2: 縦軸(規格2)
object
規格詳細ID
規格名詳細
枝番
object
商品クラスID
商品ID
商品規格ID(横軸)
商品規格ID(縦軸)
商品番号
販売価格
商品種別
在庫連携指定
在庫指定値
JANコード
在庫納期情報個別設定
在庫戻し設定
在庫切れ時の注文
在庫あり時の納期管理番号
在庫切れ時の納期管理番号
スマレジ商品ID
店舗別規格情報
object
店舗別規格ID
店舗ID
商品ID
店舗別規格名
店舗別規格軸
- 楽天以外:
1,2 - 楽天:
1〜6
object
店舗別規格詳細ID
店舗ID
店舗別規格ID
商品ID
店舗別規格詳細名
商品コード
枝番
店舗別商品規格です。各 classcategoryId1~classcategoryId6 には、その行が使用する店舗別規格値IDを返し、使用していない規格軸は 0 を返します。
通常在庫商品の基準行では6項目すべてが 0 です。
商品一覧取得・商品取得では有効な行だけを返すため、項目選択肢別在庫の削除扱いの基準行は含みません。
object
商品クラスID
店舗ID
商品ID
店舗別規格値ID1。未使用時は 0
店舗別規格値ID2。未使用時は 0
店舗別規格値ID3。未使用時は 0
店舗別規格値ID4。未使用時は 0
店舗別規格値ID5。未使用時は 0
店舗別規格値ID6。未使用時は 0
店舗別商品コード
商品種別
JANコード
モール別個別設定情報です。
org[xxxx]... の [xxxx] にはモール名(英名・先頭大文字)が入ります。
例: モールキーが rakuten の場合、orgRakutenProductCode となります。
object
商品ID
店舗ID
商品コード
商品コード設定。一部の店舗にのみ設定されます。
商品管理番号
商品タイプ。一部の店舗にのみ設定されます。
モール反映フラグ
Examples
{ "productId": "2277", "commonCode": "pfapi_test_product_test33", "commonProductCode": "pfapi_test_product_test_2", "name": "プラットフォームAPIテスト商品_test33", "taxFlag": "1", "status": "1", "zaikoType": "2", "inventoryType": "2", "inventoryDisp": "10", "taxRate": "10", "rcatalogId": "010245", "name1": "PFAPIテスト商品", "name2": "プラットフォームAPIテスト商品", "delivKbn": "1", "restoreInventoryFlag": "1", "backorderFlag": "1", "normalDelvdateId": "1", "backorderDelvdateId": "1"}- 指定された項目が不正な場合
- productsClassが存在しない場合
- productsClassがオブジェクトでない場合
- productsClassShopが存在しない場合
- productsClassShopが配列でない場合
- productsSpecialShopが存在しない場合
- productsSpecialShopが配列でない場合
- 在庫タイプが2:項目選択肢別在庫でclassが存在しない場合
- classが配列でない場合
- 在庫タイプが2:項目選択肢別在庫でclasscategoryが存在しない場合
- classcategoryが配列でない場合
- 在庫タイプが2:項目選択肢別在庫でclassShopが存在しない場合
- classShopが配列でない場合
- 在庫タイプが2:項目選択肢別在庫でclasscategoryShopが存在しない場合
- classcategoryShopが配列でない場合
- 指定された店舗別規格軸が存在しない場合
- 指定された商品タイプが存在しない場合
- 指定された消費税が存在しない場合
- 指定された在庫タイプが存在しない場合
- 指定された配送温度区分が存在しない場合
- 指定された在庫あり時の納期が存在しない場合
- 指定された在庫切れ時の納期が存在しない場合
- 指定された在庫あり時の納期管理番号が存在しない場合
- 指定された在庫切れ時の納期管理番号が存在しない場合
- 指定された店舗IDが存在しない場合
- 規格値が上限を超える場合
- 店舗別規格値が上限を超える場合
- バリエーション数が上限を超える場合
- productsClassShopにのみ存在するshopIdがある場合
- productsSpecialShopにのみ存在するshopIdがある場合
object
Examples
{ "type": "about:blank", "title": "BadRequest", "detail": [ "指定された項目が不正です: invalidKey" ], "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "productsClassは必須です", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "productsClassはオブジェクト形式で指定してください", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "productsClassShopは必須です", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "productsClassShopは配列形式で指定してください", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "productsSpecialShopは必須です", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "productsSpecialShopは配列形式で指定してください", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "classは必須です", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "classは配列形式で指定してください", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "classcategoryは必須です", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "classcategoryは配列形式で指定してください", "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": "該当する店舗別規格軸が見つかりませんでした", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "該当する商品タイプが見つかりませんでした", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "該当する消費税が見つかりませんでした", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "該当する在庫タイプが見つかりませんでした", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "該当する配送温度区分が見つかりませんでした", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "該当する在庫あり時の納期が見つかりませんでした", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "該当する在庫切れ時の納期が見つかりませんでした", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "該当する在庫あり時の納期管理番号が見つかりませんでした", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "該当する在庫切れ時の納期管理番号が見つかりませんでした", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "該当する店舗IDが見つかりませんでした", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "規格値は20件までです", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "店舗別規格値は20件までです", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "バリエーション数は合計400件までです", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "productsClassShopとproductsSpecialShopのshopIdが一致していません。productsSpecialShopにshopId=5を指定してください", "status": 400}{ "type": "about:blank", "title": "BadRequest", "detail": "productsClassShopとproductsSpecialShopのshopIdが一致していません。productsClassShopにshopId=5を指定してください", "status": 400}- 指定された商品管理番号が重複している場合
- 指定された規格名が重複している場合
- 指定された規格名詳細が重複している場合
- 指定された規格名枝番が重複している場合
- 指定された店舗別規格名が重複している場合
- 指定された店舗別規格軸が重複している場合
- 指定された店舗別規格値名が重複している場合
- 指定された店舗別規格枝番が重複している場合
object
Examples
{ "type": "about:blank", "title": "Conflict", "detail": "商品管理番号が重複しています", "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}{ "type": "about:blank", "title": "Conflict", "detail": "[店舗別規格名値]が重複しています", "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}