Pipe17:用于订单和库存管理的统一商务 API - Openclaw Skills
作者:互联网
2026-03-27
什么是 Pipe17 统一商务 API?
Openclaw Skills 的 Pipe17 技能可实现与 Pipe17 统一 API 的无缝交互,为核心商业和运营数据提供单一访问点。它通过提供用于读取和搜索重要记录的标准终点,简化了管理不同电子商务系统的复杂性。这种集成对于围绕订单生命周期和供应链透明度构建自动化的开发人员至关重要。
通过利用此技能,AI 代理可以深入了解订单状态、运输物流和实时库存水平。无论您是在监控多个地点的库存,还是在审核履行绩效,此技能都提供了在 Openclaw Skills 生态系统中构建强大商业工作流所需的技术基础。
下载入口:https://github.com/openclaw/skills/tree/main/skills/j-shao1/pipe17-openclaw-skill
安装与下载
1. ClawHub CLI
从源直接安装技能的最快方式。
npx clawhub@latest install pipe17-openclaw-skill
2. 手动安装
将技能文件夹复制到以下位置之一
全局模式~/.openclaw/skills/
工作区
/skills/
优先级:工作区 > 本地 > 内置
3. 提示词安装
将此提示词复制到 OpenClaw 即可自动安装。
请帮我使用 Clawhub 安装 pipe17-openclaw-skill。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
Pipe17 统一商务 API 应用场景
- 跟踪从创建到履行的订单状态,用于客户服务自动化。
- 在多个销售渠道和地点之间同步库存水平。
- 审核运输请求以识别待处理或失败的货物。
- 检索历史履行数据以用于报告和分析目的。
- 该技能使用提供的组织 API 密钥初始化与 Pipe17 V3 API 的连接。
- API 请求被定向到特定的资源终点,例如 /orders、/shipping_requests 或 /inventory。
- 使用服务器端过滤逻辑执行复杂查询,包括状态数组、日期范围和 SKU 过滤器。
- 通过使用 count 和 skip 参数的内置分页支持来管理大型数据集。
- 该技能返回代表商业对象的结构化 JSON 数据,这些数据随后可用于进一步处理或报告。
Pipe17 统一商务 API 配置指南
要在 Openclaw Skills 中开始使用此技能,您必须从组织的仪表板获取 Pipe17 API 密钥。
export PIPE17_API_KEY="your_api_key_here"
确保所有请求都包含必要的标头:X-Pipe17-Key 和 Accept: application/json。
Pipe17 统一商务 API 数据架构与分类体系
该技能与四个主要数据对象交互,每个对象都支持特定的搜索参数:
| 对象 | 关键参数 | 典型过滤器 |
|---|---|---|
| 订单 | orderId, extOrderId | status, since, skip, count |
| 运输请求 | shippingRequestId, locationId | status, orderId, since |
| 履行 | fulfillmentId, shipmentId | orderId, locationId, since |
| 库存 | inventoryId, sku | available, onHand, totals, ledger |
所有日期都应以 UTC ISO 8601 格式提供,以确保 Openclaw Skills 的一致性。
name: pipe17 description: Pipe17 Unified API for searching and reading orders, shipping requests (shipments), fulfillments, and inventory. homepage: https://apidoc.pipe17.com/#/ metadata: { "openclaw": { "emoji": "??", "requires": { "env": ["PIPE17_API_KEY"] }, "primaryEnv": "PIPE17_API_KEY" } }
pipe17
Use the Pipe17 Unified API to search and read core commerce/operations objects.
This skill focuses on:
- Search + read Orders
- Search + read Shipping Requests (a.k.a. Shipments)
- Search + read Fulfillments
- Search Inventory by SKU (and optionally location)
Setup
- Create / obtain a Pipe17 API key for the target organization/integration.
- Export it:
export PIPE17_API_KEY="..."
Keep the API key secret. Use least-privilege keys whenever possible.
API Basics
Base URL (default):
https://api-v3.pipe17.com/api/v3
All requests should include:
X-Pipe17-Key: ${PIPE17_API_KEY}Accept: application/json
Example:
P17_BASE="https://api-v3.pipe17.com/api/v3"
curl "${P17_BASE}/orders" r
-H "X-Pipe17-Key: ${PIPE17_API_KEY}" r
-H "Accept: application/json"
Search & Filtering
Pipe17 commonly supports server-side filtering via query parameters, often including:
filters=...(repeatable)limit=...page=...
A common filter encoding pattern looks like:
filters={type}~{field}~{operator}~{value}
Examples of typical patterns:
filters=string~status~equals~readyForFulfillmentfilters=string~status~equalsAnyOf~new,onHold,readyForFulfillmentfilters=date~extOrderCreatedAt~isGreaterThanOrEqualTo~2024-12-31T00:00:00.000Z
If your tenant uses a different filter grammar, follow the contract in the API doc.
Orders
Search orders
List orders with optional query parameters.
| Parameter | Type | Description |
|---|---|---|
count |
integer (int32) | Number of results to return |
skip |
integer (int32) | Number of results to skip (for pagination) |
extOrderId |
array[string] | Filter by external order ID(s) |
since |
string (date-time) | Filter orders since this UTC ISO timestamp |
status |
array[string] | Filter by status(es) |
Allowed status values: draft, new, onHold, toBeValidated, reviewRequired, readyForFulfillment, sentToFulfillment, partialFulfillment, fulfilled, inTransit, partialReceived, received, canceled, returned, refunded, archived, closed
P17_BASE="https://api-v3.pipe17.com/api/v3"
# Example: most recent orders (paging)
curl "${P17_BASE}/orders?count=25&skip=0" r
-H "X-Pipe17-Key: ${PIPE17_API_KEY}" r
-H "Accept: application/json"
# Example: filter by status
curl "${P17_BASE}/orders?count=25&status=new&status=onHold&status=readyForFulfillment" r
-H "X-Pipe17-Key: ${PIPE17_API_KEY}" r
-H "Accept: application/json"
# Example: filter by date
curl "${P17_BASE}/orders?count=25&since=2024-12-31T00:00:00.000Z" r
-H "X-Pipe17-Key: ${PIPE17_API_KEY}" r
-H "Accept: application/json"
# Example: filter by external order ID
curl "${P17_BASE}/orders?extOrderId=EXT-12345" r
-H "X-Pipe17-Key: ${PIPE17_API_KEY}" r
-H "Accept: application/json"
Read order by id
The search endpoint returns an orderId for each order. Use it to fetch full order details.
P17_BASE="https://api-v3.pipe17.com/api/v3"
ORDER_ID="{orderId}"
curl "${P17_BASE}/orders/${ORDER_ID}" r
-H "X-Pipe17-Key: ${PIPE17_API_KEY}" r
-H "Accept: application/json"
Shipping Requests
Search shipping requests
List shipping requests with optional query parameters.
| Parameter | Type | Description |
|---|---|---|
count |
integer (int32) | Number of results to return |
skip |
integer (int32) | Number of results to skip (for pagination) |
extOrderId |
array[string] | Filter by external order ID(s) |
orderId |
array[string] | Filter by Pipe17 order ID(s) |
locationId |
array[string] | Filter by location ID(s) |
since |
string (date-time) | Filter shipping requests since this UTC ISO timestamp |
status |
array[string] | Filter by status(es) |
Allowed status values: new, pendingInventory, pendingShippingLabel, reviewRequired, readyForFulfillment, sentToFulfillment, fulfilled, partialFulfillment, canceled, canceledRestock, failed, onHold
P17_BASE="https://api-v3.pipe17.com/api/v3"
# Example: list shipping requests
curl "${P17_BASE}/shipping_requests?count=25&skip=0" r
-H "X-Pipe17-Key: ${PIPE17_API_KEY}" r
-H "Accept: application/json"
# Example: filter by status
curl "${P17_BASE}/shipping_requests?count=25&status=readyForFulfillment" r
-H "X-Pipe17-Key: ${PIPE17_API_KEY}" r
-H "Accept: application/json"
# Example: filter by order ID
curl "${P17_BASE}/shipping_requests?count=25&orderId=ORD-12345" r
-H "X-Pipe17-Key: ${PIPE17_API_KEY}" r
-H "Accept: application/json"
# Example: filter by location
curl "${P17_BASE}/shipping_requests?count=25&locationId=LOC-001" r
-H "X-Pipe17-Key: ${PIPE17_API_KEY}" r
-H "Accept: application/json"
Read shipping request by id
P17_BASE="https://api-v3.pipe17.com/api/v3"
SHIPPING_REQUEST_ID="{shippingRequestId}"
curl "${P17_BASE}/shipping_requests/${SHIPPING_REQUEST_ID}" r
-H "X-Pipe17-Key: ${PIPE17_API_KEY}" r
-H "Accept: application/json"
Fulfillments
Fulfillments represent completed shipment execution with tracking and shipped line items. They are typically treated as immutable once created.
Search fulfillments
List fulfillments with optional query parameters.
| Parameter | Type | Description |
|---|---|---|
count |
integer (int32) | Number of results to return |
skip |
integer (int32) | Number of results to skip (for pagination) |
extOrderId |
array[string] | Filter by external order ID(s) |
orderId |
array[string] | Filter by Pipe17 order ID(s) |
shipmentId |
array[string] | Filter by shipment ID(s) |
locationId |
array[string] | Filter by location ID(s) |
since |
string (date-time) | Filter fulfillments since this UTC ISO timestamp |
P17_BASE="https://api-v3.pipe17.com/api/v3"
# Example: list fulfillments
curl "${P17_BASE}/fulfillments?count=25&skip=0" r
-H "X-Pipe17-Key: ${PIPE17_API_KEY}" r
-H "Accept: application/json"
# Example: filter by order ID
curl "${P17_BASE}/fulfillments?count=25&orderId=ORD-12345" r
-H "X-Pipe17-Key: ${PIPE17_API_KEY}" r
-H "Accept: application/json"
# Example: filter by shipment ID
curl "${P17_BASE}/fulfillments?count=25&shipmentId=SHIP-001" r
-H "X-Pipe17-Key: ${PIPE17_API_KEY}" r
-H "Accept: application/json"
# Example: filter by date
curl "${P17_BASE}/fulfillments?count=25&since=2024-12-31T00:00:00.000Z" r
-H "X-Pipe17-Key: ${PIPE17_API_KEY}" r
-H "Accept: application/json"
Read fulfillment by id
P17_BASE="https://api-v3.pipe17.com/api/v3"
FULFILLMENT_ID="{fulfillmentId}"
curl "${P17_BASE}/fulfillments/${FULFILLMENT_ID}" r
-H "X-Pipe17-Key: ${PIPE17_API_KEY}" r
-H "Accept: application/json"
Inventory
Inventory is stored per SKU (and often per location) and may include multiple quantity types (e.g., onHand, available, committed, etc.).
Search inventory
List inventory with optional query parameters.
| Parameter | Type | Description |
|---|---|---|
count |
integer (int32) | Number of results to return |
skip |
integer (int32) | Number of results to skip (for pagination) |
sku |
array[string] | Filter by SKU(s). Mutually exclusive with sku_gt/sku_lt |
locationId |
array[string] | Filter by location ID(s) |
since |
string (date-time) | Filter inventory created after this UTC ISO timestamp |
available |
integer | Filter where available equals this value. Mutually exclusive with available_gt/available_lt |
available_gt |
integer | Filter where available is greater than this value |
available_lt |
integer | Filter where available is less than this value |
onHand |
integer | Filter where onHand equals this value. Mutually exclusive with onHand_gt/onHand_lt |
onHand_gt |
integer | Filter where onHand is greater than this value |
onHand_lt |
integer | Filter where onHand is less than this value |
totals |
boolean | Return inventory totals across all locations (not allowed with ledger flag) |
ledger |
boolean | Return inventory ledger information (not allowed with totals flag) |
Default behavior: Always send
totals=trueunless the user specifically requests ledger detail.totalsandledgerare mutually exclusive.
P17_BASE="https://api-v3.pipe17.com/api/v3"
# Example: list inventory by SKU (always use totals=true by default)
curl "${P17_BASE}/inventory?count=100&sku=MY-SKU-001&totals=true" r
-H "X-Pipe17-Key: ${PIPE17_API_KEY}" r
-H "Accept: application/json"
# Example: SKU + location
curl "${P17_BASE}/inventory?count=100&sku=MY-SKU-001&locationId=LOC-001&totals=true" r
-H "X-Pipe17-Key: ${PIPE17_API_KEY}" r
-H "Accept: application/json"
# Example: find items with zero available
curl "${P17_BASE}/inventory?count=100&available=0&totals=true" r
-H "X-Pipe17-Key: ${PIPE17_API_KEY}" r
-H "Accept: application/json"
# Example: find items with available > 10
curl "${P17_BASE}/inventory?count=100&available_gt=10&totals=true" r
-H "X-Pipe17-Key: ${PIPE17_API_KEY}" r
-H "Accept: application/json"
# Example: get ledger detail (only when specifically requested)
curl "${P17_BASE}/inventory?count=100&sku=MY-SKU-001&ledger=true" r
-H "X-Pipe17-Key: ${PIPE17_API_KEY}" r
-H "Accept: application/json"
Read inventory record by inventoryId
P17_BASE="https://api-v3.pipe17.com/api/v3"
INVENTORY_ID="{inventoryId}"
curl "${P17_BASE}/inventory/${INVENTORY_ID}" r
-H "X-Pipe17-Key: ${PIPE17_API_KEY}" r
-H "Accept: application/json"
Notes
- Prefer list/search endpoints with pagination (
count,skip) for support workflows. - Favor narrow filters (status/date/sku) to avoid pulling large result sets.
- If you hit rate limits, implement backoff and retry according to response headers.
References
- Pipe17 Unified API Docs: https://apidoc.pipe17.com/#/
相关推荐
专题
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
最新数据
相关文章
信号管道:自动化营销情报工具 - Openclaw Skills
技能收益追踪器:监控 Openclaw 技能并实现变现
AI 合规准备就绪度:评估与治理工具 - Openclaw Skills
FOSMVVM ServerRequest 测试生成器:自动化 API 测试 - Openclaw Skills
酒店搜索器:AI 赋能的住宿与位置情报 - Openclaw Skills
Dub 链接 API:程序化链接管理 - Openclaw Skills
IntercomSwap:P2P BTC 与 USDT 跨链兑换 - Openclaw Skills
spotplay:macOS 原生 Spotify 播放控制 - Openclaw Skills
DeepSeek OCR:AI驱动的图像文本识别 - Openclaw Skills
Web Navigator:自动化网页研究与浏览 - Openclaw Skills
AI精选
