batch_get_item_options
一次拉取多家店商品的全量规格与配料候选,按店分组返回。是get_item_options 的跨店版本:只查一家店时用那个就够了。
适合「搜到几家店、每家挑了几个商品,要横着比规格和价格」的场景。搜推选店时你事先不知道会命中几家店,逐家调用就得在编排里写一个长度不定的循环;本工具一次调用拿全。
每个商品返回的内容与
get_item_options 完全一致——sku_options / ingredient_options / selected 标记 / promo_labels / price_steps 的含义与用法全部相同,本页不再重复,只说明按店分组这一层。那一页的所有注意事项(互斥收敛、同名不同项、份数不能乘、算价回显)在这里同样适用。参数
返回
顶层返回{ "carts": [...] },carts 与请求的 carts 一一对应、顺序一致。每个元素要么带 items(该店查询成功),要么带 error(该店整体失败)——靠有没有 error 字段区分。
一家店失败不影响其余店。 购物车会过期,5 家里有 1 家失效时,另外 4 家照常返回,整次调用仍算成功。只有授权失效或商品数超上限才会整次调用失败。失败分三层,互不牵连:整次调用失败 → 某家店失败(
carts[].error)→ 某个商品失败(carts[].items[].error)。商品数上限 500 是保护性上限,不是建议值。 每个商品的返回内容约 37 KB,100 个就约 0.30.5 MB,500 个可达 3 MB——多数模型的上下文放不下。按实际要展示或下单的商品数来传即可,通常每家店几个。超出上限时整批拒绝、不会只返回一部分:少给一半却看起来成功,比直接报错危险得多。性能参考:实测 5 家店共 100 个商品约 1.1~1.5 秒(首次查询,含向平台取数)。

