Skip to content

sellerlane.recommendations

Sellerlane’s live recommendation source is intentionally namespaced as sellerlane.recommendations. Shopify’s standard recommendations object is endpoint-specific; Sellerlane can also render cart-drawer and generic offers, so the broader extension is not installed as a global Shopify object.

Usage

Use the recommendation filters instead of reading implementation methods:

{% assign offers = sellerlane.recommendations
| recommendations_for_product: product, product.selected_or_first_available_variant, cart, limit: 4
%}
{% for offer in offers.offers %}
{{ offer.title }}
{% endfor %}

The resulting recommendation collection exposes offers, request_id, currency_code, size/count, and empty?. Internal API payload builders are not Liquid-visible.

Horizon also requests pool: true and reads candidate_offers. When the recommendation experiment is enabled, that field contains up to three times the requested display limit, capped at 20 eligible offers. offers and size continue to respect the original display limit. Without the experiment, the candidate collection is the ordinary result.

Extra candidates must remain hidden until the private selection response chooses them. Horizon handles that display limit, consent, observation tokens, and selection before a rail becomes visible. Rendering every candidate as a visible card bypasses those presentation controls. The candidate collection contains catalog offers, never private shopper observation tokens.