商品管理 API(Products API)的使用方式
API
OAuth
商品管理
PIM
CRUD
Android
iOS
本指南的目的
本文彙整使用 ReceiptRoller 的商品管理 API(Products API),建立、取得、更新、刪除商業帳戶底下商品主檔的方法。這是從行動應用程式或伺服器串接操作商品資料時的入口指南。
前提
- 已透過 OAuth 2.0 授權碼流程取得存取權杖
- 應用程式的權限範圍中包含
store.products.read(讀取)/store.products.write(建立、更新、刪除) - 已得知商業帳戶 ID(UUID)(取得商業帳戶、店鋪、POS 端末的一覽)
- 基底 URL:
https://receiptroller.io
端點一覽
| 方法 | 路徑 | 用途 | 必要權限範圍 |
|---|---|---|---|
| GET | /api/v1/products | 商品一覽/搜尋 | store.products.read |
| GET | /api/v1/products/{productId} | 1 商品的詳細(含變體) | store.products.read |
| POST | /api/v1/products | 商品的新增建立 | store.products.write |
| PUT | /api/v1/products/{productId} | 商品的更新 | store.products.write |
| DELETE | /api/v1/products/{productId} | 商品的刪除(軟刪除) | store.products.write |
1. 取得商品一覽
GET /api/v1/products?organizationId={organizationId}
Authorization: Bearer {access_token}
查詢參數(選填)
search— 商品名稱、SKU、JAN 條碼的部分一致搜尋category— 以類別篩選(完全一致)brand— 以品牌篩選(完全一致)
回應範例
{
"organizationId": "a04507de-043a-4b47-b0a3-6204562f6e20",
"products": [
{
"id": "prd-001",
"productName": "ブレンドコーヒー M",
"sku": "CFE-BLD-M",
"janCode": "4912345000017",
"category": "ドリンク",
"brand": "オリジナル",
"pricing": {
"basePrice": 480,
"baseCostPrice": 120,
"taxRate": 0.10,
"storePrices": []
},
"images": {
"cover": "https://...",
"gallery": ["https://..."]
},
"status": "Active",
"variants": { "hasVariants": false, "options": [], "items": [] },
"integrations": {
"squareCatalogObjectId": "",
"smaregiProductId": "SMG-12345"
},
"createdAt": "2026-04-01T09:00:00Z",
"updatedAt": "2026-05-30T12:34:56Z"
}
],
"totalCount": 1
}
2. 取得 1 商品的詳細
GET /api/v1/products/{productId}?organizationId={organizationId}
Authorization: Bearer {access_token}
會連同變體(尺寸、顏色差異等)一併回傳。若商品不屬於指定的商業帳戶,則為 404。
3. 新增建立商品
POST /api/v1/products?organizationId={organizationId}
Authorization: Bearer {access_token}
Content-Type: application/json
{
"productName": "新商品 アイスティー",
"sku": "TEA-ICE-001",
"janCode": "4912345000024",
"category": "ドリンク",
"brand": "オリジナル",
"description": "夏季限定の冷茶。",
"basePrice": 380,
"baseCostPrice": 95,
"taxRate": 0.10,
"status": "Active",
"imageUrl": "https://..."
}
重點
- 僅
productName為必填。其他皆可省略 - 即使在請求本文包含
organizationId也會被忽略。一定會使用以權杖/查詢解析出的商業帳戶(防止誤寫至其他租戶) - 回應為包含新採番的
id(productId)的完整商品物件
4. 更新商品
PUT /api/v1/products/{productId}?organizationId={organizationId}
Authorization: Bearer {access_token}
Content-Type: application/json
{
"productName": "新商品 アイスティー(無糖)",
"basePrice": 400,
"status": "Active"
}
會以送出的欄位覆寫商品記錄(非部分更新,而是完全置換)。想保留值的欄位請將既有值一併重新送出。
5. 刪除商品(軟刪除)
DELETE /api/v1/products/{productId}?organizationId={organizationId}
Authorization: Bearer {access_token}
重點
- 回應為
204 No Content - 由於是軟刪除,仍可從過去的 POS 收據明細解析出對應的商品 ID
- 已刪除商品不會包含在一覽、搜尋結果中
POS 串接 ID 的處理
ReceiptRoller 的商品主檔與外部 POS 串接。integrations 區塊中可能會有以下 ID。
squareCatalogObjectId/squareVariationId— 與 Square Catalog 的關聯smaregiProductId— 與 Smaregi 商品 ID 的關聯
以外部 POS 主導同步的商品,這些 ID 會自動設定。雖然也可從 API 直接寫入,但通常交由 POS 同步而不去碰觸會較安全。
變體(尺寸、顏色差異)
當 1 商品有多個變體時,variants.hasVariants = true,並含有 variants.options(選項定義)與 variants.items(各變體的實體)。新增建立時通常只登錄最低限度的父商品,變體以另外的 UI/API 追加來展開,是一般的設計。
典型的流程(行動應用程式)
- 以 OAuth 取得存取權杖 → 權限範圍包含
store.products.read與store.products.write - 以
GET /api/v1/me/organizations選擇商業帳戶 - 在商品一覽畫面以
GET /api/v1/products分頁顯示 - 在新商品追加畫面
POST /api/v1/products - 編輯畫面
GET /api/v1/products/{id}→PUT /api/v1/products/{id} - 刪除確認後
DELETE /api/v1/products/{id}
錯誤回應
| 狀態 | 意義 | 因應 |
|---|---|---|
| 401 Unauthorized | 存取權杖無效/過期 | 以刷新權杖重新取得 |
| 403 Forbidden | 缺少必要權限範圍/非商業帳戶的成員 | 確認權限範圍與選擇中的商業帳戶 |
| 400 Bad Request | 必填欄位不足(productName) | 檢查請求本文 |
| 404 Not Found | 商品 ID 不存在於該商業帳戶 | 從一覽重新取得 |
相關資訊
發布日: 2026-06-01
更新日: 2026-07-06
標籤
API (22)
OAuth (15)
Android (10)
iOS (9)
Webhook (8)
api (7)
oauth (5)
POS串接 (4)
getting-started (4)
參考 (4)
相關文章
-
店鋪資訊 API(Store Information API)的使用方式說明如何以 REST API 取得、更新店鋪的基本資訊(店鋪名稱、店鋪類別、聯絡方式、地址)。可從員工應用程式等以權杖驗證的用戶端實作店鋪資訊的編輯畫面。
-
店內媒體顯示器 API(Display API)的使用方式ReceiptRoller 店內 Android 顯示器 API(/api/v1/displays/*)的概要,以及配對、心跳、播放清單取得、播放實績回報的步驟彙整。這是為在 Android 電子看板或店內數位看板端末播放媒體循環而實作應用程式的入門指南。
-
交易一覽 API(Transactions API:POS+OMS 整合摘要)的使用方式ReceiptRoller 的 Transactions API 是將收銀營業額(PosTransactions)與銷售管理訂單(OmsOrders)整合為單一摘要的唯讀 API。在 Android/iOS 應用程式中一覽顯示「整個商業帳戶的交易」時,即為入口。
-
營業額實績 API(Sales API)的使用方式彙整 ReceiptRoller 營業額實績 API(/api/v1/sales/*)的概要,以及依商業帳戶、店鋪、POS 端末、期間的篩選方法。這是一份涵蓋實際回應結構(KpiValue 巢狀型)與 averageTicket、權杖有效期限(8 小時)在內,為在 Android/iOS 行動應用程式或伺服器串接實作營業額儀表板的入門指南。
-
銷售管理 API(Orders / OMS API)的使用方式這是使用 ReceiptRoller 銷售管理 API(/api/v1/orders)對商業帳戶底下的訂單進行 CRUD 操作的指南。彙整訂單的建立、更新、狀態轉移(確認、處理中、取消)、刪除,以及適用於 Android/iOS 應用程式或伺服器串接的流程。