Skip to main content
DoneThat

AI Adoption GuideRetailSell

Personalized Product Recommendations

Recommendation model ranks products for each shopper from browsing, basket, loyalty, similarity, and availability signals across web, app, email, and store associate tools.

Retail processPlanBuyPriceStockSellFulfillReturnClear

By Don, DoneThat’s AI coach · updated

What personalized product recommendations do

Personalized product recommendations rank a catalog for one shopper at a time. The model scores candidates from recent browsing, current basket contents, loyalty history, item similarity, and live availability, then returns an ordered list for the surface that requested it: product detail, cart, homepage module, email block, app feed, or an associate tool on the sales floor.

The ranking is a proposal, not a merchandising decision. Merchandisers still define which categories can appear, which brands are eligible, which margin or margin-floor rules apply, and which campaigns must stay visible. The model orders within those constraints. When constraints conflict with raw model preference, the guardrail wins.

This page is written for the e-commerce merchandiser who owns recommendation quality: relevance without spam, discovery without dead ends, and channel consistency without promising stock you cannot fulfill. Related work on conversational discovery sits in AI Shopping Assistant. Floor coaching that uses similar ranking logic sits in Associate Next Best Action. When conversion falls after a recommendations change, start with Conversion Drop-Off Diagnostics.

Signals the ranking model needs

Browsing signals cover recent views, category paths, search queries, and dwell on PDP content. Basket signals cover items already selected, size and color choices, and complementary gaps (for example, a jacket without a matching layer). Loyalty signals cover past purchases, preferred brands, size profiles, and opt-in preferences. Similarity signals connect products through attributes, co-purchase patterns, and content embeddings when those are maintained. Availability signals state whether each SKU can ship or pick up for the shopper’s fulfillment choice right now.

All five families matter, but they do not weigh equally in every context. A first visit with a thin loyalty record leans harder on browsing and similarity. A loyal customer with a known size profile can lean harder on loyalty and basket. Every context still needs availability. Ranking without inventory truth is how you advertise a product as ready when it is not.

Merchandising owns the signal contract as much as the model team does. Define what counts as a “recent” view, how long loyalty history remains usable after a preference change, and whether similarity may cross brand or category walls. Write those rules down so a model refresh does not silently rewrite the assortment story.

How merchandisers set guardrails

Human-in-the-loop means the model ranks products; merchandising sets the boundaries those ranks must respect. Typical guardrails include:

  • Assortment eligibility: which categories, brands, and price bands may enter recommendation slots.
  • Campaign and story protection: hero SKUs or collections that must remain visible during a launch window, even if the model would prefer a different attach.
  • Business rules: margin floors, clearance priority, newness caps, and “do not recommend X with Y” exclusions (safety, size systems, regulatory SKUs).
  • Presentation limits: maximum items per module, diversity across brands or price points, and rules that prevent near-duplicate variants from filling an entire row.
  • Channel policy: what email may show versus what a store associate may suggest, including tone and disclosure where required.

Review guardrails on a fixed cadence. Treat a model deploy as a merchandising change, not only an engineering release. Spot-check high-traffic PDPs, cart recommenders, and a sample of loyalty segments after every material update. If a slot looks wrong, fix the rule or the eligibility feed before blaming “the algorithm.”

Document override paths. When a merchandiser suppresses a SKU or forces a campaign set into a module, log who changed what and why. Overrides that never expire become silent debt; schedule a revisit date with every temporary rule.

When the system should return empty results

Empty output is a valid and preferred outcome when required signals are missing. If browsing context is absent and loyalty history is unavailable, and the request cannot fall back to a curated merchandiser set, return no personalized list rather than inventing relevance. If availability cannot be resolved for the shopper’s fulfillment mode, return empty for that personalized path and fall back only to an explicitly approved non-personalized module (bestsellers, editorial, or campaign), labeled as such.

Do not recommend out-of-stock products as in-stock. An OOS SKU may appear only when policy allows a waitlist, backorder, or “notify me” treatment, and the UI must state that status clearly. Never imply ready-to-buy inventory for a SKU the availability feed marks unavailable. Prefer substituting an in-stock alternate that passes the same guardrails when substitution is allowed; otherwise omit the item.

Thin-signal sessions are common on shared devices, privacy-restricted browsers, and first-party cookie-light paths. Design for that reality: empty personalized modules, short curated defaults, and no fabricated “for you” story. Shoppers trust a blank or editorial block more than a list that feels random or sold out.

Operating recommendations across channels

Web, app, email, and associate tools should share the same ranking contract and the same availability truth, even when layouts differ. A product ranked for cart attach on web should not flip to an OOS variant in an email send hours later without a re-check at render or send time. Associate tools need the same inventory and eligibility rules so floor suggestions do not contradict what the customer already saw online.

Own a small operating set of quality checks rather than a vanity dashboard. Track:

  • Share of recommendation impressions that resolve to in-stock, fulfillable SKUs.
  • Suppressions caused by guardrails versus model preference (so you know when rules are doing the work).
  • Empty-personalized rate by channel and by signal completeness.
  • Attach and return rates on recommended SKUs, segmented enough to catch size or fit failures without chasing noise.

When quality slips, separate causes: bad availability lag, stale similarity, overly tight or overly loose guardrails, or a surface that requests recommendations without enough context. Fix the weakest link first. A stronger model cannot compensate for an inventory feed that updates too slowly for flash sales or store-level stock.

Train the merchandising team to read ranked lists the way they read planograms: as proposals constrained by policy. The goal is a shopper-specific order of eligible, available products that still respects brand, margin, and story. When signals are incomplete or stock cannot be confirmed, the correct answer is no personalized recommendation, not a confident list that fails at checkout.

Is this worth automating for you?

Whether this pays back depends on how much time it takes your team today. Most teams estimate that from memory, and the estimate is usually wrong in one direction or the other. This one is rated high effort to implement, so the baseline matters more than usual.

DoneThat reconstructs where the time actually went, with no timers to forget, so you can measure the baseline before committing to a project and check the gain afterward.

Measure the baseline first