Free·Get your free checkout audit within 5 minutes.Start the audit
View the changelog
New feature

New Feature: Variant-level targeting in compose recommendations

Compose recommendation mappings can now target specific product variants, both for what must be in the cart (the trigger) and for what you want to recommend. Previously mappings only worked at the product level, so any variant of a trigger product would fire the rule. Now you can say "only if the Small Red variant is in cart" and "recommend the Large Blue variant specifically".

When you build a mapping, the product picker now lets you drill into a product and select one or more specific variants. You can mix variant pins and product-level entries in the same mapping.

Here's how it behaves:

  • Variant-pinned trigger: the mapping only fires when one of the selected variants is in the cart. If you pick multiple variants on the same row, any of them will satisfy the rule.
  • Variant-pinned recommendation: the recommended product shows in checkout with the pinned variant already selected, instead of the checkout guessing based on cart contents.
  • Quantity thresholds still apply: if you require "at least 2" of a trigger, the total across all pinned variants of that product must meet the threshold.
  • Mixed rows: a single mapping can combine product-level entries (any variant of that product) with variant-pinned entries on other rows.

Example use cases:

  • "If the cart has the Small Red T-shirt, recommend the Large Red T-shirt", classic size-up cross-sell on the same SKU.
  • "If the cart has the 1L bottle of olive oil AND the 500g pasta, recommend the Italian Gift Box (Large size)", multiple triggers, variant-pinned recommendation.
  • "If the cart has any of the Small, Medium, or Large variants of the Basic Hoodie, recommend the Premium Hoodie", OR-matched variant trigger.

We also added a few quality-of-life improvements to the mappings admin:

  • Search and filter: the mappings list has a search box (matches product IDs, titles, and handles) and tabs for All / Active / Draft.
  • Column sorting: click the Status, Source, or Type columns to sort.
  • Edit in place: each row has an Edit button that reopens the picker with the current product and variants preselected, so updating one entry doesn't mean rebuilding the whole mapping.
  • "Same product on both sides" warning: if a product appears as both a trigger and a recommendation, a banner now explains that you need the component's "Recommend same products" setting enabled for variant-to-variant upsells on the same product to show.
  • CSV support: exported CSVs preserve variant pins as productId:variantId (or productId:vid1|vid2 for multiple variants). CSVs without variant pins continue to work exactly as before.

Existing mappings continue to work without changes, variant pinning is purely additive.