danawa-price-search
다나와 공개 검색/가격비교 표면으로 상품 후보를 찾고, 쇼핑몰별 최저가·배송비 포함 실구매가·카드 할인가·무이자 할부 정보를 보수적으로 비교한다.
How do I install this agent skill?
npx skills add https://github.com/nomadamas/k-skill --skill danawa-price-searchIs this agent skill safe to install?
- Gen Agent Trust Hubpass
This skill is a legitimate price comparison tool for the South Korean Danawa marketplace. It uses a Python script to fetch and parse publicly available product information and shopping mall offers. No security issues, malicious code, or data exfiltration patterns were detected.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
What does this agent skill do?
Danawa Price Search
What this skill does
다나와의 로그인 없는 공개 검색/가격비교 표면을 읽기 전용으로 호출해 한국 쇼핑몰 가격을 비교한다.
- 상품명/검색어로 다나와 상품 후보와
pcode를 찾는다. - 선택한 상품의 쇼핑몰별 오퍼를 조회한다.
- 상품가만이 아니라 배송비 포함 실구매가, 무료배송 여부, 카드 할인가, 무이자 할부 문구를 함께 정리한다.
- 구매, 로그인, 장바구니, 찜, 주문 액션은 하지 않는다.
When to use
- "다나와에서 에어팟 최저가 찾아줘"
- "다나와 가격비교로 쇼핑몰별 가격 비교해줘"
- "무료배송인지, 카드 할인까지 보면 어디가 제일 싸?"
- "무이자 할부 붙은 최저가도 같이 봐줘"
When not to use
- 실제 구매/주문/결제/로그인이 필요한 경우
- 회원 전용 쿠폰, 개인화 포인트, 앱 전용 혜택을 확정해야 하는 경우
- 대량 모니터링이나 고빈도 크롤링을 해야 하는 경우
- CAPTCHA, 접근 차단, fingerprint 우회를 해야 하는 경우
Required inputs
상품명 또는 검색어가 필요하다. 검색어가 넓으면 브랜드, 모델명, 용량, 색상, 자급제/통신사 여부 등을 추가로 물어본다.
권장 질문:
찾을 다나와 상품명이나 모델명을 알려주세요. 예: 갤럭시 S25 울트라 256GB 자급제, 에어팟 프로 2세대 USB-C
Public surfaces
현재 구현은 인증 없는 공개 표면만 사용한다.
- 검색 페이지:
https://search.danawa.com/dsearch.php?query=... - 상품 상세 페이지:
https://prod.danawa.com/info/?pcode=... - 가격비교 AJAX:
https://prod.danawa.com/info/ajax/getAllPriceCompareMallList.ajax.php
AJAX endpoint는 HTML fragment를 반환한다. helper는 .diff_item, 쇼핑몰 로고 alt, em.prc_c/em.prc_t, 배송 문구, 결제조건 배지(.ico.cash/.ico.point/.ico.coupon/.ico.discount/.ico.card/.ico.membership 등), 카드 할인 라인, 무이자 할부 레이어, 다나와 bridge link를 파싱한다.
Commands
스킬 디렉터리에서 실행한다.
python scripts/danawa_search.py search "에어팟 프로 2세대" --limit 8
python scripts/danawa_search.py offers 28208783 --limit 10
python scripts/danawa_search.py compare "에어팟 프로 2세대" --limit 5 --offers 5
helper는 JSON만 출력한다. 결과를 확인한 뒤 사용자에게는 한국어 표와 짧은 결론으로 정리한다.
Output shape
search
{
"query": "...",
"source_url": "...",
"count": 0,
"items": []
}
각 items[] 주요 필드:
pcodetitleprice,price_textmall_texturlimage_urlspec
offers
{
"pcode": "...",
"title": "...",
"source_url": "...",
"count": 0,
"normal_count": 0,
"conditional_count": 0,
"offers": [],
"meta": { "sort": "total_price" }
}
offers[]는 배송비 포함 실구매가(total_price) 오름차순으로 정렬된다. count / normal_count / conditional_count는 limit 적용 후 실제 반환된 offers[] window 기준이다. 결제조건(현금/쿠폰/포인트/할인/특정카드/멤버십 한정)이 붙은 row도 같은 정렬에 그대로 참여한다 — 가장 싸면 1위로 올라온다. 결제조건은 분리 그룹이나 추가 필터링 없이 row 단위 payment_badges / payment_condition_types / payment_condition_label / cash_only / point_only / coupon_only / card_only_badge / discount_badge / membership_badge / is_conditional_price 필드로 노출한다. 호출자는 사용자의 결제 수단에 따라 직접 판단한다.
각 offers[] 주요 필드:
mallprice,price_textshippingis_free_shippingshipping_feetotal_price,total_price_textcard_price,card_price_textcard_namecard_discount,card_discount_textinstallmentinstallment_detailpayment_badges— Danawa가 가격 옆에 노출한 결제조건 배지의 표시 라벨 목록. 배지 텍스트가 비어 있고.ico.cash처럼 클래스만 있는 경우도 정규화 라벨을 합성한다 (예:["현금"],["포인트"],["쿠폰"],["카드"],["할인"],["멤버십"])payment_condition_types— 화이트리스트 배지를 정규화한 조건 타입 목록 (cash/point/coupon/card/discount/membership)payment_condition_label— 사용자 응답용 결제조건 라벨 (예:현금,할인,멤버십, 복수 조건이면현금, 할인)cash_only— 현금 결제 전용가point_only— 포인트 차감 적용가coupon_only— 쿠폰 적용가card_only_badge— 특정 카드 한정 노출가discount_badge— 할인 조건 배지 노출가membership_badge— 멤버십 조건 배지 노출가is_conditional_price—payment_condition_types가 하나 이상 있으면 True. 일반 결제가가 아니므로 카드 일반 결제 시 가격이 다르거나 불가능할 수 있음url
항상 무료배송 여부, 배송비 포함 실구매가, 카드별 할인 가격, 무이자 할부 문구, 그리고 payment_badges/payment_condition_label/is_conditional_price를 함께 확인한다. 조건부 가격을 일반가처럼 1위로 노출하면 비교 결과가 거짓이 된다.
compare
compare는 검색 결과를 먼저 가져온 뒤 각 후보 상품에 대해 offers[]를 best-effort로 붙인다. 검색 결과가 애매하면 상위 후보의 제목과 pcode를 먼저 보여주고 선택을 요청한다.
Response style
Discord/Telegram/chat 응답에서는 표 형식을 우선한다.
| 순위 | 판매처 | 상품가 | 결제조건 | 배송 | 실구매가 | 카드할인가 | 무이자 | 링크 |
|---:|---|---:|---|---|---:|---:|---|---|
| 1 | 킴스클럽 | 979,000원 | **현금 전용** | 유/무료 | 979,000원 | - | - | 보기 |
| 2 | 롯데ON | 1,073,890원 | 일반 | 무료배송 | 1,073,890원 | - | - | 보기 |
| 3 | G마켓 | 1,089,590원 | 일반 | 무료배송 | 1,089,590원 | - | 최대 24개월 | 보기 |
| 4 | 옥션 | 1,121,780원 | **쿠폰 적용가** | 무료배송 | 1,121,780원 | 우리카드 303,720원 | 최대 24개월 | 보기 |
정렬 기준:
total_price오름차순 단일 기준. 결제조건(현금/쿠폰/포인트/할인/특정카드/멤버십 한정)이 붙은 row도 같은 정렬에 그대로 참여한다 — 가장 싸면 1위로 올라온다. 결제조건은 분리 그룹화하지 않고 표의 "결제조건" 컬럼에 행별로 표시한다 (payment_condition_label이 있으면 그 값을 우선 표시, 없으면 "일반"; 세부 매핑은cash→ "현금 전용",coupon→ "쿠폰 적용가",point→ "포인트 적용가",card→ 카드명/카드 조건,discount→ "할인 조건",membership→ "멤버십 조건"). 사용자는 자기 결제 수단에 따라 직접 판단한다.card_price가 있고 카드 적용 시 승자가 바뀌면 표 아래에 "카드 기준 최저가"를 별도로 적는다.- 무이자 할부는 결제 조건이 달라질 수 있으므로 Danawa 노출 문구 기준이라고 밝힌다.
- 1위가 조건부 가격이면 요약 문장에 결제수단 단서를 짧게 덧붙인다. 예: "최저 실구매가: 킴스클럽 979,000원 / 현금 결제 한정, 카드 결제 기준 최저가는 롯데ON 1,073,890원". 카드 결제 가능한 최저가도 같이 알려 사용자가 결제수단별 결과를 한 번에 비교할 수 있게 한다.
요약 예시:
최저 실구매가: G마켓 217,950원 / 무료배송
카드 기준 최저가: 옥션 우리카드 303,720원
무이자: G마켓·옥션 최대 24개월 표기
카드 할인 markup이 없으면 "카드 할인가 표기 없음"이라고 쓰고, 체크아웃 할인 자체가 없다고 단정하지 않는다.
Workflow
- 검색어를 확인한다.
python scripts/danawa_search.py search "<검색어>" --limit 5로 후보를 확인한다.- 후보가 명확하면 해당
pcode로offers를 실행한다. - 후보가 애매하면 상위 3~5개 상품명/가격/
pcode를 보여주고 선택을 요청한다. - 오퍼는
total_price오름차순 단일 기준으로 정렬한다 (결제조건 분리 그룹화하지 않음). 결제조건은 표의 "결제조건" 컬럼과 row 단위 플래그로만 표기하고, 1위가 현금/쿠폰가여도 그대로 1위로 노출한다. - 카드 할인가가 있으면 카드 기준 최저가도 별도 요약한다. 1위가 조건부 가격이면 "카드 결제 기준 최저가"도 요약 문장에 함께 적어 결제수단별 최저가를 한 번에 알게 한다.
- 조회 시점 기준이며 가격/배송/카드 혜택은 변동될 수 있음을 짧게 덧붙인다.
Failure modes
- 검색 결과가 0개면 검색어를 더 구체화한다.
- Danawa HTML/AJAX 구조가 바뀌면 selector가 깨져
offers가 비거나 필드가 누락될 수 있다. - 다나와가 새로운 결제조건 배지 클래스나 문구를 도입하면 결제조건 배지 화이트리스트(
cash/point/coupon/discount/card/membership클래스,현금/포인트/쿠폰/할인/카드/멤버십텍스트 키워드)와payment_condition_types/payment_condition_label매핑을 함께 갱신해야 한다. - 검색 결과 가격과 오퍼 AJAX 가격은 갱신 시점·카드가·제휴 링크 기준 차이로 다를 수 있다.
- 카드 할인과 무이자 문구는 Danawa가 노출한 경우에만 확정적으로 보여준다.
- 공개 표면 기반이므로 고빈도 요청에는 throttling/backoff를 추가해야 한다.
- 접근 차단이나 CAPTCHA가 나오면 우회를 시도하지 말고 실패 모드로 보고한다.
Done when
- 검색어 또는 모델명을 확인했다.
- 상품 후보를 최소 1개 이상 반환하거나, 반환 실패 이유를 설명했다.
- 쇼핑몰별 상품가, 배송비, 실구매가, 카드 할인가, 무이자 문구를 조회 시점 기준으로 정리했다.
- 사용자 응답은 표 형식으로 제공했다.
- 로그인/구매/차단 우회 범위를 벗어나지 않았다.
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/nomadamas/k-skill/danawa-price-search">View danawa-price-search on skillZs</a>