new-erp-mcp 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  ### 1. 安装命令行工具
14
14
 
15
- 需要 Node.js 20+。npm 包名为 `new-erp-mcp`,安装后使用 `new-erp` 命令。也支持 `npm install -g ./new-erp-mcp-0.2.1.tgz` 安装下载的 npm 包。
15
+ 需要 Node.js 20+。npm 包名为 `new-erp-mcp`,安装后使用 `new-erp` 命令。也支持 `npm install -g ./new-erp-mcp-0.2.2.tgz` 安装下载的 npm 包。
16
16
 
17
17
  ```sh
18
18
  node --version
@@ -26,7 +26,7 @@ new-erp game-product-list --help
26
26
  npx --package=new-erp-mcp new-erp game-product-list --help
27
27
  ```
28
28
 
29
- 需要固定版本时使用 `new-erp-mcp@0.2.1`。
29
+ 需要固定版本时使用 `new-erp-mcp@0.2.2`。
30
30
 
31
31
  ### 2. 配置 ERP
32
32
 
package/docs/api.md CHANGED
@@ -32,7 +32,7 @@ for (const product of products) {
32
32
 
33
33
  1. `GET /sales/ling-xing/jy-amazon-selected-option` 获取 `other_select_name1_arr`,选择唯一标为 `ASIN` 的字段值,不硬编码字段编号。
34
34
  2. `GET /sales/ling-xing/jy-amazon-list-data` 使用 `other_select_name1` 和 `other_select_value1` 搜索,完整分页后按返回的 `asin` 精确核对。
35
- 3. 按每个匹配的 ERP `sku` 查询 `/products/game-product-list/index`,完整分页后精确匹配 SKU,取得产品 ID。
35
+ 3. 按每个匹配的 ERP `sku` 查询 `/products/game-product-list/index`,完整分页后精确匹配 SKU;没有精确匹配时再查询 `/products/game-product-list/game-disuse-product-list`,取得停用商品的产品 ID。
36
36
  4. `/products/product-basic/detail` 查询详情,核对 ID 和 SKU 后返回,不将 Listing 行 ID 当作产品基础 ID。
37
37
 
38
38
  这些接口由 [ERP 前端模块](./erp-asin-contract.md) 确认。ASIN 查询覆盖该 ERP 的 `jyAmazon` Listing 数据范围;未自动混入其他 Listing 接口或外部 ERP 数据。接口权限由登录账号决定。
@@ -16,10 +16,10 @@ ERP 前端的 `jyAmazon` API 模块声明:
16
16
 
17
17
  ## 商品详情关联
18
18
 
19
- `gameProductList` API 模块声明 `GET /products/game-product-list/index`。ASIN 搜索返回 ERP SKU 后,以本项目既有 SKU 查询参数搜索该接口,再按 SKU 精确过滤并取得产品基础 ID。
19
+ `gameProductList` API 模块声明 `GET /products/game-product-list/index` 和 `GET /products/game-product-list/game-disuse-product-list`。ASIN 搜索返回 ERP SKU 后,先查询在售商品;没有精确匹配时再查询停用商品。两者都使用 SKU 查询参数、完整分页和精确匹配,取得产品基础 ID。
20
20
 
21
21
  详情继续使用本项目既有 `/products/product-basic/detail?id=...`。Listing 行 ID、ERP SKU 和产品基础 ID 分别保留,不互相代替。
22
22
 
23
23
  ## 验证边界
24
24
 
25
- 已核对真实前端的路由、字段映射及使用方式,并以本地接口响应验证 CLI/MCP 的完整调用链、分页、账号隔离、模糊匹配过滤和异常处理。当前工作环境没有 ERP 登录会话,因此未声称使用生产账号实测 ASIN 业务结果。实际账号未开放该菜单或搜索枚举时直接报错,不转接领星外部接口或公开亚马逊商品页。
25
+ 已核对真实前端的路由、字段映射及使用方式,并以本地接口响应验证 CLI/MCP 的完整调用链、分页、账号隔离、模糊匹配过滤和异常处理。已使用登录账号通过 MCP 实测 ASIN 查询,验证停用商品详情及图片获取;公开文档不记录业务标识和结果。实际账号未开放该菜单或搜索枚举时直接报错,不转接领星外部接口或公开亚马逊商品页。
package/docs/mcp.md CHANGED
@@ -13,7 +13,7 @@ npm install -g new-erp-mcp
13
13
  也可以下载打包生成的 `.tgz`,通过 npm 安装:
14
14
 
15
15
  ```sh
16
- npm install -g ./new-erp-mcp-0.2.1.tgz
16
+ npm install -g ./new-erp-mcp-0.2.2.tgz
17
17
  ```
18
18
 
19
19
  在自己的终端完成登录,ERP 地址替换为实际地址:
@@ -40,6 +40,15 @@ new-erp setup --client codex --name my-erp
40
40
 
41
41
  不要通过临时的 `npx` 安装目录运行 `setup`;全局安装能提供持久的脚本路径。移动包目录、切换 Node.js 安装位置或更新包后重新运行 `setup`。Codex 的接入方式见 [OpenAI 官方 MCP 文档](https://learn.chatgpt.com/docs/extend/mcp)。
42
42
 
43
+ ## 更新版本
44
+
45
+ ```sh
46
+ npm install -g new-erp-mcp@latest
47
+ new-erp setup --client codex
48
+ ```
49
+
50
+ 更新后重启 MCP 客户端以加载新代码。本机登录会话保存在包目录之外,更新包不会删除会话;同一系统用户、ERP 地址和会话路径下,有效 token 可继续使用,无需重新登录。token 失效、主动退出或更换上述配置后,重新运行 `new-erp login`。
51
+
43
52
  ## 可用工具
44
53
 
45
54
  | MCP 工具 | 用途 |
@@ -84,4 +93,4 @@ npm pack
84
93
 
85
94
  `npm pack` 生成可供 npm 安装的 `.tgz`。可作为 Release 附件分发;上传 Release 或发布 npm registry 是单独的发布操作。包中不包含本机会话、项目配置或测试数据。
86
95
 
87
- `npm run check:package` 检查实际发布文件清单,阻止内部服务地址、个人路径、凭据和业务导出文件进入包。检查已生成的包可用 `node test/check-package-privacy.js ./new-erp-mcp-0.2.1.tgz`;检查结果只输出文件、行号和类别,不输出匹配到的敏感值。
96
+ `npm run check:package` 检查实际发布文件清单,阻止内部服务地址、个人路径、凭据和业务导出文件进入包。检查已生成的包可用 `node test/check-package-privacy.js ./new-erp-mcp-0.2.2.tgz`;检查结果只输出文件、行号和类别,不输出匹配到的敏感值。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "new-erp-mcp",
3
- "version": "0.2.1",
3
+ "version": "0.2.2",
4
4
  "description": "CLI and local MCP tools for querying new-erp products, images and inventory",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -4,6 +4,7 @@ const { queryData, queryList } = require('./query.js');
4
4
  const OPTIONS_ROUTE = '/sales/ling-xing/jy-amazon-selected-option';
5
5
  const LISTING_ROUTE = '/sales/ling-xing/jy-amazon-list-data';
6
6
  const PRODUCT_ROUTE = '/products/game-product-list/index';
7
+ const DISCONTINUED_PRODUCT_ROUTE = '/products/game-product-list/game-disuse-product-list';
7
8
 
8
9
  async function productsForAsin(asin, { token, maxPages }) {
9
10
  const { data: options } = await queryData(OPTIONS_ROUTE, {}, { token });
@@ -34,8 +35,12 @@ async function productsForAsin(asin, { token, maxPages }) {
34
35
  const source = { ...listings.source, totalCount: listings.totalCount,
35
36
  fetchedCount: listings.fetchedCount, complete: listings.complete, matchedCount: matched.length };
36
37
  for (const [sku, asinListings] of groups) {
37
- const result = await queryList(PRODUCT_ROUTE, { sku }, pagination);
38
- const exact = result.list.filter((row) => (row.sku ?? row.sku_info?.sku) === sku);
38
+ let exact = [];
39
+ for (const route of [PRODUCT_ROUTE, DISCONTINUED_PRODUCT_ROUTE]) {
40
+ const result = await queryList(route, { sku }, pagination);
41
+ exact = result.list.filter((row) => (row.sku ?? row.sku_info?.sku) === sku);
42
+ if (exact.length) break;
43
+ }
39
44
  if (!exact.length) throw new EmptyResultError('new-erp product-detail', `No ERP product found for ASIN ${asin}, SKU ${sku}`);
40
45
  for (const row of exact) {
41
46
  const id = positiveInteger(row.id, undefined, 'ERP product id');
@@ -47,7 +47,7 @@ new-erp packing-order-pages --project DEMO-PROJECT --warehouses DEMO-DEST --star
47
47
  npx --package=new-erp-mcp new-erp game-product-list --help
48
48
  ```
49
49
 
50
- 替换末尾命令和选项即可查询。经常使用时用 `npm install -g new-erp-mcp` 安装;已有源码也可在仓库根目录执行 `npm install -g .` 或 `node scripts/new-erp.js <command>`。固定版本可使用 `new-erp-mcp@0.2.1`。
50
+ 替换末尾命令和选项即可查询。经常使用时用 `npm install -g new-erp-mcp` 安装;已有源码也可在仓库根目录执行 `npm install -g .` 或 `node scripts/new-erp.js <command>`。固定版本可使用 `new-erp-mcp@0.2.2`。
51
51
 
52
52
  单独安装本技能不会安装运行代码。不要从技能目录推断脚本路径。
53
53