Back to blog
Integration5 min1,571 reads

How to Add a 360° Product View on OpenCart

3 steps for OpenCart 3/4: publish in Studio, paste widget.js in Theme Editor product.twig, bind by Model. Lazy load, modal, CDN.

IntegrationHow-to
OpenCart product page opening Spinnify 360° viewer in a modal overlay

Quick answer

360° on OpenCart 3/4: publish in Studio (name = Model, Active) → paste widget.js in Design → Theme Editor → product/product.twig → data-key + data-sku Manual (AUTO only if JSON-LD sku exists). Lazy load and modal. Refresh theme cache. Test a live PDP, not Admin preview.

OpenCart galleries flip still photos. Shoppers still cannot turn the item. You can add a photographed 360° spin without an OpenCart module: host frames in Spinnify and paste one script.

This guide is for OpenCart 3 and 4 (Twig Theme Editor). OpenCart 1.5 and 2.x use .tpl files. The same widget.js snippet works on a product page. You do not install an OpenCart extension from Spinnify.

3 steps from photos to a live OpenCart page

The work is the embed: one script on the product detail page, then a match to the catalog Model (the usual SKU field).

1. Prepare in Spinnify Studio

Before you open OpenCart Admin:

  • Sign up for Spinnify Studio.
  • Create a product and upload a photo series (24–36 frames, 4:3 for PC photos).
  • Important: the Studio product name must equal the OpenCart Model field (spaces and hyphens matter; case does not).
  • Keep the product Active. A hidden product will not show the button.

2. Add code on OpenCart

Two ways to paste the same Studio snippet. Copy it from Widget installation → Show code.

Method A: Theme Editor (best for product pages). Design → Theme Editor → product/product.twig (OpenCart 4: catalog/view/template/product/product.twig). Paste the script near the gallery, save, then refresh theme cache. Theme Editor stores a database override, not the file on disk. Prefer Manual data-sku equal to the Model, or data-sku="{{ product.model }}" in Twig. If product.model is empty, hardcode the Studio name.

Method B: common/header.twig plus AUTO (only if JSON-LD sku exists). This loads the script on every page, so skip it unless the theme already prints Schema.org Product JSON-LD with sku. Prefer the product template.

Spinnify widget.js pasted in OpenCart Theme Editor on the product template
widget.js in Theme Editor → 360° modal.

3. Configure the binding

The code looks like: <script src="https://www.spinnify.io/widget.js" data-key="YOUR_WIDGET_KEY" data-sku="SKU_FROM_PANEL" defer></script>

  • data-key: your Studio widget key. Do not change it.
  • data-sku: the OpenCart Model (Manual). AUTO only if JSON-LD sku exists, or URL if you saved the page path in Studio.

Why it stays fast

A third-party script on OpenCart raises PageSpeed questions because the product template already ships a gallery and theme JS. Spinnify keeps the extra work off first paint: frames stay on the CDN until someone asks to spin. The OpenCart gallery still renders first; the 360 layer opens in a modal after the click.

  • Lazy loading: the browser does not fetch the frame set until the shopper clicks.
  • Isolation: the viewer opens in a modal and does not replace the OpenCart gallery on first paint.
  • CDN: frames are resized WebP/AVIF, not extra files in OpenCart image storage.

Checklist: button not showing?

If the 3D View button is missing, walk this list on a live product URL, not in admin preview.

  • Did you refresh theme cache? Admin dashboard gear: disable or refresh theme cache. Extensions → Modifications → Refresh if OCMod is in play. Journal has its own cache.
  • Are you on a live product URL? Admin preview is a poor test for storefront scripts.
  • Theme Editor vs file: Theme Editor wins over FTP. If you edited product.twig on disk and nothing changed, close the Theme Editor override or clear cache.
  • Do names match? Studio product name and OpenCart Model must match (spaces and hyphens included).
  • Is the Studio product Active?
  • Is data-key copied from your account?
  • One script per page: do not paste the snippet twice, and do not put it in header.twig unless you accepted AUTO on every page.

Can I customize the button look?

Yes. Style the launcher in Studio, not in theme CSS. You can match the storefront without editing the product template:

  • Position: right, left, or center.
  • Colors and label to match the OpenCart theme.
  • Format: round floating icon or slim tab.

After that, OpenCart still serves the gallery. The 360° layer opens when someone asks for it.

Shoot spins: DIY smartphone guide. Other HTML stores: Tilda Zero Block. Full Spinnify guide.

Frequently asked questions

Do I need an OpenCart module?
No. Paste widget.js from Spinnify Studio into Theme Editor on the product template. Spinnify does not ship an OpenCart module or OCMod extension.
Theme Editor or header.twig?
Theme Editor on product/product.twig is the usual place, with Manual data-sku on the Model. header.twig plus AUTO only when the theme already prints JSON-LD sku, and it loads on every page.
What are data-key and data-sku?
data-key is your widget key from Studio. data-sku is the OpenCart Model (Manual). AUTO for JSON-LD sku, or URL for a saved page path.
Will the script slow OpenCart?
Frames download on click. The viewer runs in a modal. Delivery is WebP/AVIF via CDN, not extra OpenCart image files.
Why does the button not appear?
Refresh theme cache (and Modifications if OCMod is in play), open a live PDP, match Studio name to Model, keep the product Active, check data-key, paste the script once. Theme Editor overrides the file on disk.
Does OpenCart 1.5 or 2.x work?
This guide is OpenCart 3 and 4 with Twig Theme Editor. OpenCart 1.5 and 2.x use .tpl. The HTML snippet can be pasted on any HTML storefront, including a custom older theme, but we do not support that stack.
Can I customize the button?
Yes, in Studio: position, colors, label, round icon or slim tab. OpenCart theme CSS does not need to restyle the launcher.

Author

Spinnify Editorial

The Spinnify 360° Studio team — guides on 360° product spins, storefront integrations, and product page performance.

Tilda Zero Block page opening Spinnify 360° viewer in a modal overlay
Integration10 min1,543 reads

How to Add a 360° Product View on Tilda: A Guide for Store Owners

3 no-code steps: publish in Spinnify Studio, embed via T123 or Zero Block, bind by SKU. Lazy load, modal, WebP/CDN. Checklist if the button stays hidden.

IntegrationHow-to
Read article
WooCommerce product page embedding Spinnify 360° viewer via widget.js
Integration10 min1,968 reads

How to Add 360° Product Views to Your WooCommerce Store

Add 360° spins to WooCommerce in 3 steps: publish in Spinnify Studio, embed widget.js, SKU/URL binding. Lazy load, WebP CDN. Troubleshooting checklist.

IntegrationHow-to
Read article

Ready to publish your first 360° spin?

Create a product, upload frames, and embed the widget with one script snippet.

  1. Upload frames
  2. Embed script
  3. Go live
Try Spinnify 360° Studio free