Skip to main content
Traditional e-commerce search matches keywords. Refine understands what products look like. When you search for “floral midi dress,” Refine:
  1. Understands the text — semantic understanding of “floral,” “midi,” and “dress”
  2. Analyzes visual features — patterns, colors, silhouettes from product images
  3. Combines both signals — the visualWeight parameter controls the balance

Catalogs

A catalog is a collection of products that share a search index. Most stores have one catalog, but you might use multiple for:
  • Separate indexes per locale (US, EU, APAC)
  • B2B vs B2C product sets
  • Multiple brands under one organization
Each catalog has a unique ID used in SDK initialization:

Visual Embeddings

When you upload a product, Refine generates a visual embedding — a numerical representation of what the product looks like. These embeddings power:
  • Visual similarity — finding products that look alike
  • Image search — matching uploaded photos to your catalog
  • Visual weight — the visual component of text search
Embeddings are generated automatically. You don’t need to manage them directly.

Surfaces and Sources

When tracking events, you specify where the products appeared and how they got there.

Surface

The UI location where products are displayed:

Source

How the products were generated:

Identity Hierarchy

Refine tracks three levels of identity:
1

Visitor ID

Auto-generated, persisted in localStorage. Survives sessions but not device changes. Every user starts as a visitor.
2

Session ID

Auto-generated per browsing session. Expires after 30 minutes of inactivity (configurable).
3

User ID

Your identifier, set via refine.identify(). Links visitor behavior to a known user account.

Recommendation Strategies

Refine supports three recommendation types:

Similar Items

Find products visually and contextually similar to a specific product. Best for product detail pages.

Visitor Recommendations

Personalized suggestions based on the current visitor’s browsing behavior. No login required.

User Recommendations

Deep personalization based on a logged-in user’s full history across sessions and devices.

ServeContext Pattern

The SDK uses a ServeContext pattern for event tracking. When products are displayed, you get a context object that tracks subsequent interactions:
This pattern ensures all interactions are correctly attributed to the original search or recommendation serve.

Next Steps

Glossary

Full terminology reference

SDK Overview

Start building with the SDK