{"id":341278,"date":"2026-07-16T06:54:19","date_gmt":"2026-07-16T06:54:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/bss-3d-product-viewer-ar-for-woocommerce\/"},"modified":"2026-08-23T01:03:22","modified_gmt":"2026-08-23T01:03:22","slug":"bss-3d-product-viewer-ar-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/ca.wordpress.org\/plugins\/bss-3d-product-viewer-ar-for-woocommerce\/","author":23531106,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.1","requires":"6.4","requires_php":"7.4","requires_plugins":null,"header_name":"BSS 3D Product Viewer & AR for WooCommerce","header_author":"Bangladesh Software Solution","header_description":"Interactive 3D product viewer with AR support for WooCommerce. Upload GLB\/GLTF models, configure camera, lighting, hotspots, and dimensions, and let customers view products in their space via mobile AR.","assets_banners_color":"a6b8d4","last_updated":"2026-08-23 01:03:22","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/bssoln.com\/","rating":5,"author_block_rating":0,"active_installs":0,"downloads":174,"num_ratings":2,"support_threads":2,"support_threads_resolved":2,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"bssolnwp","date":"2026-07-16 06:53:54"},"1.0.1":{"tag":"1.0.1","author":"bssolnwp","date":"2026-08-23 01:03:22"}},"upgrade_notice":{"1.0.1":"<p>Fixes the 3D viewer failing to load on sites with caching or JavaScript optimization enabled, and adds a store-wide AR Button switch. Recommended for all users.<\/p>","1.0.0":"<p>First public release.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":2},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3609787,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3609787,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3609787,"resolution":"772x250","location":"assets","locale":"","width":2203,"height":714}},"assets_blueprints":{},"all_blocks":{"bss3dv\/viewer":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"bss3dv\/viewer","title":"BSS 3D Viewer","category":"media","icon":"video-alt3","description":"Embed an interactive 3D product viewer on any page or post.","keywords":["3d","ar","model","product","woocommerce"],"textdomain":"bss-3d-product-viewer-ar-for-woocommerce","attributes":{"productId":{"type":"number","default":0},"width":{"type":"string","default":"100%"},"height":{"type":"string","default":"480px"},"ar":{"type":"boolean","default":true},"autorotate":{"type":"string","default":""}},"supports":{"html":false,"align":["wide","full"]},"editorScript":"file:.\/block.js"}},"tagged_versions":["1.0.0","1.0.1"],"block_files":[],"assets_screenshots":{"Screenshot-1.png":{"filename":"Screenshot-1.png","revision":3609812,"resolution":"1","location":"assets","locale":"","width":1627,"height":898},"Screenshot-2.png":{"filename":"Screenshot-2.png","revision":3609812,"resolution":"2","location":"assets","locale":"","width":1579,"height":894},"Screenshot-3.png":{"filename":"Screenshot-3.png","revision":3609812,"resolution":"3","location":"assets","locale":"","width":1610,"height":899},"Screenshot-4.png":{"filename":"Screenshot-4.png","revision":3609812,"resolution":"4","location":"assets","locale":"","width":1453,"height":913},"Screenshot-5.png":{"filename":"Screenshot-5.png","revision":3609812,"resolution":"5","location":"assets","locale":"","width":1887,"height":911},"Screenshot-6.png":{"filename":"Screenshot-6.png","revision":3609812,"resolution":"6","location":"assets","locale":"","width":1918,"height":908}},"screenshots":{"1":"The \"View in 3D\" and \"View in Your Room\" buttons on a product page.","2":"The interactive 3D viewer modal, showing real-world product dimensions.","3":"Mobile AR via a scannable QR code, with a copy-link fallback.","4":"The admin settings \u2014 display mode, accent color, per-field tooltips, and a Custom CSS tab.","5":"The product editor's \"3D Model\" tab \u2014 upload a GLB and open the editor.","6":"The fullscreen 3D editor \u2014 lighting, camera, materials, hotspots, dimensions, and AR."}},"plugin_section":[],"plugin_tags":[783,147394,251327,199623,286],"plugin_category":[45],"plugin_contributors":[271516],"plugin_business_model":[],"class_list":["post-341278","plugin","type-plugin","status-publish","hentry","plugin_tags-3d","plugin_tags-ar","plugin_tags-glb","plugin_tags-model-viewer","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-bssolnwp","plugin_committers-bssolnwp"],"banners":{"banner":"https:\/\/ps.w.org\/bss-3d-product-viewer-ar-for-woocommerce\/assets\/banner-772x250.png?rev=3609787","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/bss-3d-product-viewer-ar-for-woocommerce\/assets\/icon-128x128.png?rev=3609787","icon_2x":"https:\/\/ps.w.org\/bss-3d-product-viewer-ar-for-woocommerce\/assets\/icon-256x256.png?rev=3609787","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/bss-3d-product-viewer-ar-for-woocommerce\/assets\/Screenshot-1.png?rev=3609812","caption":"The \"View in 3D\" and \"View in Your Room\" buttons on a product page."},{"src":"https:\/\/ps.w.org\/bss-3d-product-viewer-ar-for-woocommerce\/assets\/Screenshot-2.png?rev=3609812","caption":"The interactive 3D viewer modal, showing real-world product dimensions."},{"src":"https:\/\/ps.w.org\/bss-3d-product-viewer-ar-for-woocommerce\/assets\/Screenshot-3.png?rev=3609812","caption":"Mobile AR via a scannable QR code, with a copy-link fallback."},{"src":"https:\/\/ps.w.org\/bss-3d-product-viewer-ar-for-woocommerce\/assets\/Screenshot-4.png?rev=3609812","caption":"The admin settings \u2014 display mode, accent color, per-field tooltips, and a Custom CSS tab."},{"src":"https:\/\/ps.w.org\/bss-3d-product-viewer-ar-for-woocommerce\/assets\/Screenshot-5.png?rev=3609812","caption":"The product editor's \"3D Model\" tab \u2014 upload a GLB and open the editor."},{"src":"https:\/\/ps.w.org\/bss-3d-product-viewer-ar-for-woocommerce\/assets\/Screenshot-6.png?rev=3609812","caption":"The fullscreen 3D editor \u2014 lighting, camera, materials, hotspots, dimensions, and AR."}],"raw_content":"<!--section=description-->\n<p>Bring 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.<\/p>\n\n<p><strong>Features<\/strong><\/p>\n\n<ul>\n<li>Interactive 3D viewer on product pages, powered by Google's <code>&lt;model-viewer&gt;<\/code> web component<\/li>\n<li>Mobile AR via QR code (ARCore on Android, ARKit on iOS)<\/li>\n<li>GLB \/ GLTF model upload through the standard WordPress media library<\/li>\n<li>Fullscreen editor with tabs for Lighting, Camera, Materials, Animations, Hotspots, Camera Views, Dimensions, AR, Attribute Mapping, and Presentation<\/li>\n<li>Per-material color \/ metallic \/ roughness overrides<\/li>\n<li>Map WooCommerce product attributes (e.g. Color \u2192 Red) to material changes for instant variant previews<\/li>\n<li>Dimension overlay with cm \/ m \/ inches \/ feet units<\/li>\n<li>Signed proxy URLs so the raw GLB attachment URL is never exposed \u2014 cache-friendly, and revocable at any time from the settings page<\/li>\n<li>Show the 3D viewer inside the WooCommerce product gallery (as the first image) or as a button that opens a pop-up \u2014 your choice<\/li>\n<li><code>[bss3dv_viewer id=\"123\"]<\/code> shortcode and a \"BSS 3D Viewer\" block to embed a model on any page or post<\/li>\n<li>Translation-ready, RTL-ready, HPOS-compatible, no external CDN runtime dependencies<\/li>\n<\/ul>\n\n<p><strong>Privacy \/ Data<\/strong><\/p>\n\n<p>This plugin does not call any external services at runtime. All assets (model-viewer, QR generator) are bundled locally.<\/p>\n\n<p><strong>Bundled third-party libraries<\/strong><\/p>\n\n<p>This plugin bundles two open-source libraries. Both are GPL-compatible and their unminified\/source distributions are publicly available:<\/p>\n\n<ul>\n<li>Google &lt;model-viewer&gt; 4.0.0 (Apache-2.0) \u2014 source: https:\/\/github.com\/google\/model-viewer<\/li>\n<li>QR code generator (MIT) \u2014 source: https:\/\/github.com\/davidshimjs\/qrcodejs<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>bss-3d-viewer<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install the ZIP via <em>Plugins \u2192 Add New \u2192 Upload Plugin<\/em>.<\/li>\n<li>Activate the plugin through the <em>Plugins<\/em> screen.<\/li>\n<li>Make sure WooCommerce is installed and active.<\/li>\n<li>Visit <em>WooCommerce \u2192 3D Viewer<\/em> to configure global defaults.<\/li>\n<li>Edit any product, switch to the <em>3D Model<\/em> tab, upload a <code>.glb<\/code> file, and configure.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%203d%20file%20formats%20are%20supported%3F\"><h3>What 3D file formats are supported?<\/h3><\/dt>\n<dd><p>GLB (binary glTF) and GLTF. GLB is recommended because it bundles geometry, materials, and textures into a single file.<\/p><\/dd>\n<dt id=\"where%20can%20i%20get%20glb%20models%20from%3F\"><h3>Where can I get GLB models from?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"does%20ar%20work%20on%20iphone%20and%20android%3F\"><h3>Does AR work on iPhone and Android?<\/h3><\/dt>\n<dd><p>Yes. The plugin uses standard <code>&lt;model-viewer&gt;<\/code> 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.<\/p><\/dd>\n<dt id=\"is%20the%203d%20model%20file%20protected%20from%20direct%20download%3F\"><h3>Is the 3D model file protected from direct download?<\/h3><\/dt>\n<dd><p>The plugin applies several layers to make casual download and reuse hard:<\/p>\n\n<ul>\n<li>Models are served only through a signed proxy URL (HMAC token) \u2014 the ID cannot be guessed or enumerated. The real <code>\/wp-content\/uploads\/\u2026glb<\/code> path is blocked from direct web access (an Apache <code>.htaccess<\/code> \/ IIS <code>web.config<\/code> rule is added automatically on activation).<\/li>\n<li>Cross-site hotlinking is blocked \u2014 the proxy only serves the model when the request comes from your own site.<\/li>\n<li>Opening a model URL directly in the address bar is blocked; only the viewer can fetch it.<\/li>\n<li>Right-click \"save\" and drag-save are disabled on the viewer.<\/li>\n<li>If a link ever leaks, <em>WooCommerce \u2192 3D Viewer \u2192 Settings \u2192 Rotate model links<\/em> invalidates every URL issued so far in one click.<\/li>\n<\/ul>\n\n<p>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.<\/p><\/dd>\n<dt id=\"i%20use%20nginx%20%E2%80%94%20how%20do%20i%20block%20direct%20model%20downloads%3F\"><h3>I use Nginx \u2014 how do I block direct model downloads?<\/h3><\/dt>\n<dd><p>The automatic <code>.htaccess<\/code> \/ <code>web.config<\/code> rules only apply to Apache and IIS. On Nginx, add this to your server block and reload:<\/p>\n\n<pre><code>location ~* \/wp-content\/uploads\/.*\\.(glb|gltf)$ { deny all; }\n<\/code><\/pre>\n\n<p>The plugin shows an admin notice with this snippet when it detects Nginx.<\/p><\/dd>\n<dt id=\"does%20it%20support%20hpos%20%28high-performance%20order%20storage%29%3F\"><h3>Does it support HPOS (High-Performance Order Storage)?<\/h3><\/dt>\n<dd><p>Yes. The plugin only touches product post meta and options, and declares HPOS compatibility.<\/p><\/dd>\n<dt id=\"does%20it%20support%20the%20new%20block-based%20product%20editor%3F\"><h3>Does it support the new block-based product editor?<\/h3><\/dt>\n<dd><p>Not in v1.0.0. The classic product data tab is supported. Block-editor support is planned for a future release.<\/p><\/dd>\n<dt id=\"can%20i%20turn%20the%20ar%20button%20off%20for%20the%20whole%20store%3F\"><h3>Can I turn the AR button off for the whole store?<\/h3><\/dt>\n<dd><p>Yes. <em>WooCommerce \u2192 3D Viewer \u2192 Settings \u2192 General \u2192 AR Button \u2192 Disabled for all models<\/em>. 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.<\/p>\n\n<p>An individual model can override it in either direction. Open the model's 3D editor, go to <em>Presentation \u2192 AR Button<\/em>, 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.<\/p><\/dd>\n<dt id=\"can%20i%20show%20the%203d%20viewer%20inside%20the%20product%20gallery%20instead%20of%20a%20button%3F\"><h3>Can I show the 3D viewer inside the product gallery instead of a button?<\/h3><\/dt>\n<dd><p>Yes. Go to <em>WooCommerce \u2192 3D Viewer \u2192 Display Mode<\/em> and choose \"Product gallery\" \u2014 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.<\/p><\/dd>\n<dt id=\"can%20i%20embed%20a%203d%20model%20on%20any%20page%20or%20post%3F\"><h3>Can I embed a 3D model on any page or post?<\/h3><\/dt>\n<dd><p>Yes. Use the shortcode <code>[bss3dv_viewer id=\"123\"]<\/code> (the product ID is shown in the product's 3D editor, on the <em>Output<\/em> tab), or add the \"BSS 3D Viewer\" block and enter the product ID. Both accept <code>width<\/code>, <code>height<\/code>, and <code>ar<\/code> options, e.g. <code>[bss3dv_viewer id=\"123\" width=\"100%\" height=\"480px\" ar=\"yes\"]<\/code>.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20caching%20and%20speed-optimization%20plugins%3F\"><h3>Does it work with caching and speed-optimization plugins?<\/h3><\/dt>\n<dd><p>Yes, out of the box \u2014 no exclusions to configure. Tested against SiteGround Optimizer, WP Rocket, LiteSpeed Cache, W3 Total Cache, Autoptimize, Perfmatters, and Cloudflare.<\/p>\n\n<p>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 <code>&lt;model-viewer&gt;<\/code> 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 (<code>data-no-optimize<\/code>, <code>data-noptimize<\/code>, <code>data-no-minify<\/code>, <code>data-no-defer<\/code>, <code>data-cfasync<\/code>, <code>data-wpfc-render<\/code>, <code>data-pagespeed-no-defer<\/code>, <code>nowprocket<\/code>) to every script it loads.<\/p>\n\n<p>If a viewer still fails to load, open your browser console and look for a <code>[BSS 3D Viewer]<\/code> message \u2014 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 <code>model-viewer.min.js<\/code> from your optimizer's JavaScript combine, minify and defer settings.<\/p><\/dd>\n<dt id=\"i%20rotated%20the%20model%20links%20and%20now%20the%20viewer%20is%20broken.\"><h3>I rotated the model links and now the viewer is broken.<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Added: a store-wide <strong>AR Button<\/strong> setting (<em>Settings \u2192 General<\/em>) that turns the AR button off across every model at once. An individual model can still override it from its 3D editor (<em>Presentation \u2192 AR Button<\/em>) with \"Always on\" or \"Always off\" \u2014 the per-model choice wins.<\/li>\n<li>Fixed: the AR setting was ignored by the gallery viewer, the <code>[bss3dv_viewer]<\/code> shortcode, the block, and the standalone AR page \u2014 turning AR off left an AR button in the gallery and a working mobile AR link. All AR surfaces now share one setting.<\/li>\n<li>Fixed: the 3D viewer failed to load on sites with full-page caching enabled. Signed model URLs expired after five minutes, so any page served from a cache handed the browser a dead link. Model URLs are now stable and survive caching.<\/li>\n<li>Fixed: the viewer also failed after five minutes on the <em>first<\/em> page view without any cache \u2014 opening the pop-up later than that returned an expired link.<\/li>\n<li>Fixed: JavaScript optimization plugins broke the viewer by combining, minifying or deferring the <code>&lt;model-viewer&gt;<\/code> library, which is an ES module. The plugin now marks its scripts as \"do not optimize\" and registers the official exclusion filters for SiteGround Optimizer, WP Rocket, LiteSpeed Cache, Autoptimize, Perfmatters and Cloudflare Rocket Loader.<\/li>\n<li>Fixed: a delay-JavaScript plugin's <code>type<\/code> marker was being stripped from our script tag, making the two features fight each other.<\/li>\n<li>Added: the viewer now detects when the library was stripped, reloads it by itself, and logs a <code>[BSS 3D Viewer]<\/code> message explaining the cause. Failures used to be completely silent.<\/li>\n<li>Added: <em>Rotate model links<\/em> on the settings page, invalidating every signed model URL issued so far.<\/li>\n<li>Fixed: in gallery display mode, dragging to rotate the model on a phone or tablet also swiped the product gallery to the next image, making the model impossible to turn. Drag gestures that start on the viewer now stay in the viewer. Vertical page scrolling and the AR button are unaffected, and swiping the gallery's other slides still works.<\/li>\n<li>Fixed: in gallery display mode a phone showed <strong>two<\/strong> AR buttons \u2014 one inside the gallery viewer and one next to Add to Cart. Desktop only showed one, because the in-viewer button appears solely where AR is native. The gallery slide no longer carries its own AR button; the one next to Add to Cart is used in both modes and works everywhere (QR pop-up on desktop, AR deep link on mobile).<\/li>\n<li>Fixed: the \"View in Your Room\" label flashed up as plain text over the gallery image while the 3D viewer was still loading. The viewer's slotted controls are now hidden until the <code>&lt;model-viewer&gt;<\/code> element is ready.<\/li>\n<li>Fixed: on phones and tablets, where AR is supported, that AR button then stayed on the model as an unstyled browser button \u2014 it had only ever been styled on the standalone AR page. It now uses the plugin's accent colour and sits at the bottom of the viewer.<\/li>\n<li>Fixed: <code>Uncaught ReferenceError: jQuery is not defined<\/code>. Because the viewer's scripts are excluded from JS optimisation (they have to be \u2014 model-viewer is an ES module), an optimiser was free to defer or delay jQuery past them. Cloudflare Rocket Loader does exactly this. The viewer now waits for jQuery instead of assuming it, and reports a clear console message if it never arrives.<\/li>\n<li>Fixed: the localized product data is now read defensively, so an optimiser that moves or delays inline scripts degrades to a console message rather than an uncaught error that disabled every button.<\/li>\n<li>Fixed: unpublishing, trashing or making a product private did not stop its 3D model from being served to anyone holding an older link. The model stream now applies the same visibility rule as the AR page; editors can still preview drafts.<\/li>\n<li>Improved: models are now cached by the visitor's browser instead of being re-downloaded on every product page view.<\/li>\n<li>Removed: the editor's \"Best Practices\" tab. Its three toggles (\"Hide bottom progress bar\", \"Use custom AR button\", \"Use custom AR prompt\") were never wired to anything \u2014 they saved a value that no code read. Removed rather than left as controls that appear to do something. Nothing else changes; the viewer already uses a custom AR button everywhere.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial public release.<\/li>\n<\/ul>","raw_excerpt":"Interactive 3D product viewer with AR support for WooCommerce. Upload GLB\/GLTF models and let customers view products in their space.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/341278","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=341278"}],"author":[{"embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/bssolnwp"}],"wp:attachment":[{"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=341278"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=341278"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=341278"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=341278"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=341278"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=341278"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}