← Blog

Product Personalization Trends in Ecommerce for 2026

Deep Dive12 min read

Authors

Michał Miszczyszyn

McKinsey has found that personalization can lift revenue by 10-15% while cutting acquisition costs, which is why every platform now claims to do it. Almost none of them explain what they actually mean. "Personalization" gets used for four completely different systems, one of which just triggered a state attorney general investigation after quietly costing some families over $1,000 a year. This is the practical version: what data each type of personalization actually needs, which recommendation patterns are worth building, where the legal line sits under GDPR and the new wave of US state privacy law, and how you'd wire it into a real headless storefront.

🔍

Bias disclosure: I'm the CTO at Your Next Store, a commerce platform. I'll be upfront about what our own product does and doesn't do for personalization, including the gaps.

Four questions, in the order this post answers them:

  • What data can I use? Behavioral vs. declared-data, and why the difference decides what needs consent.
  • What should I actually build? The recommendation patterns worth shipping, and the ones that just look personalized.
  • Where's the legal line? The dynamic pricing case that triggered a state investigation, and what GDPR and 2026 US state law require.
  • How do I build it? Where a recommendation layer plugs into a headless, server-component storefront.

Behavioral vs. Declared-Data Personalization: The Real Split

Most "personalization trends" content skips straight to tactics: quizzes, AR try-on, AI-generated hero images. Those are all real, and part of the broader AI wave reshaping how stores get built and found, but they hide the distinction that actually matters, both technically and legally: where did the signal come from?

Declared-data personalization uses information the customer gave you on purpose: an account profile, a size preference, a "buying for myself or a gift" quiz answer, a wishlist. It's explicit, it's usually accurate, and in most jurisdictions it doesn't need a cookie-consent banner because the customer handed it to you directly as part of using the service.

Behavioral personalization infers preferences from what the customer does: pages viewed, dwell time, cart abandonment, purchase history, cross-device activity. It scales without asking anyone anything, which is exactly why regulators treat it differently. Tracking behavior across sessions to build a profile is processing personal data, and in the EU that processing needs a lawful basis before it happens, not after.

Declared-dataBehavioral
SourceAccount settings, quizzes, explicit preferencesClicks, views, dwell time, purchase history
AccuracyHigh for what's asked, but limited coverageBroad coverage, noisier signal
Consent needed (EU)Generally no, if used for the service itselfYes, for anything beyond strictly necessary
Cold-start problemNone, works from account creationNeeds volume before it's useful
Where it breaksCustomers rarely fill in every fieldCorrelation gets mistaken for intent

Most mature personalization stacks blend both: declared data sets the starting point (a size, a stated interest), and behavioral data refines the ranking from there. The mistake is treating them as interchangeable when you're deciding what needs a consent banner and what doesn't.

The Product Recommendation Types Actually Worth Building

"Recommendation engine" is doing a lot of work as a phrase. In practice, it's five or six distinct patterns, each with different data requirements and a different job. Here's what actually ships on stores that convert:

PatternWhat it needsSolves cold start?Typical placement
Frequently bought togetherCo-purchase history (market basket analysis)NoProduct page, cart
Customers also viewedSession-level view sequences across shoppersNoProduct page
Similar productsShared attributes, category, tagsYesProduct page, out-of-stock fallback
Recently viewedThe shopper's own session, first-party onlyYesHomepage, header dropdown
Trending / bestsellersAggregate sales volume, no individual profileYesHomepage, category pages
Personalized feedFull behavioral + declared profile, re-ranked liveNoHomepage, email

Two of these deserve a closer look because they're where teams either over-build or under-build.

"Similar products" is the most underrated pattern because it's the only one that works from day one, for every SKU, without a single data point about any customer. It's pure content-based filtering: match on category, attributes, and tags that already live in your product catalog. If you've modeled your product data well (materials, size, color, use case as structured attributes rather than free text), this is close to free to build and it's what keeps a product page from dead-ending when an item is out of stock.

"Frequently bought together" is the highest-converting pattern in most benchmarks, and also the easiest to get wrong. Naive implementations just show "other things in this category," which isn't co-purchase data at all. It's a mislabeled version of "similar products." Real frequently-bought-together needs actual order line-item history, aggregated across enough orders that the pairing isn't noise from three coincidental purchases.

Amazon's homepage showing curated deal modules and category shortcuts driven by purchase and browsing signals

Dedicated personalization platforms exist specifically to run this scoring layer so you don't have to build collaborative filtering from scratch. Nosto and Dynamic Yield (now part of Mastercard) are two of the more established ones, both offering hosted recommendation APIs that plug into a storefront over a script tag or an API call and return ranked product IDs.

Nosto's homepage describing its AI personalization, search, and merchandising platform for ecommerce

Dynamic Yield's homepage, now operated under Mastercard, describing its AI-powered personalization platform for marketers

Whether you build this in-house or buy it depends on volume and team size: at low order volume, co-purchase data is too sparse to be useful anyway, and "similar products" plus "bestsellers" covers most of the value. Above a few thousand orders a month, the buy option usually pays for itself faster than an in-house model would converge.

Where Personalization Sits on the Maturity Curve

Zooming out, these patterns map onto a maturity curve that mirrors the data-source split above: the further right you go, the more relevant the results get, and the more consent and compliance overhead comes with it.

The personalization maturity model, from rules-based curation through declared-data and behavioral personalization to real-time AI ranking, with signal type and tradeoffs for each stage

Skipping straight to the rightmost column because a vendor pitched "AI-powered hyper-personalization" is how teams end up with a consent-management project they didn't budget for. The declared-data and rules-based stages aren't a lesser version of personalization. They're the version that ships without a legal review.

The Dynamic Pricing Controversy: When Personalization Crosses a Line

Everything above is about what products a customer sees. There's a separate, much riskier category: personalizing what price they see for the same product. This is where 2026's biggest personalization story broke.

In late 2025, Consumer Reports and the Groundwork Collaborative found that identical grocery items on Instacart varied in price by an average of 7% between customers shopping the same store at the same time, with some items differing by as much as 23%: a box of saltine crackers at $3.99 for one shopper and $4.69 for another, based on an AI pricing-test tool called Eversight. Instacart discontinued the tool, but not before the New York Attorney General demanded answers and the story became the reference case for a much broader regulatory shift toward what's now commonly called "surveillance pricing."

The distinction that matters for merchants:

Generally acceptedIncreasingly regulated
Different products shown per customer✅ standard personalization
Different ranking/order of results✅ standard personalization
Same product, different price shown to different customers⚠️ "surveillance pricing," under active scrutiny
Price based on stated location, currency, or bulk quantity✅ standard, jurisdiction-based
Price based on inferred willingness to pay (device, browsing, purchase history)⚠️ what triggered the Instacart backlash

The line isn't "AI vs. no AI." It's whether two customers looking at the identical SKU, at the identical moment, see a different number. Personalizing which products lead the page is low-risk. Personalizing the price tag on an identical item is the part drawing FTC and state attorney general scrutiny, and it's now explicitly named in regulation, not just public backlash, as covered next.

Personalization is one of the few "growth" features where the legal team should be in the room before launch, not after. The requirements genuinely differ by jurisdiction, so name them rather than assume US defaults apply everywhere. It's the same discipline that tax and currency require when you sell across borders: name the jurisdiction, don't guess.

Under the GDPR and the ePrivacy Directive, any non-essential cookie or tracking technology, including the analytics, A/B testing, and behavioral-profiling tools that most recommendation engines run on, requires informed, freely-given consent before it's set. "Strictly necessary" is interpreted narrowly: session cookies for a cart survive without consent, a behavioral-tracking pixel for a "frequently bought together" widget does not. Two implementation details trip up more stores than the headline rule:

  • "Reject all" must be as easy as "Accept all." A cookie banner with a one-click accept and a three-click-deep reject buried in settings does not satisfy GDPR consent standards.
  • Consent has to be specific, not a single toggle for "marketing." If declared-data personalization (your account preferences) and behavioral personalization (cross-session tracking) are bundled into one consent switch, you're asking for more than you need for the first and not being specific enough for the second.

Practically, this means EU visitors who reject tracking should still get a good experience: declared-data personalization and non-personalized fallbacks (bestsellers, similar products by attribute) don't need consent at all, so they should be the default rendering path, with behavioral re-ranking layered on only after consent is granted.

United States: state-by-state, and 2026 changes the picture

There's no single US federal privacy law. California's CCPA/CPRA has been the reference point since 2020, and it now goes further than most merchants realize: the California Privacy Protection Agency's Automated Decisionmaking Technology regulations took effect January 1, 2026, and they explicitly name recommendation engines and dynamic pricing systems as Automated Decisionmaking Technology (ADMT) when they're used to make a "significant decision" about a consumer. Covered businesses have to give consumers a pre-use notice, a way to opt out, and on request, a plain-language explanation of the logic involved.

California Privacy Protection Agency's official page detailing the CCPA Automated Decisionmaking Technology regulations effective January 1, 2026

Colorado, Virginia, Connecticut, and a growing list of other states have their own comprehensive privacy laws with broadly similar opt-out rights for "profiling" that produces legal or similarly significant effects, though the exact thresholds and enforcement mechanisms vary state to state, so treat California's ADMT rule as the leading edge, not the only one to check.

  • Ship a non-personalized or declared-data-only fallback by default; layer behavioral tracking on only after consent
  • Keep the "reject" action as prominent as "accept" in your consent UI
  • Never let a recommendation engine or pricing rule change the price of an identical SKU per customer without a jurisdiction-based reason (currency, tax, bulk discount) you can name out loud
  • If you deploy an AI-generated recommendation ("customers like you also bought"), disclose that it's algorithmic where the customer would reasonably assume a human curated it
  • Log what data fed each personalized result, so an access or opt-out request has something to point to

Building Personalized Product Listings on a Headless Stack

The merchandising decisions above only matter if the architecture can act on them per-request, per-customer, without slowing the page down. Here's where a recommendation layer actually plugs into a modern stack.

The shape of the problem

A personalized product listing needs three things at request time: who the customer is (or isn't, if anonymous and unconsented), what's relevant to them, and current product data (price, inventory, availability) that's never stale. That last part is the trap: cache the ranking, never cache the product data behind it, or you'll show a recommended item that's out of stock or repriced.

In Your Next Store's architecture, the kind we compared against other developer-focused platforms here, the storefront template is a Next.js app that reaches the managed commerce backend through the commerce-kit SDK, a typed REST client generated from the backend's OpenAPI spec. Product, category, and attribute data live in the backend's PostgreSQL database and come back through commerce.productBrowse() and commerce.productGet(). That's the layer a recommendation system sits in front of: something else decides which product IDs to show, and the storefront's server components hydrate those IDs with live data on every request.

A minimal, consent-aware version looks like this:

import { commerce } from "@/lib/commerce";
import { cookies } from "next/headers";

export async function RecommendedForYou({ categoryId }: { categoryId?: string }) {
const analyticsConsent = (await cookies()).get("analytics_consent")?.value === "granted";

// Behavioral signal available and consented: rank by recently-viewed category
if (analyticsConsent && categoryId) {
const { data: products } = await commerce.productBrowse({
category: categoryId,
active: true,
limit: 8,
});
return <ProductGrid products={products} title="Because you viewed this category" />;
}

// No consent or no signal yet: non-personalized, always-safe fallback
const { data: products } = await commerce.productBrowse({
sort: "bestselling",
active: true,
limit: 8,
});
return <ProductGrid products={products} title="Trending now" />;
}

This is deliberately the simple version: category-attribute matching, gated behind an explicit consent check, with a non-personalized default. It covers the "similar products" and "trending" patterns from the table above using only data the commerce backend already has. Carts, orders, and customer records are exposed through the same typed SDK pattern, so a signed-in customer's order history is reachable the same way for a "frequently bought together" model, once you have enough order volume for the co-purchase signal to be meaningful.

For collaborative-filtering-grade recommendations (the kind Nosto or Dynamic Yield run), the pattern extends rather than changes: a server action or route handler sends the customer/session signal to the scoring engine, gets back a ranked list of product IDs, and the storefront hydrates those IDs against the live commerce backend before rendering, exactly like the snippet above. The recommendation engine never touches price or inventory. It only ever returns which SKUs to show and in what order. That separation is also what keeps a personalization vendor swap from touching checkout at all.

Your Next Store's homepage and product grid, the storefront a recommendation layer would hydrate product data into on every request

Where this gets honest: YNS doesn't ship a packaged recommendation engine today. What it gives you is the piece that's actually hard to get right underneath one: typed product, category, and attribute data over a REST API, PostHog analytics wired into the managed backend for first-party behavioral signal, and a Next.js/React Server Components storefront where a personalized grid is a server component like any other, cached separately from the product data it renders. Bring your own scoring model or a third-party engine, and this is the layer it plugs into. If you outgrow the managed platform later, the storefront template is open source, so a recommendation component built this way isn't locked to anything.

The stores that get this right in 2026 won't be the ones with the fanciest model. They'll be the ones that can say, for every product a customer sees and every price on the tag, exactly what data earned it.

Build a personalized storefront that respects consent by default. Start with a headless Next.js store connected to a real commerce backend.

FAQ

Are personalized product recommendations legal under GDPR?

Yes, but the lawful basis depends on the data source. Declared-data personalization (account preferences, quiz answers) generally doesn't need separate consent when it's used to deliver the service the customer signed up for. Behavioral personalization, tracking views and sessions to infer preferences, needs informed consent under the ePrivacy Directive before the tracking starts, not retroactively.

What's the difference between personalization and dynamic pricing?

Personalization changes which products a customer sees or how they're ranked. Dynamic pricing changes the price. Showing different products to different customers is standard practice. Showing the same product at a different price to different customers based on inferred data, sometimes called surveillance pricing, is what's now explicitly regulated under California's 2026 ADMT rules and drew FTC and state attorney general scrutiny after the Instacart pricing story.

Do I need a dedicated recommendation engine, or can I build one myself?

Below a few thousand orders a month, in-house "similar products" (by category and attributes) plus a "bestsellers" fallback covers most of the conversion lift, and it's close to free if your product data is already structured. Collaborative filtering (real "frequently bought together") needs enough order volume for co-purchase patterns to be statistically meaningful; below that threshold, a dedicated platform like Nosto or Dynamic Yield will outperform a homegrown model built on sparse data.

More from the blog