Pipe17:用于订单和库存管理的统一商务 API - Openclaw Skills

作者:互联网

2026-03-27

AI教程

什么是 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 应用场景

  • 跟踪从创建到履行的订单状态,用于客户服务自动化。
  • 在多个销售渠道和地点之间同步库存水平。
  • 审核运输请求以识别待处理或失败的货物。
  • 检索历史履行数据以用于报告和分析目的。
Pipe17 统一商务 API 工作原理
  1. 该技能使用提供的组织 API 密钥初始化与 Pipe17 V3 API 的连接。
  2. API 请求被定向到特定的资源终点,例如 /orders、/shipping_requests 或 /inventory。
  3. 使用服务器端过滤逻辑执行复杂查询,包括状态数组、日期范围和 SKU 过滤器。
  4. 通过使用 count 和 skip 参数的内置分页支持来管理大型数据集。
  5. 该技能返回代表商业对象的结构化 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

  1. Create / obtain a Pipe17 API key for the target organization/integration.
  2. 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~readyForFulfillment
  • filters=string~status~equalsAnyOf~new,onHold,readyForFulfillment
  • filters=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=true unless the user specifically requests ledger detail. totals and ledger are 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/#/