查詢商品清單

View as Markdown
分頁查詢商品清單,用於遺失 id 對照,或商品是在後台先建立時,重新在 API 端找回既有商品。本端點只回傳一般商品,組合商品一律不會出現在結果中,也不計入 totalCount。 可用下列參數篩選: - `outerSysCode`、`name`:大小寫不敏感的子字串比對,查 A100 也會比對到 A1000 - `status`:接受 Active、Inactive 或 InactiveVisible 三種值中的任一種,完全比對,大小寫必須完全相符——帶 active 會回傳 HTTP 200 但 data 是空陣列。三種狀態的完整語意見本頁 Response 裡 `status` 欄位的說明 - `productCategoryId`:篩分類 - `updatedSince`:篩「異動時間等於或晚於此刻」的資料,邊界含在內,剛好等於這一刻的資料也會被回傳,須帶明確時區或 Z(例如 2026-07-01T00:00:00Z),網址中的 + 記得轉成 %2B 編碼 `page` 從 1 起算,`pageSize` 為 1–100(預設 100),超出範圍一律回 400。

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 排查步驟,請參閱[「驗證與簽章」](/authentication)。

Query parameters

outerSysCodestringOptional

依 ERP 端的商品代碼篩選。大小寫不敏感的子字串比對,查 A100 也會一併比對到 A1000;要精確命中某一筆,請在你端再比對一次完整字串。

namestringOptional

依商品名稱篩選。大小寫不敏感的子字串比對,規則與 outerSysCode 相同。

statusstringOptional
依商品狀態篩選,接受 Active、Inactive 或 InactiveVisible。這是完全比對,而且大小寫必須與這裡列出的完全相符——帶 active 不會命中任何資料,會回傳 HTTP 200 但 data 是空陣列,不是錯誤。三種狀態的完整語意見本頁 Response 裡 `status` 欄位的說明。
productCategoryIdlongOptional

依商品分類序號篩選,只回傳歸類在這個分類的商品。必須是可指派的(子)分類 id;帶入根分類會回傳空結果。合法的序號可由 GET /v1/product-categories 的 isAssignable: true 項目取得。

updatedSincestringOptional
只回傳異動時間等於或晚於此刻的商品,用於增量同步;邊界含在內,剛好等於這一刻的資料也會被回傳。 必須是 ISO-8601 格式,並帶明確的時區位移或 Z(例如 2026-07-01T00:00:00Z);沒有時區資訊會回傳 400 invalid_updated_since,不會被猜成任何時區。放進網址時記得把 + 編碼成 %2B。
pageintegerOptional

頁碼,從 1 起算,省略時預設 1。小於 1 回傳 400 invalid_page;頁碼大到讓內部位移量溢位時同樣回傳 400 invalid_page。

pageSizeintegerOptional

每頁筆數,範圍 1 至 100,省略時預設 100。超出範圍一律回傳 400 invalid_page_size,不會自動夾限成合法值,避免分批掃描時誤判為已經抓完全部資料。

Response

OK
datalist of objects or nullOptional

本頁的商品資料,每一筆為一筆商品資料,形狀與「查詢單一商品」的回應相同。

totalCountintegerOptional

符合篩選條件的商品總數,涵蓋所有頁,不受目前頁碼影響。

currentPageintegerOptional

目前頁碼,即請求帶入的 page,從 1 起算。

pageSizeintegerOptional

目前頁面的筆數上限,即請求帶入的 pageSize。

totalPagesintegerOptional

總頁數,等於 totalCount 除以 pageSize 後無條件進位;沒有符合的資料時為 0。

Errors

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