事情本身不复杂,线索都在日志里。产品页的 Product 结构化数据报缺少 priceCurrency,价格字段有值,币种却一直提示必填。

把日志和配置对完,能解释这个现象的基本就这几处。offers 里只写了 price,没有写币种。另一种情况是币种用了小写 cny,被要求用大写 ISO 代码。

少数情况下是offers 写成了数组,价格和币种分散在不同对象里。

上来先查看 offers 里的字段结构

curl -s https://www.example.com/p/1 | grep -A6 'offers'

补上三位大写币种代码

"priceCurrency": "CNY"

等前面都确认过,再确认价格和币种在同一层

curl -s https://www.example.com/p/1 | python -m json.tool

当时还开着另一个排查窗口,两边日志对照着看才定位到。

恢复的判定其实很直接。测试工具不再报缺少币种,产品富媒体结果里能显示价格区间。

补一句。价格必须是纯数字字符串,带上货币符号会直接判为无效,币种则单独写在 priceCurrency 里,两者格式不能混。促销价与划线价同时存在时,还要补上 priceValidUntil,商品下架后记得同步删除标记。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。

作者 9823189