xpay✦ Commerce
Directory
WooCommerce plugins
BSS 3D Product Viewer & AR for WooCommerce
BSS 3D Product Viewer & AR for WooCommerce
Interactive 3D product viewer with AR support for WooCommerce. Upload GLB/GLTF models and let customers view products in their space.
5.0
(2 ratings)Will this break my store?
What the WordPress.org registry says about keeping BSS 3D Product Viewer & AR for WooCommerce running.
Tested to 7.1
Tested against the WordPress branch in use today.29 days ago
7.4
Your host must be running at least this version.6.4
woocommerce
These must be installed and active first.1
A single maintainer. Worth knowing if the plugin is load-bearing for your store.Maintenance & trust
Scored on how BSS 3D Product Viewer & AR for WooCommerce is looked after — not on how many stores run it.
Maintenance
35 / 35WordPress compatibility
20 / 20Support responsiveness
Not enough dataMerchant satisfaction
11 / 15Listing transparency
7 / 10Ratings
5.0
2 ratingsBring your WooCommerce products to life with an interactive 3D viewer and mobile AR. Upload GLB/GLTF models, configure camera, lighting, hotspots, dimensions, and material variants, then let customers spin and explore products on the product page or place them in their room with augmented reality.
Features
- Interactive 3D viewer on product pages, powered by Google’s
<model-viewer>web component - Mobile AR via QR code (ARCore on Android, ARKit on iOS)
- GLB / GLTF model upload through the standard WordPress media library
- Fullscreen editor with tabs for Lighting, Camera, Materials, Animations, Hotspots, Camera Views, Dimensions, AR, Attribute Mapping, and Presentation
- Per-material color / metallic / roughness overrides
- Map WooCommerce product attributes (e.g. Color → Red) to material changes for instant variant previews
- Dimension overlay with cm / m / inches / feet units
- Signed proxy URLs so the raw GLB attachment URL is never exposed — cache-friendly, and revocable at any time from the settings page
- Show the 3D viewer inside the WooCommerce product gallery (as the first image) or as a button that opens a pop-up — your choice
[bss3dv_viewer id="123"]shortcode and a “BSS 3D Viewer” block to embed a model on any page or post- Translation-ready, RTL-ready, HPOS-compatible, no external CDN runtime dependencies
Privacy / Data
This plugin does not call any external services at runtime. All assets (model-viewer, QR generator) are bundled locally.
Bundled third-party libraries
This plugin bundles two open-source libraries. Both are GPL-compatible and their unminified/source distributions are publicly available:
- Google <model-viewer> 4.0.0 (Apache-2.0) — source: https://github.com/google/model-viewer
- QR code generator (MIT) — source: https://github.com/davidshimjs/qrcodejs
GLB (binary glTF) and GLTF. GLB is recommended because it bundles geometry, materials, and textures into a single file.
You can scan real products with Polycam, Scaniverse, or KIRI Engine on a phone. Designers can export from Blender, Maya, 3ds Max, SketchUp, or any GLB-capable tool.
Yes. The plugin uses standard <model-viewer> AR modes: WebXR and Scene Viewer on Android (ARCore), Quick Look on iOS (ARKit). On unsupported devices the customer sees the regular 3D viewer instead.
The plugin applies several layers to make casual download and reuse hard:
- Models are served only through a signed proxy URL (HMAC token) — the ID cannot be guessed or enumerated. The real
/wp-content/uploads/…glbpath is blocked from direct web access (an Apache.htaccess/ IISweb.configrule is added automatically on activation). - Cross-site hotlinking is blocked — the proxy only serves the model when the request comes from your own site.
- Opening a model URL directly in the address bar is blocked; only the viewer can fetch it.
- Right-click “save” and drag-save are disabled on the viewer.
- If a link ever leaks, WooCommerce → 3D Viewer → Settings → Rotate model links invalidates every URL issued so far in one click.
Please note: any 3D model rendered in a browser must send its data to the visitor’s device, so a determined user with developer tools can still capture it. This is friction against casual copying, not unbreakable DRM.
The automatic .htaccess / web.config rules only apply to Apache and IIS. On Nginx, add this to your server block and reload:
location ~* /wp-content/uploads/.*\.(glb|gltf)$ { deny all; }
The plugin shows an admin notice with this snippet when it detects Nginx.
Yes. The plugin only touches product post meta and options, and declares HPOS compatibility.
Not in v1.0.0. The classic product data tab is supported. Block-editor support is planned for a future release.
Yes. WooCommerce → 3D Viewer → Settings → General → AR Button → Disabled for all models. That hides AR everywhere: the “View in Your Room” button, the AR button inside the gallery / shortcode / block viewer, the QR pop-up, and the mobile AR link.
An individual model can override it in either direction. Open the model’s 3D editor, go to Presentation → AR Button, and choose “Always on” to keep AR for that one model even while the store-wide switch is off, or “Always off” to hide it for that model only. The default, “Use global setting”, follows the store-wide switch. The per-model choice always wins over the global one.
Yes. Go to WooCommerce → 3D Viewer → Display Mode and choose “Product gallery” — the model becomes the first gallery image and the “View in 3D” button is hidden. This uses the standard WooCommerce gallery; some themes or page builders that replace the gallery may not support it, in which case use Modal mode or the shortcode/block instead.
Yes. Use the shortcode [bss3dv_viewer id="123"] (the product ID is shown in the product’s 3D editor, on the Output tab), or add the “BSS 3D Viewer” block and enter the product ID. Both accept width, height, and ar options, e.g. [bss3dv_viewer id="123" width="100%" height="480px" ar="yes"].
Yes, out of the box — no exclusions to configure. Tested against SiteGround Optimizer, WP Rocket, LiteSpeed Cache, W3 Total Cache, Autoptimize, Perfmatters, and Cloudflare.
Two things make this work. Signed model URLs are stable, so they keep working no matter how long a page sits in a full-page cache. And the plugin marks its own scripts as “do not optimize”, because the <model-viewer> library is an ES module: combining or minifying it into a regular script breaks it. The plugin registers the official exclusion filters for the major optimization plugins and adds the standard opt-out attributes (data-no-optimize, data-noptimize, data-no-minify, data-no-defer, data-cfasync, data-wpfc-render, data-pagespeed-no-defer, nowprocket) to every script it loads.
If a viewer still fails to load, open your browser console and look for a [BSS 3D Viewer] message — it names the cause. The plugin also tries to reload the library by itself when it detects that something stripped it. As a manual fix, exclude model-viewer.min.js from your optimizer’s JavaScript combine, minify and defer settings.
Rotating invalidates every model URL issued so far, but pages already sitting in a full-page cache still contain the old ones. Clear your page cache and the new links go out with the next page view.
Categories
Plugin details
Tags on WordPress.org
