Docs/Summer Upsell/Cross-sell

Product page widgets

Cross-sell

PDP

The Cross-sell widget renders complementary product recommendations on product pages — typically below the buy button or product description. It's the highest-traffic surface in your store, and the right cross-sell here lifts AOV without disrupting the buying flow.

Three layouts ship out of the box. Pick the one that matches your product page density, mobile traffic share and how many products you want visible at once. You can switch layouts later on the Design tab.

Layouts

Cross-sell Grid: two-column recommendation cards below the product description

Grid

Default

Two-column card grid. Each card shows image, title, price, a variant selector (when the product has variants) and an Add to cart button.

  • Shows several products at a glance — great when you have many viable cross-sells.
  • Variant selector + Add to cart on every card, so shoppers don't have to leave the product page.
  • Stays two columns on every screen size, so cards keep a consistent shape on mobile.

Best for: Catalog-heavy stores (apparel, beauty, home goods) where shoppers expect to compare options before committing.

Cross-sell Stack: full-width rows, one product per row

Stack

Mobile-first

Full-width rows stacked vertically — one product per row with image, title, price (plus compare price when discounted), a variant dropdown and an Add button on the right.

  • Easy to scan on mobile — no cramped grid, no horizontal scroll.
  • Variant dropdown per row.
  • Optional automatic discount shown as strike-through pricing.

Best for: Mobile-heavy stores, or single-product brands where each cross-sell deserves a full row of attention.

Cross-sell Carousel with prev/next arrows

Carousel

Compact

Two cards per view on desktop and about one and a half on phones, with prev/next arrows that appear when there are more than two products. The most space-efficient layout when product page real estate is tight.

  • Saves vertical space on dense product pages.
  • Swipe-friendly on mobile.
  • Works with all three product sources.

Best for: Product pages already long with reviews, FAQs and rich descriptions.

How to create a Cross-sell campaign

A

In the Summer Upsell admin

  1. 1 In the Summer Upsell admin, click Create Campaign.
  2. 2 Under Cross-sell on the Product Page list, pick Grid, Stack or Carousel.
  3. 3 Give the campaign an internal Offer name on the Offer tab.
  4. 4 Set the Trigger — start broad with All products if you're unsure.
  5. 5 Pick the Product source — Specific products for hand-curated picks, Automated recommendations for Shopify's related / complementary products (all plans), or Summer AI powered by ChatGPT (credit-based — every plan includes credits).
  6. 6 Optional: tick Enable discount for cross-sell products and set the display title, type and value.
  7. 7 Open the Design tab — pick a template, set the Subtitle and tweak typography.
  8. 8 On the Language tab set the Widget Title (e.g. You may also like) and Button Text, and add translations if needed.
  9. 9 Click Publish. The Test campaign in store checklist runs (campaign active, products available, app embed enabled, widget block added) — fix anything red, then click Publish campaign.
B

In the Shopify theme editor

  1. 1 Open Online Store → Themes → Customize.
  2. 2 Switch to the Products → Default product template.
  3. 3 Click Add block in the position you want the cross-sell to appear (typically below the buy buttons or the product description).
  4. 4 Pick ✨ Summer: Cross-sell from the Apps section of the block picker.
  5. 5 Drag to fine-tune the vertical position.
  6. 6 Click Save, then visit a trigger product on the storefront to confirm.
Field Type Description
Offer name Text Internal label only — used to find the campaign in the admin. Customers never see it.
Trigger Radio All products, Specific products (default) or Specific collections. Decides where the widget is eligible to render. Cart widgets use Any cart and Post-Purchase uses Any order instead of All products.
Trigger products / collections Picker Shown for the Specific options. Pick the products or collections that should fire the widget.
Product source Radio Specific products, Automated recommendations or Summer AI powered by ChatGPT (credit-based; every plan includes credits). See Upsell sources.
Offer products Picker Shown when Specific products is selected — click Add Products and pick the products the widget will recommend.
Discounts Dropdown No discount, Use Summer Upsell discount functions (Recommended), Use discounts that are dynamically created or Use an already existing discount code. See Discounts for how each mode works.
Type / Value Dropdown + number Product discount (each offer item) or Order discount (the whole order), and the amount as % or a fixed amount in your store currency.
Discount code Text Optional for Summer discount functions (creates a code-based discount the widget applies automatically); required for existing discount code.
Combination Checkboxes Whether the discount can combine with product, order and shipping discounts.

Design tab

Every campaign opens on the Offer tab. The Design tab next to it controls how the widget looks on the storefront. The same set of controls is reused across nearly every widget type, so once you learn it on one campaign the rest are familiar. A live preview on the right updates as you change settings — switch it between desktop, mobile and full size.

Field Type Description
Layout Dropdown Shown on widgets that have more than one layout (Cross-sell, Upsell, In-Cart Upsell, Product Add-on). Switches the layout without recreating the campaign.
Widget Title / Button Text Text Heading shown above the widget and the label on its Add buttons. For Classic FBT, Bundle, Popup, In-Cart Upsell, Cart Popup and Post-Purchase you set them here; for Upsell, Cross-sell, FBT Full Width and Product Add-on they live on the Language tab (default language block).
Subtitle Text Optional line under the title (e.g. Customers also bought these).
Templates Visual picker 27 ready-made themes: Modern Clean, Ink → Slate, Slate → Ocean, Espresso → Sunset, Blossom → Crimson, Teal → Ocean, Forest → Teal, Ocean → Glacier, Sunset → Crimson, Lilac → Denim, Cherry Blossom, Piggy Pink, Fresh Mint, Baby Blue, Sand, Lavender, Honey → Amber, Vanilla → Cream, Royal → Violet, Sunset Orange, Moonlit Asteroid, Amin, Celestial, Witching Hour, Frost, Quepal and Sublime Light. Picking a template sets the button style, card border and every color below at once — then fine-tune anything you want.
Background (optional) Toggle + color Give the widget its own background color instead of inheriting the page background.
Border Radius Dropdown Sharp (Square) or Curvy (Rounded) corners on cards and buttons.
Image Fit Dropdown Cover (crop to fill), Contain (fit inside, may show whitespace), Fill (stretch to fit).
Font family Dropdown Your Theme Font (inherits from your theme), Inter, Roboto, Montserrat, Poppins, Playfair Display, Libre Baskerville, Oswald, Plus Jakarta Sans.
Typography sizes Number (px) Title weight, Button font size, and individual sizes for Product Title, Price and Compare price. Set the compare size smaller than the price size for a clean strike-through look.
Colors Color picker Primary color, Product Title color, Price color and Compare price color. Override any single value after picking a template.

Tip: Click any template to seed every color at once, then nudge the individual swatches. Faster than building a palette from scratch.

Language tab

The Language tab holds the storefront copy for the widget. The Default language block is always there; click Add another language to add any locale your Shopify store has published and translate the title, button text and other storefront strings for it. Default text is pre-filled in English, Spanish, French, Arabic, Turkish and German. A locale you don't add falls back to the default language.

Tip: Start with Grid if you're not sure. It's the most flexible default and works on the majority of catalog-heavy stores. Switch to Stack if mobile is your dominant device.