商品一括登録
POST /products/bulk
商品情報を一括登録します。
※ 商品の登録処理は非同期で実行されます。処理完了後、指定されたコールバックURLにWebhook通知されます。
※ 商品は1リクエストにつき100件まで登録できます。
対象プラン
- スタンダード
- プレミアム
- プレミアムプラス
- フードビジネス
- リテールビジネス
Authorizations
Section titled “Authorizations ”Request Body
Section titled “Request Body ”object
object
部門毎に付与するID
ユニーク値
商品単価の税区分 (0:税込、1:税抜、2:非課税)
商品をオープン価格販売するかどうかの設定
(1:通常価格、2:オープン価格)
商品単価
商品属性
商品の説明
商品のキャッチコピー
サイズの和名を設定
色の和名を設定
タグの和名を設定
グルーピングする為の一意のキー (親の商品IDになる)
スマレジ端末でWEBページを表示する場合設定
レシートに印字する商品名。(64文字以内)
表示順序
端末で表示するか判定
(0:表示しない、1:表示する)
商品区分(0:通常、1:回数券、2:オプション)
※回数券 は回数券機能が利用可能な契約のみ指定可能。ご利用できない契約で指定された場合エラー。
商品オプショングループのID(商品区分が0:通常の場合のみ設定可能)。オプショングループの設定方法が「全店舗共通」の場合、適用可能なオプショングループのIDをこちらに設定します。
(0:売上対象、1:売上対象外)
(0:在庫管理対象、1:在庫管理対象外)
(0:ポイント対象、1:ポイント対象外)
(0:対象外、1:一般品、2:消耗品)
小計値引/割引(クーポン値引、ポイント値引き含む)の対象かどうかを識別する。
(0:対象外、1:対象)
社員販売時の割引率
軽減税率個別設定フラグ(0:reduceTaxIdを使用、1:部門の税設定を使用)
画面項目「部門の税設定を使用」
軽減税率ID
標準:null(または未設定)
軽減:10000001 (特定商品の軽減税率適用)
選択[標準]:10000002(状態による適用[適用しない])
選択[軽減]:10000003(状態による適用[適用する])
選択[選択]:10000004(状態による適用[都度選択する])
上記以外の場合、カスタム軽減税率で登録されている軽減税率ID
※10000001〜10000004における軽減税率は日本国における軽減税率(8%)です。
※存在しない軽減税率IDを指定した場合エラー。
発注をかけるべき在庫数
商品の仕入原価
メーカー品番 【在庫PKG用】
端末に適用を開始する日時[YYYY-MM-DDThh:mm:ssTZD]
object
商品自由項目に付与されている連番
商品価格
※(注)このフィールドに100件以上指定することは非推奨です。将来的にそのようなケースは入力チェックでエラーとなる可能性がございます。
object
店舗ID:(全店の場合、-1を設定)
(1:商品単価、2:会員価格)
[YYYY-MM-DD]
[YYYY-MM-DD]
※未設定の場合、有効期限なしとして適用されます。
※適用開始日>適用終了日の場合エラー
object
オプショングループID:商品オプショングループのID(商品区分が0:通常の場合のみ設定可能)。オプショングループの設定方法が「店舗ごと」の場合、適用可能なオプショングループのIDをこちらに設定します。
(0:販売する(非推奨)/1:販売しない)
※商品取扱店舗を絞りたい場合は、「1:販売しない」店舗を指定するようにしてください。商品登録時は全店舗について「0:販売する」がデフォルト値になっているため本項目で「0:販売する」を指定しても、指定した店舗のみの商品取扱になることは意味しません。
object
object
商品属性項目を一意にする項目
商品属性に付与されている連番
未設定の場合default値で登録されます。
object
[管理画面->設定->在庫設定->発注設定->継続区分]から確認できる継続区分のコードを指定。
発注不可理由を設定している場合は必須です。(0:発注不可、1:発注可)
発注状態を設定している場合は必須。発注可の場合はnullを設定、発注不可の場合は発注不可理由のコードを設定してください。
発注不可理由のコードは、 [管理画面->設定->在庫設定->発注設定->発注不可理由]から確認できます。
発注単位
object
(0:単位なし、1:単位あり)
(0:単位なし)の場合、「発注単位数」「「発注単位名」にnullを設定してください。
(1:単位あり)の場合、「発注単位数」「発注単位名」に値が必要です。
(null:発注制限なし、0~99999999:発注制限)
発注時の制限数の設定。発注単位数を設定している場合発注単位数*発注制限数が発注時に設定できる最大数になります。
編集可能に設定すると、仕入先分割設定時の補充発注仮発注画面にて仕入先を選択できるようになります。(0:編集不可、1:編集可能)
PB区分(1:プロパー、2:バーゲン)
(0:表示しない、1:表示する)
店舗別発注設定
object
(null:発注制限なし、-1:全店舗設定、0~99999999:発注制限)
発注時の制限数の設定。発注単位数を設定している場合発注単位数*発注制限数が発注時に設定できる最大数になります。
(-1:全店舗設定、0:表示しない、1:表示する)
処理が完了した際にその結果をWebhook通知するURL
Example
{ "products": [ { "categoryId": "string", "productCode": "string", "productName": "string", "productKana": "string", "taxDivision": "0", "productPriceDivision": "1", "price": "12345678", "customerPrice": "12345678", "cost": "99999999.99999", "attribute": "string", "description": "string", "catchCopy": "string", "size": "string", "color": "string", "tag": "string", "groupCode": "string", "url": "string", "printReceiptProductName": "string", "displaySequence": "123456789", "displayFlag": "0", "division": "0", "productOptionGroupId": "123456789", "salesDivision": "0", "stockControlDivision": "0", "pointNotApplicable": "0", "taxFreeDivision": "0", "calcDiscount": "0", "staffDiscountRate": "100", "useCategoryReduceTax": "0", "reduceTaxId": "10000001", "reduceTaxPrice": "12345678", "reduceTaxCustomerPrice": "12345678", "orderPoint": "123456789", "purchaseCost": "99999999.99999", "supplierProductNo": "string", "appStartDateTime": "2000-01-23T01:23:45+09:00", "reserveItems": [ { "no": "12", "value": "string" } ], "prices": [ { "storeId": "123456789", "priceDivision": "1", "startDate": "2000-01-23", "endDate": "2000-01-23", "price": "12345678" } ], "stores": [ { "storeId": "123456789", "productOptionGroupId": "123456789", "assignDivision": "0" } ], "inventoryReservations": [ { "reservationProductId": "123456789012345", "reservationAmount": "123" } ], "attributeItems": [ { "code": "string", "no": "1" } ], "orderSetting": { "continuationDivision": "1", "orderStatusDivision": "0", "orderNoReasonDivision": "1", "orderUnit": { "division": "0", "num": "12345678", "name": "string" }, "orderLimitAmount": "12345678", "orderSupplierEditable": "0", "pbDivision": "1", "displayFlag": "0", "stores": [ { "storeId": "123456789", "orderLimitAmount": "12345678", "displayFlag": "-1" } ] } } ], "callbackUrl": "string"}
Responses
Section titled “ Responses ”処理受付完了
object
問い合わせ用ID:弊社への問い合わせの際にご利用ください
処理完了通知URL:処理が完了した際に、その結果をWebhook通知するURL
Webhook通知について
■ Request Header:key | value |
---|---|
Content-Type | application/json;charset=UTF-8 |
Object
key | value | |
---|---|---|
requestId | レスポンス時に返却したリクエストID (Integer) | |
result (Array) | productId | 商品ID:数字15桁以内 (String) |
productCode | 商品コード:半角英数記号20文字以内 (String) |
Content-Type: application/json;charset=UTF-8
{
"requestId":700,
"result":[
{
"productId":"123",
"productCode":"abc001"
},
{
"productId":"456",
"productCode":"xyz999"
}
]
}
■ Request Body (登録失敗):
Object
key | value |
---|---|
requestId | レスポンス時に返却したリクエストID (Integer) |
message | エラーメッセージ (String) |
Content-Type: application/json;charset=UTF-8
{
"requestId":700,
"message":"[stores][2行目]商品コードが重複しています。"
}
■ 登録失敗時のエラーメッセージの詳細:
※ Webhook通知では、既存データを参照した上での結果を返します
※「 [ 大項目 ] [ 何番目のオブジェクトで発生したか ] エラーメッセージ 」の形式で返されます
※「大項目」は下記のリクエストボディの項目と対応します
「大項目」 | 対応する項目 |
---|---|
reserveItems | 商品自由項目の各項目 |
prices | 商品価格の各項目 |
stores | 商品取扱店舗の各項目 |
inventoryReservations | 在庫引当商品の各項目 |
attributeItems | 商品属性項目の各項目 |
orderSetting | 発注設定の各項目 |
orderStoreSettings | 店舗別発注設定の各項目 |
products | 上記以外の商品項目 |
※「エラーメッセージ」の一覧は下記です
ケース | エラーメッセージ |
---|---|
商品コードが重複している場合 | 商品コードが重複しています |
存在しない部門IDを指定した場合 | 部門IDが存在しません |
存在しない軽減税率IDを指定した場合 | 軽減税率IDが存在しません |
存在しないオプショングループIDを指定した場合 | 商品オプショングループIDが存在しません |
存在しない店舗IDを指定した場合 | 店舗IDが存在しません |
店舗区分が「倉庫」の店舗に対して設定方法が「店舗ごと」のオプショングループIDが設定された場合 | 倉庫に対してオプショングループは設定できません。 |
存在しない商品IDを在庫引当商品の在庫引当商品IDとして指定した場合 | 在庫引当商品IDが存在しません |
存在しない商品属性項目が指定された場合 | 商品属性項目が存在しません。 |
商品自由項目ラベルに存在しない連番を指定した場合 | 連番が存在しません |
商品の登録上限数を超えてしまう場合 | 登録件数の上限をオーバーしたため登録できません |
存在しない継続区分を発注設定に指定した場合 | 継続区分が存在しません。 |
存在しない発注不可理由を発注設定に指定した場合 | 発注不可理由が存在しません。 |
その場合、エラーメッセージはカンマ区切りで表示されます
例
"message":"[products][2行目]部門IDが存在しません。,[stores][39行目]商品コードが重複しています。,[reserveItems][48行目]在庫引当商品IDが存在しません。"
Example
{ "requestId": 700, "callbackUrl": "string"}
- 処理完了通知URLで指定されたURLのフォーマットが正しくない場合
- 商品コードがリクエスト内で重複している場合
- 商品価格の店舗IDと価格区分と適応開始日の組み合わせがリクエスト内で重複している場合
- 商品自由項目の商品自由項目番号がリクエスト内で重複している場合
- 商品取扱店舗の店舗IDがリクエスト内で重複している場合
- 在庫引当商品の在庫引当商品IDがリクエスト内で重複している場合
- 商品属性項目の項目番号が重複している場合
- 発注設定の店舗別発注設定の店舗IDが重複している場合
- 商品区分が「0:通常」以外を指定して、商品オプショングループIDを指定した場合
- 設定方法が「全店舗共通」のオプショングループIDと「店舗ごと」のオプショングループIDがともに指定された場合
- 発注状態または発注不可理由を設定していて、どちらかが未設定の場合
- 発注設定の発注状態に「1:発注可」を設定していて、発注不可理由にnull以外を設定している場合
- 発注設定の発注単位区分に「1:単位あり」を設定していて、発注単位名または発注数を設定していない場合
object
Examples
{ "type": "about:blank", "title": "Bad Request", "detail": "処理完了通知URLのフォーマットが不正です。(処理完了通知URL-{処理完了通知URL})", "status": 400}
{ "type": "about:blank", "title": "Bad Request", "detail": "指定された商品コードが重複しています。(商品コード-{商品コード})", "status": 400}
{ "type": "about:blank", "title": "Bad Request", "detail": "商品価格の店舗IDと価格区分と適応開始日の組み合わせが重複しています。(店舗ID-{店舗ID}, 価格区分-{価格区分}, 適用開始日-{適用開始日})", "status": 400}
{ "type": "about:blank", "title": "Bad Request", "detail": "商品自由項目の連番が重複しています。(連番-{連番})", "status": 400}
{ "type": "about:blank", "title": "Bad Request", "detail": "商品取扱店舗の店舗IDが重複しています。(店舗ID-{店舗ID})", "status": 400}
{ "type": "about:blank", "title": "Bad Request", "detail": "在庫引当商品の在庫引当商品IDが重複しています。(在庫引当商品ID-{在庫引当商品ID})", "status": 400}
{ "type": "about:blank", "title": "Bad Request", "detail": "attributeItems: no[1] 項目番号が重複しています", "status": 400}
{ "type": "about:blank", "title": "Bad Request", "detail": "orderSetting.stores: storeId[1] レコードが重複しています", "status": 400}
{ "type": "about:blank", "title": "Bad Request", "detail": "商品オプショングループIDを設定する場合は、商品区分を「通常(0)」に設定してください。(商品コード-{商品コード}:商品区分-{商品区分}:商品オプショングループID-{商品オプショングループID })", "status": 400}
{ "type": "about:blank", "title": "Bad Request", "detail": "設定方法が「全店舗共通」のオプショングループIDと「店舗ごと」のオプショングループIDを1つの商品に対して両方設定することはできません。", "status": 400}
{ "type": "about:blank", "title": "Bad Request", "detail": "発注状態または発注不可理由を設定している場合は両方設定してください。", "status": 400}
{ "type": "about:blank", "title": "Bad Request", "detail": "発注状態に「1:発注可」を設定する場合は発注不可理由にnullを指定してください", "status": 400}
{ "type": "about:blank", "title": "Bad Request", "detail": "orderSetting.orderUnit: division[1] num[] name[箱] 発注単位区分に「1:単位あり」を設定する場合は発注単位を設定してください。", "status": 400}
{ "type": "about:blank", "title": "Bad Request", "detail": "orderSetting.orderUnit: division[0] num[3] name[abc] 発注単位区分に「0:単位なし」を設定する場合は発注単位数・発注単位名にnullを設定してください。", "status": 400}