菜单树-创建
接口信息
- 接口地址:
{your-site-url}/api/skill/menu/create
- 基础 URL:
{your-site-url} 需替换为你自己的独立站 URL 地址,如 https://your-domain.com/apimanager666
- 请求方式:
POST
- 说明: 此接口用于创建一个新的菜单树(包含多级菜单子项)。成功后返回全部菜单树列表。
认证
请求头中需要携带 skill-access-token:
| Header |
值 |
skill-access-token |
{your-skill-access-token} (请替换为你自己的 token) |
Content-Type |
application/json |
请求参数 (JSON Body)
| 字段 |
类型 |
必填 |
说明 |
menu_name |
string |
是 |
菜单树名称 |
menu_items |
Array[Object] |
是 |
菜单子项数组,支持多级嵌套。每级通过 child 字段包含下级子项 |
| 字段 |
类型 |
必填 |
说明 |
id |
string |
否 |
创建时留空,系统自动生成 |
name |
string |
是 |
菜单子项名称 |
url_type |
int |
是 |
链接类型 code。值从 菜单-Url选择器 获取,对应返回值中的 code 字段 |
url_value |
string |
是 |
链接值。对应 菜单-Url选择器 返回值中的 url 字段。不同 url_type 对应的 url 格式见下表 |
object_id |
int/string |
否 |
链接类型对应的实体 ID(如商品 ID、页面 ID 等)。固定链接类型时留空 |
object_title |
string |
否 |
对应实体的显示标题 |
open_new |
int |
是 |
是否新窗口打开。1 = 是,2 = 否 |
is_hidden |
int |
是 |
是否隐藏。1 = 是,2 = 否 |
child |
Array[Object] |
否 |
下级子菜单数组,结构同 menu_items,支持无限级嵌套 |
url_type 类型枚举
| code |
text |
url |
说明 |
1 |
首页 |
/ |
网站首页 |
2 |
商品专辑页 |
/collections/{handle} |
需选择具体专辑 |
3 |
商品详情页 |
/products/{handle} |
需选择具体商品 |
4 |
博客专辑页 |
/blogs/{handle} |
需选择具体博客专辑 |
5 |
博客文章页 |
/blog/{handle} |
需选择具体文章 |
6 |
自定义页面 |
/pages/{handle} |
需选择具体页面 |
7 |
查询订单 |
/account/order-query |
固定页面 |
8 |
自定义 URL |
(手动输入) |
可输入任意 URL |
9 |
Contacts |
/contacts |
联系我们 |
10 |
商品专辑页(所有商品) |
/collections/all |
展示所有商品 |
11 |
商品评论页 |
/review/all |
所有评论 |
12 |
专辑列表页(指定专辑) |
/collections |
专辑列表入口 |
url 拼接规则:
- 固定链接(code 1、7、9、10、11、12):
url_value 直接取表中 url 的值
- 动态链接(code 2、3、4、5、6):将
url 中的 {handle} 替换为所选实体的 handle
- 例:商品 handle 为
diamond-chain-earrings-02d9fu8a,code=3 → url_value = /products/diamond-chain-earrings-02d9fu8a
- code 8(自定义 URL):手动填写任意完整 URL,如
https://example.com/page
请求示例
cURL
curl --location --request POST '{your-site-url}/api/skill/menu/create' \
--header 'skill-access-token: {your-skill-access-token}' \
--header 'Content-Type: application/json' \
--data-raw '{
"menu_name": "terry tree",
"menu_items": [
{
"id": "",
"name": "Home",
"url_type": 1,
"url_value": "/",
"object_id": "",
"object_title": "",
"open_new": 2,
"is_hidden": 2,
"child": []
},
{
"id": "",
"name": "Collections",
"url_type": 2,
"url_value": "/collections/spu",
"object_id": 366,
"object_title": "智能专辑:spu",
"open_new": 2,
"is_hidden": 2,
"child": [
{
"id": "",
"name": "Dress",
"url_type": 2,
"url_value": "/collections/outdoor-lighting-atx0mv5u",
"object_id": 360,
"object_title": "Outdoor Lighting",
"open_new": 2,
"is_hidden": 2,
"child": []
}
]
}
]
}'
返回结果
code 为 200 表示调用成功;code 不为 200 表示调用失败。
成功响应
成功后返回全部菜单树列表(含新创建的菜单树),与 菜单树-列表 返回结构一致:
{
"code": 200,
"data": [
{
"id": 746,
"s_id": 18,
"shop_id": 15,
"name": "terry tree",
"can_delete": 1,
"created_at": "2026-06-04 22:18:30",
"updated_at": "2026-06-04 22:18:30",
"remote_id": 0,
"item": [
{
"id": 2372,
"shop_id": 15,
"menu_id": 746,
"name": "Home",
"parent_id": 0,
"url_type": 1,
"url_value": "/",
"object_id": 0,
"object_title": "",
"open_new": 2,
"is_hidden": 2,
"level": 1,
"position": 0,
"created_at": 1780582710,
"updated_at": 1780582710,
"remote_id": 0
},
{
"id": 2373,
"shop_id": 15,
"menu_id": 746,
"name": "Collections",
"parent_id": 0,
"url_type": 2,
"url_value": "/collections/spu",
"object_id": 366,
"object_title": "智能专辑:spu",
"open_new": 2,
"is_hidden": 2,
"level": 1,
"position": 1,
"created_at": 1780582710,
"updated_at": 1780582710,
"remote_id": 0
}
]
}
],
"message": "success"
}
返回字段说明
| 字段 |
类型 |
说明 |
code |
Number |
状态码,200 表示成功 |
message |
String |
执行结果的文字描述 |
data |
Array[Object] |
全部菜单树列表 |
data 子项 - 菜单树字段
| 字段 |
类型 |
说明 |
id |
int |
菜单树 ID(数据库主键) |
s_id |
int |
店铺内部菜单 ID(头部导航固定为 1,尾部固定为 2,其余依次递增) |
shop_id |
int |
店铺 ID |
name |
string |
菜单名称 |
can_delete |
int |
是否可删除。1 = 可删除,2 = 不可删除(系统默认菜单树) |
remote_id |
int |
远程 ID,用于数据同步 |
created_at |
string |
创建时间 |
updated_at |
string |
最后更新时间 |
item |
Array[Object] |
该菜单树下的一级菜单子项列表。注意:列表接口仅返回一级数据,不包含二级、三级子菜单 |
item 子项 - 菜单子项字段
| 字段 |
类型 |
说明 |
id |
int |
菜单子项 ID |
shop_id |
int |
店铺 ID |
menu_id |
int |
所属菜单树 ID |
name |
string |
菜单子项名称 |
parent_id |
int |
父级 ID。0 表示一级菜单 |
url_type |
int |
菜单链接类型。code 值从 菜单-Url选择器 获取 |
url_value |
string |
菜单链接值 |
object_id |
int |
链接类型对应的实体 ID(如商品 ID、页面 ID 等) |
object_title |
string |
对应实体的标题(如商品标题、页面标题等) |
open_new |
int |
是否新窗口打开。1 = 是,2 = 否 |
is_hidden |
int |
是否隐藏。1 = 是,2 = 否 |
level |
int |
菜单层级。1 = 一级 |
position |
int |
排序位置 |
created_at |
int |
创建时间戳 |
updated_at |
int |
更新时间戳 |
remote_id |
int |
远程 ID,用于数据同步 |
注意事项
- 创建时
menu_items 中各项的 id 留空即可,系统会自动分配
child 支持无限级嵌套,构建多级菜单结构
url_type 和对应的 object_id / url_value 需匹配,固定链接类型(如首页、联系我们)无需 object_id