대화형 상품 발견

Conversational product discovery

긴 구매 질문을 조건으로 나눠 맞는 상품을 좁혀 갑니다.

···
html
<div class="discover"><div class="prompt">"A lamp for a small desk under $50"</div><div class="filters"><span id="size">SIZE: ANY</span><span id="price">PRICE: ANY</span></div><div class="matches"><div>ARC LAMP <b>$39</b></div><div>FLOOR LAMP <b>$79</b></div><div>MINI LIGHT <b>$29</b></div></div><small id="count">3 OPTIONS</small></div>
css
.discover{width:min(88%,470px);font:800 clamp(10px,max(1.5vmin,1vw),13px)/1.2 sans-serif}.prompt{background:var(--fg);color:var(--bg);padding:clamp(8px,1.8vmin,16px)}.filters{display:flex;gap:clamp(4px,1vmin,9px);margin:clamp(6px,1.5vmin,14px) 0}.filters span{flex:1;background:var(--accent-3);padding:clamp(5px,1vmin,9px);text-align:center}.matches{display:grid;gap:clamp(4px,1vmin,8px)}.matches>div{padding:clamp(5px,1vmin,9px);border:1px solid var(--line);background:var(--surface);display:flex;justify-content:space-between;transition:.3s}.matches>div.hidden{opacity:.15;transform:translateX(8px)}.discover>small{display:block;margin-top:clamp(4px,1vmin,10px);color:var(--accent);text-align:right}small{font-size:max(.833em,10px,1vw)}
js
const size=document.querySelector('#size'),price=document.querySelector('#price'),count=document.querySelector('#count'),rows=[...document.querySelectorAll('.matches>div')];let filtered=false;function render(){size.textContent=filtered?'SIZE: COMPACT':'SIZE: ANY';price.textContent=filtered?'PRICE: <$50':'PRICE: ANY';rows[1].classList.toggle('hidden',filtered);count.textContent=filtered?'2 MATCHES':'3 OPTIONS'}setTimeout(()=>{filtered=true;render()},550);setInterval(()=>{filtered=!filtered;render()},3800);

대화형 상품 발견은 고객이 용도와 선호를 문장으로 말하면 서비스가 조건을 해석해 후보 상품을 제안하는 방식입니다. 단순 키워드 일치보다 용도, 소재, 제약을 함께 다룹니다.

데모에서는 '작은 책상에 놓을 조명'이라는 질문이 크기와 가격 필터로 바뀌며 결과가 줄어듭니다. 빠진 조건은 다시 물어야 하고, 상품 피드가 부정확하면 답변도 부정확해집니다.

언제 쓰나

상품 수가 많고 고객이 검색어보다 요구 조건을 먼저 말할 때 유용합니다.

페이지로 열기 ↗