商品品牌字段一个空的都没有,17个站把自己写成了好几个牌子
本文目录
- 商品数据里的品牌那一栏,为什么56个站一个空的都没有?
- 一栏全填了,为什么还有37个站对不上?
- 多出来的那些品牌,拆开看是哪三类?
- 一半以上是同一个品牌换了个写法
- 有一批的字面意思就是“没填”
- 剩下的才是真的别的牌子
- 同一个品牌能写出几种花样?
- 多带一截修饰词,占了三分之二
- 大小写、空格和那个与号
- 地区后缀是第二常见的分叉
- 品牌栏里写着DEV和production,这批货还在卖
- 品牌名写成None的那190件,到底是什么货?
- 其中有一批的网址以spacer开头
- 剩下那95件是真在卖的衣服
- 有人把品牌字段当开关用
- 这些值会不会原样流进结构化数据?
- 九成的页面把接口里那个值一字不差地抄了出去
- 那些不该出门的值,确实出门了
- 做了清洗的那七个站,各清洗各的
- 还有一个站,两边都脏,而且脏得不一样
- 真的是多品牌的那些站,这一栏用对了吗?
- 子品牌矩阵
- 设计师、联名和第三方
- 顾客的名字被写进了品牌栏
- 主品牌名和域名对不上的9个站,问题出在哪?
- 自己的站该怎么查这一栏?
- 常见问题解答
- 品牌字段填得不统一,Google真的会当成两个品牌吗?
- 那到底该以哪个写法为准?
- 子品牌应该写母品牌还是子品牌?
- 设计师联名款,品牌栏写设计师名字对不对?
- 品牌栏里填了None,会不会直接被判成垃圾内容?
- 怎么知道自己的商品页有没有把这个脏值吐出去?
- 这批数据能代表所有电商站吗?
- 顺手还能查哪几个相邻的坑?
- 权威参考资料
摘要:56个英文独立站的43912件在售商品,品牌字段填写率100.0%,一件没漏。可37个站的商品品牌不止一个答案,非主品牌的3237件里有57.1%只是同一个牌子换了个写法;190件商品的品牌栏写着None,28件写着Exclude,还有21件带着DEV和production这样的环境标记。用真实浏览器打开商品页读结构化数据,130个页面里有118个把接口里那个值一字不差地交了出去,包括一句带冒号的广告语、一个写着DEV的开发环境名,以及一家画框店的企业客户。
商品数据里的品牌那一栏,为什么56个站一个空的都没有?
先说个让人放心的数字:43912件在售商品,品牌字段的填写率是100.0%。一件都没漏。
这批数据来自60个英文独立站的公开商品清单接口,最后有56个站拿到了完整清单,读的是商品对象上那个叫vendor的字段。做技术审计的人看到这种数字,通常会在检查表上打个勾就翻页了——覆盖率满分,这一项没问题,下一项。
但我把这一栏的取值摊开数了一遍,发现56个站里有37个,商品的品牌不止一个答案。再往下拆,那些“多出来的品牌”里,超过一半根本不是别的牌子,是这个站自己的名字换了个写法。还有190件商品,品牌栏里工工整整地填着两个英文单词:None。
填写率和可用性是两回事,这中间的距离,这篇要一步步量出来。
技术SEO的检查表上,字段类的项目几乎清一色按“填没填”打分——结构化数据里价格64个站全写了、规格只有7个那次,我用的也是这把尺。这把尺在多数字段上够用,因为多数字段填错了会当场报错:价格填成字母,前台直接崩;日期填成汉字,校验器立刻叫。品牌栏不叫。它接受任何字符串,你写什么它存什么,包括你的开发环境名字。
一栏全填了,为什么还有37个站对不上?
先把口径说清楚。我给每个站算了一个“主品牌”——就是这个站的商品里出现次数最多的那个品牌值。56个站里,19个站从头到尾只有这一个值,干干净净。剩下37个站,商品的品牌值不止一种。
非主品牌的商品一共3237件,占全样本的7.4%。这个数字乍看不大,落到单站上就很难看了:迪卡侬那个站,占比最高的品牌值只覆盖37.6%的商品;一个叫menuspace的家居站,主品牌只占54.9%,全站商品分给了44个不同的品牌值——平均每19件货换一个牌子。
| 站点 | 商品数 | 品牌值个数 | 主品牌占比 |
|---|---|---|---|
| menuspace.com | 821 | 44 | 54.9% |
| fahertybrand.com | 2293 | 13 | 97.3% |
| decathlon.com | 518 | 11 | 37.6% |
| taylorstitch.com | 3000 | 10 | 93.2% |
| avocadogreenmattress.com | 245 | 9 | 56.7% |
| framebridge.com | 239 | 9 | 56.1% |
| marinelayer.com | 2556 | 6 | 96.9% |
| wusthof.com | 444 | 5 | 69.8% |
看到这张表的第一反应大概是“这些站在卖别人的货”。有几个确实是,但只是少数。真正的答案要把这3237件拆开才看得见。
多出来的那些品牌,拆开看是哪三类?
我给这3237件做了一次分类。判据很朴素:把品牌值去掉重音符号、把与号换成and、砍掉一批常见的修饰尾巴(公司后缀、地区代码、Official、Site、Store之类),再只保留字母和数字。归一之后如果和主品牌撞上了,就算同一个牌子;如果这个值本身的字面意思就是“没填”,单独算一类;剩下的才是真的别的牌子。
| 类别 | 件数 | 占非主品牌商品 |
|---|---|---|
| 同一个品牌换了个写法 | 1847 | 57.1% |
| 字面写着“没填” | 218 | 6.7% |
| 真的是别的牌子 | 1172 | 36.2% |
一半以上是同一个品牌换了个写法
1847件,57.1%。这些商品的品牌值和主品牌指的是同一个东西,只是拼法不同。把这一类归并掉之后,56个站的品牌值总数从211个降到189个,塌缩了10.4%;更直观的说法是:原本只有19个站是单一品牌,做完归一化之后变成25个——有6个站的“多品牌”是自己造出来的。
有一批的字面意思就是“没填”
218件。品牌栏里写的是None、Not specified、Exclude这类词。它们通过了任何一个“非空校验”,但没有携带一个字节的品牌信息。这一类下面单独有一节讲,因为它比想象中有意思。
剩下的才是真的别的牌子
1172件,36.2%。这一类是正常的,甚至是应该的——迪卡侬本来就是子品牌矩阵,家居买手店本来就卖设计师作品。问题不在于它们存在,而在于它们和前面两类混在同一个字段里,谁也分不出谁。
同一个品牌能写出几种花样?
把1847件那一类逐条做字符级比对,差异类型是这样分布的:
| 差在哪 | 件数 | 占比 |
|---|---|---|
| 多带一截修饰词 | 1227 | 66.4% |
| 大小写、空格或标点 | 417 | 22.6% |
| 多带一个地区后缀 | 182 | 9.9% |
| 多带一个环境标记 | 21 | 1.1% |
多带一截修饰词,占了三分之二
最典型的是把品类词带进品牌名:Chubbies这个站有467件商品的品牌写作Chubbies,其余的写作Chubbies Shorts;Snow Peak有285件写作Snow Peak Apparel,其余的就是Snow Peak;Stanley的商品在Stanley和Stanley 1913之间分了两拨,124件挂在短的那个上。
Away这个行李箱站更彻底,三种写法并存:Away Travel、Away,还有106件商品的品牌栏里塞的是Away: Built for modern travel——那不是品牌名,那是一句广告语,中间还带着冒号。
大小写、空格和那个与号
Wüsthof这个德国刀具站把自己的名字写出了三种:Wüsthof、WÜSTHOF、Wusthof——重音符号有和无、大小写全大和首字母大,排列组合玩了个遍。Baseus有36件商品的品牌是全小写的baseus。Mack Weldon有204件把中间那个空格省了,写成Mackweldon。TUSHY和Tushy各自占了一批。
Tuft & Needle则贡献了本次样本里最丰富的一组:Tuft & Needle、Tuft and Needle、Tuftandneedle、Tuft & Needle CA,加上后面要说的那个,一共5种。一个床垫品牌,在自己的商品库里有5个名字。
地区后缀是第二常见的分叉
Baseus同时存在Baseus、Baseus US、Baseus EU;Our Place有7件是Our Place - US;Harry's的主值干脆就是Harry's US,另外7件才是Harry's。这类值往往是多店铺同步时带过来的,源站的地区标记跟着商品一起搬了家,没人在落地那一头把它摘掉。
保哥经手过一个从欧洲往北美开分店的配件站,两边共用一套商品库。北美店建档的时候,有人顺手在品牌名后面加了个US做区分,纯粹是为了后台筛选方便。这个习惯延续了大半年,直到投放那边发现Merchant Center里冒出了两个品牌,各自攒各自的历史数据,谁也没攒够。改法不复杂——品牌栏统一回一个值,地区区分挪到自定义标签上去。值得记的是,那个加US的人从头到尾没做错任何一步,他只是用了一个没人告诉过他不能这么用的字段。
品牌栏里写着DEV和production,这批货还在卖
21件,比例只有1.1%,但它是这一节里最不该出现的:
- Monos有10件商品的品牌值是
Monos (DEV); - Tuft & Needle有11件写着
Tuftandneedle-production。
括号里的DEV是开发环境,后缀里的production是生产环境。这两个词本来只该活在部署脚本和环境变量里,现在它们跟着商品记录一起躺在公开的商品清单接口里,任何人不用登录就能拿到。这个出口本来就是敞开的,我之前专门量过它一次能端走多少东西。
这跟HTML注释里那些构建日期和供应商名单是同一类事故:内部标记跟着交付物一起出门了,只是这次它挂在一个搜索引擎会认真读的字段上。
品牌名写成None的那190件,到底是什么货?
Taylor Stitch这个站有166件商品的品牌值是字符串None,另有24件是Not specified。合计190件,占该站3000件商品的6.3%。
我原以为这是一批半成品记录——建了个壳,字段还没填完。数据不同意这个猜测:这190件里,商品描述为空的只有10件,商品类目为空的一件都没有。它们的类目老老实实写着Wovens、Outerwear、Knits、Pants、Accessories,是真的在卖的衣服。
其中有一批的网址以spacer开头
把这190件的网址前缀数一遍,出现最多的两个是the(95件)和spacer(22件)。后面这22件长这样:spacer-usa-made-clothing、spacer-the-indigo-shop、spacer-all-footwear,还有一件叫copy-of-spacer-the-jack-01——连复制出来的占位块都留着。
spacer在前端行话里是占位块,专门用来撑版面,本身不该有内容。我用真实浏览器逐个打开了几件,结果一致:它们全部跳走了,落点是这个站的全部商品列表页。这些条目在商品库里是商品、在公开接口里是商品、在你的审计脚本里也是商品,唯独在前台它们不存在。
拿商品当版面积木使,这事可以理解,主题编辑器不好用的时候大家都干过类似的事。麻烦在于这批积木现在混在真商品里,参与了每一次数量统计、每一次覆盖率计算,还可能参与sitemap的收录名单。你的商品总数比实际多22件,听着无所谓,可这22件里没有一件能打开。
剩下那95件是真在卖的衣服
另外95件以the开头的,比如the-waterless-heavy-bag-tee,是这个站正儿八经的产品线。它们有描述、有类目、有图、有变体,唯独品牌栏里写着None。
这就是本篇标题那个意思的最直白版本:这一栏填了,而且填得很满,可它说的不是这件商品的品牌。任何以“非空”为判据的检查,都会给这95件商品打勾放行。
有人把品牌字段当开关用
Wüsthof那边有28件商品的品牌值是Exclude。
这个词不是名字,是指令。它的类目栏写着Knife Block Set这种正经货,说明商品本身没问题,是有人在这个字段上写了一句给某个程序看的话——大概率是给某个导出插件或者广告投放工具看的:这批别导。
字段被挪去当开关,短期内往往真的管用,因为那个工具确实按这个值过滤了。代价是这个字段从此有了两套语义,而下游读它的程序不止那一个。商品条码栏里填变体ID的后八位是同一个毛病的另一种长相:那次是把一栏当另一栏用,这次是把一栏当命令行参数用。
这些值会不会原样流进结构化数据?
前面全是接口层的账。真正决定它有多要紧的,是下一个问题:搜索引擎看得见吗。
按Google对商品结构化数据的说明,brand是商品富媒体结果里会被读取的属性之一。所以接口里的值只要原样进了页面的JSON-LD,它就不再是内部数据,而是你对搜索引擎的正式声明。
我用真实浏览器逐站打开了商品页,从渲染完成的页面里把所有JSON-LD捞出来,取Product节点的brand,跟接口里的品牌值逐条对照。为了不让抽样偏向某一类商品,每个站取了四件:一件是主品牌的普通商品当基准,一件是非主品牌的,一件是描述为空的,还有一件专挑品牌值异常的。
158个页面打开了151个,6个是404。其中130个页面写了Product结构化数据,全都带brand属性,覆盖率86.1%。
九成的页面把接口里那个值一字不差地抄了出去
130个带brand的页面里,118个的值与接口完全相同,一个字符都没改,占90.8%。剩下12个分布在7个站上,是主题做过处理的。
按站算更直白:44个站全部直通,7个站部分处理,1个站一条都不直通,还有4个站的商品页压根没写brand。也就是说,绝大多数独立站的商品页,就是把后台那一栏原封不动地交给了搜索引擎。
那些不该出门的值,确实出门了
这是本次实测最直接的结果。前面在接口层看到的每一类怪值,都在页面的结构化数据里找到了对应:
| 站点 | 接口里的品牌值 | 页面结构化数据里的brand | 这是什么 |
|---|---|---|---|
| monos.com | Monos (DEV) | Monos (DEV) | 开发环境标记 |
| tuftandneedle.com | Tuftandneedle-production | Tuftandneedle-production | 生产环境标记 |
| wusthof.com | Exclude | Exclude | 给某个工具看的开关 |
| awaytravel.com | Away: Built for modern travel | Away: Built for modern travel | 一句广告语 |
| framebridge.com | Saks Fifth Avenue | Saks Fifth Avenue | 企业客户的名字 |
| magicspoon.com | Order Protection | Order Protection | 第三方运费险应用 |
| outdoorvoices.com | Rise.ai | Rise.ai | 第三方礼品卡应用 |
| jackery.com | Seel | Seel | 第三方保障应用 |
| hellotushy.com | Angi | Angi | 第三方服务商 |
最后四行值得单独说一句。Order Protection、Rise.ai、Seel、Angi都不是这些站在卖的东西,是它们装的第三方应用往商品库里塞的条目——运费险、礼品卡、延保。这些应用建商品的时候把自己的名字填进了品牌栏,然后主题照单全收,写进了结构化数据。一个卖早餐麦片的站,它的某个商品页正在对搜索引擎声明:本商品的品牌是Order Protection。
做了清洗的那七个站,各清洗各的
另一头也有意思。12个不一致里,有一部分是主题主动做了修正:
- allbirds把接口里的
re:do换成了Allbirds——这是唯一一个明确把第三方应用挡在外面的; - fromourplace把
Our Place - US的地区后缀摘掉了;bollandbranch把Boll & Branch Hydrogen收敛成了Boll & Branch; - chubbies接口写
Chubbies Shorts,页面写Chubbies;stanley1913接口写Stanley 1913,页面写Stanley——两家都把品类词和年份摘了; - taylorstitch那个
Not specified,页面上直接没输出brand,主题把它当空值滤掉了。
但方向不一致。Faherty是反过来的:接口里写Faherty,页面上输出的却是Faherty Brand,主题给它加了一截。七个站做了七套自己的规则,没有一套是平台给的。
还有一个站,两边都脏,而且脏得不一样
Gymshark是本次唯一一个所有页面都不直通的站。它接口里的品牌值是Gymshark | Be a visionary.,页面结构化数据里写的是Gymshark | We Do Gym。
两个值都在品牌名后面拖着一句标语,用竖线隔开——那是社交简介的写法,不是品牌名的写法。更麻烦的是两句标语还不一样,说明这两处的取数来自两个各自维护的地方,而且谁也不知道对方存了什么。这跟sameAs里的社交账号和页脚那排图标对不上是同一种结构:同一个品牌事实存了两份,两份都错,而且错得不一样。
需要说明抽样的边界:每个站四件的量级,只够回答“这个站是不是把接口值直通到页面”这一个问题,不足以估计任何一个站内部的比例。上面所有百分比的分母都是页面数,不是商品数。
真的是多品牌的那些站,这一栏用对了吗?
说回那1172件“真的是别的牌子”。这一类不是错误,但它揭示了一件事:同一个字段,在不同的站上装的东西完全不是一回事。
子品牌矩阵
迪卡侬是最标准的例子。它的商品品牌里有Quechua(户外)、Simond(攀登)、Forclaz(徒步)、Kiprun(跑步)、Van Rysel(公路车)、Wedze(滑雪),还有18件直接写Decathlon。这是一家公司真实的品牌结构,字段用得没毛病。麻烦在于对外:Google要求商家名称只留一种写法,可这个站的商品有11种品牌答案,机器得自己判断哪个是“这个站”。换个品类词AI就不推你了这件事的底层也在这儿——机器先得认出你是谁,才谈得上把你放进哪一档。
设计师、联名和第三方
menuspace那44个品牌值里,绝大多数是设计师名字:Norm Architects 114件、Kroyer-Saetter-Lassen 35件、Afteroom Studio 21件、Ib Kofod-Larsen 17件、Mogens Lassen 14件、Colin King 14件。对一个高端家居站来说,设计师就是卖点,写进品牌栏有商业道理。但schema.org里的Brand类型指的是商品的品牌,设计师更接近creator或者designer——用错了类型,Google拿到的实体关系就是歪的。schema.org那份全网使用统计里也提过这类错配:类型堆得越多,用错的概率越高。
Faherty的库里有12件BIRKENSTOCK,Avocado那边有63件Coyuchi,Marine Layer有69件Custom Club,tentree有13件Climate+。这些是真的在代销或者做子线,字段本身没写错,只是它们和前面那两类挤在同一栏里,从数据上分不出来。
顾客的名字被写进了品牌栏
framebridge是做定制画框的,它的非主品牌值里有Shake Shack(30件)、CAVA(30件)、Heart + Paw(17件)、Saks Fifth Avenue(12件)。
汉堡店、地中海快餐、宠物医院、百货公司——这些显然不是画框的品牌,是给这些企业客户做的定制项目。这一栏在这里实际记录的是“这批货是给谁做的”,语义已经从供货方翻转到了收货方。而下游任何一个读brand的程序,都会以为这个站在卖Saks Fifth Avenue的东西。
主品牌名和域名对不上的9个站,问题出在哪?
还有一个顺手能做的交叉校验:把每个站的主品牌值和它的域名拿去比对。去掉标点和大小写之后,47个站互相包含,9个站对不上。
| 域名 | 主品牌值 | 算不算问题 |
|---|---|---|
| avocadogreenmattress.com | Avocado Mattress | 否,域名比品牌长 |
| beistravel.com | BÉIS Travel | 否,重音符号 |
| bollandbranch.com | Boll & Branch | 否,与号 |
| tuftandneedle.com | Tuft & Needle | 否,与号 |
| wusthof.com | Wüsthof | 否,重音符号 |
| dreametech.com | DREAME US | 否,域名带后缀 |
| ice-watch.com | ICE sa | 存疑,sa是公司形式 |
| decathlon.com | Quechua | 是,主品牌不是自己 |
| menuspace.com | Audo Copenhagen | 是,主品牌不是自己 |
9个里有6个只是重音、与号或者后缀,属于误报。真正值得看的是最后三个:ice-watch写的ICE sa带着公司形式后缀(sa是比利时和法国的股份公司缩写),更像法务实体名而不是品牌名——这个毛病在网站页脚上更常见;后两个则是主品牌压根不等于站名,机器要认出“这个站是谁”,得绕一圈。
顺带说一句,这个校验的假阳性率是三分之二,别拿它当报警用,只当一份待人工过目的清单。这种“报警扣完之后还剩几条”的账,我在商品价格那次算过一回,那次是扣到一条不剩,这次好歹还剩三条。
自己的站该怎么查这一栏?
整套动作不需要任何付费工具,半小时能跑完。
- 先把全量品牌值拉出来做频次表。用你平台的商品导出,或者直接读公开的商品清单接口。只要值的个数大于1,就往下走。
- 做三级归一化再比一次。去重音、与号换成and、砍掉地区码和公司后缀、只留字母数字。归一前后个数不一样,差额就是你自己造出来的重名。
- 用一张黑名单扫一遍字面空值。None、Null、N/A、Not specified、Unspecified、Exclude、Default、Test、TBD——这几个词覆盖了本次样本里的全部218件。
- 扫环境标记。正则里放dev、staging、production、test、qa、sandbox、copy这几个词,命中的一律是事故。
- 打开商品页看结构化数据里的brand。这一步不能省。接口里的值再脏,只要没进页面,影响面就小得多;一旦原样进了JSON-LD,它就是搜索引擎认定的品牌。校验JSON-LD语法和批量扒页面结构化数据都有现成工具。
- 把真多品牌的那部分单独建表。子品牌、代销、联名、客户定制,各自的正确写法不一样:子品牌归brand,设计师该用designer,客户定制项目更适合放进商品描述而不是品牌栏。
- 定一个唯一写法,然后往回改。写法定下来之后,Merchant Center那一侧的brand属性也要跟着对齐,否则自然搜索和购物广告会认出两个实体。
第七步是最容易半途而废的一步。品牌名统一这件事没有立竿见影的排名回报,但它决定了搜索引擎把你的商品归到哪个实体名下——实体识别这一层的缺口不会体现在任何一份常规SEO报告上,只会体现在AI答案里没有你。
常见问题解答
品牌字段填得不统一,Google真的会当成两个品牌吗?
结构化数据这一层是会的。brand是一个实体属性,值不同就是不同的字面实体,至于Google的知识图谱会不会把它们合并到同一个实体上,取决于它掌握的其他信号——官网、社交账号、维基条目、外部提及。信号强的大牌,写成三种也多半能被认回去;新站或者小站没有这些冗余信号,就只能靠你自己写对。所以这件事对越小的站越要紧,这跟直觉是反的。
那到底该以哪个写法为准?
以你在别处已经用得最多的那个为准,不要另起炉灶。具体说:看你的官网页脚、社交账号名、商标注册名这三处,取重合的那一个。品牌名不带品类词(不写Chubbies Shorts,写Chubbies),不带地区后缀,不带公司形式(LLC、Inc、sa这些留给法务实体字段),标点按商标注册的原样写。定完之后写进内部规范,新品建档时照抄。
子品牌应该写母品牌还是子品牌?
写这件商品实际印着的那个牌子。用户在货架上看到的是Quechua,商品的brand就写Quechua。母品牌的位置在组织信息里,用Organization类型单独声明,通过parentOrganization把关系挂上去。把两层压进同一个字段,等于让机器替你猜层级,猜错的概率不低。
设计师联名款,品牌栏写设计师名字对不对?
不对,但也不必删。schema.org里brand指的是商品的品牌,设计师应该用designer或者creator。做法是品牌栏保持你自己的品牌,设计师另开一个属性写。这样机器既知道货是谁的,也知道谁设计的,两条关系都完整。
品牌栏里填了None,会不会直接被判成垃圾内容?
不会直接判垃圾,但会浪费掉一次表明身份的机会,并且可能触发Merchant Center的属性质量提示。更现实的风险是这个值原样出现在页面的结构化数据里,那就等于对着搜索引擎说这件商品的品牌叫None。填不了品牌的商品(比如无品牌配件),正确做法是按平台规则用允许的占位方式声明,而不是自己造一个英文单词填进去。
怎么知道自己的商品页有没有把这个脏值吐出去?
随便打开一个商品页,看页面源码里的JSON-LD,找Product节点下的brand。要批量做就用无头浏览器渲染完再取,因为不少主题的结构化数据是JS插进去的,只看初始HTML会漏。取到之后跟你导出的品牌值做逐件比对,不一致的分两种:页面比接口干净说明主题做了清洗,页面跟接口一样脏说明它就是直通的。
这批数据能代表所有电商站吗?
不能。样本是60个英文独立站,最终56个拿到完整商品清单,全部跑在同一个电商平台上,品类偏服饰、家居和户外。换个平台,字段名和默认行为都不一样;换个品类,多品牌的比例也会变。可以直接拿走的是方法和那张字面空值黑名单,比例数字请在自己的库上重新算一遍。
顺手还能查哪几个相邻的坑?
三个。一是商品标识符那一族,条码、SKU、MPN经常互相串填;二是商品类目字段,和品牌栏一样容易被挪作他用;三是页面上的品牌显示和结构化数据里的brand是不是同一个值——很多主题的面包屑和标题走的是另一套取数逻辑,两边对不上的情况不罕见。
权威参考资料
本文标题:《商品品牌字段一个空的都没有,17个站把自己写成了好几个牌子》
本文链接:https://zhangwenbao.com/product-vendor-brand-field-variants-audit.html
版权声明:本文原创,转载与引用请注明作者与原文链接。许可协议: CC BY 4.0