Skip to main content

search_shops

按配送位置搜索或浏览店铺。每个结果都附带 shop_id 与 cart_id:cart_id 已封装该店铺与本次配送坐标,是后续 get_shop_menu、quote_cart、preview_order 的入口。
下单链路:search_shops 得 shop_id + cart_id(已含配送坐标)→ get_shop_menu 选商品 → quote_cart 算价得 quote_id → select_address 得 address_id → preview_order 得 preview_id + confirmation_token → create_order。下游工具的 shop_id / cart_id 必须原样回传,不要自造。
两种模式(由 keyword 切换):
  • 不传 / 传空 keyword → 浏览模式:返回附近店铺信息流(最多 20 家),带距离、评分、配送费、起送价、营业状态等决策字段。
  • 传 keyword → 精确搜索(约 5 家):keyword 可为店名(“瑞幸咖啡”)、品类(“奶茶”)或具体商品名(“生椰拿铁”);上游按商品级匹配,故商品名关键词会返回真正在售该商品的店铺。每家店附带 matched_items(仅展示用的命中商品预览)。注意:此模式下 distance / rating 通常为 null(上游限制);而 delivery_time_text / delivery_fee_text 现可由上游 orderLeadTime / floatDeliveryFee 带出(配送费为 0 时显示「免配送费」)。
浏览翻页:浏览模式(不传 keyword)下传 offset 翻页——首次传 offset: 0,返回会带 next_offset,下次把它作为 offset 继续翻,直到返回 shops 为空即到底。每页数量固定、不可调(仅作每页查询量上限)。关键词搜索不支持翻页。
关键词搜索给回来的,不一定是你要的那家店。 搜索从不返回空列表——当没有任何店名对上关键词时,它会改推同品类的相似店铺。search_match_level 就是用来区分这两种情况的:
  • exact — 至少有一家店的店名或品牌名对上了关键词,这些店排在列表最前面。
  • related — 没有一家店名对得上,返回的全是同品类的相似店。用品类词搜(“奶茶”)时这很正常;但用店名或品牌搜(“星巴克”)时,它意味着该品牌在这个配送位置点不到,返回的只是同类替代——别把它们当成用户要的那家店,先告诉用户没搜到,或换个地址再试。

参数

配送坐标如何解析:依次取 ① address_id 对应保存地址的经纬度 → ② 显式传入的 lat/lng → ③ 该用户最近使用过的保存地址 / 历史定位。三者都没有时返回 COORDS_REQUIRED。即 address_id 与 lat/lng 均为可选,但至少要能解析出一个位置。

返回

金额字段单位为分(整数),不是元。例如 min_order_amount: 0 表示 ¥0、price: 1600 表示 ¥16.00。
matched_items 不带 ID,也不含库存状态,要点其中的商品必须先调 get_shop_menu,用它返回的 item_id / sku_id / 选项 ID。recommend_items 带 item_id:配同店的 cart_id 可以直接调 get_item_options 查规格与配料。要算价或下单,仍要先调一次 get_shop_menu,这个 ID 在那之后仍然有效。

错误码

完整错误码见 错误处理。

调用示例