{"product_id":"bassbloom-roar-portable-bluetooth-speaker-ipx6-b0gs99fg9p","title":"BassBloom Roar 3 Portable Bluetooth Speaker,IPX6 | 20W Powerful Sound with JIKE Bass,24...","description":"\n    \u003ch1\u003eBassBloom Roar 3 Portable Bluetooth Speaker,IPX6 | 20W Powerful Sound with JIKE Bass,24...\u003c\/h1\u003e\n\n    \u003cp\u003e\u003cstrong\u003eQuick Answer:\u003c\/strong\u003e BassBloom Roar 3 Portable Bluetooth Speaker,IPX6 | 20W Powerful Sound with JIKE Bass,24... is a audio accessories product. Its key benefit is Exclusive JIKE Bass Enhancement Algorithm: The BassBloom portable Bluetooth speaker features our proprietary technology that delivers rich, detailed bass even at lower volumes. Powered by a 20W driver and dual passive radiators (top and bottom), it significantly enhances low-end performance—boosting bass impact by 80% and peak power to 30W. Perfect for desktop use at home or outdoor adventures like camping, hiking, beach days, or by the pool, it offers unmatched portability without compromising on premium sound quality. It is intended for shoppers looking for bassbloom, roar, portable, bluetooth.\u003c\/p\u003e\n\n    \n        \u003ch2\u003eProduct Overview\u003c\/h2\u003e\n        \u003cp\u003efunction logShoppableMetrics(moduleName, showsAddToCart) { if (window.ue \u0026amp;\u0026amp; window.ue.count) { window.ue.count(\"aplus:shoppable:\" + moduleName + \":addToCart\", showsAddToCart ? 1 : 0); } } Product description html[dir=\"rtl\"] html[dir=\"rtl\"] html[dir=\"rtl\"] \/** * Premium modules global styles *\/ \/* Undo this for tech-specs because it breaks table layout *\/ \/* type *\/ \/* spacing *\/ \/* Display *\/ \/* Aplus display table with min-width 1000px and fill remaining space inside parent *\/ \/** * Padding and margin for element should be 10, 20, 40, or 80 px. Considering mini 10, small 20, medium 40, large 80. *\/ \/** * Premium-module 12: Nav Carousel *\/ \/* Override AUI styles. It poorly attempts to measure the slide heights before waiting until images load. *\/ html[dir=\"rtl\"] \/* nav *\/ \/** * Regimen template specific css *\/ html[dir=\"rtl\"] html[dir=\"rtl\"] html[dir=\"rtl\"] \/** * Navigation template specific css *\/ \/** * Premium-module 8: Hero Video module *\/ \/*Override the default VSE video player size*\/ (function(f) {var _np=(window.P._namespace(\"PremiumAplusModule\"));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) { P.now('premium-module-12-nav-carousel').execute('init-premium-module-12-nav-carousel', function(init) { if (init) { return; } P.register('premium-module-12-nav-carousel', function(){ return function() { P.when('A', 'jQuery', 'a-carousel-framework', 'ready').execute('premium-12-nav-carousel', function (A, $, framework) { function initiateCarousel(module) { var MODULE_ID = $(module).data('module-id'); \/** * Carousel button element classname * @const *\/ var GOTO_BTN_CLASS_NAME = \"aplus-goto-btn-\" + MODULE_ID; \/** * Carousel button element active classname * @const *\/ var GOTO_BTN_ACTIVE_CLASS_NAME = \"aplus-active\"; \/** * AUI name for aui carousel * @const *\/ var CAROUSEL_NAME = \"premium-aplus-12-carousel-\" + MODULE_ID; \/** * Module class name * @const *\/ var MODULE_CLASS_NAME = \" function scrollToCarouselButton(scrollLeft) { if ($(HORIZONTAL_SCROLL_CONTAINER_CLASS_NAME).length) { $(HORIZONTAL_SCROLL_CONTAINER_CLASS_NAME).animate({scrollLeft}, 200); } } \/** * Creates a CarouselButton class for provided carousel instance * @param {object} carousel - AUI Carousel instance * @returns {Class} - CarouselButton Class *\/ function CarouselButtonTemplate(carousel) { \/** * Button for controlling the active slide * @constructor * @param {number} index - slide index * @param {DOMElement} [elem] - optional DOM element to use as this objects DOM representation *\/ function CarouselButton(index, elem) { var self = this; this.index = index; this.carousel = carousel; \/* create the button element *\/ this.elem = this.getElem(elem); this.$elem = $(this.elem); \/* store jquery version *\/ this.elem.addEventListener('click', self.handleClick.bind(self)); this.elem.setAttribute('role', 'tab'); \/* add this object to the object manager *\/ CarouselButton.objects.byId[index] = this; CarouselButton.objects.all.push(this); } \/** * Describe behavior for click eve\u003c\/p\u003e\n      \n\n    \n  ","brand":"Techloop","offers":[{"title":"Default Title","offer_id":47374883029167,"sku":"AMZ-B0GS99FG9P","price":40.46,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0734\/9495\/4159\/files\/81OSaeMZX6L.jpg?v=1787030185","url":"https:\/\/techloop-living.com\/products\/bassbloom-roar-portable-bluetooth-speaker-ipx6-b0gs99fg9p","provider":"Techloop Living","version":"1.0","type":"link"}