Vtrip B2B · 租户资源数据建模
本 Skill 面向 B2B 租户侧主数据建模与维护:用 OpenSSO secretKey 换取宿主 JWT,直连宿主 API,在 WORKBUDDY 租户下落地 / 查询资源数据。
| 资源域 | 能力 | 说明 |
|---|---|---|
| 业务销售区域 | 查询 / 保存目的地销售区域 | 租户配置项;国内 domesticDestNames、出境 overseasDestNames |
| 平台行程 | 搜索平台线路 / 批量导入租户行程库 | platform-trips/page + batch-reference |
| 商品库 | 增删查改、日历价、按类目分页 | 类目:门票 / 酒店 / 行程用车;商品 region 与租户销售区域不同 |
| 客户组织 | 列表 / 分页 / 详情 / 保存 | 租户客户主数据 |
| 运营订单 | 按下单日范围分页查询 | 只读核对;金额单位为元 |
| 行程关联 | 商品字段 tripItineraryIds |
关联已有行程 ID;不含行程规划/微调/评估接口 |
本 Skill 归属 vtrip_claw。数据只落在 JWT 租户;请求体不要传 tenantId。不要用 supplyBearerToken / Supply API。
何时使用
- 「从平台搜北京行程」「把这条平台线路导入租户行程库」「补充自有行程资源」
- 「查租户销售区域」「把成都、四川加到国内销售区域」「配置出境目的地日本」
- 「给租户建一个杭州门票」「维护酒店商品价库」「按经营区域筛商品」
- 「新增/更新客户组织」「查客户列表」
- 「查某段时间订单」「按客户组织筛订单」
不要用于:商品分销下单(vtrip-b2b-product-sell)、整段行程推荐报价(vtrip-b2b-iti-quotation)、路书展示(vtrip-roadbook)。
对话路由
- 从平台搜线路 / 导入租户行程库 →
--resource platform-trip(先page再batch-reference) - 查询/配置业务销售区域、目的地(国内/出境)→
--resource sales-region - 商品相关(门票/酒店/用车、价库存、商品 region)→
--resource product - 客户组织 / 客户信息 →
--resource customer-org - 订单核对 →
--resource order - 「行程库」若仅需关联商品到已有行程 → 商品 create/update 传
tripItineraryIds;若要从零规划行程 → 转行程报价 Skill,本 Skill 不接规划接口。 - 写操作(create/update/save/batch-reference)前确认关键必填字段;金额类商品字段单位为分。
详见 references/conversation-flow.md。
凭证
与 vtrip-b2b-product-sell 共用客户 ApiKey(推荐):
| 用途 | 环境变量(优先) | 兼容变量 |
|---|---|---|
| 客户 ApiKey | VTRIP_OPEN_API_KEY |
VTRIP_API_KEY |
| OpenSSO secret(可跳过 resolve) | VTRIP_OPEN_SSO_SECRET_KEY |
VTRIP_B2B_SSO_SECRET |
| 已有宿主 JWT(可跳过换票) | VTRIP_B2B_HOST_TOKEN |
VTRIP_B2B_AUTH_TOKEN |
| 配置 | 环境变量 | 默认值 |
|---|---|---|
| 宿主 API 基址 | VTRIP_B2B_HOST_API_BASE_URL |
https://dev-ata-api.visiotrip.com.cn |
| 开放平台基址 | VTRIP_OPEN_PLATFORM_BASE_URL |
https://open.vtrip.top:8443 |
鉴权优先级(脚本自动):
- 有
VTRIP_B2B_HOST_TOKEN→ 直接 Bearer - 有
VTRIP_OPEN_SSO_SECRET_KEY→POST /api/open/sso/token - 有
VTRIP_OPEN_API_KEY→secrets/resolve(app_code=vtrip_claw)→ secret →/token - 业务请求只带宿主 Bearer;禁止把 ApiKey 放进业务 Bearer;禁止回显 Token / secret / ApiKey
无凭证时输出 requires_credentials,不调用业务接口。详见 references/configure-credentials.md。
调用
# 平台行程线路搜索(目的地城市必填)
node scripts/data-model.js \
--resource platform-trip \
--action page \
--city-keyword "北京" \
--departure-city-keyword "天津" \
--total-days 2 \
--page-no 1 \
--page-size 20
# 将选中的平台行程导入租户行程库(ids 来自搜索结果的 id)
node scripts/data-model.js \
--resource platform-trip \
--action batch-reference \
--ids "62117"
# 查询租户业务销售区域(目的地)
node scripts/data-model.js --resource sales-region --action get
# 写入租户业务销售区域配置
node scripts/data-model.js \
--resource sales-region \
--action save \
--domestic-dest-names "成都,四川" \
--overseas-dest-names "日本"
# 商品分页(按类目 + 商品 region)
node scripts/data-model.js \
--resource product \
--action page \
--category-name "门票" \
--regions "杭州,乌镇" \
--page-no 1 \
--page-size 10
# 商品新增(复杂 body 用文件)
node scripts/data-model.js \
--resource product \
--action create \
--body-file ./tmp-product-create.json
# 商品详情 / 日历价 / 更新
node scripts/data-model.js --resource product --action get --id "<索引ID>"
node scripts/data-model.js --resource product --action prices --id "<索引ID>" \
--start-date "2026-09-01" --end-date "2026-09-30"
node scripts/data-model.js --resource product --action update --id "<索引ID>" \
--body-file ./tmp-product-update.json
# 客户组织
node scripts/data-model.js --resource customer-org --action list
node scripts/data-model.js --resource customer-org --action page --keyword "测试"
node scripts/data-model.js --resource customer-org --action get --org-id "<orgId>"
node scripts/data-model.js --resource customer-org --action save --body-file ./tmp-org-save.json
# 订单
node scripts/data-model.js --resource order --action list \
--start-time "2026-09-01" --end-time "2026-09-12" \
--page-no 1 --page-size 20
商品 --id 必须是列表/详情返回的 tenant_resource_index.id(索引 ID)。
平台行程导入的 --ids 必须是 平台行程搜索结果中的 id(如 62117),不要与租户商品索引 ID 混用。
写商品 / 导入平台行程要求旅行社员工身份(OpenSSO 用户满足)。
输出处理
脚本成功时输出 DATA_MODEL_RESULT_START / END 包围的 JSON:
{
"status": "ok",
"resource": "platform-trip",
"action": "page",
"markdown": "平台行程线路搜索成功,本页 N 条(共 M)。",
"data": { /* CommonResult.data */ }
}
- 只展示接口返回事实;禁止编造行程、价格、库存、区域、客户、订单。
- 平台行程列表展示名称、天数、出发地、概览、
alreadyReferenced等字段;导入前让用户确认所选id。 - 商品日历价金额单位为分;订单列表金额为元——回复用户时标明单位。
- 失败时按 references/error-handling.md 处理;HTTP 401 可提示重新配置 secret / Token。
硬性规则
- 渠道
vtrip_claw;数据落 JWT 租户;body 不传tenantId。 - 只调本文档宿主接口;不用 Supply;不用 OpenClaw ApiKey 通道;不用
POST /api/user/orders/list。 - 金额:商品价库存为分;订单为元;不擅自换算错单位。
- 不接行程规划 / 微调 / 评估;平台行程仅支持搜索 +
batch-reference导入;不传importCalendarPrices、tripDraft。 - 凭据安全:不回显 / 落盘 / 写入 URL 的 secret 与 Token;响应含凭据字段时阻断。
- Base URL 仅 HTTPS(本机 localhost 除外)。
- 品牌:湖南视旅科技有限公司 · Vtrip B2B 数据建模。
参考
- references/api.md:换票、平台行程、销售区域、商品、客户组织、订单字段与路径。
- references/configure-credentials.md:secretKey / Host Token 配置。
- references/conversation-flow.md:意图路由与追问。
- references/error-handling.md:错误分类。