OpenCart installation
OpenCart Testimonials with HTML Modules
OpenCart ships with an HTML Content module. Its editor has a Source button, and in OpenCart 4 the editor is set to keep whatever markup you paste, so the StoryProof div and script survive the save. You then place the module in a layout position, such as Content Bottom on the Home layout. No testimonial extension from the marketplace is needed.
- Markup for the HTML Content module’s Source view
- Which layout and position to pick
- A Theme Editor footer override for the script
OpenCart markup
Code for the HTML Content module
Enter the widget id. With one widget, paste Module code into the module’s Description in Source view. If you add StoryProof modules to several layouts, use the div only there and put the script in a footer override.
Part 1 · Module code: one HTML Content module with both lines
Extensions › Extensions › Modules › HTML Content › Description › Source
<div class="storyproof-testimonials">
<div data-storyproof-widget="YOUR_WIDGET_ID"></div>
</div>
<script src="https://app.storyproof.io/embed.js" async></script>Part 2 · Div only: each module when the script is site wide
HTML Content module › Description › Source
<div data-storyproof-widget="YOUR_WIDGET_ID"></div>Part 3 · Footer override: script once, every page
Design › Theme Editor › Add New › common/footer › before </body>
<script src="https://app.storyproof.io/embed.js" async></script>Save the module, assign it in Design, Layouts, and load the storefront page that uses that layout. If the module heading shows but the widget does not, reopen the module and confirm the script survived in Source view.
The code is generated in your browser and never leaves it.
The problem, solved
OpenCart testimonial headaches, fixed
- Problem 1
Every testimonial extension costs money
Marketplace modules often target older OpenCart versions and add their own admin screens to learn.
How StoryProof solves it
The core HTML Content module holds the StoryProof embed: a div with the widget id and one async script, nothing to install beyond what ships with OpenCart.
- Problem 2
Testimonials needed on several page types
Home, information and category pages each use a different layout, so one module seems to need copying.
How StoryProof solves it
Assign the same module to each layout. Where several StoryProof divs appear, a single embed.js in the footer fills them all.
- Problem 3
Store reviews need checking before they show
Extension forms that publish straight to the storefront invite spam and off topic posts.
How StoryProof solves it
Nothing a customer sends reaches the widget until you approve it, and you choose which approved ones it displays.
- Problem 4
Buyers will not type long reviews
A text box after checkout gets one line, if anything.
How StoryProof solves it
One StoryProof link lets a buyer record a short video, leave an audio note or write, in the browser.
- Problem 5
Requests depend on me remembering
Manual follow ups after each order slip as soon as the store gets busy.
How StoryProof solves it
From Pro, the store can post a webhook when an order is placed and StoryProof emails a request a week later.
In StoryProof
Install it in OpenCart 4
Step 1 of 4
Enable the HTML Content module
Go to Extensions, Extensions, and choose Modules in the type filter. Install HTML Content if it is not installed, then open it to create a module.
Step 2 of 4
Paste in Source view
Give it a Module Name (3 to 64 characters), add a Heading Title if you want one, click Source in the Description editor and paste the code. Set Status on and save.
Step 3 of 4
Place it in a layout
Open Design, Layouts, edit the layout for the pages you want (Home for the front page, Information for About or Contact). Add the module to Content Top, Content Bottom, Column Left or Column Right, set a sort order and save.
Step 4 of 4
Move the script to the footer (several layouts)
If the module appears on many layouts, switch the modules to the div only version and add the script through a Theme Editor override of common/footer. The override replaces the whole template, so keep the original footer code and add the script line just before the closing body tag.
Choosing a layout position
Before you start
Known limits
Steps match OpenCart docs as of 2026-11-13
Layouts and the Theme Editor follow docs.opencart.com, and the module fields follow OpenCart 4.1.0.3’s source, both read on 2026-11-13. Not yet tried on a live store.
Older versions and editors differ
OpenCart 4 configures its editor to keep pasted markup. Older releases, or a store that swapped in another editor extension, may strip the script; check Source view after saving.
Themes decide what renders
A third party theme can drop a position or rewrite common/footer. If nothing appears, check the theme’s own templates before blaming the module.
No OpenCart extension from StoryProof
There is no StoryProof module on the OpenCart marketplace. The embed is all that is needed.
Badge on lower plans
A small "Powered by StoryProof" badge stays under widgets until Pro.
FAQ
Questions people ask
Short answers to what usually comes up next.
Why did my script disappear after saving?
Some editors remove script tags. In stock OpenCart 4 the editor keeps them, but if yours does not, keep only the div in the module and load the script from a common/footer override.
Can a multi store setup show different widgets?
Yes. Create one HTML Content module per widget id and assign each to the layout routes for its store. Theme Editor overrides can also be set per store.
Does this replace OpenCart’s product reviews?
No. OpenCart’s reviews stay on product pages. The widget shows testimonials you approve in StoryProof, wherever you place the module.
Will a cache or minify extension break it?
It can, if it bundles or defers external scripts. Exclude embed.js from such processing and keep the src exactly as given.
Still have a question? Ask the StoryProof team or book a demo.
Skip the extension, keep the testimonials
Collect and approve them in StoryProof, then paste one embed into an OpenCart HTML module.
Sources
- Layouts, OpenCart Documentation. Checked 2026-11-13.
- Theme Editor, OpenCart Documentation. Checked 2026-11-13.
- HTML Content module (admin form and language strings, release 4.1.0.3), OpenCart on GitHub. Checked 2026-11-13.
- CKEditor configuration (allowedContent, Source button), release 4.1.0.3, OpenCart on GitHub. Checked 2026-11-13.
Last updated 2026-11-13.