Conversational product discovery

대화형 상품 발견

Turn a natural-language shopping request into filters and a shorter product list.

···
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);

Conversational product discovery interprets a shopper's use case and preferences from a sentence, then proposes matching items. It can consider purpose, material, and constraints beyond keyword overlap.

The demo turns a small-desk lighting request into size and price filters, narrowing the list. Ask about missing constraints; an inaccurate catalog still produces inaccurate answers.

When to use

Use it when shoppers describe needs more readily than precise product keywords.

Open as page ↗