Placement GuideProduct Pages

Product Pages

Placements 05 and 06 — open the assistant with a product already in context from the PDP buy box, and add an Ask AI overlay to every card on a listing page.

Turn product detail pages into personalised conversations and product grids into guided discovery surfaces.

PDP Conversations

05 · Product detail page

Every product page becomes a sales moment. An Ask a Question affordance next to the buy box opens the assistant with the product already in context — the shopper never re-types what they are looking at.

The shopper is already looking at one product and deciding, so the questions are narrow: sizing, fabric, care, fit, how it compares to the one they saw before. Answering them in place is what turns a back-button into a basket.

Interactive demo

Press Ask a Question — the assistant opens with this product attached

SOPHIWomen / Knitwear / Jumpers

Essentials | KN-1188

Merino Roll-Neck Jumper

$55.00
XSSMLXL
Add to bag
100% extra-fine merino woolMachine washable · Regular fitFree delivery over $60 · Free returns

You may also like

pdp-ask.js
// Open the assistant with this product as the reply context
askButton.addEventListener('click', () => {
  if (!widget.isReady()) return;
  widget.show();
  widget.sendProductReply(product.externalId);
});

That call attaches the product without sending anything: the assistant opens with a product chip above the composer and the shopper types their question. This is usually what you want from a buy-box affordance — they pressed "Ask a Question" because they have one in mind.

Pass opts.query when the assistant should answer immediately instead:

pdp-ask-with-query.js
// Sends a product-scoped turn right away — use for a specific canned question
widget.sendProductReply(product.externalId, {
  query: 'Does this come in blue?',
});

SDK reference

  • widget.sendProductReply(product, opts?) — the canonical PDP hook. Pass the external product ID. Without opts.query it sets the product as the composer's reply context (chip shown, no assistant response yet); with opts.query it sends a product-scoped chat turn immediately. opts.isOutfit is optional.
  • widget.openProductById(id, reason?) — opens the product detail panel inside the widget without a chat turn. Use it for "show me this in Sophi", not for questions.
Keep it quiet

Put it near the buy box but below "Add to bag" — an affordance that competes with the primary CTA costs you the conversion it was meant to rescue.

Product Grid Panel

06 · Product grid

Every product card becomes an interactive moment. Hovering a card reveals an Ask AI overlay; pressing it opens the assistant with that product attached, turning listing pages into discovery surfaces.

Where the PDP serves a decision already made, the grid serves the one before it: the shopper has six candidates and no basis to choose. Asking from a card means they never have to open three tabs to compare.

Interactive demo

Hover or tab to a card, then press Ask AI — the Mobile view keeps it always visible

SOPHIWomen / Knitwear · 128 items
Sort: Popular

Merino Roll-Neck Jumper

$55.00

Cable-Knit Crew Jumper

$49.50

Fine-Knit Cardigan

$42.00

Lambswool V-Neck

$45.00

Ribbed Wool Beanie

$16.00

Brushed Wool Scarf

$19.50

One delegated listener covers every card, so the grid can re-render or paginate without rebinding:

grid-overlay.js
grid.addEventListener('click', (event) => {
  const cta = event.target.closest('[data-sophi-ask]');
  if (!cta || !widget.isReady()) return;

  widget.show();
  widget.sendProductReply(cta.dataset.sophiAsk, {
    query: 'Tell me about this product',
  });
});

SDK reference

Best for

The consideration and browsing stage. There is no hover on touch — render the Ask AI affordance persistently on small screens (a corner icon on each card), or it will be unreachable for most of your traffic.

Next: Navigation & Checkout — the menu entry point and the pre-purchase widget.

On this page