mirror of
https://github.com/NomaDamas/k-skill.git
synced 2026-06-24 02:04:11 +00:00
Live smoke on 2026-03-27 exposed two real SearchGoods mismatches: some rows require a separate online/master product identifier for online stock requests, and some live rows use alias keys or placeholder ids that the original fixtures did not cover. This change locks those behaviors with regression tests, normalizes onldPdNo/alias fields from live payloads, falls back from placeholder identifiers like 0 to pdNo, and threads the normalized identifier through the end-to-end availability helper. The public docs now note that product candidates can carry onldPdNo for online-stock follow-ups. Constraint: Daiso Mall SearchGoods currently mixes legacy and live field names in the same public surface Constraint: Online stock requests must keep working for both identity and non-identity pdNo/onldPdNo pairs Rejected: Require callers to read raw MASTER_PD_NO/MAPP_BOX_PD_NO fields | leaks transport details into the public API Rejected: Treat placeholder ids like 0 as valid online product ids | breaks live stock lookups for otherwise valid candidates Confidence: high Scope-risk: narrow Directive: Keep the live-smoke-backed alias and placeholder-id regression cases when updating Daiso payload fixtures Tested: node --test scripts/skill-docs.test.js Tested: node --test packages/daiso-product-search/test/index.test.js Tested: npm test Tested: npm run ci Tested: live smoke against official Daiso Mall endpoints on 2026-03-27 Not-tested: Other Daiso search terms beyond VT 리들샷 100
3.2 KiB
3.2 KiB
다이소 상품 조회 가이드
이 기능으로 할 수 있는 일
- 다이소 매장명으로 공식 매장 후보 찾기
- 상품명/검색어로 공식 상품 후보 찾기
- 특정 매장의 매장 픽업 재고 확인
- 필요하면 온라인 재고 참고값 함께 확인
먼저 필요한 것
- 인터넷 연결
node18+
입력값
- 매장명
- 예:
강남역2호점 - 예:
스타필드하남점
- 예:
- 상품명 또는 검색어
- 예:
VT 리들샷 100 - 예:
리들샷 300
- 예:
공식 표면
- store search:
https://www.daisomall.co.kr/api/ms/msg/selStr - store detail:
https://www.daisomall.co.kr/api/dl/dla-api/selStrInfo - product search list:
https://www.daisomall.co.kr/ssn/search/SearchGoods - product summary list:
https://www.daisomall.co.kr/ssn/search/GoodsMummResult - store pickup stock:
https://www.daisomall.co.kr/api/pd/pdh/selStrPkupStck - optional online stock:
https://www.daisomall.co.kr/api/pdo/selOnlStck
기본 흐름
- 매장명이 없으면 먼저 매장명을 물어봅니다.
- 상품명이 없으면 상품명/검색어를 한 번 더 물어봅니다.
selStr로 매장 후보를 찾고, 필요하면selStrInfo로 매장 상세를 확인합니다.SearchGoods로 상품 후보를 찾습니다.selStrPkupStck로 해당 매장의 상품 재고를 확인합니다.- 필요하면
SearchGoods응답의onldPdNo를 함께 보존해selOnlStck온라인 재고 교차 확인에 사용합니다. - 공식 표면이 매장 내 위치를 주지 않으면 재고 중심으로 답합니다.
예시
const { lookupStoreProductAvailability } = require("daiso-product-search")
async function main() {
const result = await lookupStoreProductAvailability({
storeQuery: "강남역2호점",
productQuery: "VT 리들샷 100"
})
console.log({
store: result.selectedStore,
product: result.selectedProduct,
pickupStock: result.pickupStock,
onlineStock: result.onlineStock
})
}
main().catch((error) => {
console.error(error)
process.exitCode = 1
})
실전 운영 팁
- 매장 후보가 여러 개면 상위 2~3개만 보여주고 다시 확인받는 편이 안전합니다.
- 상품 후보가 여러 개면 브랜드, 용량, 호수까지 같이 보여 주는 편이 덜 헷갈립니다.
- 재고 수량은 실시간 100% 보장값이 아니므로, 필요하면
방문 직전 다시 확인문구를 같이 줍니다. - 공식 표면이 매장 내 위치를 주지 않으면
공식 표면에서는 매장 재고까지만 확인된다고 답합니다.
라이브 확인 메모
2026-03-27 기준으로 다음 공식 호출이 실제 응답을 반환했습니다.
POST /api/ms/msg/selStr→강남역2호점매장 후보GET /ssn/search/SearchGoods?searchTerm=리들샷...→1049275포함 상품 후보POST /api/pd/pdh/selStrPkupStck→strCd=10224,pdNo=1049275조합의 매장 픽업 재고
같은 날짜 smoke test 에서 강남역2호점 + VT 리들샷 100 조합은 재고 수량 0 으로 응답했습니다. 즉, 공식 경로가 실제로 동작함은 확인했지만 당시 해당 매장 재고는 없었습니다.