For AI agents: the complete documentation index is available at /blog/llms.txt, the full documentation bundle is available at /blog/llms-full.txt, and this page is available as Markdown at /blog/noon-listing-error-codes-guide.md.

Noon 上架报错怎么解决?接口、报价、内容三层对照

骆驼掌柜 · 2026 年 10 月 27 日 · 约 19 分钟

上架失败先分层

上架失败以后,改起来不慢,慢的是不知道该改哪里。同一个商品提交失败,可能卡在接口,可能卡在报价,也可能卡在内容审核,三处的报错长相差得远。

分不清在哪一层,就会照着错的办法改一遍,改完还是同一个报错。

三层分别是:

  • 接口层:调 Noon 接口时直接返回的错,带 HTTP 状态码,出现在提交、改价、改库存、建变体的时候。
  • 报价层:Noon 后台点 View Issues 才看得到的 offer_issues,接口返回里没有。
  • 内容层:Content QC 那套子问题,决定内容这关能不能过。

接口层的错当场就能看到。报价层和内容层往往提交「成功」之后才在后台浮现。所以排查从接口层往回推,先确认提交这一下到底成没成。

层在哪看报错典型表现是否阻断提交
接口层接口返回 / 调用日志partner_sku not valid、401、403、404是,请求直接失败
报价层后台 View IssuesContent Issues、No Offer Created、Stock Issues否,商品进 DRAFT
内容层Content QC 面板incorrect_categorization、invalid_image否,内容状态不达标

接口层报错

接口层报错是 Noon 接口直接返回的,带 HTTP 状态码。下面九条原文照抄,不要改英文,拿去对号:

1. partner_sku PSKU_596205_76522361106708446902_X not valid
2. nsku_child Z352C03B373A893BBA1FAFZ is invalid
3. HTTP 401:{"error":"UnAuthenticated"}
4. HTTP 403:{"status_id":7,"code":"PERMISSION_DENIED","message":"you don't have access over this project"}
5. HTTP 404:{"status_id":5,"code":"NOT_FOUND","message":"Not Found"}
6. HTTP 400:{"error":"invalid (deleted or belong to another partner) psku codes {...}"}
7. brand `test` is not valid
8. product_subtype `` is not valid
9. 保修修改失败:全球(NGS)模式仅支持设置为「无保修」,请改为无保修后重试

第 8 条在提交空字符串时也会报。

每条报错的成因和处理动作:

报错要点成因处理动作
partner_sku not valid编号含非法字符,或跨店铺用错统一纯字母数字编号,确认归属账号
nsku_child invalid父体未建好就建子体,或编号非法先建稳父体,再建子体
HTTP 401token 过期,没登录重新授权
HTTP 403登录了但没权限,或被限频看有无 JSON 体分辨
HTTP 404接口路径或 ID 类型不对核对父体/子体 ID 类型
HTTP 400psku 已删或不属于本账号换编号或确认账号
brand 字段品牌名不在 Noon 品牌库注册品牌或换已存在品牌名
product_subtype 字段字段传空字符串显式传合法值,不能留空
NGS 保修模式只支持「无保修」改为无保修后重试

两个高频编号报错

partner_sku 和 nsku_child 出现频率最高,占了接口报错的大头。成因有三类:编号里混了非法字符(中文、空格、斜杠、括号都算),变体父体还没建好就先建子体,跨店铺拿错了编号。

把 SKU 生成规则统一成纯字母数字,能挡掉大部分。变体先建父体,等接口返回成功、后台查得到,再去建子体。顺序反了必报 nsku_child invalid。

401 与 403 的差别

401 是没登录,token 过期了,重新授权就解决。403 是登录了但没权限,麻烦一些。

403 还有一种情况容易误判:请求频率过高被平台拦下来。特征是返回里没有 JSON 错误体,或者干脆返回一段 HTML。这种重新授权没用,等 10 到 15 分钟自己恢复,硬重试只会延长封锁。

遇到 403,先看返回里有没有 PERMISSION_DENIED 这类 JSON 体。有就是权限问题,去查这个 project 的授权;没有就是限频,放下手等一会儿。

404 与 400 的真因

404 在 Noon 接口里通常跟商品无关。多数是接口路径写错,或者参数里的 ID 类型不对,比如该传子体 ID 的地方传了父体 ID。核对接口文档里每个参数要的 ID 类型,比怀疑商品丢了有用。

400 那条 invalid (deleted or belong to another partner) psku codes,意思是这个 psku 已经删过,或者不属于当前 partner 账号。换编号,或者确认调接口用的账号确实拥有这个 psku。

品牌与类目字段

brand `test` is not valid

一般是品牌名不在 Noon 品牌库里。去品牌注册怎么操作把品牌加进库,或者换成库里已有的品牌名。品牌名的大小写和空格也要跟库里一致,差一个字符就报无效。

product_subtype `` is not valid

上面这个坑在于,你提交空字符串它也会报。字段不能留空,得显式传一个合法值。空字符串在日志里看不出异常,排查时要专门去翻请求体,确认这个字段有没有值。

报价层报错

这一层不在接口返回里。要在 Noon 后台点 View Issues 才看得到,官方叫 offer_issues。查的时候按英文名对,拿中文去搜是搜不到东西的。

后台英文显示内部 key中文官方说明原文 / 真实含义
Content Issuesproduct_active内容问题商品文案/图片/属性不达标,平台没放行
No Offer Createdno_offer未生成报价"To generate your offer, please ensure you have added price and product content."
Stock Issuesstock_issues库存未入库"You have not inbounded any stock." 该站点没有可售库存
(部分通道)stock_check库存待确认库存数据还在同步,通常自动消失,与「未入库」不是同一件事
Offer Gatedoffer_gated类目/品牌受限"You are currently not eligible to list this product as it belongs to a gated category or brand. Please submit an approval request with the required documents."
Product Banned in Countryvalid_product_country该国禁售"You cannot sell this product in <目的国>."
Unable to list for International Salexborder_markup_within_cap不支持跨境销售"This item is not eligible for international sale at this time due to fulfilment and cost constraints."

库存未入库和待确认

stock_issues(库存未入库)和 stock_check(库存待确认)名字像,处理动作完全相反。

stock_issues 是这个站点没有可售库存,要补货、要入仓。库存不补,报价一直不活。stock_check 只是库存数据还在同步,过一会儿自己消失,不用动。

拿不准就看后台标的是哪个 key。见到 Stock 就补货,补了也救不回 stock_check。

未生成报价查内容

no_offer 的官方说明写得很清楚:价格和商品内容缺一个,报价都不生成。

所以遇到「未生成报价」,先核对图片和必填属性过没过内容关。很多人卡在这里反复调价格,根子却在内容层某张图没传成功。内容不过,报价不会生成。

类目受限与跨境拦截

offer_gated 是类目或品牌受限,要提交资质才能解,比如品牌授权书、类目证书。

valid_product_country 和 xborder_markup_within_cap 是目的国和跨境维度的判定。本土店照样会撞,一个本土沙特店想卖到阿联酋,也会被这两个码拦。

这两类码有个共同的麻烦:开放接口取不全,只有 Noon 后台弹窗能看到完整信息。用工具同步状态的,可能显示「无问题」,实际后台早拦了。碰到这两类,以 Noon 后台为准,别信工具的绿灯。

内容层报错

内容层是 Content QC 那套检查,一共有八个子问题,对应后台弹的 code:

code中文说明
incorrect_categorization类目不正确报错里会带 "A more appropriate subtype like 'yyy' is available.",按它给的建议改
invalid_image图片不合格尺寸、背景、水印等不符合规范
missing_image缺主图第 1 张为空或传失败
invalid_title标题不合规含禁用词、格式不对、堆砌
invalid_description描述不合规长度、格式或内容违规
brand_violation品牌违规品牌信息冲突或侵权
invalid_attribute属性不合规必填项缺失或格式不对
brand_mismatch品牌不匹配官方原文:Inferred brand XXX is a protected brand and should not be listed as generic.

类目不正确的处理

incorrect_categorization 的报错会直接告诉你更合适的子类,原文是 "A more appropriate subtype like 'yyy' is available." 按它给的建议改,比自己猜快。

类目错会导致整条内容过不了 QC,后面的报价层也不生成。改完要等一轮 QC 重跑,再回来看结果。

标题与图片的合规

invalid_title 和 invalid_image 是高频项。标题哪些词会被驳回,看标题规范与驳回原因。图片的尺寸、背景、被拒情形,看图片规范与常见被拒原因。

missing_image 一般是主图(第 1 张)传失败或为空,不是所有图都没传。专门去查第一张的上传状态。

品牌不匹配要重点防

brand_mismatch 最容易被忽略。Noon 会用品牌库比对标题、图片、型号里的品牌信息。卖的是别人的东西,哪怕你没写授权,也会被识别出来。官方原文:Inferred brand XXX is a protected brand and should not be listed as generic.

从 1688 采集商品时,供应商标题里常带「适用 XXX」「兼容 XXX」,这些词直接触发判定。采集完先用脚本清掉再提交。

brand_violation 和 brand_mismatch 是两件事。前者是品牌信息本身冲突或侵权,后者是系统推断你挂了受保护品牌却标成 generic。处理的时候别混。

识别假成功

假成功是 Noon 上架里最坑的一种情况。真实提示原文:

内容父体 ZDFF6266B7514717EC9EZ 在 noon 侧不存在,本次上架属于「假成功」,需要重新提交内容

你这边提交显示成功,本地记录也写了已上架,Noon 侧却查不到这个内容父体。改价、改库存、删商品,后面每个动作都会失败,因为对端没有这个东西。相关的报错是:

在 Noon 已上架列表中查不到该商品(可能尚未真正上架,或店铺不匹配),无法删除

原因是提交接口返回了成功状态,但后台创建内容父体是异步的。中间某个环节掉了,你拿到的就是个假信号。

所以本地记录「已上架」不算数。去 Noon 后台搜商品编号,搜得到才算真上架。搜不到就重新提交内容,重提之前先把那条脏数据清掉,不然会重复创建。

假成功最耽误事的地方在于,你以为已经上架,开始投广告等单,单子一直不来。新上架的商品,提交完去后台搜一遍。

DRAFT 不是草稿

Noon 后台商品状态里的 DRAFT,很多人以为是「自己还没编辑完」。它的实际含义是「平台没放行,买家买不到」,跟卖家编辑完没编辑完没关系。

这个误判会让人一直补内容,问题却不在内容上。

后台状态为 DRAFT 的商品 55 条,55 条全部带 offer_issues 问题清单;其中 40 条卖家侧的销售开关(seller_status)已经激活。卖家这边开了,平台那边没过。

看到 DRAFT 别去补内容,先去报价层和接口层查平台为什么没放行。DRAFT 是结果,原因在 offer_issues 和 Content QC 里。

审核通过不等于能卖

内容状态(overall status 里的 ACTIVE / INACTIVE)只说明内容这一关过了,文案、图片、属性达标。能不能上架还看库存、价格、销售资格。

所以会出现内容全绿、商品却不在售的情况。这时候反复改文案没用,去查报价层的 offer_issues。

内容质量怎么算合格讲的是前面那一关,报价层的事还得回到本篇去看。把内容状态当成放行凭证,是新手最容易栽的坑。

排查顺序

上架失败了按这七步走,从「提交有没有成功」开始,到「403 是权限还是限频」结束。

步骤查什么动作
1 提交有没有成功后台搜商品编号搜不到就是假成功,重新提交内容
2 内容父体状态DRAFT 还是真上架DRAFT 说明平台没放行
3 内容层 Content QC八个子问题有无红的类目、标题、图片、品牌先过
4 报价层 offer_issues点 View Issues看库存、价格、类目受限、跨境
5 库存与价格stock_issues / no_offer补货或补齐价格和内容
6 销售资格与限制offer_gated / 禁售 / 跨境提资质或以后台为准
7 403 是权限还是限频有无 JSON 错误体有是权限问题,无则是限频等 10-15 分钟

第一步先确认提交成没成。后面所有层的问题,都建立在「提交成功了」这个前提上。第一步就发现假成功的,后面六步都不用走,直接重提内容。

第七步的 403 最容易被误处理。没有 JSON 体就是限频,重新授权解决不了,只能等。

几个具体的情形

下面六种情形,每种直接给动作。

情形现象直接动作
采集商品批量失败brand_mismatch 集中出现批量清掉「适用/兼容 XXX」再提交
变体全报 nsku_child invalid父体未建好或编号非法先建父体,统一纯字母数字编号
改价删品提示查不到假成功后遗症后台搜编号,搜不到重提内容
内容全绿不在售报价层拦了查 offer_issues,不反复改文案
跨境商品本土被禁valid_product_country以 Noon 后台弹窗为准
工具绿灯后台有拦接口取不全销售资格类一律信后台

从 1688 采集来的商品批量失败 供应商标题里的「适用 XXX」会触发品牌库比对。清词要用脚本扫标题字段,人工挑会漏,漏掉的那几个还会继续报同一个错。

变体全部报 nsku_child invalid 父体要在 Noon 后台查得到,再去建子体。接口返回成功不代表父体已经落地,顺序反了会一直报这个错。

改价提示失败、删商品提示查不到 假成功的后遗症,内容父体在 Noon 侧不存在。重提之前先清掉那条脏数据,不然会重复创建,越理越乱。

内容状态全绿但商品不在售 大概率是库存或价格没齐。改文案对这种情况无效。

跨境店商品在本土被禁售或提示不支持跨境 目的国维度的判定,本土店也会撞。它算的是目的国能不能卖、履约成本划不划算,跟店铺类型无关。

工具显示无问题、后台却有拦截 开放接口取不全,类目受限和跨境拦截这两类最容易漏。跟销售资格相关的判定,以后台为准。

区分官方码和工具码

不同服务商会给自己的失败码起名字,比如 MULTI_GROUP_PARTIAL、OFFER_PARTIAL、MAP_FAILED。这些不是 Noon 的官方错误码,拿去搜官方文档、问客服都得不到答案,它们只存在于那家服务商的代码里。

对比项Noon 官方码服务商工具码
来源Noon 接口返回,或后台 View Issues第三方服务商自己起的名
形态带 HTTP 状态码 + JSON 里的 code 字段一串大写单词,没有状态码
例子PERMISSION_DENIED、NOT_FOUND、product_active、no_offerMULTI_GROUP_PARTIAL、OFFER_PARTIAL、MAP_FAILED
能不能搜到解释能,官方文档有对应说明搜不到,只在自家代码里存在
怎么用当结论,直接按它定位只能当线索,不能当结论

查问题从 Noon 的原始返回查起。把工具码当官方码去搜,浪费的是自己的时间,还容易把问题判到错的层。

上架被拦住的时候,先把报错原文完整复制下来,照着上面的层去定位。在三个层之间乱试,费的时间更多。

更多上架相关的共性问题,看商品上架常见问题 FAQ。涉及跨境的资质和限制,看跨境销售常见问题。