一键导入
xyfcli-order-guide
肥料订单下单与客户/供应商管理技能。使用 xyfcli CLI 执行:(1) 下单/订货/采购肥料;(2) 查询产品信息/价格/库存;(3) 查询客户/供应商/经销商信息;(4) 解析订货单图片。触发词:下单、订货、买肥料、查产品、查客户、供应商信息、产品列表、客户编码。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
肥料订单下单与客户/供应商管理技能。使用 xyfcli CLI 执行:(1) 下单/订货/采购肥料;(2) 查询产品信息/价格/库存;(3) 查询客户/供应商/经销商信息;(4) 解析订货单图片。触发词:下单、订货、买肥料、查产品、查客户、供应商信息、产品列表、客户编码。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
A curated collection of 2409+ best OpenClaw skills — AI tools, productivity, marketing, frontend, mobile, backend, DevOps and more. Weekly updated by MyClaw.ai — Powered by MyClaw.ai
将1688的商品铺货到俄罗斯电商平台Ozon(上架),通过Ozon官方API实现商品信息的上传和状态查询。适用于需要将单个1688的商品上架到Ozon的场景。
ActiveCampaign API integration with managed OAuth. Marketing automation, CRM, contacts, deals, and email campaigns. Use this skill when users want to manage contacts, deals, tags, lists, automations, or campaigns in ActiveCampaign. For other third party apps, use the api-gateway skill (https://clawhub.ai/byungkyu/api-gateway). Requires network access and valid Maton API key.
Acuity Scheduling API integration with managed OAuth. Manage appointments, calendars, clients, and availability. Use this skill when users want to schedule, reschedule, or cancel appointments, check availability, or manage clients and calendars. For other third party apps, use the api-gateway skill (https://clawhub.ai/byungkyu/api-gateway).
World-Class Adaptability & Learning Playbook. Use for: market trend awareness, horizon scanning, PESTLE analysis, organisational agility, Kaizen, PDCA cycles, 5S, lean operations, experimentation culture, hypothesis-driven development, A/B testing, MVP design, knowledge management, decision logs, ADRs, after-action reviews, competitive intelligence, SWOT, Porter's Five Forces, battlecards, pivoting strategy, lean startup, business model canvas, signal detection, scenario planning, learning velocity, value stream mapping, Gemba walks. Trigger when discussing ANY organisational learning, strategic adaptability, continuous improvement, competitive analysis, experimentation, knowledge systems, or pivot/persevere decisions. Also for startup strategy around product-market fit or validated learning. If it touches learning faster, adapting better, or competing smarter — use this skill.
Digital legacy agent — dead man's switch, final message executor, and ghost mode responder that preserves your digital presence. Use when the user wants to set up a dead man's switch, manage their digital will, or enable ghost mode.
| name | xyfcli-order-guide |
| description | 肥料订单下单与客户/供应商管理技能。使用 xyfcli CLI 执行:(1) 下单/订货/采购肥料;(2) 查询产品信息/价格/库存;(3) 查询客户/供应商/经销商信息;(4) 解析订货单图片。触发词:下单、订货、买肥料、查产品、查客户、供应商信息、产品列表、客户编码。 |
| metadata | {"openclaw":{"requires":{"bins":["xyfcli"]}}} |
你可以帮用户做这些事:
| 能力 | 触发词/示例 | 说明 |
|---|---|---|
| 🛒 快速下单 | "帮吉林市文英化肥经销有限责任公司下26吨Y14002510160020000,吉林新洋丰基地出发,汽运,统派车(客户付款),到吉林省吉林市蛟河市公安局乌林派出所八家子警务室,邱文英收,联系方式13394403131" | 一句话下单,自动验证 |
| 📦 查产品 | "看看有什么复合肥"、"查 45% 的产品" | 查询客户可购买的产品列表 |
| 👥 查客户 | "我有哪几个客户"、"查客户列表" | 查询你名下的所有客户 |
| 📍 查地址 | "牛建建的地址在哪" | 查询客户的收货地址 |
| ➕ 新增地址 | "给牛建建新增一个地址" | 新增客户收货地址 |
| ✏️ 修改地址 | "修改牛建建的地址" | 修改客户收货地址 |
| 🏭 查基地 | "这个产品从哪发货" | 查询产品的发货基地 |
| 🖼️ 图片下单 | (发送订货单图片) | OCR 识别订货单并下单 |
首次引导时明确告知:
"我可以帮你:①快速下单 ②查产品 ③查客户列表 ④查/新增/修改地址 ⑤图片下单。需要什么?"
用户输入 → 识别意图类型
├─ 下单类 → 提取:客户、销售业务员、产品列表(每个产品包含编码、名称、数量)、发货基地、收货信息(运输方式、提货方式、收货地址ID、收货人、收货人电话)
├─ 查询产品类 → 见 #如何查询产品 模块
├─ 查询客户类 → 直接调用 xyfcli shop getdealercode
├─ 查地址类 → 获取客户收货地址信息
│ 1. 先通过 getsalercode 获取当前销售员编码
│ 2. 再通过 getdealercode 查找客户,获取客户编码
│ 3. 最后通过 getdealeraddresses 获取该客户的地址列表
├─ 查询基地库存类 → 调用 getstock 查询库存和子公司信息
└─ 图片类 → 调用 OCR 解析订货单
并行执行所有前置验证(客户、业务员、产品、基地、库存、地址等)
✓ 全部通过 → 阶段 3
✗ 有问题 → 一次性告知 + 提供解决方案
⚠️ 验证规则详见 关键约束 模块
触发:用户一句话包含所有必要信息
处理:
示例:
用户:"帮吉林市文英化肥经销有限责任公司下26吨Y14002510160020000,吉林新洋丰,汽运,统派车(客户付款),吉林省吉林市蛟河市公安局乌林派出所八家子警务室,邱文英,13394403131"
OpenClaw 自动验证并展示:
---
订单确认
---
客户:吉林市文英化肥经销有限责任公司 (J220000033) ✓
销售业务员:涂晓鹏 (EZB2019063) ✓
发货基地:吉林新洋丰 ✓
子公司:吉林新洋丰肥业有限公司
运输方式:汽运
提货方式:统派车(客户付款)
收货地址:吉林省吉林市蛟河市公安局乌林派出所八家子警务室 ✓
收货人:邱文英
收货人电话:13394403131
产品:Y14002510160020000 - 洋·高塔 51%(25-10-16)40KG 低氯 ✓
数量:26 吨
承运人信息:陈龙福 鄂 H08282 13872908039
---
确认下单?(回复"确认"或"取消")
触发:用户提供部分信息(缺少基地/地址等)
处理:
示例:
用户:"帮吉林市文英化肥经销有限责任公司下26吨Y14002510160020000"
OpenClaw:
"产品验证通过 ✓
请补充以下信息:
1. 发货基地(选择一个):
[1] 吉林新洋丰
[2] 长春配送中心
2. 运输方式(选择一个):
[1] 汽运
[2] 铁运
[3] 船运
[4] 集装箱运输
3. 提货方式(选择一个):
[1] 自派车
[2] 统派车(公司付款)
[3] 统派车(客户付款)
4. 收货地址(选择一个):
[1] 湖北省荆门市东宝区泉口街道馨梦缘公寓
[2] 甘肃省天水市秦安县叶堡镇新阳村
如果没有合适的地址,可以[3]新增地址
5. 收货人(默认使用地址中的联系人,如需修改请提供):
6. 收货人电话(默认使用地址中的电话,如需修改请提供):
请按顺序回复,用逗号分隔。
例如:"1,1,2,1"(使用默认收货人和电话)或 "1,1,2,1,张三,13800138000"(指定收货人和电话)"
如果客户没有已保存的地址:
✗ 该客户没有已保存的收货地址
请先到精准营销系统维护收货地址后再下单:
1. 登录精准营销系统
2. 进入客户管理 → 找到对应客户
3. 添加收货地址(省/市/区/详细地址/联系人/电话)
4. 维护完成后重新下单
精准营销系统地址:http://xxx.xxx.xxx
触发:用户需要浏览产品("看看能买什么肥料"、"复合肥有哪些")
处理:
示例:
用户:"看看牛建建能买什么复合肥"
OpenClaw:
"找到 5 个复合肥产品:
[1] Y163U1305276020000 - 洋丰复合肥 45% 15-15-15
[2] Y163U1305276020001 - 洋丰复合肥 45% 16-16-16
[3] Y163U1305276020002 - 洋丰复合肥 40% 16-16-8
[4] Y163U1305276020003 - 洋丰复合肥 42% 18-12-12
[5] Y163U1305276020004 - 洋丰复合肥 38% 14-14-10
回复产品编号或编码,并告诉我数量。"
触发:用户发送订货单/采购单图片
处理:
示例:
用户:(发送订货单图片)
OpenClaw:
"订货单识别结果:
---
客户:吉林市文英化肥经销有限责任公司 ✓
销售业务员:涂晓鹏 ✓
发货基地:吉林新洋丰
子公司:吉林新洋丰肥业有限公司
运输方式:汽运
提货方式:统派车(客户付款)
收货地址:吉林省吉林市蛟河市公安局乌林派出所八家子警务室
收货人:邱文英
收货人电话:13394403131
产品列表:
| # | 产品编码 | 产品名称 | 数量 |
|---|----------|----------|------|
| 1 | Y14002510160020000 | 洋·高塔 51%(25-10-16)40KG 低氯 ✓ | 26 吨 |
---
以上信息是否正确?(确认/修改)"
触发:用户问"我有哪几个客户"、"查客户"、"客户列表"
处理:
示例:
用户:"我有哪几个客户"
OpenClaw:
"你名下有 28 个客户:
| 编号 | 客户编码 | 客户名称 | 联系电话 | 地址 | 余额 (元) |
|------|------------|----------------|--------------|----------|------------|
| 1 | J620522007 | 牛建建 | 18093818192 | 叶堡村 | 97044.01 |
| 2 | J620522010 | 甘谷县... | 15693868887 | 磐安镇 | 383705.39 |
| 3 | J999000747 | 甘谷县... | 13399386884 | 甘谷县...| 405057.93 |
...
要下单的话,直接告诉我:客户名称 + 产品 + 数量
例如:"帮牛建建下 5 吨 Y163U1305276020000""
下单人提供描述信息后,通过xyfcli shop getproducturibydesc语义查询最接近的清单uri,然后通过xyfcli shop getproductdetailbyuri获取详细产品信息
下单人提供描述信息后,通过xyfcli shop getproductlist 通过关键词匹配查询到产品信息
下单人提供产品编号后通过xyfcli shop getgoodsinfo查到具体产品信息
xyfcli shop getdealercode 获取客户列表,选择对应的客户编码xyfcli shop getproductlist 或 xyfcli shop getgoodsinfo 获取产品编号xyfcli shop getdeliverybase 获取产品可发货的基地列表xyfcli shop getstock 查询产品在指定基地的库存信息和所属子公司名称示例:
# 查询产品在指定基地的库存和子公司信息
xyfcli shop getstock -logincode "J620522007" -productcode "Y68000500000023100" -sendbase "10"
返回信息包含:
companyName: 子公司名称companyCode: 子公司编码productNum: 库存数量productName: 产品名称productCode: 产品编号⚠️ 一个订单只能有一组以下信息:
如果订单包含多组不同的以上信息,必须拆分成多个订单。
示例:
用户:帮牛建建下10吨Y163U1305276020000到湖北,再下5吨到甘肃
✗ 不能在一个订单中下单(两个不同的收货地址)
需要拆分为两个订单:
订单1:10吨 → 湖北省荆门市东宝区
订单2:5吨 → 甘肃省天水市秦安县
⚠️ 必须验证:收货地址必须是客户已保存的地址(通过 getdealeraddresses 查询)
如果没有地址,可以:
shop addaddress 新增地址shop editaddress 修改现有地址# 获取客户已保存的地址列表
xyfcli shop getdealeraddresses "客户编码"
# 新增地址
xyfcli shop addaddress -dealercode "客户编码" -name "客户名称" -contact "联系人" -phone "电话" ...
地址不存在时的处理:
✗ 客户没有已保存的收货地址
我可以帮你新增地址,请提供:
- 联系人、联系电话、省市区、详细地址
或修改现有地址后重新下单。
⚠️ 现在可以直接通过 CLI 新增或修改地址,无需登录其他系统。
⚠️ 以下7个参数为必传项,必须全部提供:
-dealer):客户在系统中的唯一标识-name):与客户编码对应的客户名称-sales):负责该客户的业务员编码-products):商品编号列表,逗号分隔-base):产品发货基地-addr-id):系统中已保存的地址ID-q):商品数量列表,逗号分隔,与商品编号一一对应可选参数(可直接回车跳过):
-transport - 运输方式(默认:汽运)-pickup - 提货方式(默认:统派车)-receiver - 收货人(不传则使用地址中的默认值)-phone - 收货人电话(不传则使用地址中的默认值)校验规则:
-q 数量必须与 -products 商品数量一一对应-addr-id 必须精确匹配系统中已保存的地址⚠️ 只能选择以下选项:
运输方式(只能选择以下选项,下单时自动映射为代码):
提货方式(只能选择以下选项,自动映射为代码):
其他选项无效,不接受自定义输入。
⚠️ 必须验证:只有 getproductlist 接口能查到的产品才能下单
# 精确验证(验证客户是否有权购买此产品)
xyfcli shop getproductlist -dealercode "客户编码" -search "产品编码"
# 模糊查询(查询客户可购买的产品清单)
xyfcli shop getproductlist -dealercode "客户编码" -search "45% 复合肥 15-15-15"
# ↑ 只有在返回的产品清单中才能下单
⚠️ 必须验证:只有库存大于下单数量的基地才能下单
# 查询产品基地库存
xyfcli shop getstock -logincode "客户编码" -productcode "产品编码" -sendbase "基地编码"
# 返回示例:
# {"stock": 100, "base_name": "新洋丰中磷", "subsidiary": "湖北新洋丰"}
# ↑ stock 必须 >= 下单数量才能选择该基地
场景 1:产品不可用
✗ 产品 Y163U1305276020000 对该客户不可用
该客户可购买的相似产品:
[1] Y163U1305276020001 - 洋丰复合肥 45% 16-16-16
[2] Y163U1305276020002 - 洋丰复合肥 40% 16-16-8
请选择替代产品或回复"取消"。
场景 2:客户不存在
✗ 未找到客户"牛建建"
可能的客户:
[1] 牛建建 (J620522007) - 湖北荆门
[2] 牛建军 (J620522008) - 湖北京山
请确认客户名称或编码。
场景 3:客户没有收货地址
✗ 客户"牛建建"没有已保存的收货地址
你可以选择:
[1] 我来帮你新增地址
[2] 使用其他客户的地址下单
[3] 取消下单
请回复选项编号。
如果用户选择新增地址:
请提供以下信息(用逗号分隔):
1. 联系人:_________
2. 联系电话:_________
3. 省份名称(如:湖北省):_________
4. 城市名称(如:荆门市):_________
5. 区县名称(如:东宝区):_________
6. 详细地址:_________
例如:"牛一,13121007444,湖北省,荆门市,东宝区,泉口街道馨梦缘公寓"
场景 4:多个信息缺失
请补充以下信息(一次性回复):
[1] 发货基地:新洋丰中磷 / 武汉配送中心
[2] 收货地址:选择一个已保存的地址,或回复"新增地址"
[3] 数量:当前未指定
[4] 收货人:默认使用地址中的联系人(确认或提供新值)
[5] 收货人电话:默认使用地址中的电话(确认或提供新值)
注意:
- 地址ID必须精确传入,不支持模糊匹配
- 收货人和电话提单时必传,可从地址中提取默认值,需用户确认
- 运输方式只能为:汽运/铁运/船运/集装箱运输
- 提货方式只能为:自派车/统派车(公司付款)/统派车(客户付款)
场景 5:运输方式或提货方式无效
✗ 运输方式"水运"无效
请选择有效的运输方式:
[1] 汽运
[2] 铁运
[3] 船运
[4] 集装箱运输
提货方式只能为:自派车 或 统派车(公司付款)或统派车(客户付款)
---
订单确认
---
客户:{姓名} ({编码}) {状态}
销售业务员:{业务员姓名} ({业务员编号}) {状态}
发货基地:{基地名称} {状态}
子公司:{子公司名称}
运输方式:{运输方式}
提货方式:{提货方式}
收货地址:{收货地址} {状态}
收货人:{收货人}
收货人电话:{收货人电话}
产品列表:
| # | 产品编码 | 产品名称 | 数量 |
|---|----------|----------|------|
| 1 | {产品编码 1} | {产品名称 1} {状态} | {数量 1} |
| 2 | {产品编码 2} | {产品名称 2} {状态} | {数量 2} |
---
确认下单?(回复"确认"或"取消")
下单成功后展示:
---
下单成功
---
订单已提交成功!
订单地址:{订单URL}
---
客户列表:
| 编号 | 客户编码 | 客户名称 | 联系电话 | 地址 | 余额 (元) |
|------|-----------|--------|------------|-------|----------|
| 1 | J620522007 | 牛建建 | 18093818192| 叶堡村 | 97044.01 |
产品列表:
| 编号 | 产品编码 | 产品名称 | 养分 | 规格 |
|------|-----------------|---------------------------|-------|------|
| 1 | Y163U1305276020000 | 洋丰复合肥 45% 15-15-15 | 45% | 40KG |
# 获取销售人员信息
xyfcli shop getsalercode
# 获取客户列表(核心命令)
xyfcli shop getdealercode "销售人员编码"
# 验证/搜索产品(支持精确验证和模糊查询)
# 精确验证:确认客户是否有权购买此产品
xyfcli shop getproductlist -dealercode "客户编码" -search "Y163U1305276020000"
# 模糊查询:查找客户可购买的相似产品
xyfcli shop getproductlist -dealercode "客户编码" -search "45% 复合肥"
# 获取发货基地
xyfcli shop getdeliverybase -productcode "产品编码" -dealercode "客户编号"
# 获取客户地址(完整流程)
# 第1步:获取销售员编码
xyfcli shop getsalercode
# 第2步:通过销售员编码获取客户列表,找到客户编码
xyfcli shop getdealercode "销售人员编码"
# 第3步:通过客户编码获取地址列表
xyfcli shop getdealeraddresses "客户编码"
# 新增客户地址
xyfcli shop addaddress -dealercode "J620522007" -name "牛建建" \
-contact "牛一" -phone "13121007444" \
-provincecode "420000" -provincename "湖北省" \
-citycode "420800" -cityname "荆门市" \
-countycode "420802" -countyname "东宝区" \
-detail "泉口街道馨梦缘公寓" -addrtxt "湖北省荆门市东宝区"
# 修改客户地址
xyfcli shop editaddress -id 15098 -dealercode "J620522007" -name "牛建建" \
-contact "牛二" -phone "13121007444" \
-provincecode "420000" -provincename "湖北省" \
-citycode "420800" -cityname "荆门市" \
-countycode "420802" -countyname "东宝区" \
-detail "泉口街道馨梦缘公寓" -addrtxt "湖北省荆门市东宝区"
# 查询基地库存和子公司信息
xyfcli shop getstock -logincode "客户编码" -productcode "产品编号" -sendbase "基地编码"
### 下单(单产品)
xyfcli order place -dealer "J620522007" -name "牛建建" -sales "EZB2019063" \
-products "Y163U1305276020000" -q "10" -base "10" \
-addr-id "123" -receiver "牛建建" -phone "18093818192"
### 下单(多产品) - 使用逗号分隔产品和数量
xyfcli order place -dealer "J620522007" -name "牛建建" -sales "EZB2019063" \
-products "Y163U1305276020000,Y163U1305276020001" -q "10,5" -base "10" \
-addr-id "123" -receiver "牛建建" -phone "18093818192" -transport "汽运" -pickup "统派车(客户付款)"
### 下单(含可选参数)
xyfcli order place -dealer "J620522007" -name "牛建建" -sales "EZB2019063" \
-products "Y163U1305276020000" -q "26" -base "10" \
-addr-id "123" -receiver "牛建建" -phone "18093818192" \
-vehicle "张师傅" -plate "鄂H12345" -vphone "13800138000" \
-remark "加急配送" -freight "1.5"
# 通过产品描述查询产品信息的 URI 地址,语义搜索可以查到最接近用户描述的产品uri
xyfcli shop getproducturibydesc --description <产品描述> [--limit <数量限制>]
# 通过产品 URI 地址获取产品完整描述
xyfcli shop getproductdetailbyuri --uri <产品URI> [--offset <偏移量>] [--limit <数量限制>]
安装 xyfcli CLI(仅首次安装时执行):
# 1. 安装
cd ~/.qclaw/workspace
uv tool install -e skills/xyfcli-order-guide/scripts/xyfcli
# 2. 配置
xyfcli config set --base-url http://127.0.0.1:8000 --token your_token_here
# 3. 验证
xyfcli --help
| 文档 | 用途 | 加载时机 |
|---|---|---|
| references/workflow_guide.md | 完整工作流程详解 | 复杂订单/多产品订单 |
| references/cli_quickref_chinese.md | CLI 命令完整参考 | 需要非常规命令时 |
| references/error_messages.md | 错误代码和处理方案 | 验证失败/下单失败 |
| references/image_processing.md | 订货单图片解析规则 | 用户发送图片时 |