Catalogs and product templates
Testimonial Widgets for Every Product Page
Nobody hand edits three hundred product pages. A store renders them all from one product template, so the way to give each product its own testimonials is to store a widget id as a field on the product and have the template print it. The decisions are about mapping: which products get their own widget, which share one with their family, and what an empty field shows.
- Map widget ids to products or families
- Decide what an empty field renders
- Keep a big catalog within your widget allowance
The problem, solved
Scaling testimonials across a catalog
Hundreds of products, one template
Pasting an embed into each product description is slow, and the next theme change loses half of them.
With StoryProof: Add the StoryProof div to the product template once and fill its widget id from a product field. Each page prints its own id.
New products have no testimonials yet
An empty field would print a div with no id and leave a hole under the buy button.
With StoryProof: Have the template check the field: print the product’s widget when it is set, a family or store wide widget when it is not.
The catalog is bigger than our allowance
Widgets per workspace: Free 1, Starter 5, Pro unlimited. A small "Powered by StoryProof" badge shows until Pro.
With StoryProof: Give best sellers their own widget and let the rest share one per product family, so the count follows your families rather than your SKUs.
Matching testimonials to products is slow
Filling a widget per product means finding the right quotes among everything you have approved.
With StoryProof: Tag each approved testimonial with its product or family when it arrives, then choose from that tag when you fill the widget.
Category grids load the script repeatedly
A theme that prints the full snippet in a product card repeats the script for every card on a listing page.
With StoryProof: Keep widgets on product pages and load embed.js once from the theme footer. One copy fills every StoryProof div on the page.
Most products have no proof to show
Coverage stays thin when requests go out by hand, product by product.
With StoryProof: From Pro, the store can send an order webhook and each buyer gets a review request a week later.
Flip the switch to see how StoryProof handles each one.
Mapping planner
How should widget ids map to your catalog?
Answer for the catalog as it is today. You can move products from shared to their own widget later by changing one field.
Scored in your browser from your answers. Nothing is stored or sent.
What the template prints in each case
In StoryProof
Build it into the product template
Step 1 of 5
Add the fields
Create a text field for a StoryProof widget id on products, and optionally on categories or collections.
Step 2 of 5
Make the widgets
Create one widget per best seller and one per family, and choose the tagged testimonials for each.
Step 3 of 5
Edit the template once
Print the StoryProof div with the id from the product field, falling back to the family field, then to a store wide id or nothing.
Step 4 of 5
Load the script in the footer
Add embed.js once to the theme footer so listing pages and product pages share one copy.
Step 5 of 5
Spot check five products
Open products with their own id, a family id and no id. View the source of each and confirm the expected widget id.
Before you start
Before you roll it out
What this does not cover, and what to check on your side. Better to know now than after launch.
- 01
No catalog sync
StoryProof does not read your product catalog. Widget ids are values you paste into product or category fields.
- 02
Widget count by plan
Each product or family widget counts toward your workspace allowance, and a small badge shows until Pro.
- 03
Variants share a page
A product page usually renders once for all its variants, so one widget covers every size or colour.
- 04
Platform steps not included
How to add a custom field differs by store platform. Follow your platform’s documentation for that part.
- 05
Placement is a separate question
Where on the product page the widget sits is covered in the blog guide to product page reviews.
FAQ
Questions people ask
Short answers to what usually comes up next.
Do I really need a separate widget for every product?
Only where products differ enough that their testimonials do too. Families of similar products usually share a widget well.
What happens when a product has no widget id?
Whatever your template says. The common pattern is to fall back to a family widget, then a store wide one, so no product page shows an empty gap.
Can the template choose testimonials by tag automatically?
No claim is made for that. Testimonials are chosen per widget in StoryProof; the template only decides which widget id to print.
Will many widgets slow the product page down?
Each product page prints one widget div and the script loads once. The page speed guide explains how to measure the real cost.
Still have a question? Ask the StoryProof team or book a demo.
Relevant proof on every product, from one template
Tag testimonials by product, map widgets to your catalog and let the template do the rest.
Last updated 2026-11-14.