建立商品

View as Markdown
建立單一商品。productCategoryId 為必填,且必須是可指派的(子)分類,請先透過商品分類端點取得 isAssignable 為 true 的 id;省略回傳 400 product_category_id_required,帶了但分類不存在、不可指派或屬於其他租戶,一律回傳 400 invalid_product_category_id(三種情況統一回同一個代碼)。未帶 id 且 outerSysCode 未對應到既有商品時新增;outerSysCode 已存在時改為更新該筆(冪等去重),重送同一份資料不會產生重複商品。

Authentication

X-Signaturestring

每個 /v1 請求都必須帶 X-Client-Id、X-Timestamp、X-Nonce 與 X-Signature 四個標頭。X-Signature 是以 client secret 對 canonical string 做 HMAC-SHA256 後的 Base64。canonical string 的組成、可複製的簽章範例與 401 排查步驟,請參閱「驗證與簽章」。

Request

This endpoint expects an object.
idlong or nullOptional

商品序號。帶 id 時一律視為更新該筆商品,不會再比對 outerSysCode;省略時改依 outerSysCode 判斷新增或更新。PUT /v1/products/{id} 會忽略這裡的值,一律以路徑上的 id 為準。

outerSysCodestring or nullOptional

ERP 端的商品代碼,用來與既有商品比對、去重。新增時省略視為空字串;更新時省略保留現有值。長度上限 50 字元,超過回傳 400 outer_sys_code_too_long。

namestring or nullOptional

商品名稱。新增時省略視為空字串;更新時省略保留現有值。長度上限 100 字元,超過回傳 400 name_too_long。

productCategoryIdlong or nullOptional

商品分類序號,必須是可指派的(子)分類 id,透過商品分類端點的 isAssignable: true 取得。新增時必填,省略回傳 400 product_category_id_required;帶了但分類不存在、不可指派或屬於其他租戶,回傳 400 invalid_product_category_id。更新時省略會保留商品目前的分類;若有帶值,會依相同規則重新驗證。

Response

OK
idlongOptional

新增或更新成功後,該筆資料的 id。

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
500
Internal Server Error