market-kurly-search

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Market Kurly Search

Market Kurly Search

What this skill does

本技能功能

마켓컬리 웹앱이 실제로 사용하는 비로그인 검색/상품 상세 표면을 사용해 아래 흐름을 처리한다.
  • 키워드로 상품 후보를 검색한다.
  • 현재 가격과 할인 여부를 확인한다.
  • 품절 여부와 배송 타입을 확인한다.
  • 상품 링크를 함께 반환한다.
  • 주문/장바구니 같은 액션은 하지 않는다. 조회형으로만 답한다.
使用Market Kurly Web应用实际使用的无需登录的搜索/商品详情界面,处理以下流程:
  • 通过关键词搜索商品候选。
  • 查看当前价格和是否打折。
  • 查看是否缺货及配送类型。
  • 同时返回商品链接。
  • 不执行下单/购物车等操作,仅提供查询类回复。

When to use

使用场景

  • "마켓컬리에서 우유 얼마야?"
  • "컬리에서 딸기 검색해줘"
  • "이 상품 품절인지 보고 링크도 줘"
  • "지금 컬리 가격만 빠르게 보고 싶어"
  • "Market Kurly的牛奶多少钱?"
  • "帮我在Kurly搜索草莓"
  • "帮我看看这个商品是否缺货,再给我链接"
  • "现在只想快速查看Kurly的价格"

When not to use

不适用场景

  • 주문/장바구니/결제까지 자동화해야 하는 경우
  • 주소 기반 배송 가능 여부나 회원 전용 가격을 확정해야 하는 경우
  • 로그인 세션이 필요한 개인화 추천/찜 정보를 조회해야 하는 경우
  • 需要自动化完成下单/购物车/支付流程的情况
  • 需要确定基于地址的配送可能性或会员专属价格的情况
  • 需要查询需要登录会话的个性化推荐/收藏信息的情况

Prerequisites

前置条件

  • 인터넷 연결
  • node
    18+
  • 이 저장소의
    market-kurly-search
    package 또는 동일 로직
  • 网络连接
  • node
    18+
  • 本仓库的
    market-kurly-search
    package或相同逻辑

Required inputs

必填输入

1. Ask for a product keyword if it is missing

1. 若缺少商品关键词则询问

상품명 또는 검색어가 없으면 먼저 물어본다.
  • 권장 질문:
    찾을 마켓컬리 상품명이나 검색어를 알려주세요. 예: 우유, 딸기, 닭가슴살
  • 너무 넓으면:
    검색어가 너무 넓어요. 브랜드나 용량까지 같이 알려주시면 가격 후보를 더 정확히 추릴 수 있어요.
若无商品名或搜索词,先进行询问。
  • 推荐提问:
    请告知要查找的Market Kurly商品名或搜索词。例如:牛奶、草莓、鸡胸肉
  • 若范围过广:
    搜索词范围太广啦。如果能同时告知品牌或容量,就能更精准地筛选价格候选。

2. Confirm which candidate they want when the query is ambiguous

2. 当查询模糊时,确认用户想要的候选商品

검색 결과가 여러 개면 상위 2~3개만 보여주고 다시 확인받는다.
  • 권장 질문:
    후보가 여러 개예요. 아래 상품 중 어떤 상품 가격을 볼까요?
  • 응답에는 상품명 + 현재 가격 + 품절 여부 + 링크를 같이 붙인다.
若搜索结果有多个,仅展示前2~3个并再次确认。
  • 推荐提问:
    有多个候选商品哦。请问要查看以下哪个商品的价格?
  • 回复需附带商品名 + 当前价格 + 是否缺货 + 链接。

Official Market Kurly surfaces

Market Kurly官方界面

  • search list:
    https://api.kurly.com/search/v4/sites/market/normal-search?keyword=<keyword>&page=1
  • search count:
    https://api.kurly.com/search/v3/sites/market/normal-search/count?keyword=<keyword>&filters=&allow_replace=true
  • product detail page:
    https://www.kurly.com/goods/<productNo>
  • 搜索列表:
    https://api.kurly.com/search/v4/sites/market/normal-search?keyword=<keyword>&page=1
  • 搜索数量:
    https://api.kurly.com/search/v3/sites/market/normal-search/count?keyword=<keyword>&filters=&allow_replace=true
  • 商品详情页:
    https://www.kurly.com/goods/<productNo>

Workflow

工作流程

1. Search by keyword first

1. 首先通过关键词搜索

js
const { searchProducts } = require("market-kurly-search")

const result = await searchProducts("우유")
console.log(result.items.slice(0, 3))
검색 결과에서는 아래 필드를 우선 본다.
  • 상품명
  • 현재 가격 (
    discountedPrice
    우선, 없으면
    salesPrice
    )
  • 할인율
  • 품절 여부
  • 배송 타입
  • 상품 링크
js
const { searchProducts } = require("market-kurly-search")

const result = await searchProducts("우유")
console.log(result.items.slice(0, 3))
搜索结果优先查看以下字段:
  • 商品名
  • 当前价格(优先
    discountedPrice
    ,若无则用
    salesPrice
  • 折扣率
  • 是否缺货
  • 配送类型
  • 商品链接

2. Use the count endpoint when the result set is broad

2. 当结果集范围过广时,使用数量查询接口

js
const { countProducts } = require("market-kurly-search")

const count = await countProducts("우유")
console.log(count)
후보가 너무 많으면
count
를 먼저 보여 주고 검색어를 좁히라고 안내한다.
js
const { countProducts } = require("market-kurly-search")

const count = await countProducts("우유")
console.log(count)
若候选商品过多,先展示数量并引导用户缩小搜索词范围。

3. Use the goods page detail as a fallback or follow-up lookup

3. 使用商品详情页作为备选或后续查询

js
const { getProductDetail } = require("market-kurly-search")

const detail = await getProductDetail(5063110)
console.log(detail)
goods/<productNo>
HTML 안의
__NEXT_DATA__
에서 상품명, 가격, 품절 여부, 배송 타입을 추출한다.
js
const { getProductDetail } = require("market-kurly-search")

const detail = await getProductDetail(5063110)
console.log(detail)
goods/<productNo>
HTML中的
__NEXT_DATA__
提取商品名、价格、是否缺货、配送类型。

4. Respond conservatively

4. 回复需简洁保守

응답은 짧고 보수적으로 정리한다.
  • 상품명
  • 현재 가격
  • 필요하면 원가/할인가 여부
  • 품절 여부 또는 판매 가능 여부
  • 상품 링크
  • 가격/품절/노출 정보는 시점에 따라 달라질 수 있으니 조회 시각 기준 참고값이라고 분명히 말한다.
回复应简洁整理:
  • 商品名
  • 当前价格
  • 必要时标注原价/折扣价
  • 是否缺货或可售状态
  • 商品链接
  • 明确说明:价格/缺货/展示信息会随时间变化,仅供查询时刻参考。

Done when

完成条件

  • 상품 키워드를 확인했다.
  • 검색 결과에서 후보와 현재 가격을 최소 1개 이상 반환했다.
  • 필요하면 상품 상세 페이지로 보조 확인했다.
  • 주문/장바구니 같은 범위 밖 액션은 하지 않았다.
  • 已确认商品关键词。
  • 从搜索结果中返回至少1个候选商品及当前价格。
  • 必要时通过商品详情页进行辅助确认。
  • 未执行下单/购物车等超出范围的操作。

Failure modes

失败场景

  • 검색어가 너무 넓으면 후보가 과도하게 많아질 수 있다.
  • 가격/품절/배송 문구는 시점에 따라 달라질 수 있다.
  • 현재 확인한 표면은 공식 개발자 Open API가 아니라 웹이 쓰는 공개 표면 이므로 스키마가 바뀌면 깨질 수 있다.
  • 회원 전용/주소 전용 정보는 비로그인 조회만으로 확정할 수 없다.
  • 若搜索词范围过广,候选商品可能过多。
  • 价格/缺货/配送信息会随时间变化。
  • 当前使用的界面并非官方开发者Open API,而是Web端使用的公开界面,若Schema变更可能导致功能失效。
  • 会员专属/地址专属信息无法仅通过无需登录的查询确定。

Notes

注意事项

  • 조회형 스킬이다.
  • 비로그인 공개 표면 우선 원칙을 유지한다.
  • 주문/장바구니/로그인 요구 기능은 시도하지 않는다.
  • 本技能为查询类技能。
  • 坚持优先使用无需登录的公开界面原则。
  • 不尝试实现下单/购物车/登录相关功能。