> **前置条件** — 执行以下任何命令前，请先确认已完成认证。如未认证，参见 [`../../shb-shared/SKILL.md`](../../shb-shared/SKILL.md)。

# shb-cli product catalog

查询产品目录类型及其自定义字段定义。产品目录分为两层：
- **目录（conData=0）**：分类节点，下面还有子分类或类型
- **类型（conData=1）**：叶子节点，产品创建时通过 `--catalog-id` 选择

## 查询目录类型列表

```bash
# 查询所有目录和类型
shb-cli product catalog list

# 只查"类型"（叶子节点，可用于 product create --catalog-id）
shb-cli product catalog list --con-data 1

# 只查"目录"（分类节点）
shb-cli product catalog list --con-data 0

# 关键字搜索
shb-cli product catalog list --keyword "设备"

# 表格展示（推荐，快速找 ID）
shb-cli product catalog list -o table
shb-cli product catalog list --con-data 1 -o table
```

### catalog list 完整 Flags

| Flag | 说明 | 默认值 |
|------|------|--------|
| `--keyword` | 关键字搜索 | — |
| `--name` | 目录类型名称 | — |
| `--num` | 目录类型编号 | — |
| `--con-data` | 类型筛选：0=目录，1=类型 | 不过滤 |
| `--page` | 页码（从 1 开始） | 1 |
| `--page-size` | 每页条数 | 10 |
| `--data` | 完整 JSON body | — |
| `--file` | JSON body 文件路径（最后选择，仅本地已有文件时用） | — |

### 返回字段（表格模式）

| 列 | 说明 |
|----|------|
| ID | 目录/类型 ID（数字），作为 `--catalog-id` 的值 |
| 类型名称 | 名称 |
| 类型编号 | 业务编号 |
| 类型 | 目录/类型 |
| 路径 | 完整分类路径 |
| 排序 | 显示顺序 |

## 查询目录自定义字段

```bash
# 查询目录类型下的自定义字段定义
shb-cli product catalog field list

# 表格展示
shb-cli product catalog field list -o table
```

### 返回字段（表格模式）

| 列 | 说明 |
|----|------|
| 字段名 | `fieldName` |
| 显示名 | 界面展示名称 |
| 类型 | 控件类型 |
| 必填 | 是/否 |
| 系统字段 | 是/否 |
| 排序 | 显示顺序 |

## 典型使用流程

1. 查询可用类型，找到目标类型的 ID：
   ```bash
   shb-cli product catalog list --con-data 1 -o table
   ```

2. 如需填自定义字段，查询目录字段定义：
   ```bash
   shb-cli product catalog field list -o table
   ```

3. 创建产品时指定目录 ID：
   ```bash
   shb-cli product create --name "产品A" --catalog-id <catalogId>
   ```

## 注意

- `--catalog-id` 接受数字 ID，需从 `catalog list` 的 ID 列获取。
- 目录（`conData=0`）是分类容器，不能直接作为产品的 `catalogId`；应选类型（`conData=1`）。
