1<!doctype html> 2<html lang="en"> 3<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# category: http://ogp.me/ns/category#"> 4 <meta charset="utf-8"/> 5<meta name="title" content="Custom Commercial Grade Buildings & Shelters | ShelterLogic"/> 6<meta name="description" content="Explore professional-grade solutions for industry, agriculture, and athletics. From wind and snow-load certified Truss buildings and Steel Garages to High Tunnel greenhouses and professional field tarps. Built for durability, engineered for performance."/> 7<meta name="keywords" content="commercial shelters, steel buildings, truss structures, fabric buildings, steel carports, high-tunnel greenhouses, athletic field tarps, equipment shelters"/> 8<meta name="robots" content="INDEX,FOLLOW"/> 9<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5.0"/> 10<title>Custom Commercial Grade Buildings & Shelters | ShelterLogic</title> 11 <link rel="stylesheet" type="text/css" media="all" href="https://www.shelterlogic.com/static/version1790844868/frontend/Shelterlogic/hyva/en_US/css/styles.css" /> 12<link rel="icon" href="https://www.shelterlogic.com/static/version1790844868/frontend/Shelterlogic/hyva/en_US/images/favicon/favicon.ico" /> 13<link rel="preload" as="font" crossorigin="anonymous" href="https://www.shelterlogic.com/static/version1790844868/frontend/Shelterlogic/hyva/en_US/fonts/Jost/jost-v14-latin-regular.woff2" /> 14<link rel="preload" as="font" crossorigin="anonymous" href="https://www.shelterlogic.com/static/version1790844868/frontend/Shelterlogic/hyva/en_US/fonts/Jost/jost-v14-latin-600.woff2" /> 15<link rel="preload" as="font" crossorigin="anonymous" href="https://www.shelterlogic.com/static/version1790844868/frontend/Shelterlogic/hyva/en_US/fonts/Jost/jost-v14-latin-700.woff2" /> 16<link rel="preload" as="font" crossorigin="anonymous" href="https://www.shelterlogic.com/static/version1790844868/frontend/Shelterlogic/hyva/en_US/fonts/Jost/jost-v14-latin-800.woff2" /> 17<link rel="preload" as="font" crossorigin="anonymous" href="https://www.shelterlogic.com/static/version1790844868/frontend/Shelterlogic/hyva/en_US/fonts/Jost/jost-v14-latin-900.woff2" /> 18<link rel="apple-touch-icon" href="https://www.shelterlogic.com/static/version1790844868/frontend/Shelterlogic/hyva/en_US/images/favicon/apple-touch-icon.png" /> 19<link rel="canonical" href="https://www.shelterlogic.com/commercial-grade-products" /> 20<link rel="icon" type="image/x-icon" href="https://www.shelterlogic.com/media/favicon/default/favicon.png" /> 21<link rel="shortcut icon" type="image/x-icon" href="https://www.shelterlogic.com/media/favicon/default/favicon.png" /> 22 23 24<meta http-equiv="Accept-CH" content="DPR, Viewport-Width, Width, Save-Data"/> 25<meta name="p:domain_verify" content="c9d008c60444b648c3d5b5e17b7c0d20"/> 26<style> 27div#onetrust-banner-sdk { 28 display: none !important; 29} 30 31a[aria-label="Braintree Badge Light"] img { 32width: 140px !important; 33height: 38px !important; 34} 35.blog-page .sidebar .blog-custom { 36order: 5; 37} 38 39#reviews-io-polaris-modal-ReviewsWidget .ElementsWidget { 40margin-bottom: 0; 41} 42 43section#product\.info\.manuals { 44 display: none !important; 45} 46 47.product-info-main a[href*="product\\.info\\.manuals"] { 48 display: none; 49} 50 51[class*="cms-hyva-home"] { 52 .columns { 53 max-width: none; 54 padding-left: 0; 55 padding-right: 0; 56 } 57 .page-main { 58 margin-top: 0 !important; 59 } 60} 61</style> 62<meta name="p:domain_verify" content="cct3ZXbGbKMnATzrTFQbzsNYjOv573jx"/> 63 <style type="text/css"> .product-item-info a.tocompare { display: none !important; }</style> <!-- Pinterest HTML Tag --><meta name="p:domain_verify" content="c9d008c60444b648c3d5b5e17b7c0d20" /> <!-- End of Pinterest HTML Tag --> <!-- Pinterest Pixel Base Code -->
63<script type="text/javascript"> 64 !function(e){if(!window.pintrk){window.pintrk=function(){window.pintrk.queue.push( 65 Array.prototype.slice.call(arguments))};var 66 n=window.pintrk;n.queue=[],n.version="3.0";var 67 t=document.createElement("script");t.async=!0,t.src=e;var 68 r=document.getElementsByTagName("script")[0];r.parentNode.insertBefore(t,r)}}("https://s.pinimg.com/ct/core.js"); 69 window.pintrk.partnerData={"np":"adobe"}; 70 var setCMSConsentCookie = function(value) { 71 document.cookie = "PinterestMagento2ExtensionConsentCookie=" + JSON.stringify({consent: value}) + ";path=/"; 72 } 73 var cmsCookieCallback = function(e) { 74 if (Cookiebot && Cookiebot.consent && Cookiebot.consent.marketing) { 75 setCMSConsentCookie(true); 76 pintrk('setconsent', true); 77 } else { 78 setCMSConsentCookie(false); 79 pintrk('setconsent', false); 80 } 81 } 82 pintrk('setconsent', function() { 83 84 var config = { 85 "isCookieRestrictionModeEnabled": 0, 86 "currentWebsite": 4, 87 "cookieName": "user_allowed_save_cookie", 88 "isGdprEnabled": 0, 89 "gdprOption": 0 } 90 var getCookie = function(name) { 91 var value = `; ${document.cookie}`; 92 var parts = value.split(`; ${name}=`); 93 if (parts.length === 2) return parts.pop().split(';').shift(); 94 } 95 if (!config.isGdprEnabled) { 96 return true; 97 } else if (config.isCookieRestrictionModeEnabled && config.gdprOption === 1) { 98 var cookieValue = getCookie(config.cookieName); 99 if (cookieValue) { 100 gdprCookie = unescape(cookieValue); 101 if (gdprCookie) { 102 gdprCookieObj = JSON.parse(gdprCookie); 103 return gdprCookieObj[config.currentWebsite] === 1; 104 } 105 } 106 return false; 107 } else if (config.gdprOption === 2) { 108 return !!(getCookie(config.cookieName)) && getCookie(config.cookieName) !== "0"; 109 } else if (config.gdprOption === 3) { 110 window.addEventListener('CookiebotOnConsentReady', cmsCookieCallback); 111 window.addEventListener('CookiebotOnLoad', cmsCookieCallback); 112 cookieValue = getCookie('PinterestMagento2ExtensionConsentCookie'); 113 if (cookieValue) { 114 gdprCookieObj = JSON.parse(unescape(cookieValue)); 115 if(gdprCookieObj.consent) { 116 return true; 117 } 118 } else if (Cookiebot && Cookiebot.consent && Cookiebot.consent.marketing) { 119 setCMSConsentCookie(true); 120 return true; 121 } 122 return false; 123 } 124 return true; 125 }()); 126 pintrk("load", "2612752692173", { 127 }); 128 pintrk("page"); 129 </script>
129<!-- End Pinterest Pixel Base Code --> <link href="//cdn.bc0a.com/autopilot/f00000000316724/autopilot_sdk.js" rel="preload" as="script" />
129<script> 130 (() => { 131 window.addEventListener('init-external-scripts', () => { 132 const script = document.createElement('script') 133 script.src = 'https://widget.reviews.io/rating-snippet/dist.js'; 134 script.type = 'text/javascript'; 135 script.async = true; 136 script.onload = () => window.dispatchEvent(new Event('reviews-io-loaded')); 137 document.head.append(script); 138 139 const style = document.createElement('link') 140 style.href = 'https://widget.reviews.io/rating-snippet/dist.css'; 141 style.rel = 'stylesheet'; 142 document.head.append(style); 143 }, {once: true, passive: true}); 144 })();</script>
144
144<script nonce="Y3dmaXNnM3hsMTFnd3d6bnA2Z3Zma2pjbWhsbmcweXI="> 145 window.YIREO_GOOGLETAGMANAGER2_ENABLED = true; 146 (function (events) { 147 const initYireoGoogleTagManager2 = function () { 148 events.forEach(function (eventType) { 149 window.removeEventListener(eventType, initYireoGoogleTagManager2); 150 }); 151 152 (function (w, d, s, l, i) { 153 w[l] = w[l] || []; 154 w[l].push({'gtm.start': new Date().getTime(), event: 'gtm.js'}); 155 var f = d.getElementsByTagName(s)[0], 156 j = d.createElement(s), 157 dl = l != 'dataLayer' ? '&l=' + l : ''; 158 j.async = true; 159 j.src = 'https\u003A\u002F\u002Fwww.googletagmanager.com' + '/gtm.js?id=' + i + dl; 160 const n = d.querySelector('[nonce]'); 161 j.id = 'gtm-main-script'; 162 n && j.setAttribute('data-nonce', n.nonce || n.getAttribute('nonce')); 163 n && j.setAttribute('nonce', n.nonce || n.getAttribute('nonce')); 164 f.parentNode.insertBefore(j, f); 165 })(window, document, 'script', 'dataLayer', 'GTM\u002DKS9DG3K'); 166 }; 167 168 events.forEach(function (eventType) { 169 window.addEventListener(eventType, initYireoGoogleTagManager2, {once: true, passive: true}) 170 }); 171 })(['pieeye-privacy-link-script-loaded']); 172 173 </script>
173
173<script> 174 var BASE_URL = 'https://www.shelterlogic.com/'; 175 var THEME_PATH = 'https://www.shelterlogic.com/static/version1790844868/frontend/Shelterlogic/hyva/en_US'; 176 var COOKIE_CONFIG = { 177 "expires": null, 178 "path": "\u002F", 179 "domain": ".www.shelterlogic.com", 180 "secure": true, 181 "lifetime": "3600", 182 "cookie_restriction_enabled": false }; 183 var CURRENT_STORE_CODE = 'us_shop_en'; 184 var CURRENT_WEBSITE_ID = '4'; 185 186 window.hyva = window.hyva || {} 187 188 window.cookie_consent_groups = window.cookie_consent_groups || {} 189 window.cookie_consent_groups['necessary'] = true; 190 191 window.cookie_consent_config = window.cookie_consent_config || {}; 192 window.cookie_consent_config['necessary'] = [].concat( 193 window.cookie_consent_config['necessary'] || [], 194 [ 195 'user_allowed_save_cookie', 196 'form_key', 197 'mage-messages', 198 'private_content_version', 199 'mage-cache-sessid', 200 'last_visited_store', 201 'section_data_ids' 202 ] 203 );</script>
203
203<script> 204 (function( hyva, undefined ) { 205 206 function lifetimeToExpires(options, defaults) { 207 208 const lifetime = options.lifetime || defaults.lifetime; 209 210 if (lifetime) { 211 const date = new Date; 212 date.setTime(date.getTime() + lifetime * 1000); 213 return date; 214 } 215 216 return null; 217 } 218 219 function generateRandomString() { 220 221 const allowedCharacters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', 222 length = 16; 223 224 let formKey = '', 225 charactersLength = allowedCharacters.length; 226 227 for (let i = 0; i < length; i++) { 228 formKey += allowedCharacters[Math.round(Math.random() * (charactersLength - 1))] 229 } 230 231 return formKey; 232 } 233 234 const sessionCookieMarker = {noLifetime: true} 235 236 const cookieTempStorage = {}; 237 238 const internalCookie = { 239 get(name) { 240 const v = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)'); 241 return v ? v[2] : null; 242 }, 243 set(name, value, days, skipSetDomain) { 244 let expires, 245 path, 246 domain, 247 secure, 248 samesite; 249 250 const defaultCookieConfig = { 251 expires: null, 252 path: '/', 253 domain: null, 254 secure: false, 255 lifetime: null, 256 samesite: 'lax' 257 }; 258 259 const cookieConfig = window.COOKIE_CONFIG || {}; 260 261 expires = days && days !== sessionCookieMarker 262 ? lifetimeToExpires({lifetime: 24 * 60 * 60 * days, expires: null}, defaultCookieConfig) 263 : lifetimeToExpires(window.COOKIE_CONFIG, defaultCookieConfig) || defaultCookieConfig.expires; 264 265 path = cookieConfig.path || defaultCookieConfig.path; 266 domain = !skipSetDomain && (cookieConfig.domain || defaultCookieConfig.domain); 267 secure = cookieConfig.secure || defaultCookieConfig.secure; 268 samesite = cookieConfig.samesite || defaultCookieConfig.samesite; 269 270 document.cookie = name + "=" + encodeURIComponent(value) + 271 (expires && days !== sessionCookieMarker ? '; expires=' + expires.toGMTString() : '') + 272 (path ? '; path=' + path : '') + 273 (domain ? '; domain=' + domain : '') + 274 (secure ? '; secure' : '') + 275 (samesite ? '; samesite=' + samesite : 'lax'); 276 }, 277 isWebsiteAllowedToSaveCookie() { 278 const allowedCookies = this.get('user_allowed_save_cookie'); 279 if (allowedCookies) { 280 const allowedWebsites = JSON.parse(unescape(allowedCookies)); 281 282 return allowedWebsites[CURRENT_WEBSITE_ID] === 1; 283 } 284 return false; 285 }, 286 getGroupByCookieName(name) { 287 const cookieConsentConfig = window.cookie_consent_config || {}; 288 let group = null; 289 for (let prop in cookieConsentConfig) { 290 if (!cookieConsentConfig.hasOwnProperty(prop)) continue; 291 if (cookieConsentConfig[prop].includes(name)) { 292 group = prop; 293 break; 294 } 295 } 296 return group; 297 }, 298 isCookieAllowed(name) { 299 const cookieGroup = this.getGroupByCookieName(name); 300 return cookieGroup 301 ? window.cookie_consent_groups[cookieGroup] 302 : this.isWebsiteAllowedToSaveCookie(); 303 }, 304 saveTempStorageCookies() { 305 for (const [name, data] of Object.entries(cookieTempStorage)) { 306 if (this.isCookieAllowed(name)) { 307 this.set(name, data['value'], data['days'], data['skipSetDomain']); 308 delete cookieTempStorage[name]; 309 } 310 } 311 } 312 }; 313 314 hyva.getCookie = (name) => { 315 const cookieConfig = window.COOKIE_CONFIG || {}; 316 317 if (cookieConfig.cookie_restriction_enabled && ! internalCookie.isCookieAllowed(name)) { 318 return cookieTempStorage[name] ? cookieTempStorage[name]['value'] : null; 319 } 320 321 return internalCookie.get(name); 322 } 323 324 hyva.setCookie = (name, value, days, skipSetDomain) => { 325 const cookieConfig = window.COOKIE_CONFIG || {}; 326 327 if (cookieConfig.cookie_restriction_enabled && ! internalCookie.isCookieAllowed(name)) { 328 cookieTempStorage[name] = {value, days, skipSetDomain}; 329 return; 330 } 331 return internalCookie.set(name, value, days, skipSetDomain); 332 } 333 334 335 hyva.setSessionCookie = (name, value, skipSetDomain) => { 336 return hyva.setCookie(name, value, sessionCookieMarker, skipSetDomain) 337 } 338 339 hyva.getBrowserStorage = () => { 340 const browserStorage = window.localStorage || window.sessionStorage; 341 if (!browserStorage) { 342 console.warn('Browser Storage is unavailable'); 343 return false;
344 } 345 try { 346 browserStorage.setItem('storage_test', '1'); 347 browserStorage.removeItem('storage_test'); 348 } catch (error) { 349 console.warn('Browser Storage is not accessible', error); 350 return false; 351 } 352 return browserStorage; 353 } 354 355 hyva.postForm = (postParams) => { 356 const form = document.createElement("form"); 357 358 let data = postParams.data; 359 360 if (! postParams.skipUenc && ! data.uenc) { 361 data.uenc = btoa(window.location.href); 362 } 363 form.method = "POST"; 364 form.action = postParams.action; 365 366 Object.keys(postParams.data).map(key => { 367 const field = document.createElement("input"); 368 field.type = 'hidden' 369 field.value = postParams.data[key]; 370 field.name = key; 371 form.appendChild(field); 372 }); 373 374 const form_key = document.createElement("input"); 375 form_key.type = 'hidden'; 376 form_key.value = hyva.getFormKey(); 377 form_key.name="form_key"; 378 form.appendChild(form_key); 379 380 document.body.appendChild(form); 381 382 form.submit(); 383 } 384 385 hyva.getFormKey = function () { 386 let formKey = hyva.getCookie('form_key'); 387 388 if (!formKey) { 389 formKey = generateRandomString(); 390 hyva.setCookie('form_key', formKey); 391 } 392 393 return formKey; 394 } 395 396 hyva.formatPrice = (value, showSign, options = {}) => { 397 const groupSeparator = options.groupSeparator; 398 const decimalSeparator = options.decimalSeparator 399 delete options.groupSeparator; 400 delete options.decimalSeparator; 401 const formatter = new Intl.NumberFormat( 402 'en\u002DUS', 403 Object.assign({ 404 style: 'currency', 405 currency: 'USD', 406 signDisplay: showSign ? 'always' : 'auto' 407 }, options) 408 ); 409 return (typeof Intl.NumberFormat.prototype.formatToParts === 'function') ? 410 formatter.formatToParts(value).map(({type, value}) => { 411 switch (type) { 412 case 'currency': 413 return '\u0024' || value; 414 case 'minusSign': 415 return '- '; 416 case 'plusSign': 417 return '+ '; 418 case 'group': 419 return groupSeparator !== undefined ? groupSeparator : value; 420 case 'decimal': 421 return decimalSeparator !== undefined ? decimalSeparator : value; 422 default : 423 return value; 424 } 425 }).reduce((string, part) => string + part) : 426 formatter.format(value); 427 } 428 429 const formatStr = function (str, nStart) { 430 const args = Array.from(arguments).slice(2); 431 432 return str.replace(/(%+)([0-9]+)/g, (m, p, n) => { 433 const idx = parseInt(n) - nStart; 434 435 if (args[idx] === null || args[idx] === void 0) { 436 return m; 437 } 438 return p.length % 2 439 ? p.slice(0, -1).replace('%%', '%') + args[idx] 440 : p.replace('%%', '%') + n; 441 }) 442 } 443 444 hyva.str = function (string) { 445 const args = Array.from(arguments); 446 args.splice(1, 0, 1); 447 448 return formatStr.apply(undefined, args); 449 } 450 451 hyva.strf = function () { 452 const args = Array.from(arguments); 453 args.splice(1, 0, 0); 454 455 return formatStr.apply(undefined, args); 456 } 457 458 /** 459 * Take a html string as `content` parameter and 460 * extract an element from the DOM to replace in 461 * the current page under the same selector, 462 * defined by `targetSelector` 463 */ 464 hyva.replaceDomElement = (targetSelector, content) => { 465 466 const parser = new DOMParser(); 467 const doc = parser.parseFromString(content, 'text/html');
468 const contentNode = doc.querySelector(targetSelector); 469 470 471 if (!contentNode || !document.querySelector(targetSelector)) { 472 return; 473 } 474 475 hyva.activateScripts(contentNode); 476 document.querySelector(targetSelector).replaceWith(contentNode); 477 478 479 window.dispatchEvent(new CustomEvent("reload-customer-section-data")); 480 hyva.initMessages(); 481 } 482 483 hyva.removeScripts = (contentNode) => { 484 const scripts = contentNode.getElementsByTagName('script'); 485 for (let i = 0; i < scripts.length; i++) { 486 scripts[i].parentNode.removeChild(scripts[i]); 487 } 488 const templates = contentNode.getElementsByTagName('template'); 489 for (let i = 0; i < templates.length; i++) { 490 const container = document.createElement('div'); 491 container.innerHTML = templates[i].innerHTML; 492 hyva.removeScripts(container); 493 templates[i].innerHTML = container.innerHTML; 494 } 495 } 496 497 hyva.activateScripts = (contentNode) => { 498 const scripts = Array.from(contentNode.getElementsByTagName('script')); 499 500 501 for (const original of scripts) { 502 const script = document.createElement('script'); 503 original.type && (script.type = original.type); 504 script.innerHTML = original.innerHTML; 505 506 507 original.parentNode.removeChild(original) 508 509 510 document.head.appendChild(script); 511 } 512 513 return contentNode; 514 } 515 516 const replace = {['+']: '-', ['/']: '_', ['=']: ','}; 517 hyva.getUenc = () => btoa(window.location.href).replace(/[+/=]/g, match => replace[match]); 518 519 let currentTrap; 520 521 const focusableElements = (rootElement) => { 522 const selector = 'button, [href], input, select, textarea, details, [tabindex]:not([tabindex="-1"]'; 523 return Array.from(rootElement.querySelectorAll(selector)) 524 .filter(el => { 525 return el.style.display !== 'none' 526 && !el.disabled 527 && el.tabIndex !== -1 528 && (el.offsetWidth || el.offsetHeight || el.getClientRects().length) 529 }) 530 } 531 532 const focusTrap = (e) => { 533 const isTabPressed = e.key === 'Tab' || e.keyCode === 9; 534 if (!isTabPressed) return; 535 536 const focusable = focusableElements(currentTrap) 537 const firstFocusableElement = focusable[0] 538 const lastFocusableElement = focusable[focusable.length - 1] 539 540 e.shiftKey 541 ? document.activeElement === firstFocusableElement && (lastFocusableElement.focus(), e.preventDefault()) 542 : document.activeElement === lastFocusableElement && (firstFocusableElement.focus(), e.preventDefault()) 543 }; 544 545 hyva.releaseFocus = (rootElement) => { 546 if (currentTrap && (!rootElement || rootElement === currentTrap)) { 547 currentTrap.removeEventListener('keydown', focusTrap) 548 currentTrap = null 549 } 550 } 551 hyva.trapFocus = (rootElement) => { 552 if (!rootElement) return; 553 hyva.releaseFocus() 554 currentTrap = rootElement 555 rootElement.addEventListener('keydown', focusTrap) 556 const firstElement = focusableElements(rootElement)[0] 557 firstElement && firstElement.focus() 558 } 559 560 hyva.safeParseNumber = (rawValue) => { 561 const number = rawValue ? parseFloat(rawValue) : null; 562 563 return Array.isArray(number) || isNaN(number) ? rawValue : number; 564 } 565 566 const toCamelCase = s => s.split('_').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(''); 567 hyva.createBooleanObject = (name, value = false, additionalMethods = {}) => { 568 569 const camelCase = toCamelCase(name); 570 const key = '__hyva_bool_' + name 571 572 return new Proxy(Object.assign( 573 additionalMethods, 574 { 575 [key]: !!value, 576 [name]() {return !!this[key]}, 577 ['!' + name]() {return !this[key]}, 578 ['not' + camelCase]() {return !this[key]}, 579 ['toggle' + camelCase]() {this[key] = !this[key]}, 580 [`set${camelCase}True`]() {this[key] = true}, 581 [`set${camelCase}False`]() {this[key] = false}, 582 } 583 ), { 584 set(target, prop, value) { 585 return prop === name 586 ? (target[key] = !!value) 587 : Reflect.set(...arguments); 588 } 589 }) 590 } 591 592 hyva.alpineInitialized = (fn) => window.addEventListener('alpine:initialized', fn, {once: true}) 593 window.addEventListener('alpine:init', () => Alpine.data('{}', () => ({})), {once: true}); 594 window.addEventListener('user-allowed-save-cookie', () => internalCookie.saveTempStorageCookies()) 595 596 }( window.hyva = window.hyva || {} ));</script>
596
596<script type="speculationrules"> 597{ 598 "tag": "Hyva Theme", 599 "prerender": [{ 600 "source": "document", 601 "where": { 602 "and": [ 603 { "href_matches": "/*" }, 604 { "not": { 605 "href_matches": ["/customer/*","/customer","/search/*","/search","/sales/*","/sales","/wishlist/*","/wishlist","/checkout/*","/checkout","/paypal/*","/paypal","/newsletter/*","/newsletter","/stores/store/redirect/*","/stores/store/redirect"] }}, 606 { "not": { 607 "selector_matches": [".no-preload", ".do-not-prerender", "[download]", "[rel~=nofollow]", "[target]"] 608 }} 609 ] 610 }, 611 "eagerness": "immediate" 612 }] 613}</script>
613<script> 614 (() => { 615 window.addEventListener('init-external-scripts', () => { 616 const style = document.createElement('link') 617 style.href = 'https://www.shelterlogic.com/static/version1790844868/frontend/Shelterlogic/hyva/en_US/Astound_Affirm/affirm-promo.css'; 618 style.rel = 'stylesheet'; 619 document.head.append(style); 620 }, {once: true, passive: true}); 621 })(); 622</script>
vendor: 1 bytes, line 622
622
623<script> 624 (() => { 625 window.addEventListener('init-external-scripts', () => { 626 const script = document.createElement('script') 627 script.src = 'https://www.shelterlogic.com/static/version1790844868/frontend/Shelterlogic/hyva/en_US/Smile_ElasticsuiteTracker/js/tracking.min.js'; 628 script.type = 'text/javascript'; 629 script.async = true; 630 document.head.append(script); 631 }, {once: true, passive: true}); 632 })(); 633</script>
633 634 <meta property="og:type" content="category"/><meta property="og:title" content="Custom Commercial Grade Buildings & Shelters | ShelterLogic"/> <meta property="og:description" content="Explore professional-grade solutions for industry, agriculture, and athletics. From wind and snow-load certified Truss buildings and Steel Garages to High Tunnel greenhouses and professional field tarps. Built for durability, engineered for performance."/><meta property="og:url" content="https://www.shelterlogic.com/commercial-grade-products"/><meta property="og:locale" content="en_US" /><meta property="og:site_name" content="ShelterLogic" /> <link rel="preconnect" href="https://access.equalweb.com" /><link rel="preload" href="https://cdn.equalweb.com/core/5.2.5/accessibility.js" as="script" crossorigin="anonymous" integrity="sha512-Zamp30ps601kXvZTcIYv1sytUc090mrEJD9rLuoWzEGqmB6t0XdLRgC/g5TznUleEBIMm6T3c6Baf/ExIYh/Hw=="/>
634<script> 635 window.addEventListener('init-external-scripts', () => { 636 window.dataLayer = window.dataLayer || []; 637 638 function gtag() { 639 dataLayer.push(arguments); 640 } 641 642 643 const DENIED_CONSENT = { 644 functionality_storage: "denied", 645 personalization_storage: "denied", 646 analytics_storage: "denied", 647 ad_storage: "denied", 648 security_storage: "granted", 649 ad_user_data: "denied", 650 ad_personalization: "denied", 651 }; 652 653 const GRANTED_CONSENT = { 654 functionality_storage: "granted", 655 personalization_storage: "granted", 656 analytics_storage: "granted", 657 ad_storage: "granted", 658 security_storage: "granted", 659 ad_user_data: "granted", 660 ad_personalization: "granted", 661 }; 662 663 664 async function getUserLocation() { 665 try { 666 const response = await fetch("https://geo.pii.ai/geo"); 667 const data = await response.json(); 668 return { 669 continent: data.location.continent.code, 670 country: data.location.country.code, 671 region: data.location.region.code, 672 city: data.location.city, 673 gpc: data.gpc 674 }; 675 } catch (error) { 676 console.error("Error getting location from internal API:", error); 677 return null; 678 } 679 } 680 681 682 async function getCookieValue(name) { 683 const match = document.cookie.match(new RegExp("(^| )" + name + "=([^;]+)")); 684 return match ? decodeURIComponent(match[2]) : null; 685 } 686 687 688 async function shouldEnableConsentByDefault(location) { 689 if (!location) return false; 690 691 const {country, region, continent, gpc} = location; 692 693 694 if (continent === "EU") return false; 695 696 697 if (country === "US" && gpc) return false; 698 699 700 if (country === "US" && ["US-CA", "US-FL"].includes(region)) return false; 701 702 703 if (country === "CA" && region === "CA-QC") return false; 704 705 706 return true; 707 } 708 709 710 async function applyConsentSettings() { 711 const location = await getUserLocation(); 712 if (!location) return false; 713 714 715 const allowConsent = await shouldEnableConsentByDefault(location); 716 717 if (allowConsent) { 718 gtag("consent", "default", GRANTED_CONSENT); 719 gtag("set", "url_passthrough", false); 720 gtag("set", "ads_data_redaction", false); 721 } else { 722 gtag("consent", "default", DENIED_CONSENT); 723 gtag("set", "url_passthrough", true); 724 gtag("set", "ads_data_redaction", true); 725 } 726 } 727 728 729 (async function () { 730 let consentSettings = DENIED_CONSENT; 731 let consentFlag = false; 732 733 734 const consentCookie = await getCookieValue("consentGiven"); 735 if (consentCookie) { 736 try { 737 consentSettings = JSON.parse(consentCookie); 738 consentFlag = true; 739 } catch { 740 741 console.warn('Error while parse cookie') 742 } 743 } 744 745 746 if (consentFlag) { 747 await applyConsentSettings(); 748 gtag("consent", "update", consentSettings); 749 } else { 750 await applyConsentSettings(); 751 } 752 753 754 const consentAdvance = await getCookieValue("consentAdvanceSetting"); 755 if (consentAdvance) { 756 try { 757 const consentAdvanceSetting = JSON.parse(consentAdvance); 758 if (consentAdvanceSetting && typeof consentAdvanceSetting === "object") { 759 Object.entries(consentAdvanceSetting).forEach(([key, value]) => { 760 gtag("set", key, value); 761 }); 762 } else { 763 throw new Error("Invalid consent object"); 764 } 765 } catch (e) { 766 console.warn("Invalid consentAdvanceSetting cookie", e); 767 } 768 } 769 770 771 window.consentFlag = consentFlag; 772 })(); 773 });</script>
773
773<script id="pieeye-consent-event-fired"> 774 window.addEventListener('init-external-scripts', () => { 775 (async function () { 776 777 async function getUserLocation() { 778 try { 779 const response = await fetch("https://geo.pii.ai/geo"); 780 const data = await response.json(); 781 return { 782 continent: data.location.continent.code, 783 country: data.location.country.code, 784 region: data.location.region.code, 785 city: data.location.city, 786 gpc: data.gpc 787 }; 788 } catch (error) { 789 console.error("Error getting location from internal API:", error); 790 return null; 791 } 792 } 793 794 795 async function shouldEnableConsentByDefault(location) { 796 if (!location) return false; 797 798 const { country, region, continent, gpc } = location; 799 800 801 if (continent === "EU") return false; 802 803 804 if (country === "CA" && region === "CA-QC") return false; 805 806 807 if (gpc && country === "US") return false; 808 809 810 if (country === "US" && ["US-CA", "US-FL"].includes(region)) return false; 811 812 813 return true; 814 } 815 816 async function applyConsentSettings() { 817 const location = await getUserLocation(); 818 return shouldEnableConsentByDefault(location); 819 } 820 821 822 function getCookie(name) { 823 var match = document.cookie.match(new RegExp("(^| )" + name + "=([^;]+)")); 824 return match ? decodeURIComponent(match[2]) : null; 825 } 826 827 var cookieName = "PieEyeConsent"; 828 829 try { 830 var cookieValue = getCookie(cookieName); 831 var consentData = {}; 832 833 if (!cookieValue) { 834 const allowedConsent = await applyConsentSettings(); 835 836 if (allowedConsent) { 837 consentData = { 838 "pieeye-category-necessary": 1, 839 "pieeye-category-functional": 1, 840 "pieeye-category-targeting-analytics": 1, 841 "pieeye-category-performance": 1, 842 "pieeye-category-preferences": 1 843 }; 844 } else { 845 consentData = { 846 "pieeye-category-necessary": 1, 847 "pieeye-category-functional": 0, 848 "pieeye-category-targeting-analytics": 0, 849 "pieeye-category-performance": 0, 850 "pieeye-category-preferences": 0 851 }; 852 } 853 } else { 854 consentData = JSON.parse(cookieValue); 855 } 856 857 window.dataLayer = window.dataLayer || []; 858 window.dataLayer.push({ 859 event: "PieEyeActiveConsent", 860 PieEyeConsent: consentData 861 }); 862 863 console.log("PieEyeActiveConsent fired with:", consentData); 864 } catch (e) { 865 console.warn("PieEyeActiveConsent cookie missing or invalid:", e); 866 } 867 868 var updateConsentCookie = "PieEyeActiveConsentUpdate"; 869 870 try { 871 var updateConsentCookieValue = getCookie(updateConsentCookie); 872 var updateConsentCookieData = {}; 873 874 if (!updateConsentCookieValue) { 875 updateConsentCookieData = { 876 "pieeye-category-necessary": 1, 877 "pieeye-update-functional": 1, 878 "pieeye-update-advertising": 1, 879 "pieeye-update-performance": 1, 880 "pieeye-update-preferences": 1 881 }; 882 } else { 883 updateConsentCookieData = JSON.parse(updateConsentCookieValue); 884 } 885 886 window.dataLayer = window.dataLayer || []; 887 window.dataLayer.push({ 888 event: "PieEyeActiveConsentUpdate", 889 PieEyeActiveConsentUpdate: updateConsentCookieData 890 }); 891 892 } catch (e) { 893 console.warn("PieEyeActiveConsentUpdate cookie missing or invalid:", e); 894 } 895 896 })(); 897 });</script>
897</head> 898<body id="html-body" class="page-with-filter catalog-category-landing page-products categorypath-commercial-grade-products category-commercial-grade-products catalog-category-view page-layout-1column"> 899<div id="contentarea" tabindex="-1"></div>
vendor: 68 bytes, line 899
899 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
899GTM-KS9DG3K
vendor: 82 bytes, line 899
899" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
899<input name="form_key" type="hidden" value="t9xtKlgZHli8JmLf" tabindex="-1"/> 900 <noscript> 901 <section class="message global noscript border-b-2 border-blue-500 bg-blue-50 shadow-none m-0 px-0 rounded-none font-normal"> 902 <div class="container text-center"> 903 <p> 904 <strong>JavaScript seems to be disabled in your browser.</strong> 905 <span> 906 For the best experience on our site, be sure to turn on Javascript in your browser. </span> 907 </p> 908 </div> 909 </section> 910 </noscript> 911 912
913<script> 914 document.body.addEventListener('touchstart', () => {}, {passive: true}) 915</script>
915 916
916<script> 917 'use strict'; 918 919 (() => { 920 window.addEventListener( 921 'ga-initialized', 922 () => { 923 window.addEventListener('cart-item-added', (event) => { 924 let products = []; 925 926 event.detail.forEach((item) => { 927 products.push({ 928 id: item['product_sku'], 929 name: item['product_name'], 930 price: item['product_price_value'], 931 quantity: item['qty'], 932 }); 933 }); 934 935 dataLayer.push({ 936 event: 'addToCart', 937 ecommerce: { 938 currencyCode: 'USD', 939 add: { 940 products: products, 941 }, 942 }, 943 }); 944 }); 945 }, 946 { once: true } 947 ); 948 })();</script>
948
948<script> 949 'use strict'; 950 951 (() => { 952 window.addEventListener( 953 'ga-initialized', 954 () => { 955 window.addEventListener('cart-item-removed', (event) => { 956 let products = []; 957 958 event.detail.forEach((item) => { 959 products.push({ 960 id: item['product_sku'], 961 name: item['product_name'], 962 price: item['product_price_value'], 963 quantity: item['qty'], 964 }); 965 }); 966 967 dataLayer.push({ 968 event: 'removeFromCart', 969 ecommerce: { 970 currencyCode: 'USD', 971 remove: { 972 products: products, 973 }, 974 }, 975 }); 976 }); 977 }, 978 { once: true } 979 ); 980 })();</script>
980
980<script> 981 'use strict'; 982 983 (() => { 984 window.addEventListener( 985 'ga-initialized', 986 () => { 987 const banners = document.querySelectorAll('\u005Bdata\u002Dbanner\u002Did\u005D'); 988 let promotions = []; 989 990 banners.forEach((banner) => { 991 banner.addEventListener('click', () => { 992 window.dataLayer.push({ 993 event: 'promotionClick', 994 ecommerce: { 995 promoClick: { 996 promotions: [{ 997 id: banner.dataset.bannerId, 998 name: banner.dataset.bannerName, 999 creative: '', 1000 position: 'catalog_category_view', 1001 }], 1002 }, 1003 }, 1004 }); 1005 }); 1006 1007 promotions.push({ 1008 id: banner.dataset.bannerId, 1009 name: banner.dataset.bannerName, 1010 creative: '', 1011 position: 'catalog_category_view', 1012 }); 1013 }); 1014 1015 if (promotions.length) { 1016 window.dataLayer.push({ 1017 event: 'promotionView', 1018 ecommerce: { 1019 promoView: { 1020 promotions: promotions, 1021 }, 1022 }, 1023 }); 1024 } 1025 }, 1026 { once: true } 1027 ); 1028 })();</script>
1028
1028<script nonce="Y3dmaXNnM3hsMTFnd3d6bnA2Z3Zma2pjbWhsbmcweXI="> 1029 function yireoGoogleTagManager2Pusher(eventData, message, callback) { 1030 window.YIREO_GOOGLETAGMANAGER2_PAST_EVENTS = window.YIREO_GOOGLETAGMANAGER2_PAST_EVENTS || []; 1031 1032 function doCallback(cb) { 1033 if (undefined === cb) { 1034 return; 1035 } 1036 1037 cb(); 1038 } 1039 1040 1041 const copyEventData = Object.assign({}, eventData); 1042 let metaData = {}; 1043 if (copyEventData.meta) { 1044 metaData = copyEventData.meta; 1045 delete copyEventData.meta; 1046 } 1047 1048 const eventHash = btoa(encodeURIComponent(JSON.stringify(copyEventData))); 1049 if (window.YIREO_GOOGLETAGMANAGER2_PAST_EVENTS.includes(eventHash)) { 1050 yireoGoogleTagManager2Logger('Warning: Event already triggered', eventData); 1051 doCallback(callback); 1052 return; 1053 } 1054 1055 if (metaData && metaData.allowed_pages && metaData.allowed_pages.length > 0 1056 && false === metaData.allowed_pages.some(page => window.location.pathname.includes(page))) { 1057 yireoGoogleTagManager2Logger('Warning: Skipping event, not in allowed pages', window.location.pathname, eventData); 1058 doCallback(callback); 1059 return; 1060 } 1061 1062 if (metaData && metaData.allowed_events && metaData.allowed_events.length > 0) { 1063 for (const [allowedEventKey, allowedEvent] of Object.entries(metaData.allowed_events)) { 1064 window.addEventListener(allowedEvent, function () { 1065 const eventDataCopy = Object.assign({}, eventData); 1066 eventDataCopy.meta.allowed_events = false; 1067 yireoGoogleTagManager2Pusher(eventDataCopy, 'push (allowed event "' + eventData.event + '") [script-pusher]'); 1068 }); 1069 } 1070 1071 yireoGoogleTagManager2Logger('Warning: Skipping event, not in allowed events', window.location.pathname, eventData); 1072 doCallback(callback); 1073 return; 1074 } 1075 1076 if (!message) { 1077 message = 'push (unknown) [unknown]'; 1078 } 1079 1080 yireoGoogleTagManager2Logger(message, eventData); 1081 window.dataLayer = window.dataLayer || []; 1082 1083 if (eventData.ecommerce) { 1084 window.dataLayer.push({ecommerce: null}); 1085 } 1086 1087 try { 1088 window.dataLayer.push(eventData); 1089 window.YIREO_GOOGLETAGMANAGER2_PAST_EVENTS.push(eventHash); 1090 } catch(error) { 1091 doCallback(callback); 1092 } 1093 1094 doCallback(callback); 1095 }</script>
1095
1095<script nonce="Y3dmaXNnM3hsMTFnd3d6bnA2Z3Zma2pjbWhsbmcweXI="> 1096 function yireoGoogleTagManager2Logger(...args) { 1097 const debug = window.YIREO_GOOGLETAGMANAGER2_DEBUG || false; 1098 if (false === debug) { 1099 return; 1100 } 1101 1102 var color = 'gray'; 1103 if (args[0].toLowerCase().startsWith('push')) { 1104 color = 'green'; 1105 } 1106 1107 if (args[0].toLowerCase().startsWith('warning')) { 1108 color = 'orange'; 1109 } 1110 1111 var css = 'color:white; background-color:' + color + '; padding:1px;' 1112 console.log('%cYireo_GoogleTagManager2', css, ...args); 1113 }</script>
1113<div class="page-wrapper"><header class="page-header"><a class="action skip sr-only focus:not-sr-only focus:absolute focus:z-40 focus:bg-white 1114 contentarea" 1115 href="#contentarea"> 1116 <span> 1117 Skip to Content </span> 1118</a><div class="header content">
1118<script type="application/ld+json"> 1119 { 1120 "@context": "https://schema.org", 1121 "@type": "WebSite", 1122 "@id": "https://www.shelterlogic.com/#website", 1123 "url": "https://www.shelterlogic.com/" 1124 }</script>
1124
1124<script type="application/ld+json"> 1125 { 1126 "@context": "https://schema.org", 1127 "@type": "WebSite", 1128 "@id": "https://www.shelterlogic.com/#website", 1129 "potentialAction": { 1130 "@type": "SearchAction", 1131 "target": { 1132 "@type": "EntryPoint", 1133 "urlTemplate": "https://www.shelterlogic.com/catalogsearch/result?q={search_term_string}" 1134 }, 1135 "query-input": "required name=search_term_string" 1136 } 1137 }</script>
1137</div>
1137<script> 1138 function initHeader () { 1139 return { 1140 searchOpen: false, 1141 stateMenu: false, 1142 cart: {}, 1143 isCartOpen: false, 1144 getData(data) { 1145 if (data.cart) { this.cart = data.cart } 1146 }, 1147 isCartEmpty() { 1148 return !this.cart.summary_count 1149 }, 1150 toggleCart(event) { 1151 if (event.detail && event.detail.isOpen !== undefined) { 1152 this.isCartOpen = event.detail.isOpen 1153 if (!this.isCartOpen && this.$refs && this.$refs.cartButton) { 1154 this.$refs.cartButton.focus() 1155 } 1156 } else { 1157 this.isCartOpen = true 1158 } 1159 }, 1160 getStateMobileMenu(data) { 1161 this.stateMenu = data; 1162 } 1163 } 1164 } 1165 function initCompareHeader() { 1166 return { 1167 compareProducts: null, 1168 itemCount: 0, 1169 receiveCompareData(data) { 1170 if (data['compare-products']) { 1171 this.compareProducts = data['compare-products']; 1172 this.itemCount = this.compareProducts.count; 1173 } 1174 } 1175 } 1176 } 1177</script>
1177 1178 1179<div id="header" 1180 class="relative z-30 lg:pb-0 w-full border-b bg-container-darker border-container-lighter" 1181 :class="{'menu-open' : stateMenu}" 1182 x-data="initHeader()" 1183 @private-content-loaded.window="getData($event.detail.data)" 1184 @toggle-mobile-menu.window="getStateMobileMenu($event.detail.data)" 1185 @resize.debounce.100.window=" 1186 width = (window.innerWidth > 0) ? window.innerWidth : screen.width; 1187 if (width > 1023) stateMenu = false; 1188 " 1189> 1190 <!--Header Top --> 1191 1192<div class="header-top hidden lg:static lg:block w-full bg-container-dark py-1.5 text-white text-sm"> 1193 <div class="container content-none flex flex-col lg:flex-row 1194 lg:justify-between items-baseline lg:items-center"> 1195 <div class="header-top-left uppercase flex-1 flex flex-col lg:flex-row lg:items-center 1196 space-x-0 lg:space-x-12"> 1197 <div class="store-switcher-wrap absolute top-3.5 right-3 lg:static inline-block h-9 cursor-pointer" x-data="{isOpen:false, websiteName: ''}" ><button type="button" class="content-none flex flex-col -ml-1 relative lg:min-h-[36px]" aria-label="Select country language" @click="isOpen = !isOpen" @click.outside="isOpen = false" @keydown.escape="isOpen = false" ><span class="sr-only">Select country language</span> <div class="order-1 mr-0 lg:-mr-4 p-2 flex items-center min-w-[64px]"><img src="https://www.shelterlogic.com/static/version1790844868/frontend/Shelterlogic/hyva/en_US/Shelterlogic_WebsiteSwitcher/images/flags/flag_shelterlogic.svg" alt="US" width="24" height="14" loading="lazy" /><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="flex self-center h-5 w-5 ml-1 hover:text-orange" width="25" height="25" role="img"> 1198 <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/> 1199<title>chevron-down</title></svg> 1200 <span class="sr-only" @load.window="websiteName = 'US'" >US</span></div> <div class="absolute lg:left-0 right-0 top-full z-50 p-2 pb-0 min-w-max" :class="{'shadow-lg bg-white': isOpen}" x-show="isOpen" :aria-expanded="isOpen" x-cloak > <a href="https://www.shelterlogic.ca/commercial-grade-products?___store=ca_shop_en&___from_store=us_shop_en" class="block mb-2 hidden text-grey-darker" :class="{'hidden': !isOpen}" aria-label="CANADA EN" tabindex="0" ><span class="flex font-bold"><img src="https://www.shelterlogic.com/static/version1790844868/frontend/Shelterlogic/hyva/en_US/Shelterlogic_WebsiteSwitcher/images/flags/flag_slcanada.svg" class="mr-2" alt="Canada" width="24" height="14" loading="lazy" />CANADA EN</span></a> <a href="https://www.shelterlogic.ca/fr/commercial-grade-products?___store=ca_shop_fr&___from_store=us_shop_en" class="block mb-2 hidden text-grey-darker" :class="{'hidden': !isOpen}" aria-label="CANADA FR" tabindex="0" ><span class="flex font-bold"><img src="https://www.shelterlogic.com/static/version1790844868/frontend/Shelterlogic/hyva/en_US/Shelterlogic_WebsiteSwitcher/images/flags/flag_slcanada.svg" class="mr-2" alt="Canada" width="24" height="14" loading="lazy" />CANADA FR</span></a> </div></button></div> 1201 <div class="relative" x-data="{isOpen:false}"> 1202 <button type="button" 1203 @click.prevent="isOpen = !isOpen" 1204 @click.outside="isOpen = false" 1205 @keyup.escape="isOpen = false" 1206 class="uppercase text-left hover:text-orange"> 1207 <span class="flex items-center"> 1208 Support <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="flex self-center h-5 w-5 ml-1 -mr-1" width="25" height="25" role="img"> 1209 <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/> 1210<title>chevron-down</title></svg> 1211 </span> 1212 </button> 1213 <div class="lg:absolute left-0 top-full z-50 py-2 lg:p-2 mt-2 pb-0 min-w-max" 1214 :class="{'lg:shadow-lg lg:bg-white': isOpen}" 1215 :aria-expanded="isOpen" 1216 x-show="isOpen" 1217 x-cloak> 1218 <ul> 1219 <li> 1220 <a href="https://www.shelterlogic.com/support" 1221 class="block mb-2 text-white lg:text-grey-darker hover:underline" 1222 :class="{'hidden': !isOpen}" 1223 aria-label="Customer support" 1224 tabindex="0">
1225 <span class="flex lg:font-bold">Customer support</span> 1226 </a> 1227 </li> 1228 <li> 1229 <a href="https://www.shelterlogic.com/parts-requests" 1230 class="block mb-2 text-white lg:text-grey-darker hover:underline" 1231 :class="{'hidden': !isOpen}" 1232 aria-label="Parts Request" 1233 tabindex="0"> 1234 <span class="flex lg:font-bold">Parts Request</span> 1235 </a> 1236 </li> 1237 <li> 1238 <a href="https://www.shelterlogic.com/shop-by-brand/shelterlogic/cover-kits" 1239 class="block mb-2 text-white lg:text-grey-darker hover:underline" 1240 :class="{'hidden': !isOpen}" 1241 aria-label="Replacement Cover Finder" 1242 tabindex="0"> 1243 <span class="flex lg:font-bold">Replacement Cover Finder</span> 1244 </a> 1245 </li> 1246 <li> 1247 <a href="https://www.shelterlogic.com/outdoor-storage/sheds/floor-frame-kit" 1248 class="block mb-2 text-white lg:text-grey-darker hover:underline" 1249 :class="{'hidden': !isOpen}" 1250 aria-label="Floor Frame Kit Finder" 1251 tabindex="0"> 1252 <span class="flex lg:font-bold">Floor Frame Kit Finder</span> 1253 </a> 1254 </li> 1255 </ul> 1256 <div> 1257 <ul> 1258 <li> 1259 <a href="https://www.youtube.com/@ShelterLogicDirect" 1260 class="block mb-2 text-white lg:text-grey-darker hover:underline" 1261 :class="{'hidden': !isOpen}" 1262 aria-label="How-to videos" 1263 tabindex="0"> 1264 <span class="flex lg:font-bold">How-to videos</span> 1265 </a> 1266 </li> 1267 </ul> 1268 </div> 1269 </div> 1270 </div> 1271 1272 <a class="mt-4 lg:mt-0 hover:text-orange hover:underline" href="https://www.shelterlogic.com/contact"> 1273 Contact Us </a> 1274 1275 <a class="mt-4 lg:mt-0 inline-block font-base font-semibold text-orange hover:underline" 1276 href="tel:1-800-560-8383" 1277 role="link" 1278 aria-label="1-800-560-8383" 1279 tabindex="0"> 1280 1-800-560-8383 </a> 1281 </div> 1282 <div class="header-top-right mt-4 lg:mt-0"> 1283 <style>.cmsb593-sr-only { 1284position: absolute; 1285width: 1px; 1286height: 1px; 1287padding: 0; 1288margin: -1px; 1289overflow: hidden; 1290clip: rect(0, 0, 0, 0); 1291white-space: nowrap; 1292border-width: 0 1293} 1294.cmsb593-mr-2 { 1295margin-right: 0.5rem 1296} 1297.cmsb593-flex { 1298display: flex 1299} 1300.cmsb593-h-5 { 1301height: 1.25rem 1302} 1303.cmsb593-w-5 { 1304width: 1.25rem 1305} 1306.cmsb593-text-center { 1307text-align: center 1308} 1309.cmsb593-hover\:text-orange:hover { 1310--tw-text-opacity: 1; 1311color: rgba(225, 171, 46, var(--tw-text-opacity)) 1312} 1313@media (min-width: 768px) { 1314.cmsb593-md\:text-left { 1315text-align: left 1316} 1317}</style> 1318<div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><div class="customer-support-info cmsb593-flex cmsb593-text-center cmsb593-md:text-left"> 1319 <a href="tel:800-932-9344" 1320 class="cmsb593-mr-2 cmsb593-hover:text-orange" 1321 role="link" 1322 aria-label="800-932-9344" 1323 tabindex="0" 1324 > 1325 <span class="cmsb593-sr-only">800-932-9344</span> 1326 <svg xmlns="http://www.w3.org/2000/svg" class="cmsb593-h-5 cmsb593-w-5" viewBox="0 0 20 20" fill="currentColor"> 1327 <path d="M2 3a1 1 0 011-1h2.153a1 1 0 01.986.836l.74 4.435a1 1 0 01-.54 1.06l-1.548.773a11.037 11.037 0 006.105 6.105l.774-1.548a1 1 0 011.059-.54l4.435.74a1 1 0 01.836.986V17a1 1 0 01-1 1h-2C7.82 18 2 12.18 2 5V3z" /> 1328 </svg> 1329 </a> 1330 7 days a week US-based customer support! 1331</div></div> </div> 1332 </div> 1333</div> 1334 <div class="py-2.5 lg:pb-0 container flex flex-wrap items-center justify-between w-full mx-auto mt-0"> 1335 <div class="content-none order-2 lg:order-1 md:w-auto mx-auto lg:mx-0"> 1336 <a class="content-none logo flex text-xl font-medium tracking-wide text-gray-800 1337 no-underline hover:no-underline font-title md:min-h-[50px]" 1338 href="https://www.shelterlogic.com/" 1339 aria-label="SHELTERLOGIC DIRECT" 1340 tabindex="0" 1341> 1342 <img src="https://www.shelterlogic.com/static/version1790844868/frontend/Shelterlogic/hyva/en_US/images/logo.svg" 1343 class="object-cover" 1344 alt="SHELTERLOGIC DIRECT" 1345 loading="eager" 1346 width="146" height="50" style="height: 50px" 1347 /> 1348 </a> </div> 1349 1350 <div class="content-none mt-0 lg:mt-3 relative order-first lg:order-10 w-auto lg:w-full flex flex-wrap 1351 items-center justify-normal mx-0 lg:mx-auto mt-0 min-w-6"> 1352 1353<div class="w-full order-2 sm:order-1 lg:order-2 navigation min-w-6" 1354 x-data="initHeaderNavigation" 1355> 1356 <!-- mobile --> 1357 <div x-ref="nav-mobile" 1358 @load.window="setActiveMenuMobile($refs['nav-mobile'])" 1359 class="nav-mobile lg:hidden w-6 h-6 min-w-6" 1360 :class="{'bg-container-lighter fixed top-0 left-0 w-full z-10 min-h-[50vh] after:h-full after:bg-white after:absolute after:top-full after:inset-x-0 ' : open, 'w-6 h-6' : !open}" 1361 :style="{bottom: `${headerTopHeight}px`}" 1362 @toggle-mobile-menu.window="open = !open" 1363 @keydown.window.escape="open = false" 1364 @resize.debounce.100.window=" 1365 width = window.innerWidth || screen.width; 1366 if (width > 1023) open = false;
1367 " 1368 > 1369 <div class="flex justify-between items-baseline menu-icon"> 1370 <div class="flex justify-end w-full" x-data="{btnAreaLabelText : 'Show main navigation menu'}"> 1371 <button id="toggle-mobile-menu" 1372 @click="$dispatch('toggle-mobile-menu', {data: !open})" 1373 @toggle-mobile-menu.window="open ? btnAreaLabelText = 'Hide main navigation menu' : btnAreaLabelText = 'Show main navigation menu'" 1374 class="flex items-center justify-center cursor-pointer text-grey hover:text-gray-600" 1375 :class="{ 'ml-auto': open }" 1376 :aria-label="btnAreaLabelText" 1377 :aria-expanded="open" 1378 tabindex="0" 1379 :title="btnAreaLabelText" 1380 > 1381 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="hidden p-4 h-16 w-16 text-grey-lighter" width="64" height="64" :class="{ 'hidden' : !open, 'block': open }" role="img"> 1382 <path stroke-linecap="round" stroke-linejoin="round" d="M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z"/> 1383<title>x-circle</title></svg> 1384 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="fill-current hover:text-orange-lighter text-orange lg:p-3" width="24" height="24" :class="{ 'hidden' : open, 'block': !open }" role="img"> 1385 <path stroke-linecap="round" stroke-linejoin="round" d="M4 6h16M4 12h16M4 18h16"/> 1386<title>menu</title></svg> 1387 </button> 1388 </div> 1389 </div> 1390 1391 <nav class="hidden w-full border-t duration-150 1392 ease-in-out transform transition-display border-container 1393 h-[calc(100%-65px)] overflow-x-hidden overflow-y-auto" 1394 aria-labelledby="toggle-mobile-menu" 1395 :class="{ 'hidden' : !open }" 1396 > 1397 <div class="level-0"> 1398 <span 1399 class="flex items-center transition-transform duration-150 ease-in-out transform" 1400 :class="{ 1401 '-translate-x-full' : mobilePanelActiveId, 1402 'translate-x-0' : !mobilePanelActiveId 1403 }" 1404 > 1405 <a class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 1406 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline level-0" 1407 href="https://www.shelterlogic.com/shop-by-brand" 1408 role="link" 1409 title="Shop by Brand" 1410 aria-label="Shop by Brand" 1411 > 1412 Shop by Brand </a> 1413 <button class="absolute right-0 flex w-8 h-8 mr-[18px] cursor-pointer 1414 hero-icon arrow-circle-fat-right orange-icon
1415 after:bottom-0 after:w-7 after:h-7" 1416 @click="mobilePanelActiveId = 1417 mobilePanelActiveId === 'category-node-208' ? 1418 0 : 'category-node-208'" 1419 > 1420 </button> 1421 </span> 1422 <div class="overflow-x-hidden overflow-y-auto absolute top-0 right-0 z-10 w-full h-full 1423 transition-transform duration-200 ease-in-out translate-x-full transform bg-container-lighter" 1424 :class="{ 1425 'translate-x-full' : mobilePanelActiveId !== 'category-node-208', 1426 'translate-x-0' : mobilePanelActiveId === 'category-node-208', 1427 }" 1428 > 1429 <span class="block text-16 font-bold py-4 px-6 menu-mobile-h2 border-b border-container"> 1430 <span class="flex items-center bg-container cursor-pointer" 1431 @click="mobilePanelActiveId = 0" 1432 > 1433 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-orange w-7 h-7" width="24" height="24" role="img"> 1434 <path stroke-linecap="round" stroke-linejoin="round" d="M11 15l-3-3m0 0l3-3m-3 3h8M3 12a9 9 0 1118 0 9 9 0 01-18 0z"/> 1435<title>arrow-circle-left</title></svg> 1436 <span class="ml-4"> 1437 Shop by Brand </span> 1438 </span> 1439 </span> 1440 <a href="https://www.shelterlogic.com/shop-by-brand" 1441 class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 1442 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 1443 aria-label="Shop by Brand" 1444 title="Shop by Brand" 1445 > 1446 <span class="ml-10">View All</span></a> 1447 1448 <span class="flex items-center border-b" 1449 :class="{ 1450 'hidden' : hideParent 1451 }" 1452 > 1453 <a href="https://www.shelterlogic.com/shop-by-brand/shelterlogic" 1454 title="ShelterLogic®" 1455 class="flex items-center w-full px-6 py-4 cursor-pointer 1456 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 1457 > 1458 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 1459 ShelterLogic® </span> 1460 </a> 1461 <button class="absolute right-0 flex w-8 h-8 mr-[18px] cursor-pointer hero-icon 1462 arrow-circle-fat-right orange-icon after:bottom-0 after:w-
14627 after:h-7" 1463 data-index="category-node-211" 1464 @click="setMobileActiveSubId"> 1465 </button> 1466 </span> 1467 <div class="overflow-x-hidden overflow-y-auto fixed top-0 right-0 z-20 w-full 1468 h-full transition-transform duration-200 ease-in-out 1469 translate-x-full transform bg-container-lighter" :class="{ 1470 'translate-x-full' : mobilePanelActiveIdSub !== 'category-node-211', 1471 'translate-x-0' : mobilePanelActiveIdSub === 'category-node-211', 1472 }" 1473 > 1474 <span class="block text-16 font-bold py-4 px-6 menu-mobile-h2 border-b border-container"> 1475 <span class="flex items-center cursor-pointer bg-container" 1476 @click="resetMobileActiveTab"> 1477 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-orange w-7 h-7" width="24" height="24" role="img"> 1478 <path stroke-linecap="round" stroke-linejoin="round" d="M11 15l-3-3m0 0l3-3m-3 3h8M3 12a9 9 0 1118 0 9 9 0 01-18 0z"/> 1479<title>arrow-circle-left</title></svg> 1480 <span class="ml-4"> 1481 ShelterLogic® </span> 1482 </span> 1483 </span> 1484 <a href="https://www.shelterlogic.com/shop-by-brand/shelterlogic" 1485 class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 1486 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 1487 aria-label="ShelterLogic®" 1488 title="ShelterLogic®" 1489 > 1490 <span class="ml-10">View All</span> 1491 </a> 1492 1493 <span class="flex items-center border-b" 1494 :class="isHideParentSub" 1495 > 1496 <a href="https://www.shelterlogic.com/shop-by-brand/shelterlogic/portable-garages" 1497 title="Fabric Garages" 1498 class="flex items-center w-full px-6 py-4 cursor-pointer 1499 bg-container-lighter border-container hover:bg-whiteSmoke 1500 hover:underline last:border-0" 1501 > 1502 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 1503 Fabric Garages </span> 1504 </a> 1505 <button class="absolute right-0 flex w-8 h-8 mr-[18px] cursor-pointer hero-icon 1506 arrow-circle-fat-right orange-icon after:bottom-0 after:w-
15067 after:h-7" 1507 data-index2="category-node-211" 1508 data-index3="category-node-1125" 1509 @click="setThirdLevelActiveSubId" 1510 aria-label="View Child List" 1511 type="button" 1512 > 1513 </button> 1514 </span> 1515 <div class="overflow-x-hidden overflow-y-auto fixed top-0 right-0 z-30 w-full 1516 h-full transition-transform duration-200 ease-in-out 1517 translate-x-full transform bg-container-lighter" 1518 data-index2="category-node-211" 1519 data-index3="category-node-1125" 1520 :class="getThirdLevelSubMenuClasses" 1521 > 1522 <span class="block text-16 font-bold py-4 px-6 menu-mobile-h2 border-b border-container"> 1523 <span class="flex items-center cursor-pointer bg-container" 1524 @click="resetForthLevelActiveSubId"> 1525 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-orange w-7 h-7" width="24" height="24" aria-hidden="true"> 1526 <path stroke-linecap="round" stroke-linejoin="round" d="M11 15l-3-3m0 0l3-3m-3 3h8M3 12a9 9 0 1118 0 9 9 0 01-18 0z"/> 1527</svg> 1528 <span class="ml-4"> 1529 Fabric Garages </span> 1530 </span> 1531 </span> 1532 <a href="https://www.shelterlogic.com/shop-by-brand/shelterlogic/portable-garages" 1533 class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 1534 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 1535 aria-label="Fabric Garages" 1536 > 1537 <span class="ml-10">View All</span> 1538 </a> 1539 1540 <span class="flex items-center border-b"> 1541 <a href="https://www.shelterlogic.com/department/outdoor-storage-buildings/garages/garage-in-box" 1542 title="Garage-in-a-Box®" 1543 class="flex items-center w-full px-6 py-3 cursor-pointer 1544 bg-container-lighter border-container hover:bg-whiteSmoke 1545 hover:underline last:border-0" 1546 data-linked-category="true" data-nav-category-type="linked" data-linked-category-id="69" > 1547 <sp
1547an class="text-14 font-bold text-grey-darker lg:ml-0"> 1548 <span class="ml-10">Garage-in-a-Box®</span> 1549 </span> 1550 </a> 1551 </span> 1552 <span class="flex items-center border-b"> 1553 <a href="https://www.shelterlogic.com/department/outdoor-storage-buildings/garages/autoshelter" 1554 title="AutoShelter®" 1555 class="flex items-center w-full px-6 py-3 cursor-pointer 1556 bg-container-lighter border-container hover:bg-whiteSmoke 1557 hover:underline last:border-0" 1558 data-linked-category="true" data-nav-category-type="linked" data-linked-category-id="68" > 1559 <span class="text-14 font-bold text-grey-darker lg:ml-0"> 1560 <span class="ml-10">AutoShelter®</span> 1561 </span> 1562 </a> 1563 </span> 1564 <span class="flex items-center border-b"> 1565 <a href="https://www.shelterlogic.com/outdoor-storage/garages/sheltercoat" 1566 title="ShelterCoat®" 1567 class="flex items-center w-full px-6 py-3 cursor-pointer 1568 bg-container-lighter border-container hover:bg-whiteSmoke 1569 hover:underline last:border-0" 1570 data-linked-category="true" data-nav-category-type="linked" data-linked-category-id="71" > 1571 <span class="text-14 font-bold text-grey-darker lg:ml-0"> 1572 <span class="ml-10">ShelterCoat®</span> 1573 </span> 1574 </a> 1575 </span> 1576 <span class="flex items-center border-b"> 1577 <a href="https://www.shelterlogic.com/outdoor-storage/garages/sheltertube" 1578 title="ShelterTube®" 1579 class="flex items-center w-full px-6 py-3 cursor-pointer 1580 bg-container-lighter border-container hover:bg-whiteSmoke 1581 hover:underline last:border-0" 1582 data-linked-category="true" data-nav-category-type="linked" data-linked-category-id="72" > 1583 <sp
1583an class="text-14 font-bold text-grey-darker lg:ml-0"> 1584 <span class="ml-10">ShelterTube®</span> 1585 </span> 1586 </a> 1587 </span> 1588 <span class="flex items-center border-b"> 1589 <a href="https://www.shelterlogic.com/outdoor-storage/garages/sheltertech" 1590 title="ShelterTech®" 1591 class="flex items-center w-full px-6 py-3 cursor-pointer 1592 bg-container-lighter border-container hover:bg-whiteSmoke 1593 hover:underline last:border-0" 1594 data-linked-category="true" data-nav-category-type="linked" data-linked-category-id="1038" > 1595 <span class="text-14 font-bold text-grey-darker lg:ml-0"> 1596 <span class="ml-10">ShelterTech®</span> 1597 </span> 1598 </a> 1599 </span> 1600 </div> 1601 <span class="flex items-center border-b" 1602 :class="isHideParentSub" 1603 > 1604 <a href="https://www.shelterlogic.com/shop-by-brand/shelterlogic/portable-sheds" 1605 title="Fabric Sheds" 1606 class="flex items-center w-full px-6 py-4 cursor-pointer 1607 bg-container-lighter border-container hover:bg-whiteSmoke 1608 hover:underline last:border-0" 1609 > 1610 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 1611 Fabric Sheds </span> 1612 </a> 1613 </span> 1614 <span class="flex items-center border-b" 1615 :class="isHideParentSub" 1616 > 1617 <a href="https://www.shelterlogic.com/shop-by-brand/shelterlogic/cover-kits" 1618 title="Replacement Cover Kits" 1619 class="flex items-center w-full px-6 py-4 cursor-pointer 1620 bg-container-lighter border-container hover:bg-whiteSmoke 1621 hover:underline last:border-0" 1622 >
1623 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 1624 Replacement Cover Kits </span> 1625 </a> 1626 </span> 1627 <span class="flex items-center border-b" 1628 :class="isHideParentSub" 1629 > 1630 <a href="https://www.shelterlogic.com/shop-by-brand/shelterlogic/shade" 1631 title="Shade" 1632 class="flex items-center w-full px-6 py-4 cursor-pointer 1633 bg-container-lighter border-container hover:bg-whiteSmoke 1634 hover:underline last:border-0" 1635 > 1636 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 1637 Shade </span> 1638 </a> 1639 </span> 1640 <span class="flex items-center border-b" 1641 :class="isHideParentSub" 1642 > 1643 <a href="https://www.shelterlogic.com/shop-by-brand/shelterlogic/canopies-and-gazebos" 1644 title="Canopies and Gazebos" 1645 class="flex items-center w-full px-6 py-4 cursor-pointer 1646 bg-container-lighter border-container hover:bg-whiteSmoke 1647 hover:underline last:border-0" 1648 > 1649 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 1650 Canopies and Gazebos </span> 1651 </a> 1652 </span> 1653 <span class="flex items-center border-b" 1654 :class="isHideParentSub" 1655 > 1656 <a href="https://www.shelterlogic.com/shop-by-brand/shelterlogic/pet" 1657 title="Pet" 1658 class="flex items-center w-full px-6 py-4 cursor-pointer 1659 bg-container-lighter border-container hover:bg-whiteSmoke 1660 hover:underline last:border-0" 1661 > 1662 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 1663 Pet </span> 1664 </a> 1665 </span> 1666 <sp
1666an class="flex items-center border-b" 1667 :class="isHideParentSub" 1668 > 1669 <a href="https://www.shelterlogic.com/shop-by-brand/shelterlogic/farm-equine" 1670 title="Farm + Equine" 1671 class="flex items-center w-full px-6 py-4 cursor-pointer 1672 bg-container-lighter border-container hover:bg-whiteSmoke 1673 hover:underline last:border-0" 1674 > 1675 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 1676 Farm + Equine </span> 1677 </a> 1678 </span> 1679 <span class="flex items-center border-b" 1680 :class="isHideParentSub" 1681 > 1682 <a href="https://www.shelterlogic.com/gardening/greenhouses/high-tunnel-greenhouses" 1683 title="High Tunnel Greenhouses" 1684 class="flex items-center w-full px-6 py-4 cursor-pointer 1685 bg-container-lighter border-container hover:bg-whiteSmoke 1686 hover:underline last:border-0" 1687 data-linked-category="true" data-nav-category-type="linked" data-linked-category-id="187" > 1688 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 1689 High Tunnel Greenhouses </span> 1690 </a> 1691 </span> 1692 <span class="flex items-center border-b" 1693 :class="isHideParentSub" 1694 > 1695 <a href="https://www.shelterlogic.com/shop-by-brand/shelterlogic/greenhouses" 1696 title="Greenhouses" 1697 class="flex items-center w-full px-6 py-4 cursor-pointer 1698 bg-container-lighter border-container hover:bg-whiteSmoke 1699 hover:underline last:border-0" 1700 > 1701 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 1702 Greenhouses </span> 1703 </a> 1704 </span> 1705 <span class="flex items-center border-b" 1706 :class="isHideParentSub" 1707 > 1708 <a href="https://www.shelterlogic.com/shop-by-brand/shelterlogic/firewood-hearth" 1709 title="Firewood Accessories & Storage" 1710 class="flex items-center w-full px-6 py-4 cursor-pointer 1711 bg-container-lighter border-container hover:bg-whiteSmoke 1712 hover:underline last:border-0" 1713 >
1714 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 1715 Firewood Accessories & Storage </span> 1716 </a> 1717 </span> 1718 <span class="flex items-center border-b" 1719 :class="isHideParentSub" 1720 > 1721 <a href="https://www.shelterlogic.com/shop-by-brand/shelterlogic/accessories" 1722 title="Accessories" 1723 class="flex items-center w-full px-6 py-4 cursor-pointer 1724 bg-container-lighter border-container hover:bg-whiteSmoke 1725 hover:underline last:border-0" 1726 > 1727 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 1728 Accessories </span> 1729 </a> 1730 </span> 1731 </div> 1732 <span class="flex items-center border-b" 1733 :class="{ 1734 'hidden' : hideParent 1735 }" 1736 > 1737 <a href="https://www.shelterlogic.com/shop-by-brand/sojag" 1738 title="SOJAG®" 1739 class="flex items-center w-full px-6 py-4 cursor-pointer 1740 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 1741 > 1742 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 1743 SOJAG® </span> 1744 </a> 1745 <button class="absolute right-0 flex w-8 h-8 mr-[18px] cursor-pointer hero-icon 1746 arrow-circle-fat-right orange-icon after:bottom-0 after:w-
17467 after:h-7" 1747 data-index="category-node-339" 1748 @click="setMobileActiveSubId"> 1749 </button> 1750 </span> 1751 <div class="overflow-x-hidden overflow-y-auto fixed top-0 right-0 z-20 w-full 1752 h-full transition-transform duration-200 ease-in-out 1753 translate-x-full transform bg-container-lighter" :class="{ 1754 'translate-x-full' : mobilePanelActiveIdSub !== 'category-node-339', 1755 'translate-x-0' : mobilePanelActiveIdSub === 'category-node-339', 1756 }" 1757 > 1758 <span class="block text-16 font-bold py-4 px-6 menu-mobile-h2 border-b border-container"> 1759 <span class="flex items-center cursor-pointer bg-container" 1760 @click="resetMobileActiveTab"> 1761 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-orange w-7 h-7" width="24" height="24" role="img"> 1762 <path stroke-linecap="round" stroke-linejoin="round" d="M11 15l-3-3m0 0l3-3m-3 3h8M3 12a9 9 0 1118 0 9 9 0 01-18 0z"/> 1763<title>arrow-circle-left</title></svg> 1764 <span class="ml-4"> 1765 SOJAG® </span> 1766 </span> 1767 </span> 1768 <a href="https://www.shelterlogic.com/shop-by-brand/sojag" 1769 class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 1770 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 1771 aria-label="SOJAG®" 1772 title="SOJAG®" 1773 > 1774 <span class="ml-10">View All</span> 1775 </a> 1776 1777 <span class="flex items-center border-b" 1778 :class="isHideParentSub" 1779 > 1780 <a href="https://www.shelterlogic.com/shop-by-brand/sojag/gazebos" 1781 title="Gazebos" 1782 class="flex items-center w-full px-6 py-4 cursor-pointer 1783 bg-container-lighter border-container hover:bg-whiteSmoke 1784 hover:underline last:border-0" 1785 > 1786 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 1787 Gazebos </span> 1788 </a> 1789 <button class="absolute right-0 flex w-8 h-8 mr-[18px] cursor-pointer hero-icon 1790 arrow-circle-fat-right orange-icon after:bottom-0 after:w-
17907 after:h-7" 1791 data-index2="category-node-339" 1792 data-index3="category-node-1127" 1793 @click="setThirdLevelActiveSubId" 1794 aria-label="View Child List" 1795 type="button" 1796 > 1797 </button> 1798 </span> 1799 <div class="overflow-x-hidden overflow-y-auto fixed top-0 right-0 z-30 w-full 1800 h-full transition-transform duration-200 ease-in-out 1801 translate-x-full transform bg-container-lighter" 1802 data-index2="category-node-339" 1803 data-index3="category-node-1127" 1804 :class="getThirdLevelSubMenuClasses" 1805 > 1806 <span class="block text-16 font-bold py-4 px-6 menu-mobile-h2 border-b border-container"> 1807 <span class="flex items-center cursor-pointer bg-container" 1808 @click="resetForthLevelActiveSubId"> 1809 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-orange w-7 h-7" width="24" height="24" aria-hidden="true"> 1810 <path stroke-linecap="round" stroke-linejoin="round" d="M11 15l-3-3m0 0l3-3m-3 3h8M3 12a9 9 0 1118 0 9 9 0 01-18 0z"/> 1811</svg> 1812 <span class="ml-4"> 1813 Gazebos </span> 1814 </span> 1815 </span> 1816 <a href="https://www.shelterlogic.com/shop-by-brand/sojag/gazebos" 1817 class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 1818 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 1819 aria-label="Gazebos" 1820 > 1821 <span class="ml-10">View All</span> 1822 </a> 1823 1824 <span class="flex items-center border-b"> 1825 <a href="https://www.shelterlogic.com/shop-by-brand/sojag/gazebos/hard-top-gazebos" 1826 title="Hard-Top Gazebos" 1827 class="flex items-center w-full px-6 py-3 cursor-pointer 1828 bg-container-lighter border-container hover:bg-whiteSmoke 1829 hover:underline last:border-0" 1830 > 1831 <sp
1831an class="text-14 font-bold text-grey-darker lg:ml-0"> 1832 <span class="ml-10">Hard-Top Gazebos</span> 1833 </span> 1834 </a> 1835 </span> 1836 <span class="flex items-center border-b"> 1837 <a href="https://www.shelterlogic.com/shop-by-brand/sojag/gazebos/soft-top-gazebos" 1838 title="Soft Top Gazebos" 1839 class="flex items-center w-full px-6 py-3 cursor-pointer 1840 bg-container-lighter border-container hover:bg-whiteSmoke 1841 hover:underline last:border-0" 1842 > 1843 <span class="text-14 font-bold text-grey-darker lg:ml-0"> 1844 <span class="ml-10">Soft Top Gazebos</span> 1845 </span> 1846 </a> 1847 </span> 1848 <span class="flex items-center border-b"> 1849 <a href="https://www.shelterlogic.com/shop-by-brand/sojag/gazebos/wall-mounted-gazebos" 1850 title="Wall-Mounted Gazebos" 1851 class="flex items-center w-full px-6 py-3 cursor-pointer 1852 bg-container-lighter border-container hover:bg-whiteSmoke 1853 hover:underline last:border-0" 1854 > 1855 <span class="text-14 font-bold text-grey-darker lg:ml-0"> 1856 <span class="ml-10">Wall-Mounted Gazebos</span> 1857 </span> 1858 </a> 1859 </span> 1860 <span class="flex items-center border-b"> 1861 <a href="https://www.shelterlogic.com/shop-by-brand/sojag/gazebos/grill-gazebos" 1862 title="Grill Gazebos" 1863 class="flex items-center w-full px-6 py-3 cursor-pointer 1864 bg-container-lighter border-container hover:bg-whiteSmoke 1865 hover:underline last:border-0" 1866 > 1867 <span class="text-14 font-bold text-grey-darker lg:ml-0"> 1868 <span class="ml-10">Grill Gazebos</span> 1869 </span> 1870 </a> 1871 </span> 1872 </div> 1873 <sp
1873an class="flex items-center border-b" 1874 :class="isHideParentSub" 1875 > 1876 <a href="https://www.shelterlogic.com/shop-by-brand/sojag/winter-covers" 1877 title="Winter Gazebo Covers" 1878 class="flex items-center w-full px-6 py-4 cursor-pointer 1879 bg-container-lighter border-container hover:bg-whiteSmoke 1880 hover:underline last:border-0" 1881 > 1882 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 1883 Winter Gazebo Covers </span> 1884 </a> 1885 </span> 1886 <span class="flex items-center border-b" 1887 :class="isHideParentSub" 1888 > 1889 <a href="https://www.shelterlogic.com/shop-by-brand/sojag/pergolas" 1890 title="Pergolas" 1891 class="flex items-center w-full px-6 py-4 cursor-pointer 1892 bg-container-lighter border-container hover:bg-whiteSmoke 1893 hover:underline last:border-0" 1894 > 1895 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 1896 Pergolas </span> 1897 </a> 1898 </span> 1899 <span class="flex items-center border-b" 1900 :class="isHideParentSub" 1901 > 1902 <a href="https://www.shelterlogic.com/shop-by-brand/sojag/solariums" 1903 title="Solariums" 1904 class="flex items-center w-full px-6 py-4 cursor-pointer 1905 bg-container-lighter border-container hover:bg-whiteSmoke 1906 hover:underline last:border-0" 1907 > 1908 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 1909 Solariums </span> 1910 </a> 1911 </span> 1912 <span class="flex items-center border-b" 1913 :class="isHideParentSub" 1914 > 1915 <a href="https://www.shelterlogic.com/shop-by-brand/sojag/carports" 1916 title="Carports" 1917 class="flex items-center w-full px-6 py-4 cursor-pointer 1918 bg-container-lighter border-container hover:bg-whiteSmoke 1919 hover:underline last:border-0" 1920 >
1921 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 1922 Carports </span> 1923 </a> 1924 </span> 1925 <span class="flex items-center border-b" 1926 :class="isHideParentSub" 1927 > 1928 <a href="https://www.shelterlogic.com/shop-by-brand/sojag/garages" 1929 title="Garages" 1930 class="flex items-center w-full px-6 py-4 cursor-pointer 1931 bg-container-lighter border-container hover:bg-whiteSmoke 1932 hover:underline last:border-0" 1933 > 1934 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 1935 Garages </span> 1936 </a> 1937 </span> 1938 <span class="flex items-center border-b" 1939 :class="isHideParentSub" 1940 > 1941 <a href="https://www.shelterlogic.com/shop-by-brand/sojag/storage-sheds" 1942 title="Storage Sheds" 1943 class="flex items-center w-full px-6 py-4 cursor-pointer 1944 bg-container-lighter border-container hover:bg-whiteSmoke 1945 hover:underline last:border-0" 1946 > 1947 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 1948 Storage Sheds </span> 1949 </a> 1950 </span> 1951 <span class="flex items-center border-b" 1952 :class="isHideParentSub" 1953 > 1954 <a href="https://www.shelterlogic.com/shop-by-brand/sojag/outdoor-seating" 1955 title="Outdoor Seating" 1956 class="flex items-center w-full px-6 py-4 cursor-pointer 1957 bg-container-lighter border-container hover:bg-whiteSmoke 1958 hover:underline last:border-0" 1959 > 1960 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 1961 Outdoor Seating </span> 1962 </a> 1963 </span> 1964 <sp
1964an class="flex items-center border-b" 1965 :class="isHideParentSub" 1966 > 1967 <a href="https://www.shelterlogic.com/shop-by-brand/sojag/accessories" 1968 title="Accessories" 1969 class="flex items-center w-full px-6 py-4 cursor-pointer 1970 bg-container-lighter border-container hover:bg-whiteSmoke 1971 hover:underline last:border-0" 1972 > 1973 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 1974 Accessories </span> 1975 </a> 1976 </span> 1977 </div> 1978 <span class="flex items-center border-b" 1979 :class="{ 1980 'hidden' : hideParent 1981 }" 1982 > 1983 <a href="https://www.shelterlogic.com/shop-by-brand/arrow-storage" 1984 title="Arrow Storage Products®" 1985 class="flex items-center w-full px-6 py-4 cursor-pointer 1986 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 1987 > 1988 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 1989 Arrow Storage Products® </span> 1990 </a> 1991 <button class="absolute right-0 flex w-8 h-8 mr-[18px] cursor-pointer hero-icon 1992 arrow-circle-fat-right orange-icon after:bottom-0 after:w-
19927 after:h-7" 1993 data-index="category-node-209" 1994 @click="setMobileActiveSubId"> 1995 </button> 1996 </span> 1997 <div class="overflow-x-hidden overflow-y-auto fixed top-0 right-0 z-20 w-full 1998 h-full transition-transform duration-200 ease-in-out 1999 translate-x-full transform bg-container-lighter" :class="{ 2000 'translate-x-full' : mobilePanelActiveIdSub !== 'category-node-209', 2001 'translate-x-0' : mobilePanelActiveIdSub === 'category-node-209', 2002 }" 2003 > 2004 <span class="block text-16 font-bold py-4 px-6 menu-mobile-h2 border-b border-container"> 2005 <span class="flex items-center cursor-pointer bg-container" 2006 @click="resetMobileActiveTab"> 2007 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-orange w-7 h-7" width="24" height="24" role="img"> 2008 <path stroke-linecap="round" stroke-linejoin="round" d="M11 15l-3-3m0 0l3-3m-3 3h8M3 12a9 9 0 1118 0 9 9 0 01-18 0z"/> 2009<title>arrow-circle-left</title></svg> 2010 <span class="ml-4"> 2011 Arrow Storage Products® </span> 2012 </span> 2013 </span> 2014 <a href="https://www.shelterlogic.com/shop-by-brand/arrow-storage" 2015 class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 2016 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 2017 aria-label="Arrow Storage Products®" 2018 title="Arrow Storage Products®" 2019 > 2020 <span class="ml-10">View All</span> 2021 </a> 2022 2023 <span class="flex items-center border-b" 2024 :class="isHideParentSub" 2025 > 2026 <a href="https://www.shelterlogic.com/shop-by-brand/arrow-storage/sheds" 2027 title="Steel Sheds" 2028 class="flex items-center w-full px-6 py-4 cursor-pointer 2029 bg-container-lighter border-container hover:bg-whiteSmoke 2030 hover:underline last:border-0" 2031 > 2032 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2033 Steel Sheds </span> 2034 </a> 2035 </span> 2036 <sp
2036an class="flex items-center border-b" 2037 :class="isHideParentSub" 2038 > 2039 <a href="https://www.shelterlogic.com/shop-by-brand/arrow-storage/garages" 2040 title="Steel Garages" 2041 class="flex items-center w-full px-6 py-4 cursor-pointer 2042 bg-container-lighter border-container hover:bg-whiteSmoke 2043 hover:underline last:border-0" 2044 > 2045 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2046 Steel Garages </span> 2047 </a> 2048 </span> 2049 <span class="flex items-center border-b" 2050 :class="isHideParentSub" 2051 > 2052 <a href="https://www.shelterlogic.com/shop-by-brand/arrow-storage/carports" 2053 title="Carports" 2054 class="flex items-center w-full px-6 py-4 cursor-pointer 2055 bg-container-lighter border-container hover:bg-whiteSmoke 2056 hover:underline last:border-0" 2057 > 2058 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2059 Carports </span> 2060 </a> 2061 <button class="absolute right-0 flex w-8 h-8 mr-[18px] cursor-pointer hero-icon 2062 arrow-circle-fat-right orange-icon after:bottom-0 after:w-
20627 after:h-7" 2063 data-index2="category-node-209" 2064 data-index3="category-node-788" 2065 @click="setThirdLevelActiveSubId" 2066 aria-label="View Child List" 2067 type="button" 2068 > 2069 </button> 2070 </span> 2071 <div class="overflow-x-hidden overflow-y-auto fixed top-0 right-0 z-30 w-full 2072 h-full transition-transform duration-200 ease-in-out 2073 translate-x-full transform bg-container-lighter" 2074 data-index2="category-node-209" 2075 data-index3="category-node-788" 2076 :class="getThirdLevelSubMenuClasses" 2077 > 2078 <span class="block text-16 font-bold py-4 px-6 menu-mobile-h2 border-b border-container"> 2079 <span class="flex items-center cursor-pointer bg-container" 2080 @click="resetForthLevelActiveSubId"> 2081 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-orange w-7 h-7" width="24" height="24" aria-hidden="true"> 2082 <path stroke-linecap="round" stroke-linejoin="round" d="M11 15l-3-3m0 0l3-3m-3 3h8M3 12a9 9 0 1118 0 9 9 0 01-18 0z"/> 2083</svg> 2084 <span class="ml-4"> 2085 Carports </span> 2086 </span> 2087 </span> 2088 <a href="https://www.shelterlogic.com/shop-by-brand/arrow-storage/carports" 2089 class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 2090 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 2091 aria-label="Carports" 2092 > 2093 <span class="ml-10">View All</span> 2094 </a> 2095 2096 <span class="flex items-center border-b"> 2097 <a href="https://www.shelterlogic.com/outdoor-storage/carports/steelpeak" 2098 title="Arrow STEELPEAK™ Carports" 2099 class="flex items-center w-full px-6 py-3 cursor-pointer 2100 bg-container-lighter border-container hover:bg-whiteSmoke 2101 hover:underline last:border-0" 2102 data-linked-category="true" data-nav-category-type="linked" data-linked-category-id="1534" > 2103 <sp
2103an class="text-14 font-bold text-grey-darker lg:ml-0"> 2104 <span class="ml-10">Arrow STEELPEAK™ Carports</span> 2105 </span> 2106 </a> 2107 </span> 2108 <span class="flex items-center border-b"> 2109 <a href="https://www.shelterlogic.com/outdoor-storage/carports/cover-it-carports" 2110 title="CoverIT® Carports" 2111 class="flex items-center w-full px-6 py-3 cursor-pointer 2112 bg-container-lighter border-container hover:bg-whiteSmoke 2113 hover:underline last:border-0" 2114 data-linked-category="true" data-nav-category-type="linked" data-linked-category-id="1685" > 2115 <span class="text-14 font-bold text-grey-darker lg:ml-0"> 2116 <span class="ml-10">CoverIT® Carports</span> 2117 </span> 2118 </a> 2119 </span> 2120 <span class="flex items-center border-b"> 2121 <a href="https://www.shelterlogic.com/shop-by-brand/arrow-storage/carports" 2122 title="Arrow Storage® Carports" 2123 class="flex items-center w-full px-6 py-3 cursor-pointer 2124 bg-container-lighter border-container hover:bg-whiteSmoke 2125 hover:underline last:border-0" 2126 data-linked-category="true" data-nav-category-type="linked" data-linked-category-id="788" > 2127 <span class="text-14 font-bold text-grey-darker lg:ml-0"> 2128 <span class="ml-10">Arrow Storage® Carports</span> 2129 </span> 2130 </a> 2131 </span> 2132 </div> 2133 <span class="flex items-center border-b" 2134 :class="isHideParentSub" 2135 > 2136 <a href="https://www.shelterlogic.com/shop-by-brand/arrow-storage/pastureport-livestock-agricultural-shelters" 2137 title="PasturePort™ Ag Shelters" 2138 class="flex items-center w-full px-6 py-4 cursor-pointer 2139 bg-container-lighter border-container hover:bg-whiteSmoke 2140 hover:underline last:border-0" 2141 >
2142 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2143 PasturePort™ Ag Shelters </span> 2144 </a> 2145 </span> 2146 <span class="flex items-center border-b" 2147 :class="isHideParentSub" 2148 > 2149 <a href="https://www.shelterlogic.com/shop-by-brand/arrow-storage/deck-boxes" 2150 title="Deck Boxes" 2151 class="flex items-center w-full px-6 py-4 cursor-pointer 2152 bg-container-lighter border-container hover:bg-whiteSmoke 2153 hover:underline last:border-0" 2154 > 2155 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2156 Deck Boxes </span> 2157 </a> 2158 </span> 2159 <span class="flex items-center border-b" 2160 :class="isHideParentSub" 2161 > 2162 <a href="https://www.shelterlogic.com/shop-by-brand/arrow-storage/garden" 2163 title="Garden Beds" 2164 class="flex items-center w-full px-6 py-4 cursor-pointer 2165 bg-container-lighter border-container hover:bg-whiteSmoke 2166 hover:underline last:border-0" 2167 > 2168 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2169 Garden Beds </span> 2170 </a> 2171 </span> 2172 <span class="flex items-center border-b" 2173 :class="isHideParentSub" 2174 > 2175 <a href="https://www.shelterlogic.com/shop-by-brand/arrow-storage/accessories" 2176 title="Accessories" 2177 class="flex items-center w-full px-6 py-4 cursor-pointer 2178 bg-container-lighter border-container hover:bg-whiteSmoke 2179 hover:underline last:border-0" 2180 > 2181 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2182 Accessories </span> 2183 </a> 2184 </span> 2185 </div> 2186 <sp
2186an class="flex items-center border-b" 2187 :class="{ 2188 'hidden' : hideParent 2189 }" 2190 > 2191 <a href="https://www.shelterlogic.com/shop-by-brand/quik-shade" 2192 title="Quik Shade®" 2193 class="flex items-center w-full px-6 py-4 cursor-pointer 2194 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 2195 > 2196 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2197 Quik Shade® </span> 2198 </a> 2199 <button class="absolute right-0 flex w-8 h-8 mr-[18px] cursor-pointer hero-icon 2200 arrow-circle-fat-right orange-icon after:bottom-0 after:w-
22007 after:h-7" 2201 data-index="category-node-210" 2202 @click="setMobileActiveSubId"> 2203 </button> 2204 </span> 2205 <div class="overflow-x-hidden overflow-y-auto fixed top-0 right-0 z-20 w-full 2206 h-full transition-transform duration-200 ease-in-out 2207 translate-x-full transform bg-container-lighter" :class="{ 2208 'translate-x-full' : mobilePanelActiveIdSub !== 'category-node-210', 2209 'translate-x-0' : mobilePanelActiveIdSub === 'category-node-210', 2210 }" 2211 > 2212 <span class="block text-16 font-bold py-4 px-6 menu-mobile-h2 border-b border-container"> 2213 <span class="flex items-center cursor-pointer bg-container" 2214 @click="resetMobileActiveTab"> 2215 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-orange w-7 h-7" width="24" height="24" role="img"> 2216 <path stroke-linecap="round" stroke-linejoin="round" d="M11 15l-3-3m0 0l3-3m-3 3h8M3 12a9 9 0 1118 0 9 9 0 01-18 0z"/> 2217<title>arrow-circle-left</title></svg> 2218 <span class="ml-4"> 2219 Quik Shade® </span> 2220 </span> 2221 </span> 2222 <a href="https://www.shelterlogic.com/shop-by-brand/quik-shade" 2223 class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 2224 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 2225 aria-label="Quik Shade®" 2226 title="Quik Shade®" 2227 > 2228 <span class="ml-10">View All</span> 2229 </a> 2230 2231 <span class="flex items-center border-b" 2232 :class="isHideParentSub" 2233 > 2234 <a href="https://www.shelterlogic.com/shop-by-brand/quik-shade/pop-up-canopy" 2235 title="Pop-Up Canopies" 2236 class="flex items-center w-full px-6 py-4 cursor-pointer 2237 bg-container-lighter border-container hover:bg-whiteSmoke 2238 hover:underline last:border-0" 2239 > 2240 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2241 Pop-Up Canopies </span> 2242 </a> 2243 </span> 2244 </div> 2245 <sp
2245an class="flex items-center border-b" 2246 :class="{ 2247 'hidden' : hideParent 2248 }" 2249 > 2250 <a href="https://www.shelterlogic.com/shop-by-brand/camp-go" 2251 title="CAMP&GO™" 2252 class="flex items-center w-full px-6 py-4 cursor-pointer 2253 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 2254 > 2255 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2256 CAMP&GO™ </span> 2257 </a> 2258 <button class="absolute right-0 flex w-8 h-8 mr-[18px] cursor-pointer hero-icon 2259 arrow-circle-fat-right orange-icon after:bottom-0 after:w-
22597 after:h-7" 2260 data-index="category-node-1078" 2261 @click="setMobileActiveSubId"> 2262 </button> 2263 </span> 2264 <div class="overflow-x-hidden overflow-y-auto fixed top-0 right-0 z-20 w-full 2265 h-full transition-transform duration-200 ease-in-out 2266 translate-x-full transform bg-container-lighter" :class="{ 2267 'translate-x-full' : mobilePanelActiveIdSub !== 'category-node-1078', 2268 'translate-x-0' : mobilePanelActiveIdSub === 'category-node-1078', 2269 }" 2270 > 2271 <span class="block text-16 font-bold py-4 px-6 menu-mobile-h2 border-b border-container"> 2272 <span class="flex items-center cursor-pointer bg-container" 2273 @click="resetMobileActiveTab"> 2274 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-orange w-7 h-7" width="24" height="24" role="img"> 2275 <path stroke-linecap="round" stroke-linejoin="round" d="M11 15l-3-3m0 0l3-3m-3 3h8M3 12a9 9 0 1118 0 9 9 0 01-18 0z"/> 2276<title>arrow-circle-left</title></svg> 2277 <span class="ml-4"> 2278 CAMP&GO™ </span> 2279 </span> 2280 </span> 2281 <a href="https://www.shelterlogic.com/shop-by-brand/camp-go" 2282 class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 2283 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 2284 aria-label="CAMP&GO™" 2285 title="CAMP&GO™" 2286 > 2287 <span class="ml-10">View All</span> 2288 </a> 2289 2290 <span class="flex items-center border-b" 2291 :class="isHideParentSub" 2292 > 2293 <a href="https://www.shelterlogic.com/shop-by-brand/camp-go/camping-chairs" 2294 title="Camping Chairs" 2295 class="flex items-center w-full px-6 py-4 cursor-pointer 2296 bg-container-lighter border-container hover:bg-whiteSmoke 2297 hover:underline last:border-0" 2298 > 2299 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2300 Camping Chairs </span> 2301 </a> 2302 </span> 2303 <span class="flex items-center border-b" 2304 :class="isHideParentSub" 2305 > 2306 <a href="https://www.shelterlogic.com/shop-by-brand/camp-go/camp-tables" 2307 title="Camping Tables" 2308 class="flex items-center w-full px-6 py-4 cursor-pointer 2309 bg-container-lighter border-container hover:bg-whiteSmoke 2310 hover:underline last:border-0" 2311 >
2312 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2313 Camping Tables </span> 2314 </a> 2315 </span> 2316 </div> 2317 <span class="flex items-center border-b" 2318 :class="{ 2319 'hidden' : hideParent 2320 }" 2321 > 2322 <a href="https://www.shelterlogic.com/shop-by-brand/rio-beach" 2323 title="RIO Beach®" 2324 class="flex items-center w-full px-6 py-4 cursor-pointer 2325 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 2326 > 2327 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2328 RIO Beach® </span> 2329 </a> 2330 <button class="absolute right-0 flex w-8 h-8 mr-[18px] cursor-pointer hero-icon 2331 arrow-circle-fat-right orange-icon after:bottom-0 after:w-
23317 after:h-7" 2332 data-index="category-node-338" 2333 @click="setMobileActiveSubId"> 2334 </button> 2335 </span> 2336 <div class="overflow-x-hidden overflow-y-auto fixed top-0 right-0 z-20 w-full 2337 h-full transition-transform duration-200 ease-in-out 2338 translate-x-full transform bg-container-lighter" :class="{ 2339 'translate-x-full' : mobilePanelActiveIdSub !== 'category-node-338', 2340 'translate-x-0' : mobilePanelActiveIdSub === 'category-node-338', 2341 }" 2342 > 2343 <span class="block text-16 font-bold py-4 px-6 menu-mobile-h2 border-b border-container"> 2344 <span class="flex items-center cursor-pointer bg-container" 2345 @click="resetMobileActiveTab"> 2346 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-orange w-7 h-7" width="24" height="24" role="img"> 2347 <path stroke-linecap="round" stroke-linejoin="round" d="M11 15l-3-3m0 0l3-3m-3 3h8M3 12a9 9 0 1118 0 9 9 0 01-18 0z"/> 2348<title>arrow-circle-left</title></svg> 2349 <span class="ml-4"> 2350 RIO Beach® </span> 2351 </span> 2352 </span> 2353 <a href="https://www.shelterlogic.com/shop-by-brand/rio-beach" 2354 class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 2355 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 2356 aria-label="RIO Beach®" 2357 title="RIO Beach®" 2358 > 2359 <span class="ml-10">View All</span> 2360 </a> 2361 2362 <span class="flex items-center border-b" 2363 :class="isHideParentSub" 2364 > 2365 <a href="https://www.shelterlogic.com/shop-by-brand/rio-beach/chairs" 2366 title="Chairs" 2367 class="flex items-center w-full px-6 py-4 cursor-pointer 2368 bg-container-lighter border-container hover:bg-whiteSmoke 2369 hover:underline last:border-0" 2370 > 2371 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2372 Chairs </span> 2373 </a> 2374 </span> 2375 <span class="flex items-center border-b" 2376 :class="isHideParentSub" 2377 > 2378 <a href="https://www.shelterlogic.com/shop-by-brand/rio-beach/beach-carts" 2379 title="Beach Carts" 2380 class="flex items-center w-full px-6 py-4 cursor-pointer 2381 bg-container-lighter border-container hover:bg-whiteSmoke 2382 hover:underline last:border-0" 2383 >
2384 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2385 Beach Carts </span> 2386 </a> 2387 </span> 2388 <span class="flex items-center border-b" 2389 :class="isHideParentSub" 2390 > 2391 <a href="https://www.shelterlogic.com/shop-by-brand/rio-beach/beach-tents" 2392 title="Beach Shelters" 2393 class="flex items-center w-full px-6 py-4 cursor-pointer 2394 bg-container-lighter border-container hover:bg-whiteSmoke 2395 hover:underline last:border-0" 2396 > 2397 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2398 Beach Shelters </span> 2399 </a> 2400 </span> 2401 <span class="flex items-center border-b" 2402 :class="isHideParentSub" 2403 > 2404 <a href="https://www.shelterlogic.com/shop-by-brand/rio-beach/beach-umbrellas" 2405 title="Beach Umbrellas" 2406 class="flex items-center w-full px-6 py-4 cursor-pointer 2407 bg-container-lighter border-container hover:bg-whiteSmoke 2408 hover:underline last:border-0" 2409 > 2410 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2411 Beach Umbrellas </span> 2412 </a> 2413 </span> 2414 <span class="flex items-center border-b" 2415 :class="isHideParentSub" 2416 > 2417 <a href="https://www.shelterlogic.com/shop-by-brand/rio-beach/beach-tables-rio" 2418 title="Beach Tables" 2419 class="flex items-center w-full px-6 py-4 cursor-pointer 2420 bg-container-lighter border-container hover:bg-whiteSmoke 2421 hover:underline last:border-0" 2422 > 2423 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2424 Beach Tables </span> 2425 </a> 2426 </span> 2427 <sp
2427an class="flex items-center border-b" 2428 :class="isHideParentSub" 2429 > 2430 <a href="https://www.shelterlogic.com/shop-by-brand/rio-beach/beach-accessories-rio" 2431 title="Beach Accessories" 2432 class="flex items-center w-full px-6 py-4 cursor-pointer 2433 bg-container-lighter border-container hover:bg-whiteSmoke 2434 hover:underline last:border-0" 2435 > 2436 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2437 Beach Accessories </span> 2438 </a> 2439 </span> 2440 </div> 2441 <span class="flex items-center border-b" 2442 :class="{ 2443 'hidden' : hideParent 2444 }" 2445 > 2446 <a href="https://www.shelterlogic.com/shop-by-brand/tommy-bahama" 2447 title="Tommy Bahama®" 2448 class="flex items-center w-full px-6 py-4 cursor-pointer 2449 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 2450 > 2451 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2452 Tommy Bahama® </span> 2453 </a> 2454 <button class="absolute right-0 flex w-8 h-8 mr-[18px] cursor-pointer hero-icon 2455 arrow-circle-fat-right orange-icon after:bottom-0 after:w-
24557 after:h-7" 2456 data-index="category-node-812" 2457 @click="setMobileActiveSubId"> 2458 </button> 2459 </span> 2460 <div class="overflow-x-hidden overflow-y-auto fixed top-0 right-0 z-20 w-full 2461 h-full transition-transform duration-200 ease-in-out 2462 translate-x-full transform bg-container-lighter" :class="{ 2463 'translate-x-full' : mobilePanelActiveIdSub !== 'category-node-812', 2464 'translate-x-0' : mobilePanelActiveIdSub === 'category-node-812', 2465 }" 2466 > 2467 <span class="block text-16 font-bold py-4 px-6 menu-mobile-h2 border-b border-container"> 2468 <span class="flex items-center cursor-pointer bg-container" 2469 @click="resetMobileActiveTab"> 2470 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-orange w-7 h-7" width="24" height="24" role="img"> 2471 <path stroke-linecap="round" stroke-linejoin="round" d="M11 15l-3-3m0 0l3-3m-3 3h8M3 12a9 9 0 1118 0 9 9 0 01-18 0z"/> 2472<title>arrow-circle-left</title></svg> 2473 <span class="ml-4"> 2474 Tommy Bahama® </span> 2475 </span> 2476 </span> 2477 <a href="https://www.shelterlogic.com/shop-by-brand/tommy-bahama" 2478 class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 2479 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 2480 aria-label="Tommy Bahama®" 2481 title="Tommy Bahama®" 2482 > 2483 <span class="ml-10">View All</span> 2484 </a> 2485 2486 <span class="flex items-center border-b" 2487 :class="isHideParentSub" 2488 > 2489 <a href="https://www.shelterlogic.com/shop-by-brand/tommy-bahama/beach-chairs" 2490 title="Chairs" 2491 class="flex items-center w-full px-6 py-4 cursor-pointer 2492 bg-container-lighter border-container hover:bg-whiteSmoke 2493 hover:underline last:border-0" 2494 > 2495 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2496 Chairs </span> 2497 </a> 2498 </span> 2499 <span class="flex items-center border-b" 2500 :class="isHideParentSub" 2501 > 2502 <a href="https://www.shelterlogic.com/shop-by-brand/tommy-bahama/umbrellas" 2503 title="Umbrellas" 2504 class="flex items-center w-full px-6 py-4 cursor-pointer 2505 bg-container-lighter border-container hover:bg-whiteSmoke 2506 hover:underline last:border-0" 2507 >
2508 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2509 Umbrellas </span> 2510 </a> 2511 </span> 2512 <span class="flex items-center border-b" 2513 :class="isHideParentSub" 2514 > 2515 <a href="https://www.shelterlogic.com/shop-by-brand/tommy-bahama/beach-cabanas-and-tents" 2516 title="Cabanas" 2517 class="flex items-center w-full px-6 py-4 cursor-pointer 2518 bg-container-lighter border-container hover:bg-whiteSmoke 2519 hover:underline last:border-0" 2520 > 2521 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2522 Cabanas </span> 2523 </a> 2524 </span> 2525 <span class="flex items-center border-b" 2526 :class="isHideParentSub" 2527 > 2528 <a href="https://www.shelterlogic.com/shop-by-brand/tommy-bahama/coolers" 2529 title="Coolers" 2530 class="flex items-center w-full px-6 py-4 cursor-pointer 2531 bg-container-lighter border-container hover:bg-whiteSmoke 2532 hover:underline last:border-0" 2533 > 2534 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2535 Coolers </span> 2536 </a> 2537 </span> 2538 <span class="flex items-center border-b" 2539 :class="isHideParentSub" 2540 > 2541 <a href="https://www.shelterlogic.com/shop-by-brand/tommy-bahama/gazebos" 2542 title="Grill Gazebos" 2543 class="flex items-center w-full px-6 py-4 cursor-pointer 2544 bg-container-lighter border-container hover:bg-whiteSmoke 2545 hover:underline last:border-0" 2546 > 2547 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2548 Grill Gazebos </span> 2549 </a> 2550 </span> 2551 </div> 2552 <sp
2552an class="flex items-center border-b" 2553 :class="{ 2554 'hidden' : hideParent 2555 }" 2556 > 2557 <a href="https://www.shelterlogic.com/shop-by-brand/margaritaville" 2558 title="Margaritaville®" 2559 class="flex items-center w-full px-6 py-4 cursor-pointer 2560 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 2561 > 2562 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2563 Margaritaville® </span> 2564 </a> 2565 <button class="absolute right-0 flex w-8 h-8 mr-[18px] cursor-pointer hero-icon 2566 arrow-circle-fat-right orange-icon after:bottom-0 after:w-
25667 after:h-7" 2567 data-index="category-node-761" 2568 @click="setMobileActiveSubId"> 2569 </button> 2570 </span> 2571 <div class="overflow-x-hidden overflow-y-auto fixed top-0 right-0 z-20 w-full 2572 h-full transition-transform duration-200 ease-in-out 2573 translate-x-full transform bg-container-lighter" :class="{ 2574 'translate-x-full' : mobilePanelActiveIdSub !== 'category-node-761', 2575 'translate-x-0' : mobilePanelActiveIdSub === 'category-node-761', 2576 }" 2577 > 2578 <span class="block text-16 font-bold py-4 px-6 menu-mobile-h2 border-b border-container"> 2579 <span class="flex items-center cursor-pointer bg-container" 2580 @click="resetMobileActiveTab"> 2581 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-orange w-7 h-7" width="24" height="24" role="img"> 2582 <path stroke-linecap="round" stroke-linejoin="round" d="M11 15l-3-3m0 0l3-3m-3 3h8M3 12a9 9 0 1118 0 9 9 0 01-18 0z"/> 2583<title>arrow-circle-left</title></svg> 2584 <span class="ml-4"> 2585 Margaritaville® </span> 2586 </span> 2587 </span> 2588 <a href="https://www.shelterlogic.com/shop-by-brand/margaritaville" 2589 class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 2590 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 2591 aria-label="Margaritaville®" 2592 title="Margaritaville®" 2593 > 2594 <span class="ml-10">View All</span> 2595 </a> 2596 2597 <span class="flex items-center border-b" 2598 :class="isHideParentSub" 2599 > 2600 <a href="https://www.shelterlogic.com/shop-by-brand/margaritaville/beach-chairs" 2601 title="Chairs" 2602 class="flex items-center w-full px-6 py-4 cursor-pointer 2603 bg-container-lighter border-container hover:bg-whiteSmoke 2604 hover:underline last:border-0" 2605 > 2606 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2607 Chairs </span> 2608 </a> 2609 </span> 2610 </div> 2611 <sp
2611an class="flex items-center border-b" 2612 :class="{ 2613 'hidden' : hideParent 2614 }" 2615 > 2616 <a href="https://www.shelterlogic.com/shop-by-brand/life-is-good" 2617 title="Life is Good®" 2618 class="flex items-center w-full px-6 py-4 cursor-pointer 2619 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 2620 > 2621 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2622 Life is Good® </span> 2623 </a> 2624 <button class="absolute right-0 flex w-8 h-8 mr-[18px] cursor-pointer hero-icon 2625 arrow-circle-fat-right orange-icon after:bottom-0 after:w-
26257 after:h-7" 2626 data-index="category-node-1133" 2627 @click="setMobileActiveSubId"> 2628 </button> 2629 </span> 2630 <div class="overflow-x-hidden overflow-y-auto fixed top-0 right-0 z-20 w-full 2631 h-full transition-transform duration-200 ease-in-out 2632 translate-x-full transform bg-container-lighter" :class="{ 2633 'translate-x-full' : mobilePanelActiveIdSub !== 'category-node-1133', 2634 'translate-x-0' : mobilePanelActiveIdSub === 'category-node-1133', 2635 }" 2636 > 2637 <span class="block text-16 font-bold py-4 px-6 menu-mobile-h2 border-b border-container"> 2638 <span class="flex items-center cursor-pointer bg-container" 2639 @click="resetMobileActiveTab"> 2640 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-orange w-7 h-7" width="24" height="24" role="img"> 2641 <path stroke-linecap="round" stroke-linejoin="round" d="M11 15l-3-3m0 0l3-3m-3 3h8M3 12a9 9 0 1118 0 9 9 0 01-18 0z"/> 2642<title>arrow-circle-left</title></svg> 2643 <span class="ml-4"> 2644 Life is Good® </span> 2645 </span> 2646 </span> 2647 <a href="https://www.shelterlogic.com/shop-by-brand/life-is-good" 2648 class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 2649 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 2650 aria-label="Life is Good®" 2651 title="Life is Good®" 2652 > 2653 <span class="ml-10">View All</span> 2654 </a> 2655 2656 <span class="flex items-center border-b" 2657 :class="isHideParentSub" 2658 > 2659 <a href="https://www.shelterlogic.com/shop-by-brand/life-is-good/beach-chairs" 2660 title="Beach Chairs" 2661 class="flex items-center w-full px-6 py-4 cursor-pointer 2662 bg-container-lighter border-container hover:bg-whiteSmoke 2663 hover:underline last:border-0" 2664 > 2665 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2666 Beach Chairs </span> 2667 </a> 2668 </span> 2669 <span class="flex items-center border-b" 2670 :class="isHideParentSub" 2671 > 2672 <a href="https://www.shelterlogic.com/shop-by-brand/life-is-good/canopy-chairs" 2673 title="Quad Chairs" 2674 class="flex items-center w-full px-6 py-4 cursor-pointer 2675 bg-container-lighter border-container hover:bg-whiteSmoke 2676 hover:underline last:border-0" 2677 >
2678 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2679 Quad Chairs </span> 2680 </a> 2681 </span> 2682 <span class="flex items-center border-b" 2683 :class="isHideParentSub" 2684 > 2685 <a href="https://www.shelterlogic.com/shop-by-brand/life-is-good/beach-umbrellas" 2686 title="Beach Umbrellas" 2687 class="flex items-center w-full px-6 py-4 cursor-pointer 2688 bg-container-lighter border-container hover:bg-whiteSmoke 2689 hover:underline last:border-0" 2690 > 2691 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2692 Beach Umbrellas </span> 2693 </a> 2694 </span> 2695 <span class="flex items-center border-b" 2696 :class="isHideParentSub" 2697 > 2698 <a href="https://www.shelterlogic.com/shop-by-brand/life-is-good/pet-shade" 2699 title="Pet Shade" 2700 class="flex items-center w-full px-6 py-4 cursor-pointer 2701 bg-container-lighter border-container hover:bg-whiteSmoke 2702 hover:underline last:border-0" 2703 > 2704 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2705 Pet Shade </span> 2706 </a> 2707 </span> 2708 <span class="flex items-center border-b" 2709 :class="isHideParentSub" 2710 > 2711 <a href="https://www.shelterlogic.com/shop-by-brand/life-is-good/hammocks" 2712 title="Hammocks" 2713 class="flex items-center w-full px-6 py-4 cursor-pointer 2714 bg-container-lighter border-container hover:bg-whiteSmoke 2715 hover:underline last:border-0" 2716 > 2717 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2718 Hammocks </span> 2719 </a> 2720 </span> 2721 </div> 2722 <sp
2722an class="flex items-center border-b" 2723 :class="{ 2724 'hidden' : hideParent 2725 }" 2726 > 2727 <a href="https://www.shelterlogic.com/shop-by-brand/scottsmiracle-gro" 2728 title="Scotts Miracle-Gro" 2729 class="flex items-center w-full px-6 py-4 cursor-pointer 2730 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 2731 > 2732 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2733 Scotts Miracle-Gro </span> 2734 </a> 2735 <button class="absolute right-0 flex w-8 h-8 mr-[18px] cursor-pointer hero-icon 2736 arrow-circle-fat-right orange-icon after:bottom-0 after:w-
27367 after:h-7" 2737 data-index="category-node-1115" 2738 @click="setMobileActiveSubId"> 2739 </button> 2740 </span> 2741 <div class="overflow-x-hidden overflow-y-auto fixed top-0 right-0 z-20 w-full 2742 h-full transition-transform duration-200 ease-in-out 2743 translate-x-full transform bg-container-lighter" :class="{ 2744 'translate-x-full' : mobilePanelActiveIdSub !== 'category-node-1115', 2745 'translate-x-0' : mobilePanelActiveIdSub === 'category-node-1115', 2746 }" 2747 > 2748 <span class="block text-16 font-bold py-4 px-6 menu-mobile-h2 border-b border-container"> 2749 <span class="flex items-center cursor-pointer bg-container" 2750 @click="resetMobileActiveTab"> 2751 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-orange w-7 h-7" width="24" height="24" role="img"> 2752 <path stroke-linecap="round" stroke-linejoin="round" d="M11 15l-3-3m0 0l3-3m-3 3h8M3 12a9 9 0 1118 0 9 9 0 01-18 0z"/> 2753<title>arrow-circle-left</title></svg> 2754 <span class="ml-4"> 2755 Scotts Miracle-Gro </span> 2756 </span> 2757 </span> 2758 <a href="https://www.shelterlogic.com/shop-by-brand/scottsmiracle-gro" 2759 class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 2760 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 2761 aria-label="Scotts Miracle-Gro" 2762 title="Scotts Miracle-Gro" 2763 > 2764 <span class="ml-10">View All</span> 2765 </a> 2766 2767 <span class="flex items-center border-b" 2768 :class="isHideParentSub" 2769 > 2770 <a href="https://www.shelterlogic.com/shop-by-brand/scottsmiracle-gro/fabric-sheds" 2771 title="Fabric Sheds" 2772 class="flex items-center w-full px-6 py-4 cursor-pointer 2773 bg-container-lighter border-container hover:bg-whiteSmoke 2774 hover:underline last:border-0" 2775 > 2776 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2777 Fabric Sheds </span> 2778 </a> 2779 </span> 2780 <sp
2780an class="flex items-center border-b" 2781 :class="isHideParentSub" 2782 > 2783 <a href="https://www.shelterlogic.com/shop-by-brand/scottsmiracle-gro/metal-sheds" 2784 title="Metal Sheds" 2785 class="flex items-center w-full px-6 py-4 cursor-pointer 2786 bg-container-lighter border-container hover:bg-whiteSmoke 2787 hover:underline last:border-0" 2788 > 2789 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2790 Metal Sheds </span> 2791 </a> 2792 </span> 2793 <span class="flex items-center border-b" 2794 :class="isHideParentSub" 2795 > 2796 <a href="https://www.shelterlogic.com/shop-by-brand/scottsmiracle-gro/greenhouses" 2797 title="Greenhouses" 2798 class="flex items-center w-full px-6 py-4 cursor-pointer 2799 bg-container-lighter border-container hover:bg-whiteSmoke 2800 hover:underline last:border-0" 2801 > 2802 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2803 Greenhouses </span> 2804 </a> 2805 </span> 2806 <span class="flex items-center border-b" 2807 :class="isHideParentSub" 2808 > 2809 <a href="https://www.shelterlogic.com/shop-by-brand/scottsmiracle-gro/raised-garden-beds" 2810 title="Raised Garden Beds" 2811 class="flex items-center w-full px-6 py-4 cursor-pointer 2812 bg-container-lighter border-container hover:bg-whiteSmoke 2813 hover:underline last:border-0" 2814 > 2815 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2816 Raised Garden Beds </span> 2817 </a> 2818 </span> 2819 </div> 2820 </div> 2821 </div> 2822 <div class="level-0">
2823 <span 2824 class="flex items-center transition-transform duration-150 ease-in-out transform" 2825 :class="{ 2826 '-translate-x-full' : mobilePanelActiveId, 2827 'translate-x-0' : !mobilePanelActiveId 2828 }" 2829 > 2830 <a class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 2831 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline level-0" 2832 href="https://www.shelterlogic.com/outdoor-storage" 2833 role="link" 2834 title="Outdoor Storage" 2835 aria-label="Outdoor Storage" 2836 > 2837 Outdoor Storage </a> 2838 <button class="absolute right-0 flex w-8 h-8 mr-[18px] cursor-pointer 2839 hero-icon arrow-circle-fat-right orange-icon
2840 after:bottom-0 after:w-7 after:h-7" 2841 @click="mobilePanelActiveId = 2842 mobilePanelActiveId === 'category-node-167' ? 2843 0 : 'category-node-167'" 2844 > 2845 </button> 2846 </span> 2847 <div class="overflow-x-hidden overflow-y-auto absolute top-0 right-0 z-10 w-full h-full 2848 transition-transform duration-200 ease-in-out translate-x-full transform bg-container-lighter" 2849 :class="{ 2850 'translate-x-full' : mobilePanelActiveId !== 'category-node-167', 2851 'translate-x-0' : mobilePanelActiveId === 'category-node-167', 2852 }" 2853 > 2854 <span class="block text-16 font-bold py-4 px-6 menu-mobile-h2 border-b border-container"> 2855 <span class="flex items-center bg-container cursor-pointer" 2856 @click="mobilePanelActiveId = 0" 2857 > 2858 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-orange w-7 h-7" width="24" height="24" role="img"> 2859 <path stroke-linecap="round" stroke-linejoin="round" d="M11 15l-3-3m0 0l3-3m-3 3h8M3 12a9 9 0 1118 0 9 9 0 01-18 0z"/> 2860<title>arrow-circle-left</title></svg> 2861 <span class="ml-4"> 2862 Outdoor Storage </span> 2863 </span> 2864 </span> 2865 <a href="https://www.shelterlogic.com/outdoor-storage" 2866 class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 2867 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 2868 aria-label="Outdoor Storage" 2869 title="Outdoor Storage" 2870 > 2871 <span class="ml-10">View All</span></a> 2872 2873 <span class="flex items-center border-b" 2874 :class="{ 2875 'hidden' : hideParent 2876 }" 2877 > 2878 <a href="https://www.shelterlogic.com/outdoor-storage/sheds" 2879 title="Sheds" 2880 class="flex items-center w-full px-6 py-4 cursor-pointer 2881 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 2882 > 2883 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2884 Sheds </span> 2885 </a> 2886 <button class="absolute right-0 flex w-8 h-8 mr-[18px] cursor-pointer hero-icon 2887 arrow-circle-fat-right orange-icon after:bottom-0 after:w-
28877 after:h-7" 2888 data-index="category-node-168" 2889 @click="setMobileActiveSubId"> 2890 </button> 2891 </span> 2892 <div class="overflow-x-hidden overflow-y-auto fixed top-0 right-0 z-20 w-full 2893 h-full transition-transform duration-200 ease-in-out 2894 translate-x-full transform bg-container-lighter" :class="{ 2895 'translate-x-full' : mobilePanelActiveIdSub !== 'category-node-168', 2896 'translate-x-0' : mobilePanelActiveIdSub === 'category-node-168', 2897 }" 2898 > 2899 <span class="block text-16 font-bold py-4 px-6 menu-mobile-h2 border-b border-container"> 2900 <span class="flex items-center cursor-pointer bg-container" 2901 @click="resetMobileActiveTab"> 2902 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-orange w-7 h-7" width="24" height="24" role="img"> 2903 <path stroke-linecap="round" stroke-linejoin="round" d="M11 15l-3-3m0 0l3-3m-3 3h8M3 12a9 9 0 1118 0 9 9 0 01-18 0z"/> 2904<title>arrow-circle-left</title></svg> 2905 <span class="ml-4"> 2906 Sheds </span> 2907 </span> 2908 </span> 2909 <a href="https://www.shelterlogic.com/outdoor-storage/sheds" 2910 class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 2911 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 2912 aria-label="Sheds" 2913 title="Sheds" 2914 > 2915 <span class="ml-10">View All</span> 2916 </a> 2917 2918 <span class="flex items-center border-b" 2919 :class="isHideParentSub" 2920 > 2921 <a href="https://www.shelterlogic.com/outdoor-storage/sheds/shed-quiz" 2922 title="Shed Quiz" 2923 class="flex items-center w-full px-6 py-4 cursor-pointer 2924 bg-container-lighter border-container hover:bg-whiteSmoke 2925 hover:underline last:border-0" 2926 > 2927 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2928 Shed Quiz </span> 2929 </a> 2930 </span> 2931 <span class="flex items-center border-b" 2932 :class="isHideParentSub" 2933 > 2934 <a href="https://www.shelterlogic.com/outdoor-storage/sheds/metal-sheds" 2935 title="Metal Sheds" 2936 class="flex items-center w-full px-6 py-4 cursor-pointer 2937 bg-container-lighter border-container hover:bg-whiteSmoke 2938 hover:underline last:border-0" 2939 >
2940 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2941 Metal Sheds </span> 2942 </a> 2943 </span> 2944 <span class="flex items-center border-b" 2945 :class="isHideParentSub" 2946 > 2947 <a href="https://www.shelterlogic.com/outdoor-storage/sheds/portable-sheds" 2948 title="Fabric Sheds" 2949 class="flex items-center w-full px-6 py-4 cursor-pointer 2950 bg-container-lighter border-container hover:bg-whiteSmoke 2951 hover:underline last:border-0" 2952 > 2953 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2954 Fabric Sheds </span> 2955 </a> 2956 </span> 2957 <span class="flex items-center border-b" 2958 :class="isHideParentSub" 2959 > 2960 <a href="https://www.shelterlogic.com/outdoor-storage/sheds/shirudo-series-shed" 2961 title="Shirudo Series™ Shed" 2962 class="flex items-center w-full px-6 py-4 cursor-pointer 2963 bg-container-lighter border-container hover:bg-whiteSmoke 2964 hover:underline last:border-0" 2965 > 2966 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2967 Shirudo Series™ Shed </span> 2968 </a> 2969 </span> 2970 <span class="flex items-center border-b" 2971 :class="isHideParentSub" 2972 > 2973 <a href="https://www.shelterlogic.com/outdoor-storage/sheds/floor-frame-kit" 2974 title="Floor Frame Kit Finder" 2975 class="flex items-center w-full px-6 py-4 cursor-pointer 2976 bg-container-lighter border-container hover:bg-whiteSmoke 2977 hover:underline last:border-0" 2978 > 2979 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2980 Floor Frame Kit Finder </span> 2981 </a> 2982 </span> 2983 </div> 2984 <sp
2984an class="flex items-center border-b" 2985 :class="{ 2986 'hidden' : hideParent 2987 }" 2988 > 2989 <a href="https://www.shelterlogic.com/outdoor-storage/carports" 2990 title="Carports" 2991 class="flex items-center w-full px-6 py-4 cursor-pointer 2992 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 2993 > 2994 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 2995 Carports </span> 2996 </a> 2997 <button class="absolute right-0 flex w-8 h-8 mr-[18px] cursor-pointer hero-icon 2998 arrow-circle-fat-right orange-icon after:bottom-0 after:w-
29987 after:h-7" 2999 data-index="category-node-170" 3000 @click="setMobileActiveSubId"> 3001 </button> 3002 </span> 3003 <div class="overflow-x-hidden overflow-y-auto fixed top-0 right-0 z-20 w-full 3004 h-full transition-transform duration-200 ease-in-out 3005 translate-x-full transform bg-container-lighter" :class="{ 3006 'translate-x-full' : mobilePanelActiveIdSub !== 'category-node-170', 3007 'translate-x-0' : mobilePanelActiveIdSub === 'category-node-170', 3008 }" 3009 > 3010 <span class="block text-16 font-bold py-4 px-6 menu-mobile-h2 border-b border-container"> 3011 <span class="flex items-center cursor-pointer bg-container" 3012 @click="resetMobileActiveTab"> 3013 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-orange w-7 h-7" width="24" height="24" role="img"> 3014 <path stroke-linecap="round" stroke-linejoin="round" d="M11 15l-3-3m0 0l3-3m-3 3h8M3 12a9 9 0 1118 0 9 9 0 01-18 0z"/> 3015<title>arrow-circle-left</title></svg> 3016 <span class="ml-4"> 3017 Carports </span> 3018 </span> 3019 </span> 3020 <a href="https://www.shelterlogic.com/outdoor-storage/carports" 3021 class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 3022 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 3023 aria-label="Carports" 3024 title="Carports" 3025 > 3026 <span class="ml-10">View All</span> 3027 </a> 3028 3029 <span class="flex items-center border-b" 3030 :class="isHideParentSub" 3031 > 3032 <a href="https://www.shelterlogic.com/outdoor-storage/carports/steelpeak" 3033 title="Arrow STEELPEAK™ Carports" 3034 class="flex items-center w-full px-6 py-4 cursor-pointer 3035 bg-container-lighter border-container hover:bg-whiteSmoke 3036 hover:underline last:border-0" 3037 > 3038 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3039 Arrow STEELPEAK™ Carports </span> 3040 </a> 3041 </span> 3042 <span class="flex items-center border-b" 3043 :class="isHideParentSub" 3044 > 3045 <a href="https://www.shelterlogic.com/outdoor-storage/carports/cover-it-carports" 3046 title="CoverIT® Carports" 3047 class="flex items-center w-full px-6 py-4 cursor-pointer 3048 bg-container-lighter border-container hover:bg-whiteSmoke 3049 hover:underline last:border-0" 3050 >
3051 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3052 CoverIT® Carports </span> 3053 </a> 3054 </span> 3055 <span class="flex items-center border-b" 3056 :class="isHideParentSub" 3057 > 3058 <a href="https://www.shelterlogic.com/shop-by-brand/sojag/carports" 3059 title="Sojag® Samara Carport" 3060 class="flex items-center w-full px-6 py-4 cursor-pointer 3061 bg-container-lighter border-container hover:bg-whiteSmoke 3062 hover:underline last:border-0" 3063 data-linked-category="true" data-nav-category-type="linked" data-linked-category-id="713" > 3064 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3065 Sojag® Samara Carport </span> 3066 </a> 3067 </span> 3068 <span class="flex items-center border-b" 3069 :class="isHideParentSub" 3070 > 3071 <a href="https://www.shelterlogic.com/shop-by-brand/arrow-storage/carports" 3072 title="Arrow Storage® Carports" 3073 class="flex items-center w-full px-6 py-4 cursor-pointer 3074 bg-container-lighter border-container hover:bg-whiteSmoke 3075 hover:underline last:border-0" 3076 data-linked-category="true" data-nav-category-type="linked" data-linked-category-id="788" > 3077 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3078 Arrow Storage® Carports </span> 3079 </a> 3080 </span> 3081 <span class="flex items-center border-b" 3082 :class="isHideParentSub" 3083 > 3084 <a href="https://www.shelterlogic.com/outdoor-storage/carports/arrow-carports-for-rvs" 3085 title="RV Carports" 3086 class="flex items-center w-full px-6 py-4 cursor-pointer 3087 bg-container-lighter border-container hover:bg-whiteSmoke 3088 hover:underline last:border-0" 3089 >
3090 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3091 RV Carports </span> 3092 </a> 3093 </span> 3094 <span class="flex items-center border-b" 3095 :class="isHideParentSub" 3096 > 3097 <a href="https://www.shelterlogic.com/outdoor-storage/carports/carport-enclosure-kits" 3098 title="Carport Enclosure Kits and Walls" 3099 class="flex items-center w-full px-6 py-4 cursor-pointer 3100 bg-container-lighter border-container hover:bg-whiteSmoke 3101 hover:underline last:border-0" 3102 > 3103 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3104 Carport Enclosure Kits and Walls </span> 3105 </a> 3106 </span> 3107 </div> 3108 <span class="flex items-center border-b" 3109 :class="{ 3110 'hidden' : hideParent 3111 }" 3112 > 3113 <a href="https://www.shelterlogic.com/outdoor-storage/garages" 3114 title="Garages" 3115 class="flex items-center w-full px-6 py-4 cursor-pointer 3116 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 3117 > 3118 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3119 Garages </span> 3120 </a> 3121 <button class="absolute right-0 flex w-8 h-8 mr-[18px] cursor-pointer hero-icon 3122 arrow-circle-fat-right orange-icon after:bottom-0 after:w-
31227 after:h-7" 3123 data-index="category-node-169" 3124 @click="setMobileActiveSubId"> 3125 </button> 3126 </span> 3127 <div class="overflow-x-hidden overflow-y-auto fixed top-0 right-0 z-20 w-full 3128 h-full transition-transform duration-200 ease-in-out 3129 translate-x-full transform bg-container-lighter" :class="{ 3130 'translate-x-full' : mobilePanelActiveIdSub !== 'category-node-169', 3131 'translate-x-0' : mobilePanelActiveIdSub === 'category-node-169', 3132 }" 3133 > 3134 <span class="block text-16 font-bold py-4 px-6 menu-mobile-h2 border-b border-container"> 3135 <span class="flex items-center cursor-pointer bg-container" 3136 @click="resetMobileActiveTab"> 3137 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-orange w-7 h-7" width="24" height="24" role="img"> 3138 <path stroke-linecap="round" stroke-linejoin="round" d="M11 15l-3-3m0 0l3-3m-3 3h8M3 12a9 9 0 1118 0 9 9 0 01-18 0z"/> 3139<title>arrow-circle-left</title></svg> 3140 <span class="ml-4"> 3141 Garages </span> 3142 </span> 3143 </span> 3144 <a href="https://www.shelterlogic.com/outdoor-storage/garages" 3145 class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 3146 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 3147 aria-label="Garages" 3148 title="Garages" 3149 > 3150 <span class="ml-10">View All</span> 3151 </a> 3152 3153 <span class="flex items-center border-b" 3154 :class="isHideParentSub" 3155 > 3156 <a href="https://www.shelterlogic.com/outdoor-storage/garages/replacement-covers" 3157 title="Replacement Covers" 3158 class="flex items-center w-full px-6 py-4 cursor-pointer 3159 bg-container-lighter border-container hover:bg-whiteSmoke 3160 hover:underline last:border-0" 3161 > 3162 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3163 Replacement Covers </span> 3164 </a> 3165 </span> 3166 <span class="flex items-center border-b" 3167 :class="isHideParentSub" 3168 > 3169 <a href="https://www.shelterlogic.com/department/outdoor-storage-buildings/garages/garage-in-box" 3170 title="Garage-in-a-Box®" 3171 class="flex items-center w-full px-6 py-4 cursor-pointer 3172 bg-container-lighter border-container hover:bg-whiteSmoke 3173 hover:underline last:border-0" 3174 >
3175 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3176 Garage-in-a-Box® </span> 3177 </a> 3178 </span> 3179 <span class="flex items-center border-b" 3180 :class="isHideParentSub" 3181 > 3182 <a href="https://www.shelterlogic.com/department/outdoor-storage-buildings/garages/autoshelter" 3183 title="AUTOSHELTER®" 3184 class="flex items-center w-full px-6 py-4 cursor-pointer 3185 bg-container-lighter border-container hover:bg-whiteSmoke 3186 hover:underline last:border-0" 3187 > 3188 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3189 AUTOSHELTER® </span> 3190 </a> 3191 </span> 3192 <span class="flex items-center border-b" 3193 :class="isHideParentSub" 3194 > 3195 <a href="https://www.shelterlogic.com/outdoor-storage/garages/sheltercoat" 3196 title="ShelterCoat®" 3197 class="flex items-center w-full px-6 py-4 cursor-pointer 3198 bg-container-lighter border-container hover:bg-whiteSmoke 3199 hover:underline last:border-0" 3200 > 3201 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3202 ShelterCoat® </span> 3203 </a> 3204 </span> 3205 <span class="flex items-center border-b" 3206 :class="isHideParentSub" 3207 > 3208 <a href="https://www.shelterlogic.com/outdoor-storage/garages/sheltertube" 3209 title="ShelterTube®" 3210 class="flex items-center w-full px-6 py-4 cursor-pointer 3211 bg-container-lighter border-container hover:bg-whiteSmoke 3212 hover:underline last:border-0" 3213 > 3214 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3215 ShelterTube® </span> 3216 </a> 3217 </span> 3218 <sp
3218an class="flex items-center border-b" 3219 :class="isHideParentSub" 3220 > 3221 <a href="https://www.shelterlogic.com/outdoor-storage/garages/sheltertech" 3222 title="ShelterTech® " 3223 class="flex items-center w-full px-6 py-4 cursor-pointer 3224 bg-container-lighter border-container hover:bg-whiteSmoke 3225 hover:underline last:border-0" 3226 > 3227 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3228 ShelterTech® </span> 3229 </a> 3230 </span> 3231 <span class="flex items-center border-b" 3232 :class="isHideParentSub" 3233 > 3234 <a href="https://www.shelterlogic.com/outdoor-storage/garages/metal-garages" 3235 title="Metal Garages" 3236 class="flex items-center w-full px-6 py-4 cursor-pointer 3237 bg-container-lighter border-container hover:bg-whiteSmoke 3238 hover:underline last:border-0" 3239 > 3240 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3241 Metal Garages </span> 3242 </a> 3243 </span> 3244 </div> 3245 <span class="flex items-center border-b" 3246 :class="{ 3247 'hidden' : hideParent 3248 }" 3249 > 3250 <a href="https://www.shelterlogic.com/outdoor-storage/farm-and-equine-sheds-and-storage" 3251 title="Farm & Ranch" 3252 class="flex items-center w-full px-6 py-4 cursor-pointer 3253 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 3254 > 3255 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3256 Farm & Ranch </span> 3257 </a> 3258 </span> 3259 <span class="flex items-center border-b" 3260 :class="{ 3261 'hidden' : hideParent 3262 }" 3263 > 3264 <a href="https://www.shelterlogic.com/outdoor-storage/deck-boxes" 3265 title="Deck Boxes" 3266 class="flex items-center w-full px-6 py-4 cursor-pointer 3267 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 3268 >
3269 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3270 Deck Boxes </span> 3271 </a> 3272 </span> 3273 <span class="flex items-center border-b" 3274 :class="{ 3275 'hidden' : hideParent 3276 }" 3277 > 3278 <a href="https://www.shelterlogic.com/outdoor-storage/firewood-storage" 3279 title="Firewood Storage" 3280 class="flex items-center w-full px-6 py-4 cursor-pointer 3281 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 3282 > 3283 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3284 Firewood Storage </span> 3285 </a> 3286 </span> 3287 <span class="flex items-center border-b" 3288 :class="{ 3289 'hidden' : hideParent 3290 }" 3291 > 3292 <a href="https://www.shelterlogic.com/outdoor-storage/storage-accessories" 3293 title="Storage Accessories" 3294 class="flex items-center w-full px-6 py-4 cursor-pointer 3295 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 3296 > 3297 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3298 Storage Accessories </span> 3299 </a> 3300 <button class="absolute right-0 flex w-8 h-8 mr-[18px] cursor-pointer hero-icon 3301 arrow-circle-fat-right orange-icon after:bottom-0 after:w-
33017 after:h-7" 3302 data-index="category-node-173" 3303 @click="setMobileActiveSubId"> 3304 </button> 3305 </span> 3306 <div class="overflow-x-hidden overflow-y-auto fixed top-0 right-0 z-20 w-full 3307 h-full transition-transform duration-200 ease-in-out 3308 translate-x-full transform bg-container-lighter" :class="{ 3309 'translate-x-full' : mobilePanelActiveIdSub !== 'category-node-173', 3310 'translate-x-0' : mobilePanelActiveIdSub === 'category-node-173', 3311 }" 3312 > 3313 <span class="block text-16 font-bold py-4 px-6 menu-mobile-h2 border-b border-container"> 3314 <span class="flex items-center cursor-pointer bg-container" 3315 @click="resetMobileActiveTab"> 3316 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-orange w-7 h-7" width="24" height="24" role="img"> 3317 <path stroke-linecap="round" stroke-linejoin="round" d="M11 15l-3-3m0 0l3-3m-3 3h8M3 12a9 9 0 1118 0 9 9 0 01-18 0z"/> 3318<title>arrow-circle-left</title></svg> 3319 <span class="ml-4"> 3320 Storage Accessories </span> 3321 </span> 3322 </span> 3323 <a href="https://www.shelterlogic.com/outdoor-storage/storage-accessories" 3324 class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 3325 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 3326 aria-label="Storage Accessories" 3327 title="Storage Accessories" 3328 > 3329 <span class="ml-10">View All</span> 3330 </a> 3331 3332 <span class="flex items-center border-b" 3333 :class="isHideParentSub" 3334 > 3335 <a href="https://www.shelterlogic.com/outdoor-storage/storage-accessories/floor-frame-base-kits" 3336 title="Floor Frame & Base Kits" 3337 class="flex items-center w-full px-6 py-4 cursor-pointer 3338 bg-container-lighter border-container hover:bg-whiteSmoke 3339 hover:underline last:border-0" 3340 > 3341 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3342 Floor Frame & Base Kits </span> 3343 </a> 3344 </span> 3345 <sp
3345an class="flex items-center border-b" 3346 :class="isHideParentSub" 3347 > 3348 <a href="https://www.shelterlogic.com/outdoor-storage/storage-accessories/anchors" 3349 title="Anchors" 3350 class="flex items-center w-full px-6 py-4 cursor-pointer 3351 bg-container-lighter border-container hover:bg-whiteSmoke 3352 hover:underline last:border-0" 3353 > 3354 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3355 Anchors </span> 3356 </a> 3357 </span> 3358 <span class="flex items-center border-b" 3359 :class="isHideParentSub" 3360 > 3361 <a href="https://www.shelterlogic.com/outdoor-storage/storage-accessories/shelving-kits" 3362 title="Shelving Kits" 3363 class="flex items-center w-full px-6 py-4 cursor-pointer 3364 bg-container-lighter border-container hover:bg-whiteSmoke 3365 hover:underline last:border-0" 3366 > 3367 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3368 Shelving Kits </span> 3369 </a> 3370 </span> 3371 <span class="flex items-center border-b" 3372 :class="isHideParentSub" 3373 > 3374 <a href="https://www.shelterlogic.com/outdoor-storage/storage-accessories/roof-strengthening-kits" 3375 title="Roof Strengthening Kits" 3376 class="flex items-center w-full px-6 py-4 cursor-pointer 3377 bg-container-lighter border-container hover:bg-whiteSmoke 3378 hover:underline last:border-0" 3379 > 3380 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3381 Roof Strengthening Kits </span> 3382 </a> 3383 </span> 3384 <span class="flex items-center border-b" 3385 :class="isHideParentSub" 3386 > 3387 <a href="https://www.shelterlogic.com/outdoor-storage/storage-accessories/hardware" 3388 title="Hardware" 3389 class="flex items-center w-full px-6 py-4 cursor-pointer 3390 bg-container-lighter border-container hover:bg-whiteSmoke 3391 hover:underline last:border-0" 3392 >
3393 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3394 Hardware </span> 3395 </a> 3396 </span> 3397 </div> 3398 </div> 3399 </div> 3400 <div class="level-0"> 3401 <span 3402 class="flex items-center transition-transform duration-150 ease-in-out transform" 3403 :class="{ 3404 '-translate-x-full' : mobilePanelActiveId, 3405 'translate-x-0' : !mobilePanelActiveId 3406 }" 3407 > 3408 <a class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 3409 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline level-0" 3410 href="https://www.shelterlogic.com/patio-shade" 3411 role="link" 3412 title="Backyard Shade" 3413 aria-label="Backyard Shade" 3414 > 3415 Backyard Shade </a> 3416 <button class="absolute right-0 flex w-8 h-8 mr-[18px] cursor-pointer 3417 hero-icon arrow-circle-fat-right orange-icon
3418 after:bottom-0 after:w-7 after:h-7" 3419 @click="mobilePanelActiveId = 3420 mobilePanelActiveId === 'category-node-177' ? 3421 0 : 'category-node-177'" 3422 > 3423 </button> 3424 </span> 3425 <div class="overflow-x-hidden overflow-y-auto absolute top-0 right-0 z-10 w-full h-full 3426 transition-transform duration-200 ease-in-out translate-x-full transform bg-container-lighter" 3427 :class="{ 3428 'translate-x-full' : mobilePanelActiveId !== 'category-node-177', 3429 'translate-x-0' : mobilePanelActiveId === 'category-node-177', 3430 }" 3431 > 3432 <span class="block text-16 font-bold py-4 px-6 menu-mobile-h2 border-b border-container"> 3433 <span class="flex items-center bg-container cursor-pointer" 3434 @click="mobilePanelActiveId = 0" 3435 > 3436 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-orange w-7 h-7" width="24" height="24" role="img"> 3437 <path stroke-linecap="round" stroke-linejoin="round" d="M11 15l-3-3m0 0l3-3m-3 3h8M3 12a9 9 0 1118 0 9 9 0 01-18 0z"/> 3438<title>arrow-circle-left</title></svg> 3439 <span class="ml-4"> 3440 Backyard Shade </span> 3441 </span> 3442 </span> 3443 <a href="https://www.shelterlogic.com/patio-shade" 3444 class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 3445 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 3446 aria-label="Backyard Shade" 3447 title="Backyard Shade" 3448 > 3449 <span class="ml-10">View All</span></a> 3450 3451 <span class="flex items-center border-b" 3452 :class="{ 3453 'hidden' : hideParent 3454 }" 3455 > 3456 <a href="https://www.shelterlogic.com/patio-shade/gazebos" 3457 title="Gazebos " 3458 class="flex items-center w-full px-6 py-4 cursor-pointer 3459 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 3460 > 3461 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3462 Gazebos </span> 3463 </a> 3464 <button class="absolute right-0 flex w-8 h-8 mr-[18px] cursor-pointer hero-icon 3465 arrow-circle-fat-right orange-icon after:bottom-0 after:w-
34657 after:h-7" 3466 data-index="category-node-386" 3467 @click="setMobileActiveSubId"> 3468 </button> 3469 </span> 3470 <div class="overflow-x-hidden overflow-y-auto fixed top-0 right-0 z-20 w-full 3471 h-full transition-transform duration-200 ease-in-out 3472 translate-x-full transform bg-container-lighter" :class="{ 3473 'translate-x-full' : mobilePanelActiveIdSub !== 'category-node-386', 3474 'translate-x-0' : mobilePanelActiveIdSub === 'category-node-386', 3475 }" 3476 > 3477 <span class="block text-16 font-bold py-4 px-6 menu-mobile-h2 border-b border-container"> 3478 <span class="flex items-center cursor-pointer bg-container" 3479 @click="resetMobileActiveTab"> 3480 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-orange w-7 h-7" width="24" height="24" role="img"> 3481 <path stroke-linecap="round" stroke-linejoin="round" d="M11 15l-3-3m0 0l3-3m-3 3h8M3 12a9 9 0 1118 0 9 9 0 01-18 0z"/> 3482<title>arrow-circle-left</title></svg> 3483 <span class="ml-4"> 3484 Gazebos </span> 3485 </span> 3486 </span> 3487 <a href="https://www.shelterlogic.com/patio-shade/gazebos" 3488 class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 3489 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 3490 aria-label="Gazebos " 3491 title="Gazebos " 3492 > 3493 <span class="ml-10">View All</span> 3494 </a> 3495 3496 <span class="flex items-center border-b" 3497 :class="isHideParentSub" 3498 > 3499 <a href="https://www.shelterlogic.com/patio-shade/gazebos/hard-top-gazebos" 3500 title="Hard-top Gazebos" 3501 class="flex items-center w-full px-6 py-4 cursor-pointer 3502 bg-container-lighter border-container hover:bg-whiteSmoke 3503 hover:underline last:border-0" 3504 > 3505 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3506 Hard-top Gazebos </span> 3507 </a> 3508 </span> 3509 <span class="flex items-center border-b" 3510 :class="isHideParentSub" 3511 > 3512 <a href="https://www.shelterlogic.com/patio-shade/gazebos/soft-top-gazebos" 3513 title="Soft-top Gazebos" 3514 class="flex items-center w-full px-6 py-4 cursor-pointer 3515 bg-container-lighter border-container hover:bg-whiteSmoke 3516 hover:underline last:border-0" 3517 >
3518 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3519 Soft-top Gazebos </span> 3520 </a> 3521 </span> 3522 <span class="flex items-center border-b" 3523 :class="isHideParentSub" 3524 > 3525 <a href="https://www.shelterlogic.com/patio-shade/gazebos/wall-mounted-gazebos" 3526 title="Wall-mounted Gazebos" 3527 class="flex items-center w-full px-6 py-4 cursor-pointer 3528 bg-container-lighter border-container hover:bg-whiteSmoke 3529 hover:underline last:border-0" 3530 > 3531 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3532 Wall-mounted Gazebos </span> 3533 </a> 3534 </span> 3535 <span class="flex items-center border-b" 3536 :class="isHideParentSub" 3537 > 3538 <a href="https://www.shelterlogic.com/patio-shade/gazebos/grill-gazebos" 3539 title="Grill Gazebos" 3540 class="flex items-center w-full px-6 py-4 cursor-pointer 3541 bg-container-lighter border-container hover:bg-whiteSmoke 3542 hover:underline last:border-0" 3543 > 3544 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3545 Grill Gazebos </span> 3546 </a> 3547 </span> 3548 <span class="flex items-center border-b" 3549 :class="isHideParentSub" 3550 > 3551 <a href="https://www.shelterlogic.com/patio-shade/gazebos/gazebo-curtains" 3552 title="Gazebo Curtains" 3553 class="flex items-center w-full px-6 py-4 cursor-pointer 3554 bg-container-lighter border-container hover:bg-whiteSmoke 3555 hover:underline last:border-0" 3556 > 3557 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3558 Gazebo Curtains </span> 3559 </a> 3560 </span> 3561 <sp
3561an class="flex items-center border-b" 3562 :class="isHideParentSub" 3563 > 3564 <a href="https://www.shelterlogic.com/patio-shade/gazebos/winter-covers" 3565 title="Winter Gazebo Covers" 3566 class="flex items-center w-full px-6 py-4 cursor-pointer 3567 bg-container-lighter border-container hover:bg-whiteSmoke 3568 hover:underline last:border-0" 3569 > 3570 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3571 Winter Gazebo Covers </span> 3572 </a> 3573 </span> 3574 </div> 3575 <span class="flex items-center border-b" 3576 :class="{ 3577 'hidden' : hideParent 3578 }" 3579 > 3580 <a href="https://www.shelterlogic.com/patio-shade/solariums" 3581 title="Solariums" 3582 class="flex items-center w-full px-6 py-4 cursor-pointer 3583 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 3584 > 3585 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3586 Solariums </span> 3587 </a> 3588 </span> 3589 <span class="flex items-center border-b" 3590 :class="{ 3591 'hidden' : hideParent 3592 }" 3593 > 3594 <a href="https://www.shelterlogic.com/patio-shade/pergolas" 3595 title="Pergolas" 3596 class="flex items-center w-full px-6 py-4 cursor-pointer 3597 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 3598 > 3599 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3600 Pergolas </span> 3601 </a> 3602 </span> 3603 <span class="flex items-center border-b" 3604 :class="{ 3605 'hidden' : hideParent 3606 }" 3607 > 3608 <a href="https://www.shelterlogic.com/patio-shade/shade-sails" 3609 title="Shade Sails" 3610 class="flex items-center w-full px-6 py-4 cursor-pointer 3611 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 3612 >
3613 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3614 Shade Sails </span> 3615 </a> 3616 </span> 3617 <span class="flex items-center border-b" 3618 :class="{ 3619 'hidden' : hideParent 3620 }" 3621 > 3622 <a href="https://www.shelterlogic.com/patio-shade/seating" 3623 title="Outdoor Seating " 3624 class="flex items-center w-full px-6 py-4 cursor-pointer 3625 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 3626 > 3627 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3628 Outdoor Seating </span> 3629 </a> 3630 </span> 3631 <span class="flex items-center border-b" 3632 :class="{ 3633 'hidden' : hideParent 3634 }" 3635 > 3636 <a href="https://www.shelterlogic.com/patio-shade/canopy-tents" 3637 title="Canopy Tents" 3638 class="flex items-center w-full px-6 py-4 cursor-pointer 3639 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 3640 > 3641 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3642 Canopy Tents </span> 3643 </a> 3644 </span> 3645 <span class="flex items-center border-b" 3646 :class="{ 3647 'hidden' : hideParent 3648 }" 3649 > 3650 <a href="https://www.shelterlogic.com/backyard-shade/canopy-replacement-covers" 3651 title="Canopy Replacement Covers" 3652 class="flex items-center w-full px-6 py-4 cursor-pointer 3653 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 3654 > 3655 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3656 Canopy Replacement Covers </span> 3657 </a> 3658 </span> 3659 <span class="flex items-center border-b" 3660 :class="{ 3661 'hidden' : hideParent 3662 }" 3663 > 3664 <a href="https://www.shelterlogic.com/patio-shade/pet-shade" 3665 title="Pet Shade" 3666 class="flex items-center w-full px-6 py-4 cursor-pointer 3667 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 3668 >
3669 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3670 Pet Shade </span> 3671 </a> 3672 </span> 3673 <span class="flex items-center border-b" 3674 :class="{ 3675 'hidden' : hideParent 3676 }" 3677 > 3678 <a href="https://www.shelterlogic.com/backyard-shade/tailgating" 3679 title="Tailgating" 3680 class="flex items-center w-full px-6 py-4 cursor-pointer 3681 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 3682 > 3683 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3684 Tailgating </span> 3685 </a> 3686 </span> 3687 </div> 3688 </div> 3689 <div class="level-0"> 3690 <span 3691 class="flex items-center transition-transform duration-150 ease-in-out transform" 3692 :class="{ 3693 '-translate-x-full' : mobilePanelActiveId, 3694 'translate-x-0' : !mobilePanelActiveId 3695 }" 3696 > 3697 <a class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 3698 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline level-0" 3699 href="https://www.shelterlogic.com/beach-gear" 3700 role="link" 3701 title="Beach" 3702 aria-label="Beach" 3703 > 3704 Beach </a> 3705 <button class="absolute right-0 flex w-8 h-8 mr-[18px] cursor-pointer 3706 hero-icon arrow-circle-fat-right orange-icon
3707 after:bottom-0 after:w-7 after:h-7" 3708 @click="mobilePanelActiveId = 3709 mobilePanelActiveId === 'category-node-1142' ? 3710 0 : 'category-node-1142'" 3711 > 3712 </button> 3713 </span> 3714 <div class="overflow-x-hidden overflow-y-auto absolute top-0 right-0 z-10 w-full h-full 3715 transition-transform duration-200 ease-in-out translate-x-full transform bg-container-lighter" 3716 :class="{ 3717 'translate-x-full' : mobilePanelActiveId !== 'category-node-1142', 3718 'translate-x-0' : mobilePanelActiveId === 'category-node-1142', 3719 }" 3720 > 3721 <span class="block text-16 font-bold py-4 px-6 menu-mobile-h2 border-b border-container"> 3722 <span class="flex items-center bg-container cursor-pointer" 3723 @click="mobilePanelActiveId = 0" 3724 > 3725 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-orange w-7 h-7" width="24" height="24" role="img"> 3726 <path stroke-linecap="round" stroke-linejoin="round" d="M11 15l-3-3m0 0l3-3m-3 3h8M3 12a9 9 0 1118 0 9 9 0 01-18 0z"/> 3727<title>arrow-circle-left</title></svg> 3728 <span class="ml-4"> 3729 Beach </span> 3730 </span> 3731 </span> 3732 <a href="https://www.shelterlogic.com/beach-gear" 3733 class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 3734 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 3735 aria-label="Beach" 3736 title="Beach" 3737 > 3738 <span class="ml-10">View All</span></a> 3739 3740 <span class="flex items-center border-b" 3741 :class="{ 3742 'hidden' : hideParent 3743 }" 3744 > 3745 <a href="https://www.shelterlogic.com/beach-gear/beach-chairs" 3746 title="Beach Chairs" 3747 class="flex items-center w-full px-6 py-4 cursor-pointer 3748 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 3749 > 3750 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3751 Beach Chairs </span> 3752 </a> 3753 <button class="absolute right-0 flex w-8 h-8 mr-[18px] cursor-pointer hero-icon 3754 arrow-circle-fat-right orange-icon after:bottom-0 after:w-
37547 after:h-7" 3755 data-index="category-node-328" 3756 @click="setMobileActiveSubId"> 3757 </button> 3758 </span> 3759 <div class="overflow-x-hidden overflow-y-auto fixed top-0 right-0 z-20 w-full 3760 h-full transition-transform duration-200 ease-in-out 3761 translate-x-full transform bg-container-lighter" :class="{ 3762 'translate-x-full' : mobilePanelActiveIdSub !== 'category-node-328', 3763 'translate-x-0' : mobilePanelActiveIdSub === 'category-node-328', 3764 }" 3765 > 3766 <span class="block text-16 font-bold py-4 px-6 menu-mobile-h2 border-b border-container"> 3767 <span class="flex items-center cursor-pointer bg-container" 3768 @click="resetMobileActiveTab"> 3769 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-orange w-7 h-7" width="24" height="24" role="img"> 3770 <path stroke-linecap="round" stroke-linejoin="round" d="M11 15l-3-3m0 0l3-3m-3 3h8M3 12a9 9 0 1118 0 9 9 0 01-18 0z"/> 3771<title>arrow-circle-left</title></svg> 3772 <span class="ml-4"> 3773 Beach Chairs </span> 3774 </span> 3775 </span> 3776 <a href="https://www.shelterlogic.com/beach-gear/beach-chairs" 3777 class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 3778 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 3779 aria-label="Beach Chairs" 3780 title="Beach Chairs" 3781 > 3782 <span class="ml-10">View All</span> 3783 </a> 3784 3785 <span class="flex items-center border-b" 3786 :class="isHideParentSub" 3787 > 3788 <a href="https://www.shelterlogic.com/beach-gear/beach-chairs/backpack-chairs" 3789 title="Backpack Beach Chairs" 3790 class="flex items-center w-full px-6 py-4 cursor-pointer 3791 bg-container-lighter border-container hover:bg-whiteSmoke 3792 hover:underline last:border-0" 3793 > 3794 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3795 Backpack Beach Chairs </span> 3796 </a> 3797 </span> 3798 <span class="flex items-center border-b" 3799 :class="isHideParentSub" 3800 > 3801 <a href="https://www.shelterlogic.com/beach-gear/beach-chairs/canopy-chairs" 3802 title="Canopy Beach Chairs" 3803 class="flex items-center w-full px-6 py-4 cursor-pointer 3804 bg-container-lighter border-container hover:bg-whiteSmoke 3805 hover:underline last:border-0" 3806 >
3807 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3808 Canopy Beach Chairs </span> 3809 </a> 3810 </span> 3811 <span class="flex items-center border-b" 3812 :class="isHideParentSub" 3813 > 3814 <a href="https://www.shelterlogic.com/beach-gear/beach-chairs/lounge-chairs" 3815 title="Beach Lounge Chairs" 3816 class="flex items-center w-full px-6 py-4 cursor-pointer 3817 bg-container-lighter border-container hover:bg-whiteSmoke 3818 hover:underline last:border-0" 3819 > 3820 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3821 Beach Lounge Chairs </span> 3822 </a> 3823 </span> 3824 </div> 3825 <span class="flex items-center border-b" 3826 :class="{ 3827 'hidden' : hideParent 3828 }" 3829 > 3830 <a href="https://www.shelterlogic.com/beach-gear/beach-carts" 3831 title="Beach Carts" 3832 class="flex items-center w-full px-6 py-4 cursor-pointer 3833 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 3834 > 3835 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3836 Beach Carts </span> 3837 </a> 3838 </span> 3839 <span class="flex items-center border-b" 3840 :class="{ 3841 'hidden' : hideParent 3842 }" 3843 > 3844 <a href="https://www.shelterlogic.com/beach-gear/beach-tents" 3845 title="Beach Shade" 3846 class="flex items-center w-full px-6 py-4 cursor-pointer 3847 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 3848 > 3849 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3850 Beach Shade </span> 3851 </a> 3852 </span> 3853 <span class="flex items-center border-b" 3854 :class="{ 3855 'hidden' : hideParent 3856 }" 3857 > 3858 <a href="https://www.shelterlogic.com/beach-gear/beach-coolers" 3859 title="Beach Coolers" 3860 class="flex items-center w-full px-6 py-4 cursor-pointer 3861 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 3862 >
3863 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3864 Beach Coolers </span> 3865 </a> 3866 </span> 3867 <span class="flex items-center border-b" 3868 :class="{ 3869 'hidden' : hideParent 3870 }" 3871 > 3872 <a href="https://www.shelterlogic.com/beach-gear/beach-tables" 3873 title="Beach Tables" 3874 class="flex items-center w-full px-6 py-4 cursor-pointer 3875 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 3876 > 3877 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3878 Beach Tables </span> 3879 </a> 3880 </span> 3881 <span class="flex items-center border-b" 3882 :class="{ 3883 'hidden' : hideParent 3884 }" 3885 > 3886 <a href="https://www.shelterlogic.com/beach/summer-multipacks" 3887 title="Family Packs" 3888 class="flex items-center w-full px-6 py-4 cursor-pointer 3889 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 3890 > 3891 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3892 Family Packs </span> 3893 </a> 3894 </span> 3895 </div> 3896 </div> 3897 <div class="level-0"> 3898 <span 3899 class="flex items-center transition-transform duration-150 ease-in-out transform" 3900 :class="{ 3901 '-translate-x-full' : mobilePanelActiveId, 3902 'translate-x-0' : !mobilePanelActiveId 3903 }" 3904 > 3905 <a class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 3906 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline level-0" 3907 href="https://www.shelterlogic.com/camping-gear" 3908 role="link" 3909 title="Camping" 3910 aria-label="Camping" 3911 > 3912 Camping </a> 3913 <button class="absolute right-0 flex w-8 h-8 mr-[18px] cursor-pointer 3914 hero-icon arrow-circle-fat-right orange-icon
3915 after:bottom-0 after:w-7 after:h-7" 3916 @click="mobilePanelActiveId = 3917 mobilePanelActiveId === 'category-node-174' ? 3918 0 : 'category-node-174'" 3919 > 3920 </button> 3921 </span> 3922 <div class="overflow-x-hidden overflow-y-auto absolute top-0 right-0 z-10 w-full h-full 3923 transition-transform duration-200 ease-in-out translate-x-full transform bg-container-lighter" 3924 :class="{ 3925 'translate-x-full' : mobilePanelActiveId !== 'category-node-174', 3926 'translate-x-0' : mobilePanelActiveId === 'category-node-174', 3927 }" 3928 > 3929 <span class="block text-16 font-bold py-4 px-6 menu-mobile-h2 border-b border-container"> 3930 <span class="flex items-center bg-container cursor-pointer" 3931 @click="mobilePanelActiveId = 0" 3932 > 3933 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-orange w-7 h-7" width="24" height="24" role="img"> 3934 <path stroke-linecap="round" stroke-linejoin="round" d="M11 15l-3-3m0 0l3-3m-3 3h8M3 12a9 9 0 1118 0 9 9 0 01-18 0z"/> 3935<title>arrow-circle-left</title></svg> 3936 <span class="ml-4"> 3937 Camping </span> 3938 </span> 3939 </span> 3940 <a href="https://www.shelterlogic.com/camping-gear" 3941 class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 3942 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 3943 aria-label="Camping" 3944 title="Camping" 3945 > 3946 <span class="ml-10">View All</span></a> 3947 3948 <span class="flex items-center border-b" 3949 :class="{ 3950 'hidden' : hideParent 3951 }" 3952 > 3953 <a href="https://www.shelterlogic.com/camping-gear/chairs" 3954 title="Chairs" 3955 class="flex items-center w-full px-6 py-4 cursor-pointer 3956 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 3957 > 3958 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 3959 Chairs </span> 3960 </a> 3961 <button class="absolute right-0 flex w-8 h-8 mr-[18px] cursor-pointer hero-icon 3962 arrow-circle-fat-right orange-icon after:bottom-0 after:w-
39627 after:h-7" 3963 data-index="category-node-494" 3964 @click="setMobileActiveSubId"> 3965 </button> 3966 </span> 3967 <div class="overflow-x-hidden overflow-y-auto fixed top-0 right-0 z-20 w-full 3968 h-full transition-transform duration-200 ease-in-out 3969 translate-x-full transform bg-container-lighter" :class="{ 3970 'translate-x-full' : mobilePanelActiveIdSub !== 'category-node-494', 3971 'translate-x-0' : mobilePanelActiveIdSub === 'category-node-494', 3972 }" 3973 > 3974 <span class="block text-16 font-bold py-4 px-6 menu-mobile-h2 border-b border-container"> 3975 <span class="flex items-center cursor-pointer bg-container" 3976 @click="resetMobileActiveTab"> 3977 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-orange w-7 h-7" width="24" height="24" role="img"> 3978 <path stroke-linecap="round" stroke-linejoin="round" d="M11 15l-3-3m0 0l3-3m-3 3h8M3 12a9 9 0 1118 0 9 9 0 01-18 0z"/> 3979<title>arrow-circle-left</title></svg> 3980 <span class="ml-4"> 3981 Chairs </span> 3982 </span> 3983 </span> 3984 <a href="https://www.shelterlogic.com/camping-gear/chairs" 3985 class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 3986 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 3987 aria-label="Chairs" 3988 title="Chairs" 3989 > 3990 <span class="ml-10">View All</span> 3991 </a> 3992 3993 <span class="flex items-center border-b" 3994 :class="isHideParentSub" 3995 > 3996 <a href="https://www.shelterlogic.com/camping-gear/chairs/canopy-chairs" 3997 title="Canopy Chairs" 3998 class="flex items-center w-full px-6 py-4 cursor-pointer 3999 bg-container-lighter border-container hover:bg-whiteSmoke 4000 hover:underline last:border-0" 4001 > 4002 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 4003 Canopy Chairs </span> 4004 </a> 4005 </span> 4006 <span class="flex items-center border-b" 4007 :class="isHideParentSub" 4008 > 4009 <a href="https://www.shelterlogic.com/camping-gear/chairs/swinging-hammock-chairs" 4010 title="Swinging Hammock Chairs" 4011 class="flex items-center w-full px-6 py-4 cursor-pointer 4012 bg-container-lighter border-container hover:bg-whiteSmoke 4013 hover:underline last:border-0" 4014 >
4015 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 4016 Swinging Hammock Chairs </span> 4017 </a> 4018 </span> 4019 <span class="flex items-center border-b" 4020 :class="isHideParentSub" 4021 > 4022 <a href="https://www.shelterlogic.com/camping-gear/chairs/backpack-chairs" 4023 title="Backpack Chairs" 4024 class="flex items-center w-full px-6 py-4 cursor-pointer 4025 bg-container-lighter border-container hover:bg-whiteSmoke 4026 hover:underline last:border-0" 4027 > 4028 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 4029 Backpack Chairs </span> 4030 </a> 4031 </span> 4032 <span class="flex items-center border-b" 4033 :class="isHideParentSub" 4034 > 4035 <a href="https://www.shelterlogic.com/camping-gear/chairs/quad-chairs" 4036 title="Quad Chairs" 4037 class="flex items-center w-full px-6 py-4 cursor-pointer 4038 bg-container-lighter border-container hover:bg-whiteSmoke 4039 hover:underline last:border-0" 4040 > 4041 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 4042 Quad Chairs </span> 4043 </a> 4044 </span> 4045 </div> 4046 <span class="flex items-center border-b" 4047 :class="{ 4048 'hidden' : hideParent 4049 }" 4050 > 4051 <a href="https://www.shelterlogic.com/camping-gear/camping-coolers" 4052 title="Camping Coolers" 4053 class="flex items-center w-full px-6 py-4 cursor-pointer 4054 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 4055 > 4056 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 4057 Camping Coolers </span> 4058 </a> 4059 </span> 4060 <sp
4060an class="flex items-center border-b" 4061 :class="{ 4062 'hidden' : hideParent 4063 }" 4064 > 4065 <a href="https://www.shelterlogic.com/camping-gear/camping-cots" 4066 title="Camping Cots" 4067 class="flex items-center w-full px-6 py-4 cursor-pointer 4068 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 4069 > 4070 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 4071 Camping Cots </span> 4072 </a> 4073 </span> 4074 <span class="flex items-center border-b" 4075 :class="{ 4076 'hidden' : hideParent 4077 }" 4078 > 4079 <a href="https://www.shelterlogic.com/camping-gear/tables" 4080 title="Tables" 4081 class="flex items-center w-full px-6 py-4 cursor-pointer 4082 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 4083 > 4084 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 4085 Tables </span> 4086 </a> 4087 </span> 4088 <span class="flex items-center border-b" 4089 :class="{ 4090 'hidden' : hideParent 4091 }" 4092 > 4093 <a href="https://www.shelterlogic.com/camping-gear/pop-up-canopies" 4094 title="Pop-Up Canopies" 4095 class="flex items-center w-full px-6 py-4 cursor-pointer 4096 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 4097 > 4098 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 4099 Pop-Up Canopies </span> 4100 </a> 4101 </span> 4102 <span class="flex items-center border-b" 4103 :class="{ 4104 'hidden' : hideParent 4105 }" 4106 > 4107 <a href="https://www.shelterlogic.com/camping/hammocks" 4108 title="Hammocks" 4109 class="flex items-center w-full px-6 py-4 cursor-pointer 4110 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 4111 > 4112 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 4113 Hammocks </span> 4114 </a> 4115 </span> 4116 </div> 4117 </div> 4118 <div class="level-0">
4119 <span 4120 class="flex items-center transition-transform duration-150 ease-in-out transform" 4121 :class="{ 4122 '-translate-x-full' : mobilePanelActiveId, 4123 'translate-x-0' : !mobilePanelActiveId 4124 }" 4125 > 4126 <a class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 4127 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline level-0" 4128 href="https://www.shelterlogic.com/gardening" 4129 role="link" 4130 title="Gardening" 4131 aria-label="Gardening" 4132 > 4133 Gardening </a> 4134 <button class="absolute right-0 flex w-8 h-8 mr-[18px] cursor-pointer 4135 hero-icon arrow-circle-fat-right orange-icon
4136 after:bottom-0 after:w-7 after:h-7" 4137 @click="mobilePanelActiveId = 4138 mobilePanelActiveId === 'category-node-184' ? 4139 0 : 'category-node-184'" 4140 > 4141 </button> 4142 </span> 4143 <div class="overflow-x-hidden overflow-y-auto absolute top-0 right-0 z-10 w-full h-full 4144 transition-transform duration-200 ease-in-out translate-x-full transform bg-container-lighter" 4145 :class="{ 4146 'translate-x-full' : mobilePanelActiveId !== 'category-node-184', 4147 'translate-x-0' : mobilePanelActiveId === 'category-node-184', 4148 }" 4149 > 4150 <span class="block text-16 font-bold py-4 px-6 menu-mobile-h2 border-b border-container"> 4151 <span class="flex items-center bg-container cursor-pointer" 4152 @click="mobilePanelActiveId = 0" 4153 > 4154 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-orange w-7 h-7" width="24" height="24" role="img"> 4155 <path stroke-linecap="round" stroke-linejoin="round" d="M11 15l-3-3m0 0l3-3m-3 3h8M3 12a9 9 0 1118 0 9 9 0 01-18 0z"/> 4156<title>arrow-circle-left</title></svg> 4157 <span class="ml-4"> 4158 Gardening </span> 4159 </span> 4160 </span> 4161 <a href="https://www.shelterlogic.com/gardening" 4162 class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 4163 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 4164 aria-label="Gardening" 4165 title="Gardening" 4166 > 4167 <span class="ml-10">View All</span></a> 4168 4169 <span class="flex items-center border-b" 4170 :class="{ 4171 'hidden' : hideParent 4172 }" 4173 > 4174 <a href="https://www.shelterlogic.com/gardening/greenhouses" 4175 title="Greenhouses" 4176 class="flex items-center w-full px-6 py-4 cursor-pointer 4177 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 4178 > 4179 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 4180 Greenhouses </span> 4181 </a> 4182 <button class="absolute right-0 flex w-8 h-8 mr-[18px] cursor-pointer hero-icon 4183 arrow-circle-fat-right orange-icon after:bottom-0 after:w-
41837 after:h-7" 4184 data-index="category-node-185" 4185 @click="setMobileActiveSubId"> 4186 </button> 4187 </span> 4188 <div class="overflow-x-hidden overflow-y-auto fixed top-0 right-0 z-20 w-full 4189 h-full transition-transform duration-200 ease-in-out 4190 translate-x-full transform bg-container-lighter" :class="{ 4191 'translate-x-full' : mobilePanelActiveIdSub !== 'category-node-185', 4192 'translate-x-0' : mobilePanelActiveIdSub === 'category-node-185', 4193 }" 4194 > 4195 <span class="block text-16 font-bold py-4 px-6 menu-mobile-h2 border-b border-container"> 4196 <span class="flex items-center cursor-pointer bg-container" 4197 @click="resetMobileActiveTab"> 4198 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-orange w-7 h-7" width="24" height="24" role="img"> 4199 <path stroke-linecap="round" stroke-linejoin="round" d="M11 15l-3-3m0 0l3-3m-3 3h8M3 12a9 9 0 1118 0 9 9 0 01-18 0z"/> 4200<title>arrow-circle-left</title></svg> 4201 <span class="ml-4"> 4202 Greenhouses </span> 4203 </span> 4204 </span> 4205 <a href="https://www.shelterlogic.com/gardening/greenhouses" 4206 class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 4207 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 4208 aria-label="Greenhouses" 4209 title="Greenhouses" 4210 > 4211 <span class="ml-10">View All</span> 4212 </a> 4213 4214 <span class="flex items-center border-b" 4215 :class="isHideParentSub" 4216 > 4217 <a href="https://www.shelterlogic.com/gardening/greenhouses/high-tunnel-greenhouses" 4218 title="High Tunnel Greenhouses" 4219 class="flex items-center w-full px-6 py-4 cursor-pointer 4220 bg-container-lighter border-container hover:bg-whiteSmoke 4221 hover:underline last:border-0" 4222 > 4223 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 4224 High Tunnel Greenhouses </span> 4225 </a> 4226 </span> 4227 <span class="flex items-center border-b" 4228 :class="isHideParentSub" 4229 > 4230 <a href="https://www.shelterlogic.com/gardening/greenhouses/portable-greenhouses" 4231 title="Portable Greenhouses" 4232 class="flex items-center w-full px-6 py-4 cursor-pointer 4233 bg-container-lighter border-container hover:bg-whiteSmoke 4234 hover:underline last:border-0" 4235 >
4236 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 4237 Portable Greenhouses </span> 4238 </a> 4239 </span> 4240 <span class="flex items-center border-b" 4241 :class="isHideParentSub" 4242 > 4243 <a href="https://www.shelterlogic.com/gardening/greenhouses/patio-greenhouses" 4244 title="Patio Greenhouses" 4245 class="flex items-center w-full px-6 py-4 cursor-pointer 4246 bg-container-lighter border-container hover:bg-whiteSmoke 4247 hover:underline last:border-0" 4248 > 4249 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 4250 Patio Greenhouses </span> 4251 </a> 4252 </span> 4253 <span class="flex items-center border-b" 4254 :class="isHideParentSub" 4255 > 4256 <a href="https://www.shelterlogic.com/gardening/greenhouses/wood-greenhouses" 4257 title="Wood Greenhouses" 4258 class="flex items-center w-full px-6 py-4 cursor-pointer 4259 bg-container-lighter border-container hover:bg-whiteSmoke 4260 hover:underline last:border-0" 4261 > 4262 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 4263 Wood Greenhouses </span> 4264 </a> 4265 </span> 4266 <span class="flex items-center border-b" 4267 :class="isHideParentSub" 4268 > 4269 <a href="https://www.shelterlogic.com/gardening/greenhouses/replacement-covers" 4270 title="Replacement Covers" 4271 class="flex items-center w-full px-6 py-4 cursor-pointer 4272 bg-container-lighter border-container hover:bg-whiteSmoke 4273 hover:underline last:border-0" 4274 > 4275 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 4276 Replacement Covers </span> 4277 </a> 4278 </span> 4279 </div> 4280 <sp
4280an class="flex items-center border-b" 4281 :class="{ 4282 'hidden' : hideParent 4283 }" 4284 > 4285 <a href="https://www.shelterlogic.com/gardening/garden-sheds" 4286 title="Garden Sheds" 4287 class="flex items-center w-full px-6 py-4 cursor-pointer 4288 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 4289 > 4290 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 4291 Garden Sheds </span> 4292 </a> 4293 </span> 4294 <span class="flex items-center border-b" 4295 :class="{ 4296 'hidden' : hideParent 4297 }" 4298 > 4299 <a href="https://www.shelterlogic.com/gardening/raised-beds" 4300 title="Raised Beds " 4301 class="flex items-center w-full px-6 py-4 cursor-pointer 4302 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 4303 > 4304 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 4305 Raised Beds </span> 4306 </a> 4307 </span> 4308 <span class="flex items-center border-b" 4309 :class="{ 4310 'hidden' : hideParent 4311 }" 4312 > 4313 <a href="https://www.shelterlogic.com/gardening/accessories" 4314 title="Accessories" 4315 class="flex items-center w-full px-6 py-4 cursor-pointer 4316 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 4317 > 4318 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 4319 Accessories </span> 4320 </a> 4321 </span> 4322 </div> 4323 </div> 4324 <div class="level-0"> 4325 <span 4326 class="flex items-center transition-transform duration-150 ease-in-out transform" 4327 :class="{ 4328 '-translate-x-full' : mobilePanelActiveId, 4329 'translate-x-0' : !mobilePanelActiveId 4330 }" 4331 > 4332 <a class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 4333 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline level-0" 4334 href="https://www.shelterlogic.com/commercial-grade-products" 4335 role="link" 4336 title="Commercial Grade" 4337 aria-label="Commercial Grade" 4338 > 4339 Commercial Grade </a> 4340 <button class="absolute right-0 flex w-8 h-8 mr-[18px] curs
4340or-pointer 4341 hero-icon arrow-circle-fat-right orange-icon 4342 after:bottom-0 after:w-7 after:h-7" 4343 @click="mobilePanelActiveId = 4344 mobilePanelActiveId === 'category-node-1152' ? 4345 0 : 'category-node-1152'" 4346 > 4347 </button> 4348 </span> 4349 <div class="overflow-x-hidden overflow-y-auto absolute top-0 right-0 z-10 w-full h-full 4350 transition-transform duration-200 ease-in-out translate-x-full transform bg-container-lighter" 4351 :class="{ 4352 'translate-x-full' : mobilePanelActiveId !== 'category-node-1152', 4353 'translate-x-0' : mobilePanelActiveId === 'category-node-1152', 4354 }" 4355 > 4356 <span class="block text-16 font-bold py-4 px-6 menu-mobile-h2 border-b border-container"> 4357 <span class="flex items-center bg-container cursor-pointer" 4358 @click="mobilePanelActiveId = 0" 4359 > 4360 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-orange w-7 h-7" width="24" height="24" role="img"> 4361 <path stroke-linecap="round" stroke-linejoin="round" d="M11 15l-3-3m0 0l3-3m-3 3h8M3 12a9 9 0 1118 0 9 9 0 01-18 0z"/> 4362<title>arrow-circle-left</title></svg> 4363 <span class="ml-4"> 4364 Commercial Grade </span> 4365 </span> 4366 </span> 4367 <a href="https://www.shelterlogic.com/commercial-grade-products" 4368 class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 4369 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 4370 aria-label="Commercial Grade" 4371 title="Commercial Grade" 4372 > 4373 <span class="ml-10">View All</span></a> 4374 4375 <span class="flex items-center border-b" 4376 :class="{ 4377 'hidden' : hideParent 4378 }" 4379 > 4380 <a href="https://www.shelterlogic.com/commercial-grade-products/heavy-duty-shelters" 4381 title="Heavy Duty Shelters" 4382 class="flex items-center w-full px-6 py-4 cursor-pointer 4383 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 4384 > 4385 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 4386 Heavy Duty Shelters </span> 4387 </a> 4388 <button class="absolute right-0 flex w-8 h-8 mr-[18px] cursor-pointer hero-icon 4389 arrow-circle-fat-right orange-icon after:bottom-0 after:w-
43897 after:h-7" 4390 data-index="category-node-1042" 4391 @click="setMobileActiveSubId"> 4392 </button> 4393 </span> 4394 <div class="overflow-x-hidden overflow-y-auto fixed top-0 right-0 z-20 w-full 4395 h-full transition-transform duration-200 ease-in-out 4396 translate-x-full transform bg-container-lighter" :class="{ 4397 'translate-x-full' : mobilePanelActiveIdSub !== 'category-node-1042', 4398 'translate-x-0' : mobilePanelActiveIdSub === 'category-node-1042', 4399 }" 4400 > 4401 <span class="block text-16 font-bold py-4 px-6 menu-mobile-h2 border-b border-container"> 4402 <span class="flex items-center cursor-pointer bg-container" 4403 @click="resetMobileActiveTab"> 4404 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-orange w-7 h-7" width="24" height="24" role="img"> 4405 <path stroke-linecap="round" stroke-linejoin="round" d="M11 15l-3-3m0 0l3-3m-3 3h8M3 12a9 9 0 1118 0 9 9 0 01-18 0z"/> 4406<title>arrow-circle-left</title></svg> 4407 <span class="ml-4"> 4408 Heavy Duty Shelters </span> 4409 </span> 4410 </span> 4411 <a href="https://www.shelterlogic.com/commercial-grade-products/heavy-duty-shelters" 4412 class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 4413 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 4414 aria-label="Heavy Duty Shelters" 4415 title="Heavy Duty Shelters" 4416 > 4417 <span class="ml-10">View All</span> 4418 </a> 4419 4420 <span class="flex items-center border-b" 4421 :class="isHideParentSub" 4422 > 4423 <a href="https://www.shelterlogic.com/outdoor-storage/garages/sheltertube" 4424 title="ShelterTube®" 4425 class="flex items-center w-full px-6 py-4 cursor-pointer 4426 bg-container-lighter border-container hover:bg-whiteSmoke 4427 hover:underline last:border-0" 4428 data-linked-category="true" data-nav-category-type="linked" data-linked-category-id="72" > 4429 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 4430 ShelterTube® </span> 4431 </a> 4432 </span> 4433 <sp
4433an class="flex items-center border-b" 4434 :class="isHideParentSub" 4435 > 4436 <a href="https://www.shelterlogic.com/outdoor-storage/garages/sheltertech" 4437 title="ShelterTech®" 4438 class="flex items-center w-full px-6 py-4 cursor-pointer 4439 bg-container-lighter border-container hover:bg-whiteSmoke 4440 hover:underline last:border-0" 4441 data-linked-category="true" data-nav-category-type="linked" data-linked-category-id="1038" > 4442 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 4443 ShelterTech® </span> 4444 </a> 4445 </span> 4446 <span class="flex items-center border-b" 4447 :class="isHideParentSub" 4448 > 4449 <a href="https://www.shelterlogic.com/outdoor-storage/carports/steelpeak" 4450 title="STEELPEAK™" 4451 class="flex items-center w-full px-6 py-4 cursor-pointer 4452 bg-container-lighter border-container hover:bg-whiteSmoke 4453 hover:underline last:border-0" 4454 data-linked-category="true" data-nav-category-type="linked" data-linked-category-id="1534" > 4455 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 4456 STEELPEAK™ </span> 4457 </a> 4458 </span> 4459 </div> 4460 <span class="flex items-center border-b" 4461 :class="{ 4462 'hidden' : hideParent 4463 }" 4464 > 4465 <a href="https://www.shelterlogic.com/commercial-grade-products/farming-storage-shade" 4466 title="Farming Storage and Shade" 4467 class="flex items-center w-full px-6 py-4 cursor-pointer 4468 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 4469 > 4470 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 4471 Farming Storage and Shade </span> 4472 </a> 4473 </span> 4474 <span class="flex items-center border-b" 4475 :class="{ 4476 'hidden' : hideParent 4477 }" 4478 > 4479 <a href="https://www.shelterlogic.com/commercial-grade-products/baseball-field-tarps" 4480 title="Athletic Field Tarps" 4481 class="flex items-center w-full px-6 py-4 cursor-pointer 4482 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 4483 >
4484 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 4485 Athletic Field Tarps </span> 4486 </a> 4487 </span> 4488 <span class="flex items-center border-b" 4489 :class="{ 4490 'hidden' : hideParent 4491 }" 4492 > 4493 <a href="https://www.shelterlogic.com/commercial-grade-products/truss-buildings" 4494 title="Truss Buildings" 4495 class="flex items-center w-full px-6 py-4 cursor-pointer 4496 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 4497 > 4498 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 4499 Truss Buildings </span> 4500 </a> 4501 </span> 4502 </div> 4503 </div> 4504 <div class="level-0"> 4505 <span 4506 class="flex items-center transition-transform duration-150 ease-in-out transform" 4507 :class="{ 4508 '-translate-x-full' : mobilePanelActiveId, 4509 'translate-x-0' : !mobilePanelActiveId 4510 }" 4511 > 4512 <a class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 4513 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline level-0" 4514 href="https://www.shelterlogic.com/deals" 4515 role="link" 4516 title="Deals" 4517 aria-label="Deals" 4518 > 4519 Deals </a> 4520 <button class="absolute right-0 flex w-8 h-8 mr-[18px] cursor-pointer 4521 hero-icon arrow-circle-fat-right orange-icon
4522 after:bottom-0 after:w-7 after:h-7" 4523 @click="mobilePanelActiveId = 4524 mobilePanelActiveId === 'category-node-1116' ? 4525 0 : 'category-node-1116'" 4526 > 4527 </button> 4528 </span> 4529 <div class="overflow-x-hidden overflow-y-auto absolute top-0 right-0 z-10 w-full h-full 4530 transition-transform duration-200 ease-in-out translate-x-full transform bg-container-lighter" 4531 :class="{ 4532 'translate-x-full' : mobilePanelActiveId !== 'category-node-1116', 4533 'translate-x-0' : mobilePanelActiveId === 'category-node-1116', 4534 }" 4535 > 4536 <span class="block text-16 font-bold py-4 px-6 menu-mobile-h2 border-b border-container"> 4537 <span class="flex items-center bg-container cursor-pointer" 4538 @click="mobilePanelActiveId = 0" 4539 > 4540 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-orange w-7 h-7" width="24" height="24" role="img"> 4541 <path stroke-linecap="round" stroke-linejoin="round" d="M11 15l-3-3m0 0l3-3m-3 3h8M3 12a9 9 0 1118 0 9 9 0 01-18 0z"/> 4542<title>arrow-circle-left</title></svg> 4543 <span class="ml-4"> 4544 Deals </span> 4545 </span> 4546 </span> 4547 <a href="https://www.shelterlogic.com/deals" 4548 class="text-16 font-bold flex items-center w-full px-6 py-4 border-b cursor-pointer 4549 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 4550 aria-label="Deals" 4551 title="Deals" 4552 > 4553 <span class="ml-10">View All</span></a> 4554 4555 <span class="flex items-center border-b" 4556 :class="{ 4557 'hidden' : hideParent 4558 }" 4559 > 4560 <a href="https://www.shelterlogic.com/deals/sale" 4561 title="Sale" 4562 class="flex items-center w-full px-6 py-4 cursor-pointer 4563 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 4564 > 4565 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 4566 Sale </span> 4567 </a> 4568 </span> 4569 <span class="flex items-center border-b" 4570 :class="{ 4571 'hidden' : hideParent 4572 }" 4573 > 4574 <a href="https://www.shelterlogic.com/deals/multipacks" 4575 title="Multipacks" 4576 class="flex items-center w-full px-6 py-4 cursor-pointer 4577 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 4578 >
4579 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 4580 Multipacks </span> 4581 </a> 4582 </span> 4583 <span class="flex items-center border-b" 4584 :class="{ 4585 'hidden' : hideParent 4586 }" 4587 > 4588 <a href="https://www.shelterlogic.com/deals/factory-outlet" 4589 title="Factory Outlet " 4590 class="flex items-center w-full px-6 py-4 cursor-pointer 4591 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 4592 > 4593 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 4594 Factory Outlet </span> 4595 </a> 4596 </span> 4597 <span class="flex items-center border-b" 4598 :class="{ 4599 'hidden' : hideParent 4600 }" 4601 > 4602 <a href="https://www.shelterlogic.com/deals/coupons" 4603 title="Coupons" 4604 class="flex items-center w-full px-6 py-4 cursor-pointer 4605 bg-container-lighter border-container hover:bg-whiteSmoke hover:underline last:border-0" 4606 > 4607 <span class="text-16 font-bold ml-10 text-base text-grey-darker lg:ml-0"> 4608 Coupons </span> 4609 </a> 4610 </span> 4611 </div> 4612 </div> 4613 </nav> 4614 </div> 4615 4616 <!-- desktop --> 4617 <div x-ref="nav-desktop" 4618 @load.window="setActiveMenuDesktop($refs['nav-desktop'])" 4619 class="nav-desktop mx-full bg-container-lighter w-screen order-2 sm:order-1 lg:order-2 4620 navigation hidden lg:flex border-0 lg:border-t border-container-darker" 4621 > 4622 <div class="container hidden lg:block lg:relative lg:min-h-0 lg:pt-0"> 4623 <nav id="nav-desktop" class="flex flex-wrap relative" 4624 role="navigation" 4625 aria-label="ShelterLogic Main Menu" 4626 > 4627 <div id="menubar-category-node-208" 4628 class="group/item level-0 flex items-center first:ml-0 first:pl-0 mx-4 xl:mx-6 4629 border-b-2 border-transparent transition-colors delay-300 duration-300 4630 group hover:border-b-orange focus-within:border-b-orange" 4631 aria-label="ShelterLogic Main Menu" 4632 @mouseover.stop="hoverTopPosition = $event.currentTarget.offsetTop + $event.currentTarget.getBoundingClientRect().height" 4633 @touchstart.prevent.away.debounce.600ms="resetValues('category-node-208');" 4634 > 4635 <a href="https://www.shelterlogic.com/shop-by-brand" 4636 @focus="hoverTopPosition = $event.currentTarget.parentNode.offsetTop + $event.currentTarget.parentNode.getBoundingClientRect().height" 4637 @touchstart.prevent="touchDevices($event, 'category-node-208');" 4638 item-menu="category-node-208" 4639 title="Shop by Brand" 4640 id="menuitem-category-node-208" 4641 class="menuitem level-0 block py-2.5 level-0 relative after:absolute after:inset-x-0 4642 after:-mx-4 after:xl:-mx-6 after:top-0 after:-bottom-1" 4643 aria-label="Shop by Brand" 4644 dblclick="false" 4645 childData="true" 4646 @keydown="goToMenuLink($event, 'https://www.shelterlogic.com/shop-by-brand')" 4647 tabindex="0" 4648 >
4649 <span class="font-bold text-base text-gray-900 bg-opacity-95">Shop by Brand</span> 4650 </a> 4651 <div class="shadow-menu absolute left-0 top-full z-10 w-full bg-white invisible opacity-0 4652 transition-opacity ease-out delay-300 duration-300 group-hover/item:delay-300 4653 group-hover/item:visible group-hover/item:opacity-100 focus-within/item:opacity-100 4654 group-hover/item:pointer-events-auto" 4655 :style="`margin-top: 0; top: ${hoverTopPosition + 1}px;`" 4656 > 4657 <div class="flex justify-between mt-4 mb-8"> 4658 <div class="mx-4 xl:mx-10"> 4659 <ul class="grid flex-1 is-not-cms-block gap-y-4 p-2"> 4660 <li class="level-1 min-w-56 xl:min-w-64"> 4661 <a href="https://www.shelterlogic.com/shop-by-brand/shelterlogic" 4662 class="text-lg font-semibold leading-loose block level-1 p-1 hover:underline" 4663 @keydown="goToMenuLink($event, 'https://www.shelterlogic.com/shop-by-brand/shelterlogic')" 4664 aria-label="ShelterLogic®" 4665 tabindex="0" 4666 > 4667 ShelterLogic® </a> 4668 <ul class="z-10 w-full"> 4669 <li class="level-2"> 4670 <a href="https://www.shelterlogic.com/shop-by-brand/shelterlogic/portable-garages" 4671 aria-label="Fabric Garages" 4672 class="level-2 p-1 block text-lg md:text-base hover:underline" 4673 > 4674 Fabric Garages </a> 4675 <ul class="level-3 pl-4"> 4676 <li class="level-3"> 4677 <a href="https://www.shelterlogic.com/department/outdoor-storage-buildings/garages/garage-in-box" 4678 aria-label="Garage-in-a-Box®" 4679 class="level-3 p-1 block text-sm md:text-sm hover:underline" 4680 data-linked-category="true" data-nav-category-type="linked" data-linked-category-id="69" > 4681 Garage-in-a-Box® </a> 4682 </li> 4683 <li class="level-3"> 4684 <a href="https://www.shelterlogic.com/department/outdoor-storage-buildings/garages/autoshelter" 4685 aria-label="AutoShelter®" 4686 class="level-3 p-1 block text-sm md:text-sm hover:underline" 4687 data-linked-category="true" data-nav-category-type="linked" data-linked-category-id="68" > 4688 AutoShelter® </a> 4689 </li> 4690 <li class="level-3"> 4691 <a href="https://www.shelterlogic.com/outdoor-storage/garages/sheltercoat" 4692 aria-label="ShelterCoat®" 4693 class="level-3 p-1 block text-sm md:text-sm hover:underline" 4694 data-linked-category="true" data-nav-category-type="linked" data-linked-category-id="71" > 4695 ShelterCoat® </a> 4696 </li> 4697 <li class="level-3"> 4698 <a href="https://www.shelterlogic.com/outdoor-storage/garages/sheltertube" 4699 aria-label="ShelterTube®" 4700 class="level-3 p-1 block text-sm md:text-sm hover:underline" 4701 data-linked-category="true" data-nav-category-type="linked" data-linked-category-id="72" > 4702 ShelterTube® </a> 4703 </li> 4704 <li class="level-3"> 4705 <a href="https://www.shelterlogic.com/outdoor-storage/garages/sheltertech" 4706 aria-label="ShelterTech®" 4707 class="level-3 p-1 block text-sm md:text-sm hover:underline" 4708 data-linked-category="true" data-nav-category-type="linked" data-linked-category-id="1038" > 4709 ShelterTech® </a> 4710 </li> 4711 </ul> 4712 </li> 4713 <li class="level-2"> 4714 <a href="https://www.shelterlogic.com/shop-by-brand/shelterlogic/portable-sheds" 4715 aria-label="Fabric Sheds" 4716 class="level-2 p-1 block text-lg md:text-base hover:underline" 4717 > 4718 Fabric Sheds </a> 4719 </li> 4720 <li class="level-2"> 4721 <a href="https://www.shelterlogic.com/shop-by-brand/shelterlogic/cover-kits" 4722 aria-label="Replacement Cover Kits" 4723 class="level-2 p-1 block text-lg md:text-base hover:underline" 4724 > 4725 Replacement Cover Kits </a> 4726 </li> 4727 <li class="level-2"> 4728 <a href="https://www.shelterlogic.com/shop-by-brand/shelterlogic/shade" 4729 aria-label="Shade" 4730 class="level-2 p-1 block text-lg md:text-base hover:underline" 4731 > 4732 Shade </a> 4733 </li> 4734 <li class="level-2"> 4735 <a href="https://www.shelterlogic.com/shop-by-brand/shelterlogic/canopies-and-gazebos" 4736 aria-label="Canopies and Gazebos" 4737 class="level-2 p-1 block text-lg md:text-base hover:underline" 4738 > 4739 Canopies and Gazebos </a> 4740 </li> 4741 <li class="level-2"> 4742 <a href="https://www.shelterlogic.com/shop-by-brand/shelterlogic/pet" 4743 aria-label="Pet" 4744 class="level-2 p-1 block text-lg md:text-base hover:underline" 4745 > 4746 Pet </a> 4747 </li> 4748 <li class="level-2"> 4749 <a href="https://www.shelterlogic.com/shop-by-brand/shelterlogic/farm-equine" 4750 aria-label="Farm + Equine" 4751 class="level-2 p-1 block text-lg md:text-base hover:underline" 4752 > 4753 Farm + Equine </a> 4754 </li> 4755 <li class="level-2"> 4756 <a href="https://www.shelterlogic.com/gardening/greenhouses/high-tunnel-greenhouses" 4757 aria-label="High Tunnel Greenhouses" 4758 class="level-2 p-1 block text-lg md:text-base hover:underline" 4759 data-linked-category="true" data-nav-category-type="linked" data-linked-category-id="187" > 4760 High Tunnel Greenhouses </a> 4761 </li> 4762 <li class="level-2"> 4763 <a href="https://www.shelterlogic.com/shop-by-brand/shelterlogic/greenhouses" 4764 aria-label="Greenhouses" 4765 class="level-2 p-1 block text-lg md:text-base hover:underline" 4766 > 4767 Greenhouses </a> 4768 </li> 4769
4769 <li class="level-2"> 4770 <a href="https://www.shelterlogic.com/shop-by-brand/shelterlogic/firewood-hearth" 4771 aria-label="Firewood Accessories & Storage" 4772 class="level-2 p-1 block text-lg md:text-base hover:underline" 4773 > 4774 Firewood Accessories & Storage </a> 4775 </li> 4776 <li class="level-2"> 4777 <a href="https://www.shelterlogic.com/shop-by-brand/shelterlogic/accessories" 4778 aria-label="Accessories" 4779 class="level-2 p-1 block text-lg md:text-base hover:underline" 4780 > 4781 Accessories </a> 4782 </li> 4783 </ul> 4784 </li> 4785 <li class="level-1 min-w-56 xl:min-w-64"> 4786 <a href="https://www.shelterlogic.com/shop-by-brand/sojag" 4787 class="text-lg font-semibold leading-loose block level-1 p-1 hover:underline" 4788 @keydown="goToMenuLink($event, 'https://www.shelterlogic.com/shop-by-brand/sojag')" 4789 aria-label="SOJAG®" 4790 tabindex="0" 4791 > 4792 SOJAG® </a> 4793 <ul class="z-10 w-full"> 4794 <li class="level-2"> 4795 <a href="https://www.shelterlogic.com/shop-by-brand/sojag/gazebos" 4796 aria-label="Gazebos" 4797 class="level-2 p-1 block text-lg md:text-base hover:underline" 4798 > 4799 Gazebos </a> 4800 <ul class="level-3 pl-4"> 4801 <li class="level-3"> 4802 <a href="https://www.shelterlogic.com/shop-by-brand/sojag/gazebos/hard-top-gazebos" 4803 aria-label="Hard-Top Gazebos" 4804 class="level-3 p-1 block text-sm md:text-sm hover:underline" 4805 > 4806 Hard-Top Gazebos </a> 4807 </li> 4808 <li class="level-3"> 4809 <a href="https://www.shelterlogic.com/shop-by-brand/sojag/gazebos/soft-top-gazebos" 4810 aria-label="Soft Top Gazebos" 4811 class="level-3 p-1 block text-sm md:text-sm hover:underline" 4812 > 4813 Soft Top Gazebos </a> 4814 </li> 4815 <li class="level-3"> 4816 <a href="https://www.shelterlogic.com/shop-by-brand/sojag/gazebos/wall-mounted-gazebos" 4817 aria-label="Wall-Mounted Gazebos" 4818 class="level-3 p-1 block text-sm md:text-sm hover:underline" 4819 > 4820 Wall-Mounted Gazebos </a> 4821 </li> 4822 <li class="level-3"> 4823 <a href="https://www.shelterlogic.com/shop-by-brand/sojag/gazebos/grill-gazebos" 4824 aria-label="Grill Gazebos" 4825 class="level-3 p-1 block text-sm md:text-sm hover:underline" 4826 > 4827 Grill Gazebos </a> 4828 </li> 4829 </ul> 4830 </li> 4831 <li class="level-2"> 4832 <a href="https://www.shelterlogic.com/shop-by-brand/sojag/winter-covers" 4833 aria-label="Winter Gazebo Covers" 4834 class="level-2 p-1 block text-lg md:text-base hover:underline" 4835 > 4836 Winter Gazebo Covers </a> 4837 </li> 4838 <li class="level-2"> 4839 <a href="https://www.shelterlogic.com/shop-by-brand/sojag/pergolas" 4840 aria-label="Pergolas" 4841 class="level-2 p-1 block text-lg md:text-base hover:underline" 4842 > 4843 Pergolas </a> 4844 </li> 4845 <li class="level-2"> 4846 <a href="https://www.shelterlogic.com/shop-by-brand/sojag/solariums" 4847 aria-label="Solariums" 4848 class="level-2 p-1 block text-lg md:text-base hover:underline" 4849 > 4850 Solariums </a> 4851 </li> 4852 <li class="level-2"> 4853 <a href="https://www.shelterlogic.com/shop-by-brand/sojag/carports" 4854 aria-label="Carports" 4855 class="level-2 p-1 block text-lg md:text-base hover:underline" 4856 > 4857 Carports </a> 4858 </li> 4859 <li class="level-2"> 4860 <a href="https://www.shelterlogic.com/shop-by-brand/sojag/garages" 4861 aria-label="Garages" 4862 class="level-2 p-1 block text-lg md:text-base hover:underline" 4863 > 4864 Garages </a> 4865 </li> 4866 <li class="level-2"> 4867 <a href="https://www.shelterlogic.com/shop-by-brand/sojag/storage-sheds" 4868 aria-label="Storage Sheds" 4869 class="level-2 p-1 block text-lg md:text-base hover:underline" 4870 > 4871 Storage Sheds </a> 4872 </li> 4873 <li class="level-2"> 4874 <a href="https://www.shelterlogic.com/shop-by-brand/sojag/outdoor-seating" 4875 aria-label="Outdoor Seating" 4876 class="level-2 p-1 block text-lg md:text-base hover:underline" 4877 > 4878 Outdoor Seating </a> 4879 </li> 4880 <li class="level-2"> 4881 <a href="https://www.shelterlogic.com/shop-by-brand/sojag/accessories" 4882 aria-label="Accessories" 4883 class="level-2 p-1 block text-lg md:text-base hover:underline" 4884 > 4885 Accessories </a> 4886 </li> 4887 </ul> 4888 </li> 4889 <li class="level-1 min-w-56 xl:min-w-64"> 4890 <a href="https://www.shelterlogic.com/shop-by-brand/arrow-storage" 4891 class="text-lg font-semibold leading-loose block level-1 p-1 hover:underline" 4892 @keydown="goToMenuLink($event, 'https://www.shelterlogic.com/shop-by-brand/arrow-storage')" 4893 aria
4893-label="Arrow Storage Products®" 4894 tabindex="0" 4895 > 4896 Arrow Storage Products® </a> 4897 <ul class="z-10 w-full"> 4898 <li class="level-2"> 4899 <a href="https://www.shelterlogic.com/shop-by-brand/arrow-storage/sheds" 4900 aria-label="Steel Sheds" 4901 class="level-2 p-1 block text-lg md:text-base hover:underline" 4902 > 4903 Steel Sheds </a> 4904 </li> 4905 <li class="level-2"> 4906 <a href="https://www.shelterlogic.com/shop-by-brand/arrow-storage/garages" 4907 aria-label="Steel Garages" 4908 class="level-2 p-1 block text-lg md:text-base hover:underline" 4909 > 4910 Steel Garages </a> 4911 </li> 4912 <li class="level-2"> 4913 <a href="https://www.shelterlogic.com/shop-by-brand/arrow-storage/carports" 4914 aria-label="Carports" 4915 class="level-2 p-1 block text-lg md:text-base hover:underline" 4916 > 4917 Carports </a> 4918 <ul class="level-3 pl-4"> 4919 <li class="level-3"> 4920 <a href="https://www.shelterlogic.com/outdoor-storage/carports/steelpeak" 4921 aria-label="Arrow STEELPEAK™ Carports" 4922 class="level-3 p-1 block text-sm md:text-sm hover:underline" 4923 data-linked-category="true" data-nav-category-type="linked" data-linked-category-id="1534" > 4924 Arrow STEELPEAK™ Carports </a> 4925 </li> 4926 <li class="level-3"> 4927 <a href="https://www.shelterlogic.com/outdoor-storage/carports/cover-it-carports" 4928 aria-label="CoverIT® Carports" 4929 class="level-3 p-1 block text-sm md:text-sm hover:underline" 4930 data-linked-category="true" data-nav-category-type="linked" data-linked-category-id="1685" > 4931 CoverIT® Carports </a> 4932 </li> 4933 <li class="level-3"> 4934 <a href="https://www.shelterlogic.com/shop-by-brand/arrow-storage/carports" 4935 aria-label="Arrow Storage® Carports" 4936 class="level-3 p-1 block text-sm md:text-sm hover:underline" 4937 data-linked-category="true" data-nav-category-type="linked" data-linked-category-id="788" > 4938 Arrow Storage® Carports </a> 4939 </li> 4940 </ul> 4941 </li> 4942 <li class="level-2"> 4943 <a href="https://www.shelterlogic.com/shop-by-brand/arrow-storage/pastureport-livestock-agricultural-shelters" 4944 aria-label="PasturePort™ Ag Shelters" 4945 class="level-2 p-1 block text-lg md:text-base hover:underline" 4946 > 4947 PasturePort™ Ag Shelters </a> 4948 </li> 4949 <li class="level-2"> 4950 <a href="https://www.shelterlogic.com/shop-by-brand/arrow-storage/deck-boxes" 4951 aria-label="Deck Boxes" 4952 class="level-2 p-1 block text-lg md:text-base hover:underline" 4953 > 4954 Deck Boxes </a> 4955 </li> 4956 <li class="level-2"> 4957 <a href="https://www.shelterlogic.com/shop-by-brand/arrow-storage/garden" 4958 aria-label="Garden Beds" 4959 class="level-2 p-1 block text-lg md:text-base hover:underline" 4960 > 4961 Garden Beds </a> 4962 </li> 4963 <li class="level-2"> 4964 <a href="https://www.shelterlogic.com/shop-by-brand/arrow-storage/accessories" 4965 aria-label="Accessories" 4966 class="level-2 p-1 block text-lg md:text-base hover:underline" 4967 > 4968 Accessories </a> 4969 </li> 4970 </ul> 4971 </li> 4972 <li class="level-1 min-w-56 xl:min-w-64"> 4973 <a href="https://www.shelterlogic.com/shop-by-brand/quik-shade" 4974 class="text-lg font-semibold leading-loose block level-1 p-1 hover:underline" 4975 @keydown="goToMenuLink($event, 'https://www.shelterlogic.com/shop-by-brand/quik-shade')" 4976 aria-label="Quik Shade®" 4977 tabindex="0" 4978 > 4979 Quik Shade® </a> 4980 <ul class="z-10 w-full"> 4981 <li class="level-2"> 4982 <a href="https://www.shelterlogic.com/shop-by-brand/quik-shade/pop-up-canopy" 4983 aria-label="Pop-Up Canopies" 4984 class="level-2 p-1 block text-lg md:text-base hover:underline" 4985 > 4986 Pop-Up Canopies </a> 4987 </li> 4988 </ul> 4989 </li> 4990 <li class="level-1 min-w-56 xl:min-w-64"> 4991 <a href="https://www.shelterlogic.com/shop-by-brand/camp-go" 4992 class="text-lg font-semibold leading-loose block level-1 p-1 hover:underline" 4993 @keydown="goToMenuLink($event, 'https://www.shelterlogic.com/shop-by-brand/camp-go')" 4994 aria-label="CAMP&GO™" 4995 tabindex="0" 4996 > 4997 CAMP&GO™ </a> 4998 <ul class="z-10 w-full"> 4999 <li class="level-2"> 5000 <a href="https://www.shelterlogic.com/shop-by-brand/camp-go/camping-chairs" 5001 aria-label="Camping Chairs" 5002 class="level-2 p-1 block text-lg md:text-base hover:underline" 5003 > 5004 Camping Chairs </a> 5005 </li> 5006 <li class="level-2"> 5007 <a href="https://www.shelterlogic.com/shop-by-brand/camp-go/camp-tables" 5008 aria-label="Camping Tables" 5009 class="level-2 p-1 block text-lg md:text-base hover:underline" 5010 > 5011 Camping Tables </a> 5012 </li> 5013 </ul> 5014 </li> 5015 <li class="level-1 min-w-56 xl:min-w-64"> 5016 <a href="https://www.shelterlogic.com/shop-by-brand/rio-beach" 5017 class="text-lg font-semibold leading-loose block level-1 p-1 hover:underline
5017" 5018 @keydown="goToMenuLink($event, 'https://www.shelterlogic.com/shop-by-brand/rio-beach')" 5019 aria-label="RIO Beach®" 5020 tabindex="0" 5021 > 5022 RIO Beach® </a> 5023 <ul class="z-10 w-full"> 5024 <li class="level-2"> 5025 <a href="https://www.shelterlogic.com/shop-by-brand/rio-beach/chairs" 5026 aria-label="Chairs" 5027 class="level-2 p-1 block text-lg md:text-base hover:underline" 5028 > 5029 Chairs </a> 5030 </li> 5031 <li class="level-2"> 5032 <a href="https://www.shelterlogic.com/shop-by-brand/rio-beach/beach-carts" 5033 aria-label="Beach Carts" 5034 class="level-2 p-1 block text-lg md:text-base hover:underline" 5035 > 5036 Beach Carts </a> 5037 </li> 5038 <li class="level-2"> 5039 <a href="https://www.shelterlogic.com/shop-by-brand/rio-beach/beach-tents" 5040 aria-label="Beach Shelters" 5041 class="level-2 p-1 block text-lg md:text-base hover:underline" 5042 > 5043 Beach Shelters </a> 5044 </li> 5045 <li class="level-2"> 5046 <a href="https://www.shelterlogic.com/shop-by-brand/rio-beach/beach-umbrellas" 5047 aria-label="Beach Umbrellas" 5048 class="level-2 p-1 block text-lg md:text-base hover:underline" 5049 > 5050 Beach Umbrellas </a> 5051 </li> 5052 <li class="level-2"> 5053 <a href="https://www.shelterlogic.com/shop-by-brand/rio-beach/beach-tables-rio" 5054 aria-label="Beach Tables" 5055 class="level-2 p-1 block text-lg md:text-base hover:underline" 5056 > 5057 Beach Tables </a> 5058 </li> 5059 <li class="level-2"> 5060 <a href="https://www.shelterlogic.com/shop-by-brand/rio-beach/beach-accessories-rio" 5061 aria-label="Beach Accessories" 5062 class="level-2 p-1 block text-lg md:text-base hover:underline" 5063 > 5064 Beach Accessories </a> 5065 </li> 5066 </ul> 5067 </li> 5068 <li class="level-1 min-w-56 xl:min-w-64"> 5069 <a href="https://www.shelterlogic.com/shop-by-brand/tommy-bahama" 5070 class="text-lg font-semibold leading-loose block level-1 p-1 hover:underline" 5071 @keydown="goToMenuLink($event, 'https://www.shelterlogic.com/shop-by-brand/tommy-bahama')" 5072 aria-label="Tommy Bahama®" 5073 tabindex="0" 5074 > 5075 Tommy Bahama® </a> 5076 <ul class="z-10 w-full"> 5077 <li class="level-2"> 5078 <a href="https://www.shelterlogic.com/shop-by-brand/tommy-bahama/beach-chairs" 5079 aria-label="Chairs" 5080 class="level-2 p-1 block text-lg md:text-base hover:underline" 5081 > 5082 Chairs </a> 5083 </li> 5084 <li class="level-2"> 5085 <a href="https://www.shelterlogic.com/shop-by-brand/tommy-bahama/umbrellas" 5086 aria-label="Umbrellas" 5087 class="level-2 p-1 block text-lg md:text-base hover:underline" 5088 > 5089 Umbrellas </a> 5090 </li> 5091 <li class="level-2"> 5092 <a href="https://www.shelterlogic.com/shop-by-brand/tommy-bahama/beach-cabanas-and-tents" 5093 aria-label="Cabanas" 5094 class="level-2 p-1 block text-lg md:text-base hover:underline" 5095 > 5096 Cabanas </a> 5097 </li> 5098 <li class="level-2"> 5099 <a href="https://www.shelterlogic.com/shop-by-brand/tommy-bahama/coolers" 5100 aria-label="Coolers" 5101 class="level-2 p-1 block text-lg md:text-base hover:underline" 5102 > 5103 Coolers </a> 5104 </li> 5105 <li class="level-2"> 5106 <a href="https://www.shelterlogic.com/shop-by-brand/tommy-bahama/gazebos" 5107 aria-label="Grill Gazebos" 5108 class="level-2 p-1 block text-lg md:text-base hover:underline" 5109 > 5110 Grill Gazebos </a> 5111 </li> 5112 </ul> 5113 </li> 5114 <li class="level-1 min-w-56 xl:min-w-64"> 5115 <a href="https://www.shelterlogic.com/shop-by-brand/margaritaville" 5116 class="text-lg font-semibold leading-loose block level-1 p-1 hover:underline" 5117 @keydown="goToMenuLink($event, 'https://www.shelterlogic.com/shop-by-brand/margaritaville')" 5118 aria-label="Margaritaville®" 5119 tabindex="0" 5120 > 5121 Margaritaville® </a> 5122 <ul class="z-10 w-full"> 5123 <li class="level-2"> 5124 <a href="https://www.shelterlogic.com/shop-by-brand/margaritaville/beach-chairs" 5125 aria-label="Chairs" 5126 class="level-2 p-1 block text-lg md:text-base hover:underline" 5127 > 5128 Chairs </a> 5129 </li> 5130 </ul> 5131 </li> 5132 <li class="level-1 min-w-56 xl:min-w-64"> 5133 <a href="https://www.shelterlogic.com/shop-by-brand/life-is-good" 5134 class="text-lg font-semibold leading-loose block level-1 p-1 hover:underline" 5135 @keydown="goToMenuLink($event, 'https://www.shelterlogic.com/shop-by-brand/life-is-good')" 5136 aria-label="Life is Good®" 5137 tabindex="0" 5138 > 5139 Life is Good® </a> 5140 <ul class="z-10 w-full"> 5141 <li class="level-2"> 5142 <a href="https://www.shelterlogic.com/shop-by-brand/life-is-good/beach-chairs" 5143 aria-label="Beach Chairs" 5144 class="level-2 p-1 block text-lg md:text-base hover:underline" 5145 > 5146 Beach Chairs </a> 5147 </li> 5148 <li class="level-2"> 5149 <a href="https://www.shel
5149terlogic.com/shop-by-brand/life-is-good/canopy-chairs" 5150 aria-label="Quad Chairs" 5151 class="level-2 p-1 block text-lg md:text-base hover:underline" 5152 > 5153 Quad Chairs </a> 5154 </li> 5155 <li class="level-2"> 5156 <a href="https://www.shelterlogic.com/shop-by-brand/life-is-good/beach-umbrellas" 5157 aria-label="Beach Umbrellas" 5158 class="level-2 p-1 block text-lg md:text-base hover:underline" 5159 > 5160 Beach Umbrellas </a> 5161 </li> 5162 <li class="level-2"> 5163 <a href="https://www.shelterlogic.com/shop-by-brand/life-is-good/pet-shade" 5164 aria-label="Pet Shade" 5165 class="level-2 p-1 block text-lg md:text-base hover:underline" 5166 > 5167 Pet Shade </a> 5168 </li> 5169 <li class="level-2"> 5170 <a href="https://www.shelterlogic.com/shop-by-brand/life-is-good/hammocks" 5171 aria-label="Hammocks" 5172 class="level-2 p-1 block text-lg md:text-base hover:underline" 5173 > 5174 Hammocks </a> 5175 </li> 5176 </ul> 5177 </li> 5178 <li class="level-1 min-w-56 xl:min-w-64"> 5179 <a href="https://www.shelterlogic.com/shop-by-brand/scottsmiracle-gro" 5180 class="text-lg font-semibold leading-loose block level-1 p-1 hover:underline" 5181 @keydown="goToMenuLink($event, 'https://www.shelterlogic.com/shop-by-brand/scottsmiracle-gro')" 5182 aria-label="Scotts Miracle-Gro" 5183 tabindex="0" 5184 > 5185 Scotts Miracle-Gro </a> 5186 <ul class="z-10 w-full"> 5187 <li class="level-2"> 5188 <a href="https://www.shelterlogic.com/shop-by-brand/scottsmiracle-gro/fabric-sheds" 5189 aria-label="Fabric Sheds" 5190 class="level-2 p-1 block text-lg md:text-base hover:underline" 5191 > 5192 Fabric Sheds </a> 5193 </li> 5194 <li class="level-2"> 5195 <a href="https://www.shelterlogic.com/shop-by-brand/scottsmiracle-gro/metal-sheds" 5196 aria-label="Metal Sheds" 5197 class="level-2 p-1 block text-lg md:text-base hover:underline" 5198 > 5199 Metal Sheds </a> 5200 </li> 5201 <li class="level-2"> 5202 <a href="https://www.shelterlogic.com/shop-by-brand/scottsmiracle-gro/greenhouses" 5203 aria-label="Greenhouses" 5204 class="level-2 p-1 block text-lg md:text-base hover:underline" 5205 > 5206 Greenhouses </a> 5207 </li> 5208 <li class="level-2"> 5209 <a href="https://www.shelterlogic.com/shop-by-brand/scottsmiracle-gro/raised-garden-beds" 5210 aria-label="Raised Garden Beds" 5211 class="level-2 p-1 block text-lg md:text-base hover:underline" 5212 > 5213 Raised Garden Beds </a> 5214 </li> 5215 </ul> 5216 </li> 5217 </ul> 5218 </div> 5219 5220 </div> 5221 </div> 5222 </div> 5223 <div id="menubar-category-node-167" 5224 class="group/item level-0 flex items-center first:ml-0 first:pl-0 mx-4 xl:mx-6 5225 border-b-2 border-transparent transition-colors delay-300 duration-300 5226 group hover:border-b-orange focus-within:border-b-orange" 5227 aria-label="ShelterLogic Main Menu" 5228 @mouseover.stop="hoverTopPosition = $event.currentTarget.offsetTop + $event.currentTarget.getBoundingClientRect().height" 5229 @touchstart.prevent.away.debounce.600ms="resetValues('category-node-167');" 5230 > 5231 <a href="https://www.shelterlogic.com/outdoor-storage" 5232 @focus="hoverTopPosition = $event.currentTarget.parentNode.offsetTop + $event.currentTarget.parentNode.getBoundingClientRect().height" 5233 @touchstart.prevent="touchDevices($event, 'category-node-167');" 5234 item-menu="category-node-167" 5235 title="Outdoor Storage" 5236 id="menuitem-category-node-167" 5237 class="menuitem level-0 block py-2.5 level-0 relative after:absolute after:inset-x-0 5238 after:-mx-4 after:xl:-mx-6 after:top-0 after:-bottom-1" 5239 aria-label="Outdoor Storage" 5240 dblclick="false" 5241 childData="true" 5242 @keydown="goToMenuLink($event, 'https://www.shelterlogic.com/outdoor-storage')" 5243 tabindex="0" 5244 >
5245 <span class="font-bold text-base text-gray-900 bg-opacity-95">Outdoor Storage</span> 5246 </a> 5247 <div class="shadow-menu absolute left-0 top-full z-10 w-full bg-white invisible opacity-0 5248 transition-opacity ease-out delay-300 duration-300 group-hover/item:delay-300 5249 group-hover/item:visible group-hover/item:opacity-100 focus-within/item:opacity-100 5250 group-hover/item:pointer-events-auto" 5251 :style="`margin-top: 0; top: ${hoverTopPosition + 1}px;`" 5252 > 5253 <div class="flex justify-between mt-4 mb-8"> 5254 <div class="mx-4 xl:mx-10"> 5255 <ul class="grid flex-1 is-not-cms-block gap-y-4 p-2"> 5256 <li class="level-1 min-w-56 xl:min-w-64"> 5257 <a href="https://www.shelterlogic.com/outdoor-storage/sheds" 5258 class="text-lg font-semibold leading-loose block level-1 p-1 hover:underline" 5259 @keydown="goToMenuLink($event, 'https://www.shelterlogic.com/outdoor-storage/sheds')" 5260 aria-label="Sheds" 5261 tabindex="0" 5262 > 5263 Sheds </a> 5264 <ul class="z-10 w-full"> 5265 <li class="level-2"> 5266 <a href="https://www.shelterlogic.com/outdoor-storage/sheds/shed-quiz" 5267 aria-label="Shed Quiz" 5268 class="level-2 p-1 block text-lg md:text-base hover:underline" 5269 > 5270 Shed Quiz </a> 5271 </li> 5272 <li class="level-2"> 5273 <a href="https://www.shelterlogic.com/outdoor-storage/sheds/metal-sheds" 5274 aria-label="Metal Sheds" 5275 class="level-2 p-1 block text-lg md:text-base hover:underline" 5276 > 5277 Metal Sheds </a> 5278 </li> 5279 <li class="level-2"> 5280 <a href="https://www.shelterlogic.com/outdoor-storage/sheds/portable-sheds" 5281 aria-label="Fabric Sheds" 5282 class="level-2 p-1 block text-lg md:text-base hover:underline" 5283 > 5284 Fabric Sheds </a> 5285 </li> 5286 <li class="level-2"> 5287 <a href="https://www.shelterlogic.com/outdoor-storage/sheds/shirudo-series-shed" 5288 aria-label="Shirudo Series™ Shed" 5289 class="level-2 p-1 block text-lg md:text-base hover:underline" 5290 > 5291 Shirudo Series™ Shed </a> 5292 </li> 5293 <li class="level-2"> 5294 <a href="https://www.shelterlogic.com/outdoor-storage/sheds/floor-frame-kit" 5295 aria-label="Floor Frame Kit Finder" 5296 class="level-2 p-1 block text-lg md:text-base hover:underline" 5297 > 5298 Floor Frame Kit Finder </a> 5299 </li> 5300 </ul> 5301 </li> 5302 <li class="level-1 min-w-56 xl:min-w-64"> 5303 <a href="https://www.shelterlogic.com/outdoor-storage/carports" 5304 class="text-lg font-semibold leading-loose block level-1 p-1 hover:underline" 5305 @keydown="goToMenuLink($event, 'https://www.shelterlogic.com/outdoor-storage/carports')" 5306 aria-label="Carports" 5307 tabindex="0" 5308 > 5309 Carports </a> 5310 <ul class="z-10 w-full"> 5311 <li class="level-2"> 5312 <a href="https://www.shelterlogic.com/outdoor-storage/carports/steelpeak" 5313 aria-label="Arrow STEELPEAK™ Carports" 5314 class="level-2 p-1 block text-lg md:text-base hover:underline" 5315 > 5316 Arrow STEELPEAK™ Carports </a> 5317 </li> 5318 <li class="level-2"> 5319 <a href="https://www.shelterlogic.com/outdoor-storage/carports/cover-it-carports" 5320 aria-label="CoverIT® Carports" 5321 class="level-2 p-1 block text-lg md:text-base hover:underline" 5322 > 5323 CoverIT® Carports </a> 5324 </li> 5325 <li class="level-2"> 5326 <a href="https://www.shelterlogic.com/shop-by-brand/sojag/carports" 5327 aria-label="Sojag® Samara Carport" 5328 class="level-2 p-1 block text-lg md:text-base hover:underline" 5329 data-linked-category="true" data-nav-category-type="linked" data-linked-category-id="713" > 5330 Sojag® Samara Carport </a> 5331 </li> 5332 <li class="level-2"> 5333 <a href="https://www.shelterlogic.com/shop-by-brand/arrow-storage/carports" 5334 aria-label="Arrow Storage® Carports" 5335 class="level-2 p-1 block text-lg md:text-base hover:underline" 5336 data-linked-category="true" data-nav-category-type="linked" data-linked-category-id="788" > 5337 Arrow Storage® Carports </a> 5338 </li> 5339 <li class="level-2"> 5340 <a href="https://www.shelterlogic.com/outdoor-storage/carports/arrow-carports-for-rvs" 5341 aria-label="RV Carports" 5342 class="level-2 p-1 block text-lg md:text-base hover:underline" 5343 > 5344 RV Carports </a> 5345 </li> 5346 <li class="level-2"> 5347 <a href="https://www.shelterlogic.com/outdoor-storage/carports/carport-enclosure-kits" 5348 aria-label="Carport Enclosure Kits and Walls" 5349 class="level-2 p-1 block text-lg md:text-base hover:underline" 5350 > 5351 Carport Enclosure Kits and Walls </a> 5352 </li> 5353 </ul> 5354 </li> 5355 <li class="level-1 min-w-56 xl:min-w-64"> 5356 <a href="https://www.shelterlogic.com/outdoor-storage/garages" 5357 class="text-lg font-semibold leading-loose block level-1 p-1 hover:underline" 5358 @keydown="goToMenuLink($event, 'https://www.shelterlogic.com/outdoor-storage/garages')" 5359 aria-label="Garages" 5360 tabindex="0" 5361 > 5362 Garages </a> 5363 <ul class="z-10 w-full"> 5364 <li class="level-2"> 5365 <a href="https://www.shelterlogic.com/outdoor-storage/garages/replacement-covers" 5366 aria-label="Replacement Covers" 5367 class="level-2 p-1 block text-lg md:text-base hover:underline" 5368 > 5369 Replacement Covers </a> 5370 </li> 5371 <li class="level-2"> 5372 <a href="https://www.shelterlogic.com/department/outdoor-storage-buildings/garages/garage-in-box" 5373 aria-label="Garage-in-a-Box®" 5374 class="level-2 p-1 block text-lg md:text-base hover:underline" 5375
5375 > 5376 Garage-in-a-Box® </a> 5377 </li> 5378 <li class="level-2"> 5379 <a href="https://www.shelterlogic.com/department/outdoor-storage-buildings/garages/autoshelter" 5380 aria-label="AUTOSHELTER®" 5381 class="level-2 p-1 block text-lg md:text-base hover:underline" 5382 > 5383 AUTOSHELTER® </a> 5384 </li> 5385 <li class="level-2"> 5386 <a href="https://www.shelterlogic.com/outdoor-storage/garages/sheltercoat" 5387 aria-label="ShelterCoat®" 5388 class="level-2 p-1 block text-lg md:text-base hover:underline" 5389 > 5390 ShelterCoat® </a> 5391 </li> 5392 <li class="level-2"> 5393 <a href="https://www.shelterlogic.com/outdoor-storage/garages/sheltertube" 5394 aria-label="ShelterTube®" 5395 class="level-2 p-1 block text-lg md:text-base hover:underline" 5396 > 5397 ShelterTube® </a> 5398 </li> 5399 <li class="level-2"> 5400 <a href="https://www.shelterlogic.com/outdoor-storage/garages/sheltertech" 5401 aria-label="ShelterTech® " 5402 class="level-2 p-1 block text-lg md:text-base hover:underline" 5403 > 5404 ShelterTech® </a> 5405 </li> 5406 <li class="level-2"> 5407 <a href="https://www.shelterlogic.com/outdoor-storage/garages/metal-garages" 5408 aria-label="Metal Garages" 5409 class="level-2 p-1 block text-lg md:text-base hover:underline" 5410 > 5411 Metal Garages </a> 5412 </li> 5413 </ul> 5414 </li> 5415 <li class="level-1 min-w-56 xl:min-w-64"> 5416 <a href="https://www.shelterlogic.com/outdoor-storage/storage-accessories" 5417 class="text-lg font-semibold leading-loose block level-1 p-1 hover:underline" 5418 @keydown="goToMenuLink($event, 'https://www.shelterlogic.com/outdoor-storage/storage-accessories')" 5419 aria-label="Storage Accessories" 5420 tabindex="0" 5421 > 5422 Storage Accessories </a> 5423 <ul class="z-10 w-full"> 5424 <li class="level-2"> 5425 <a href="https://www.shelterlogic.com/outdoor-storage/storage-accessories/floor-frame-base-kits" 5426 aria-label="Floor Frame & Base Kits" 5427 class="level-2 p-1 block text-lg md:text-base hover:underline" 5428 > 5429 Floor Frame & Base Kits </a> 5430 </li> 5431 <li class="level-2"> 5432 <a href="https://www.shelterlogic.com/outdoor-storage/storage-accessories/anchors" 5433 aria-label="Anchors" 5434 class="level-2 p-1 block text-lg md:text-base hover:underline" 5435 > 5436 Anchors </a> 5437 </li> 5438 <li class="level-2"> 5439 <a href="https://www.shelterlogic.com/outdoor-storage/storage-accessories/shelving-kits" 5440 aria-label="Shelving Kits" 5441 class="level-2 p-1 block text-lg md:text-base hover:underline" 5442 > 5443 Shelving Kits </a> 5444 </li> 5445 <li class="level-2"> 5446 <a href="https://www.shelterlogic.com/outdoor-storage/storage-accessories/roof-strengthening-kits" 5447 aria-label="Roof Strengthening Kits" 5448 class="level-2 p-1 block text-lg md:text-base hover:underline" 5449 > 5450 Roof Strengthening Kits </a> 5451 </li> 5452 <li class="level-2"> 5453 <a href="https://www.shelterlogic.com/outdoor-storage/storage-accessories/hardware" 5454 aria-label="Hardware" 5455 class="level-2 p-1 block text-lg md:text-base hover:underline" 5456 > 5457 Hardware </a> 5458 </li> 5459 </ul> 5460 </li> 5461 <li class="level-1 min-w-64"> 5462 <a href="https://www.shelterlogic.com/outdoor-storage/farm-and-equine-sheds-and-storage" 5463 class="block text-lg p-1 font-semibold leading-loose level-1 hover:underline" 5464 aria-label="Farm & Ranch" 5465 > 5466 Farm & Ranch </a> 5467 <a href="https://www.shelterlogic.com/outdoor-storage/deck-boxes" 5468 class="block text-lg p-1 font-semibold leading-loose level-1 hover:underline" 5469 aria-label="Deck Boxes" 5470 > 5471 Deck Boxes </a> 5472 <a href="https://www.shelterlogic.com/outdoor-storage/firewood-storage" 5473 class="block text-lg p-1 font-semibold leading-loose level-1 hover:underline" 5474 aria-label="Firewood Storage" 5475 > 5476 Firewood Storage </a> 5477 </li> 5478 </ul> 5479 </div> 5480 5481 </div> 5482 </div> 5483 </div> 5484 <div id="menubar-category-node-177" 5485 class="group/item level-0 flex items-center first:ml-0 first:pl-0 mx-4 xl:mx-6 5486 border-b-2 border-transparent transition-colors delay-300 duration-300 5487 group hover:border-b-orange focus-within:border-b-orange" 5488 aria-label="ShelterLogic Main Menu" 5489 @mouseover.stop="hoverTopPosition = $event.currentTarget.offsetTop + $event.currentTarget.getBoundingClientRect().height" 5490 @touchstart.prevent.away.debounce.600ms="resetValues('category-node-177');" 5491 > 5492 <a href="https://www.shelterlogic.com/patio-shade" 5493 @focus="hoverTopPosition = $event.currentTarget.parentNode.offsetTop + $event.currentTarget.parentNode.getBoundingClientRect().height" 5494 @touchstart.prevent="touchDevices($event, 'category-node-177');" 5495 item-menu="category-node-177" 5496 title="Backyard Shade" 5497 id="menuitem-category-node-177" 5498 class="menuitem level-0 block py-2.5 level-0 relative after:absolute after:inset-x-0 5499 after:-mx-4 after:xl:-mx-6 after:top-0 after:-bottom-1" 5500 aria-label="Backyard Shade" 5501 dblclick="false" 5502 childData="true" 5503 @keydown="goToMenuLink($event, 'https://www.shelterlogic.com/patio-shade')" 5504 tabindex="0" 5505 >
5506 <span class="font-bold text-base text-gray-900 bg-opacity-95">Backyard Shade</span> 5507 </a> 5508 <div class="shadow-menu absolute left-0 top-full z-10 w-full bg-white invisible opacity-0 5509 transition-opacity ease-out delay-300 duration-300 group-hover/item:delay-300 5510 group-hover/item:visible group-hover/item:opacity-100 focus-within/item:opacity-100 5511 group-hover/item:pointer-events-auto" 5512 :style="`margin-top: 0; top: ${hoverTopPosition + 1}px;`" 5513 > 5514 <div class="flex justify-between mt-4 mb-8"> 5515 <div class="mx-4 xl:mx-10"> 5516 <ul class="grid flex-1 is-not-cms-block gap-y-4 p-2"> 5517 <li class="level-1 min-w-56 xl:min-w-64"> 5518 <a href="https://www.shelterlogic.com/patio-shade/gazebos" 5519 class="text-lg font-semibold leading-loose block level-1 p-1 hover:underline" 5520 @keydown="goToMenuLink($event, 'https://www.shelterlogic.com/patio-shade/gazebos')" 5521 aria-label="Gazebos " 5522 tabindex="0" 5523 > 5524 Gazebos </a> 5525 <ul class="z-10 w-full"> 5526 <li class="level-2"> 5527 <a href="https://www.shelterlogic.com/patio-shade/gazebos/hard-top-gazebos" 5528 aria-label="Hard-top Gazebos" 5529 class="level-2 p-1 block text-lg md:text-base hover:underline" 5530 > 5531 Hard-top Gazebos </a> 5532 </li> 5533 <li class="level-2"> 5534 <a href="https://www.shelterlogic.com/patio-shade/gazebos/soft-top-gazebos" 5535 aria-label="Soft-top Gazebos" 5536 class="level-2 p-1 block text-lg md:text-base hover:underline" 5537 > 5538 Soft-top Gazebos </a> 5539 </li> 5540 <li class="level-2"> 5541 <a href="https://www.shelterlogic.com/patio-shade/gazebos/wall-mounted-gazebos" 5542 aria-label="Wall-mounted Gazebos" 5543 class="level-2 p-1 block text-lg md:text-base hover:underline" 5544 > 5545 Wall-mounted Gazebos </a> 5546 </li> 5547 <li class="level-2"> 5548 <a href="https://www.shelterlogic.com/patio-shade/gazebos/grill-gazebos" 5549 aria-label="Grill Gazebos" 5550 class="level-2 p-1 block text-lg md:text-base hover:underline" 5551 > 5552 Grill Gazebos </a> 5553 </li> 5554 <li class="level-2"> 5555 <a href="https://www.shelterlogic.com/patio-shade/gazebos/gazebo-curtains" 5556 aria-label="Gazebo Curtains" 5557 class="level-2 p-1 block text-lg md:text-base hover:underline" 5558 > 5559 Gazebo Curtains </a> 5560 </li> 5561 <li class="level-2"> 5562 <a href="https://www.shelterlogic.com/patio-shade/gazebos/winter-covers" 5563 aria-label="Winter Gazebo Covers" 5564 class="level-2 p-1 block text-lg md:text-base hover:underline" 5565 > 5566 Winter Gazebo Covers </a> 5567 </li> 5568 </ul> 5569 </li> 5570 <li class="level-1 min-w-64"> 5571 <a href="https://www.shelterlogic.com/patio-shade/solariums" 5572 class="block text-lg p-1 font-semibold leading-loose level-1 hover:underline" 5573 aria-label="Solariums" 5574 > 5575 Solariums </a> 5576 <a href="https://www.shelterlogic.com/patio-shade/pergolas" 5577 class="block text-lg p-1 font-semibold leading-loose level-1 hover:underline" 5578 aria-label="Pergolas" 5579 > 5580 Pergolas </a> 5581 <a href="https://www.shelterlogic.com/patio-shade/shade-sails" 5582 class="block text-lg p-1 font-semibold leading-loose level-1 hover:underline" 5583 aria-label="Shade Sails" 5584 > 5585 Shade Sails </a> 5586 <a href="https://www.shelterlogic.com/patio-shade/seating" 5587 class="block text-lg p-1 font-semibold leading-loose level-1 hover:underline" 5588 aria-label="Outdoor Seating " 5589 > 5590 Outdoor Seating </a> 5591 <a href="https://www.shelterlogic.com/patio-shade/canopy-tents" 5592 class="block text-lg p-1 font-semibold leading-loose level-1 hover:underline" 5593 aria-label="Canopy Tents" 5594 > 5595 Canopy Tents </a> 5596 <a href="https://www.shelterlogic.com/backyard-shade/canopy-replacement-covers" 5597 class="block text-lg p-1 font-semibold leading-loose level-1 hover:underline" 5598 aria-label="Canopy Replacement Covers" 5599 > 5600 Canopy Replacement Covers </a> 5601 <a href="https://www.shelterlogic.com/patio-shade/pet-sh
5601ade" 5602 class="block text-lg p-1 font-semibold leading-loose level-1 hover:underline" 5603 aria-label="Pet Shade" 5604 > 5605 Pet Shade </a> 5606 <a href="https://www.shelterlogic.com/backyard-shade/tailgating" 5607 class="block text-lg p-1 font-semibold leading-loose level-1 hover:underline" 5608 aria-label="Tailgating" 5609 > 5610 Tailgating </a> 5611 </li> 5612 </ul> 5613 </div> 5614 5615 </div> 5616 </div> 5617 </div> 5618 <div id="menubar-category-node-1142" 5619 class="group/item level-0 flex items-center first:ml-0 first:pl-0 mx-4 xl:mx-6 5620 border-b-2 border-transparent transition-colors delay-300 duration-300 5621 group hover:border-b-orange focus-within:border-b-orange" 5622 aria-label="ShelterLogic Main Menu" 5623 @mouseover.stop="hoverTopPosition = $event.currentTarget.offsetTop + $event.currentTarget.getBoundingClientRect().height" 5624 @touchstart.prevent.away.debounce.600ms="resetValues('category-node-1142');" 5625 > 5626 <a href="https://www.shelterlogic.com/beach-gear" 5627 @focus="hoverTopPosition = $event.currentTarget.parentNode.offsetTop + $event.currentTarget.parentNode.getBoundingClientRect().height" 5628 @touchstart.prevent="touchDevices($event, 'category-node-1142');" 5629 item-menu="category-node-1142" 5630 title="Beach" 5631 id="menuitem-category-node-1142" 5632 class="menuitem level-0 block py-2.5 level-0 relative after:absolute after:inset-x-0 5633 after:-mx-4 after:xl:-mx-6 after:top-0 after:-bottom-1" 5634 aria-label="Beach" 5635 dblclick="false" 5636 childData="true" 5637 @keydown="goToMenuLink($event, 'https://www.shelterlogic.com/beach-gear')" 5638 tabindex="0" 5639 > 5640 <span class="font-bold text-base text-gray-900 bg-opacity-95">Beach</span> 5641 </a> 5642 <div class="shadow-menu absolute left-0 top-full z-10 w-full bg-white invisible opacity-0 5643 transition-opacity ease-out delay-300 duration-300 group-hover/item:delay-300 5644 group-hover/item:visible group-hover/item:opacity-100 focus-within/item:opacity-100 5645 group-hover/item:pointer-events-auto" 5646 :style="`margin-top: 0; top: ${hoverTopPosition + 1}px;`" 5647 > 5648 <div class="flex justify-between mt-4 mb-8"> 5649 <div class="mx-4 xl:mx-10"> 5650 <ul class="grid flex-1 is-not-cms-block gap-y-4 p-2"> 5651 <li class="level-1 min-w-56 xl:min-w-64"> 5652 <a href="https://www.shelterlogic.com/beach-gear/beach-chairs" 5653 class="text-lg font-semibold leading-loose block level-1 p-1 hover:underline" 5654 @keydown="goToMenuLink($event, 'https://www.shelterlogic.com/beach-gear/beach-chairs')" 5655 aria-label="Beach Chairs" 5656 tabindex="0" 5657 > 5658 Beach Chairs </a> 5659 <ul class="z-10 w-full"> 5660 <li class="level-2"> 5661 <a href="https://www.shelterlogic.com/beach-gear/beach-chairs/backpack-chairs" 5662 aria-label="Backpack Beach Chairs" 5663 class="level-2 p-1 block text-lg md:text-base hover:underline" 5664 > 5665 Backpack Beach Chairs </a> 5666 </li> 5667 <li class="level-2"> 5668 <a href="https://www.shelterlogic.com/beach-gear/beach-chairs/canopy-chairs" 5669 aria-label="Canopy Beach Chairs" 5670 class="level-2 p-1 block text-lg md:text-base hover:underline" 5671 > 5672 Canopy Beach Chairs </a> 5673 </li> 5674 <li class="level-2"> 5675 <a href="https://www.shelterlogic.com/beach-gear/beach-chairs/lounge-chairs" 5676 aria-label="Beach Lounge Chairs" 5677 class="level-2 p-1 block text-lg md:text-base hover:underline" 5678 > 5679 Beach Lounge Chairs </a> 5680 </li> 5681 </ul> 5682 </li> 5683 <li class="level-1 min-w-64"> 5684 <a href="https://www.shelterlogic.com/beach-gear/beach-carts" 5685 class="block text-lg p-1 font-semibold leading-loose level-1 hover:underline" 5686 aria-label="Beach Carts" 5687 > 5688 Beach Carts </a> 5689 <a href="https://www.shelterlogic.com/beach-gear/beach-tents" 5690 class="block text-lg p-1 font-semibold leading-loose level-1 hover:underline" 5691 aria-label="Beach Shade" 5692 > 5693 Beach Shade </a> 5694 <a href="https://www.shelterlogic.com/beach-gear/beach-coolers" 5695 class="block text-lg p-1 font-semibold leading-loose level-1 hover:underline" 5696 aria-label="Beach Coolers" 5697 > 5698 Beach Coolers </a> 5699 <a href="https://www.shelterlogic.com/beach-gear/beach-tables" 5700 class="block text-lg p-1 font-semibold leading-loose level-1 hover:underline" 5701 aria-label="Beach Tables" 5702 > 5703 Beach Tables </a> 5704 <a href="https://www.shelterlogic.com/beach/summer-multipacks" 5705 class="block text-lg p-1 font-semibold leading-loose level-1 hover:underline" 5706 aria-label="Family Packs" 5707 > 5708 Family Packs </a> 5709 </li> 5710 </ul> 5711 </div> 5712 5713 </div> 5714 </div> 5715 </div> 5716 <div id="menubar-category-node-174" 5717 class="group/item level-0 flex items-center first:ml-0 first:pl-0 mx-4 xl:mx-6 5718 border-b-2 border-transparent transition-colors delay-300 duration-300 5719 group hover:border-b-orange focus-within:border-b-orange" 5720 aria-label="ShelterLogic Main Menu" 5721 @mouseover.stop="hoverTopPosition = $event.currentTarget.offsetTop + $event.currentTarget.getBoundingClientRect().height" 5722 @touchstart.prevent.away.debounce.600ms="resetValues('category-node-174');" 5723 > 5724 <a href="https://www.shelterlogic.com/camping-gear" 5725 @focus="hoverTopPosition = $event.currentTarget.parentNode.offsetTop + $event.currentTarget.parentNode.getBoundingClientRect().height" 5726 @touchstart.prevent="touchDevices($event, 'category-node-174');" 5727 item-menu="category-node-174" 5728 title="Camping" 5729 id="menuitem-category-node-174" 5730 class="menuitem level-0 block py-2.5 level-0 relative after:absolute after:inset-x-0 5731 after:-mx-4 after:xl:-mx-6 after:top-0 after:-bottom-1" 5732 aria-label="Camping" 5733 dblclick="false" 5734 childData="true" 5735 @keydown="goToMenuLink($event, 'https://www.shelterlogic.com/camping-gear')" 5736 tabindex="0" 5737 >
5738 <span class="font-bold text-base text-gray-900 bg-opacity-95">Camping</span> 5739 </a> 5740 <div class="shadow-menu absolute left-0 top-full z-10 w-full bg-white invisible opacity-0 5741 transition-opacity ease-out delay-300 duration-300 group-hover/item:delay-300 5742 group-hover/item:visible group-hover/item:opacity-100 focus-within/item:opacity-100 5743 group-hover/item:pointer-events-auto" 5744 :style="`margin-top: 0; top: ${hoverTopPosition + 1}px;`" 5745 > 5746 <div class="flex justify-between mt-4 mb-8"> 5747 <div class="mx-4 xl:mx-10"> 5748 <ul class="grid flex-1 is-not-cms-block gap-y-4 p-2"> 5749 <li class="level-1 min-w-56 xl:min-w-64"> 5750 <a href="https://www.shelterlogic.com/camping-gear/chairs" 5751 class="text-lg font-semibold leading-loose block level-1 p-1 hover:underline" 5752 @keydown="goToMenuLink($event, 'https://www.shelterlogic.com/camping-gear/chairs')" 5753 aria-label="Chairs" 5754 tabindex="0" 5755 > 5756 Chairs </a> 5757 <ul class="z-10 w-full"> 5758 <li class="level-2"> 5759 <a href="https://www.shelterlogic.com/camping-gear/chairs/canopy-chairs" 5760 aria-label="Canopy Chairs" 5761 class="level-2 p-1 block text-lg md:text-base hover:underline" 5762 > 5763 Canopy Chairs </a> 5764 </li> 5765 <li class="level-2"> 5766 <a href="https://www.shelterlogic.com/camping-gear/chairs/swinging-hammock-chairs" 5767 aria-label="Swinging Hammock Chairs" 5768 class="level-2 p-1 block text-lg md:text-base hover:underline" 5769 > 5770 Swinging Hammock Chairs </a> 5771 </li> 5772 <li class="level-2"> 5773 <a href="https://www.shelterlogic.com/camping-gear/chairs/backpack-chairs" 5774 aria-label="Backpack Chairs" 5775 class="level-2 p-1 block text-lg md:text-base hover:underline" 5776 > 5777 Backpack Chairs </a> 5778 </li> 5779 <li class="level-2"> 5780 <a href="https://www.shelterlogic.com/camping-gear/chairs/quad-ch
5780airs" 5781 aria-label="Quad Chairs" 5782 class="level-2 p-1 block text-lg md:text-base hover:underline" 5783 > 5784 Quad Chairs </a> 5785 </li> 5786 </ul> 5787 </li> 5788 <li class="level-1 min-w-64"> 5789 <a href="https://www.shelterlogic.com/camping-gear/camping-coolers" 5790 class="block text-lg p-1 font-semibold leading-loose level-1 hover:underline" 5791 aria-label="Camping Coolers" 5792 > 5793 Camping Coolers </a> 5794 <a href="https://www.shelterlogic.com/camping-gear/camping-cots" 5795 class="block text-lg p-1 font-semibold leading-loose level-1 hover:underline" 5796 aria-label="Camping Cots" 5797 > 5798 Camping Cots </a> 5799 <a href="https://www.shelterlogic.com/camping-gear/tables" 5800 class="block text-lg p-1 font-semibold leading-loose level-1 hover:underline" 5801 aria-label="Tables" 5802 > 5803 Tables </a> 5804 <a href="https://www.shelterlogic.com/camping-gear/pop-up-canopies" 5805 class="block text-lg p-1 font-semibold leading-loose level-1 hover:underline" 5806 aria-label="Pop-Up Canopies" 5807 > 5808 Pop-Up Canopies </a> 5809 <a href="https://www.shelterlogic.com/camping/hammocks" 5810 class="block text-lg p-1 font-semibold leading-loose level-1 hover:underline" 5811 aria-label="Hammocks" 5812 > 5813 Hammocks </a> 5814 </li> 5815 </ul> 5816 </div> 5817 5818 </div> 5819 </div> 5820 </div> 5821 <div id="menubar-category-node-184" 5822 class="group/item level-0 flex items-center first:ml-0 first:pl-0 mx-4 xl:mx-6 5823 border-b-2 border-transparent transition-colors delay-300 duration-300 5824 group hover:border-b-orange focus-within:border-b-orange" 5825 aria-label="ShelterLogic Main Menu" 5826 @mouseover.stop="hoverTopPosition = $event.currentTarget.offsetTop + $event.currentTarget.getBoundingClientRect().height" 5827 @touchstart.prevent.away.debounce.600ms="resetValues('category-node-184');" 5828 > 5829 <a href="https://www.shelterlogic.com/gardening" 5830 @focus="hoverTopPosition = $event.currentTarget.parentNode.offsetTop + $event.currentTarget.parentNode.getBoundingClientRect().height" 5831 @touchstart.prevent="touchDevices($event, 'category-node-184');" 5832 item-menu="category-node-184" 5833 title="Gardening" 5834 id="menuitem-category-node-184" 5835 class="menuitem level-0 block py-2.5 level-0 relative after:absolute after:inset-x-0 5836 after:-mx-4 after:xl:-mx-6 after:top-0 after:-bottom-1" 5837 aria-label="Gardening" 5838 dblclick="false" 5839 childData="true" 5840 @keydown="goToMenuLink($event, 'https://www.shelterlogic.com/gardening')" 5841 tabindex="0" 5842 >
5843 <span class="font-bold text-base text-gray-900 bg-opacity-95">Gardening</span> 5844 </a> 5845 <div class="shadow-menu absolute left-0 top-full z-10 w-full bg-white invisible opacity-0 5846 transition-opacity ease-out delay-300 duration-300 group-hover/item:delay-300 5847 group-hover/item:visible group-hover/item:opacity-100 focus-within/item:opacity-100 5848 group-hover/item:pointer-events-auto" 5849 :style="`margin-top: 0; top: ${hoverTopPosition + 1}px;`" 5850 > 5851 <div class="flex justify-between mt-4 mb-8"> 5852 <div class="mx-4 xl:mx-10"> 5853 <ul class="grid flex-1 is-not-cms-block gap-y-4 p-2"> 5854 <li class="level-1 min-w-56 xl:min-w-64"> 5855 <a href="https://www.shelterlogic.com/gardening/greenhouses" 5856 class="text-lg font-semibold leading-loose block level-1 p-1 hover:underline" 5857 @keydown="goToMenuLink($event, 'https://www.shelterlogic.com/gardening/greenhouses')" 5858 aria-label="Greenhouses" 5859 tabindex="0" 5860 > 5861 Greenhouses </a> 5862 <ul class="z-10 w-full"> 5863 <li class="level-2"> 5864 <a href="https://www.shelterlogic.com/gardening/greenhouses/high-tunnel-greenhouses" 5865 aria-label="High Tunnel Greenhouses" 5866 class="level-2 p-1 block text-lg md:text-base hover:underline" 5867 > 5868 High Tunnel Greenhouses </a> 5869 </li> 5870 <li class="level-2"> 5871 <a href="https://www.shelterlogic.com/gardening/greenhouses/portable-greenhouses" 5872 aria-label="Portable Greenhouses" 5873 class="level-2 p-1 block text-lg md:text-base hover:underline" 5874 > 5875 Portable Greenhouses </a> 5876 </li> 5877 <li class="level-2"> 5878 <a href="https://www.shelterlogic.com/gardening/greenhouses/patio-greenhouses" 5879 aria-label="Patio Greenhouses" 5880 class="level-2 p-1 block text-lg md:text-base hover:underline" 5881 > 5882 Patio Greenhouses </a> 5883 </li> 5884 <li class="level-2"> 5885 <a href="https://www.shelterlogic.com/gardening/greenhouses/wood-greenhouses" 5886 aria-label="Wood Greenhouses" 5887 class="level-2 p-1 block text-lg md:text-base hover:underline" 5888 > 5889 Wood Greenhouses </a> 5890 </li> 5891 <li class="level-2"> 5892 <a href="https://www.shelterlogic.com/gardening/greenhouses/replacement-covers" 5893 aria-label="Replacement Covers" 5894 class="level-2 p-1 block text-lg md:text-base hover:underline" 5895 > 5896 Replacement Covers </a> 5897 </li> 5898 </ul> 5899 </li> 5900 <li class="level-1 min-w-64"> 5901 <a href="https://www.shelterlogic.com/gardening/garden-sheds" 5902 class="block text-lg p-1 font-semibold leading-loose level-1 hover:underline" 5903 aria-label="Garden Sheds" 5904 > 5905 Garden Sheds </a> 5906 <a href="https://www.shelterlogic.com/gardening/raised-beds" 5907 class="block text-lg p-1 font-semibold leading-loose level-1 hover:underline" 5908 aria-label="Raised Beds " 5909 > 5910 Raised Beds </a> 5911 <a href="https://www.shelterlogic.com/gardening/accessories" 5912 class="block text-lg p-1 font-semibold leading-loose level-1 hover:underline" 5913 aria-label="Accessories" 5914 > 5915 Accessories </a> 5916 </li> 5917 </ul> 5918 </div> 5919 5920 </div> 5921 </div> 5922 </div> 5923 <div id="menubar-category-node-1152" 5924 class="group/item level-0 flex items-center first:ml-0 first:pl-0 mx-4 xl:mx-6 5925 border-b-2 border-transparent transition-colors delay-300 duration-300 5926 group hover:border-b-orange focus-within:border-b-orange" 5927 aria-label="ShelterLogic Main Menu" 5928 @mouseover.stop="hoverTopPosition = $event.currentTarget.offsetTop + $event.currentTarget.getBoundingClientRect().height" 5929 @touchstart.prevent.away.debounce.600ms="resetValues('category-node-1152');" 5930 > 5931 <a href="https://www.shelterlogic.com/commercial-grade-products" 5932 @focus="hoverTopPosition = $event.currentTarget.parentNode.offsetTop + $event.currentTarget.parentNode.getBoundingClientRect().height" 5933 @touchstart.prevent="touchDevices($event, 'category-node-1152');" 5934 item-menu="category-node-1152" 5935 title="Commercial Grade" 5936 id="menuitem-category-node-1152" 5937 class="menuitem level-0 block py-2.5 level-0 relative after:absolute after:inset-x-0 5938 after:-mx-4 after:xl:-mx-6 after:top-0 after:-bottom-1" 5939 aria-label="Commercial Grade" 5940 dblclick="false" 5941 childData="true" 5942 @keydown="goToMenuLink($event, 'https://www.shelterlogic.com/commercial-grade-products')" 5943 tabindex="0" 5944 >
5945 <span class="font-bold text-base text-gray-900 bg-opacity-95">Commercial Grade</span> 5946 </a> 5947 <div class="shadow-menu absolute left-0 top-full z-10 w-full bg-white invisible opacity-0 5948 transition-opacity ease-out delay-300 duration-300 group-hover/item:delay-300 5949 group-hover/item:visible group-hover/item:opacity-100 focus-within/item:opacity-100 5950 group-hover/item:pointer-events-auto" 5951 :style="`margin-top: 0; top: ${hoverTopPosition + 1}px;`" 5952 > 5953 <div class="flex justify-between mt-4 mb-8"> 5954 <div class="mx-4 xl:mx-10"> 5955 <ul class="grid flex-1 is-not-cms-block gap-y-4 p-2"> 5956 <li class="level-1 min-w-56 xl:min-w-64"> 5957 <a href="https://www.shelterlogic.com/commercial-grade-products/heavy-duty-shelters" 5958 class="text-lg font-semibold leading-loose block level-1 p-1 hover:underline" 5959 @keydown="goToMenuLink($event, 'https://www.shelterlogic.com/commercial-grade-products/heavy-duty-shelters')" 5960 aria-label="Heavy Duty Shelters" 5961 tabindex="0" 5962 > 5963 Heavy Duty Shelters </a> 5964 <ul class="z-10 w-full"> 5965 <li class="level-2"> 5966 <a href="https://www.shelterlogic.com/outdoor-storage/garages/sheltertube" 5967 aria-label="ShelterTube®" 5968 class="level-2 p-1 block text-lg md:text-base hover:underline" 5969 data-linked-category="true" data-nav-category-type="linked" data-linked-category-id="72" > 5970 ShelterTube® </a> 5971 </li> 5972 <li class="level-2"> 5973 <a href="https://www.shelterlogic.com/outdoor-storage/garages/sheltertech" 5974 aria-label="ShelterTech®" 5975 class="level-2 p-1 block text-lg md:text-base hover:underline" 5976 data-linked-category="true" data-nav-category-type="linked" data-linked-category-id="1038" > 5977 ShelterTech® </a> 5978 </li> 5979 <li class="level-2"> 5980 <a href="https://www.shelterlogic.com/outdoor-storage/carports/steelpeak" 5981 aria-label="STEELPEAK™" 5982 class="level-2 p-1 block text-lg md:text-base hover:underline" 5983 data-linked-category="true" data-nav-category-type="linked" data-linked-category-id="1534" > 5984 STEELPEAK™ </a> 5985 </li> 5986 </ul> 5987 </li> 5988 <li class="level-1 min-w-64"> 5989 <a href="https://www.shelterlogic.com/commercial-grade-products/farming-storage-shade" 5990 class="block text-lg p-1 font-semibold leading-loose level-1 hover:underline" 5991 aria-label="Farming Storage and Shade" 5992 > 5993 Farming Storage and Shade </a> 5994 <a href="https://www.shelterlogic.com/commercial-grade-products/baseball-field-tarps" 5995 class="block text-lg p-1 font-semibold leading-loose level-1 hover:underline" 5996 aria-label="Athletic Field Tarps" 5997 > 5998 Athletic Field Tarps </a> 5999 <a href="https://www.shelterlogic.com/commercial-grade-products/truss-buildings" 6000 class="block text-lg p-1 font-semibold leading-loose level-1 hover:underline" 6001 aria-label="Truss Buildings" 6002 > 6003 Truss Buildings </a> 6004 </li> 6005 </ul> 6006 </div> 6007 6008 </div> 6009 </div> 6010 </div> 6011 <div id="menubar-category-node-1116" 6012 class="group/item level-0 flex items-center first:ml-0 first:pl-0 mx-4 xl:mx-6 6013 border-b-2 border-transparent transition-colors delay-300 duration-300 6014 group hover:border-b-orange focus-within:border-b-orange" 6015 aria-label="ShelterLogic Main Menu" 6016 @mouseover.stop="hoverTopPosition = $event.currentTarget.offsetTop + $event.currentTarget.getBoundingClientRect().height" 6017 @touchstart.prevent.away.debounce.600ms="resetValues('category-node-1116');" 6018 > 6019 <a href="https://www.shelterlogic.com/deals" 6020 @focus="hoverTopPosition = $event.currentTarget.parentNode.offsetTop + $event.currentTarget.parentNode.getBoundingClientRect().height" 6021 @touchstart.prevent="touchDevices($event, 'category-node-1116');" 6022 item-menu="category-node-1116" 6023 title="Deals" 6024 id="menuitem-category-node-1116" 6025 class="menuitem level-0 block py-2.5 level-0 relative after:absolute after:inset-x-0 6026 after:-mx-4 after:xl:-mx-6 after:top-0 after:-bottom-1" 6027 aria-label="Deals" 6028 dblclick="false" 6029 childData="true" 6030 @keydown="goToMenuLink($event, 'https://www.shelterlogic.com/deals')" 6031 tabindex="0" 6032 >
6033 <span class="font-bold text-base text-gray-900 bg-opacity-95">Deals</span> 6034 </a> 6035 <div class="shadow-menu absolute left-0 top-full z-10 w-full bg-white invisible opacity-0 6036 transition-opacity ease-out delay-300 duration-300 group-hover/item:delay-300 6037 group-hover/item:visible group-hover/item:opacity-100 focus-within/item:opacity-100 6038 group-hover/item:pointer-events-auto" 6039 :style="`margin-top: 0; top: ${hoverTopPosition + 1}px;`" 6040 > 6041 <div class="flex justify-between mt-4 mb-8"> 6042 <div class="mx-4 xl:mx-10"> 6043 <ul class="grid flex-1 is-not-cms-block gap-y-4 p-2"> 6044 <li class="level-1 min-w-64"> 6045 <a href="https://www.shelterlogic.com/deals/sale" 6046 class="block text-lg p-1 font-semibold leading-loose level-1 hover:underline" 6047 aria-label="Sale" 6048 > 6049 Sale </a> 6050 <a href="https://www.shelterlogic.com/deals/multipacks" 6051 class="block text-lg p-1 font-semibold leading-loose level-1 hover:underline" 6052 aria-label="Multipacks" 6053 > 6054 Multipacks </a> 6055 <a href="https://www.shelterlogic.com/deals/factory-outlet" 6056 class="block text-lg p-1 font-semibold leading-loose level-1 hover:underline" 6057 aria-label="Factory Outlet " 6058 > 6059 Factory Outlet </a> 6060 <a href="https://www.shelterlogic.com/deals/coupons" 6061 class="block text-lg p-1 font-semibold leading-loose level-1 hover:underline" 6062 aria-label="Coupons" 6063 > 6064 Coupons </a> 6065 </li> 6066 </ul> 6067 </div> 6068 6069 </div> 6070 </div> 6071 </div> 6072 </nav> 6073 </div> 6074 </div> 6075</div>
6076<script> 6077 'use strict'; 6078 6079 const initHeaderNavigation = () => { 6080 return { 6081 mobilePanelActiveId: null, 6082 mobilePanelActiveIdSub: null, 6083 mobilePanelActiveIdSubSub: null, 6084 hoverPanelActiveId: null, 6085 open: false, 6086 hoverTopPosition: '100%', 6087 headerTopHeight: null, 6088 hideParent: false, 6089 hideParentSub: false, 6090 setActiveMenuMobile(menuNode) { 6091 this.$watch('open', () => this.headerTopHeight = document.querySelector('.header-top').offsetHeight); 6092 6093 Array.from(menuNode.querySelectorAll('a')).filter(link => { 6094 return link.href === window.location.href.split('?')[0] 6095 && link.dataset.linkedCategory !== 'true'; 6096 }).map(item => { 6097 item.classList.add('underline'); 6098 item.closest('div.level-0') && 6099 item.closest('div.level-0').querySelector('a.level-0').classList.add('underline'); 6100 }); 6101 },
6102 setActiveMenuDesktop(menuNode) { 6103 Array.from(menuNode.querySelectorAll('a')).filter(link => { 6104 return link.href === window.location.href.split('?')[0] 6105 && link.dataset.linkedCategory !== 'true'; 6106 }).map(item => { 6107 if (!item.classList.contains('level-0')) { 6108 item.classList.add('border-grey-62'); 6109 } 6110 item.closest('div.level-0').classList.add('border-orange'); 6111 item.closest('div.level-0') && 6112 item.closest('div.level-0').classList.remove('border-transparent'); 6113 }); 6114 }, 6115 goToMenuLink(event, url) { 6116 let type = event.type; 6117 if ((type === 'keydown' && event.keyCode === 13)) { 6118 window.location.href = url; 6119 6120 event.preventDefault(); 6121 event.stopPropagation(); 6122 } 6123 }, 6124 touchDevices(event, index) { 6125 let target = event ? event.currentTarget : ''; 6126 this.resetValues(index); 6127 6128 if (target.getAttribute('childData') && target.getAttribute('childData') === 'true' && target.getAttribute('dblclick') === 'false') { 6129 event.preventDefault(); 6130 event.stopPropagation(); 6131 target.setAttribute('dblclick', new Date().getTime()); 6132 target.parentNode.querySelector('.shadow-menu').style.opacity = '1'; 6133 target.parentNode.querySelector('.shadow-menu').style.visibility = 'visible'; 6134 } else if (target.getAttribute('href')) { 6135 window.location = target.getAttribute('href'); 6136 } 6137 }, 6138 resetValues(index) { 6139 let dblClickAll = document.querySelectorAll('[childData="true"]'); 6140 6141 dblClickAll.forEach(el => { 6142 if (el.getAttribute('item-menu') !== index) { 6143 el.setAttribute('dblclick', 'false'); 6144 } 6145 el.nextElementSibling.style.opacity = '0'; 6146 el.nextElementSibling.style.visibility = 'hidden'; 6147 }); 6148 }, 6149 6150 setMobileActiveSubId(e) { 6151 let index = e.currentTarget.getAttribute('data-index') || 0; 6152 this.mobilePanelActiveIdSub = this.mobilePanelActiveIdSub === index ? 6153 0 : index; 6154 this.hideParent = true; 6155 this.mobilePanelActiveIdSubSub = 0; 6156 this.hideParentSub = 0; 6157 }, 6158 6159 resetMobileActiveTab() { 6160 this.mobilePanelActiveIdSub = 0; 6161 this.hideParent = 0; 6162 this.mobilePanelActiveIdSubSub = 0; 6163 this.hideParentSub = 0; 6164 }, 6165 6166 isHideParentSub() { 6167 return { 6168 'hidden' : this.hideParentSub 6169 } 6170 }, 6171 6172 setThirdLevelActiveSubId() { 6173 const index2 = this.$el.dataset.index2; 6174 const index3 = this.$el.dataset.index3; 6175 6176 this.mobilePanelActiveIdSubSub = this.mobilePanelActiveIdSubSub === `${index2}-${index3}` ? 6177 0 : `${index2}-${index3}`; this.hideParentSub = true; 6178 }, 6179 6180 getThirdLevelSubMenuClasses() { 6181 const index2 = this.$el.dataset.index2; 6182 const index3 = this.$el.dataset.index3; 6183 return { 6184 'translate-x-full' : this.mobilePanelActiveIdSubSub !== `${index2}-${index3}`, 6185 'translate-x-0' : this.mobilePanelActiveIdSubSub === `${index2}-${index3}`, 6186 } 6187 }, 6188 6189 resetForthLevelActiveSubId() { 6190 this.mobilePanelActiveIdSubSub = 0; 6191 this.hideParentSub = 0; 6192 }, 6193 } 6194 } 6195 6196 window.addEventListener('alpine:init', () => Alpine.data('initQtyToggler', initHeaderNavigation), {once: true}) 6197</script>
6197 6198 </div> 6199 6200 <div class="content-none flex order-1 lg:w-5.5/12 lg:ml-auto" 6201 @click.outside="searchOpen = false" 6202 > 6203 <div class="hidden py-2 px-3 lg:px-0 w-full lg:block absolute left-0 top-full right-0 lg:relative 6204 z-20 text-black bg-white lg:bg-transparent" 6205 x-show="true" 6206 :class="{ 'block': searchOpen, 'hidden': !searchOpen }" 6207 @keydown.escape=" 6208 searchOpen = false; 6209 $refs.searchButton.focus(); 6210 " 6211 > 6212
6213<script> 6214 function initMiniSearchComponent() { 6215 "use strict"; 6216 6217 return { 6218 show:false, 6219 formSelector: "#search_mini_form", 6220 url: "https://www.shelterlogic.com/search/ajax/suggest", 6221 destinationSelector: "#search_autocomplete", 6222 templates: {"term":{"title":"Search terms","template":"Hyva_SmileElasticsuite::core\/autocomplete\/term.phtml"},"product":{"title":"Products","template":"Hyva_SmileElasticsuite::catalog\/autocomplete\/product.phtml"},"category":{"title":"Categories","template":"Hyva_SmileElasticsuite::catalog\/autocomplete\/category.phtml"},"product_attribute":{"title":"Attributes","template":"Hyva_SmileElasticsuite::catalog\/autocomplete\/product_attribute.phtml","titleRenderer":"renderEsAutocompleteTitleAttribute"},"cms_page":{"title":"Cms page","template":"Hyva_SmileElasticsuite::cms-search\/autocomplete\/cms.phtml"}}, 6223 priceFormat: {"pattern":"$%s","precision":2,"requiredPrecision":2,"decimalSymbol":".","groupSymbol":",","groupLength":3,"integerRequired":false}, 6224 minSearchLength: 2, 6225 searchResultsByType: {}, 6226 currentRequest: null, 6227 processing: false, 6228 noResult: false, 6229 noResultMsg: "No result found!", 6230 searchInputFocus: false, 6231 searchInputValue: '', 6232 6233 /** 6234 * Get search results. 6235 */ 6236 getSearchResults: function () { 6237 let value = this.searchInputValue = document.querySelector('#search').value.trim(); 6238 this.processing = true; 6239 6240 if (value.length < parseInt(this.minSearchLength, 10) || !value.length) { 6241 this.searchResultsByType = []; 6242 this.processing = this.show = false; 6243 6244 return false; 6245 } 6246 6247 let url = this.url + '?' + new URLSearchParams({ 6248 q: document.querySelector('#search').value, 6249 _: Date.now() 6250 }).toString(); 6251 6252 if (this.currentRequest !== null) { 6253 this.currentRequest.abort(); 6254 } 6255 this.currentRequest = new AbortController(); 6256 6257 fetch(url, { 6258 method: 'GET', 6259 signal: this.currentRequest.signal, 6260 }).then((response) => { 6261 if (response.ok) { 6262 return response.json(); 6263 } 6264 }).then((data) => { 6265 let self = this; 6266 this.processing = this.noResult = false;
6267 this.show = true; 6268 6269 const waitResult = new Promise((resolve) => { 6270 resolve(self.searchResultsByType = data.reduce((acc, result) => { 6271 if (! acc[result.type]) acc[result.type] = []; 6272 acc[result.type].push(result); 6273 return acc; 6274 }, {})); 6275 }); 6276 6277 waitResult.then((result) => self.noResult = result); 6278 }).catch((error) => {}); 6279 }, 6280 } 6281 } 6282</script>
6282 6283<div x-data="initMiniSearchComponent()" @click.outside="show = false" aria-labelledby="menu-search-icon" tabindex="-1"> 6284 <form class="form minisearch relative" 6285 id="search_mini_form" 6286 action="https://www.shelterlogic.com/catalogsearch/result" 6287 method="get" 6288 role="search" 6289 > 6290 <div class="relative bg-white rounded-none lg:rounded-full" 6291 aria-label="Search entire store here..." 6292 > 6293 <label class="font-normal text-base capitalize absolute m-0 left-3.5 inset-y-0 flex items-center text-grey-63" 6294 for="search" 6295 x-show="!searchInputFocus && !document.querySelector('#search').value.trim()" 6296 @click.prevent="const searchInput = document.querySelector('#search'); 6297 searchInput.focus(); 6298 searchInput.select();"> 6299 Search </label> 6300 <input id="search" 6301 x-on:input.debounce="getSearchResults()" 6302 x-ref="searchInput" 6303 type="search" 6304 class="border-gray-300 focus:ring-orange rounded-none lg:rounded-full w-full pl-5 pr-10 py-2 6305 leading-normal transition appearance-none text-grey-800 focus:outline-none focus:border-orange 6306 text-base" 6307 autocapitalize="off" 6308 autocomplete="off" 6309 aria-label="" 6310 :aria-label="searchInputValue" 6311 name="q" 6312 value="" 6313 maxlength="128" 6314 aria-autocomplete="list" 6315 aria-owns="search_autocomplete" 6316 aria-describedby="search-instruction" 6317 aria-description="Search results will appear below" 6318 required="required" 6319 @focus.prevent="searchInputFocus = true" 6320 @blur.prevent="searchInputFocus = false" 6321 /> 6322 <template x-if="processing"> 6323 <div class="rounded-full w-8 h-8 absolute z-50 top-[5px] right-2.5 flex items-center 6324 justify-center bg-white" 6325 > 6326 <svg class="m-auto animate-spin h-5 w-5 text-orange" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"> 6327 <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle> 6328 <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path> 6329 </svg> 6330 </div> 6331 </template> 6332 <!--Search Icon--> 6333 <button type="submit" 6334 class="absolute inset-y-0 right-0 pr-4 flex items-center" 6335 aria-label="Do search" 6336 title="Do search" 6337 > 6338 <span class="sr-only"> 6339 Do search </span> 6340 <span class="text-grey-63"> 6341 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="20" height="20" role="img"> 6342 <path stroke-linecap="round" stroke-linejoin="round" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"/> 6343<title>search</title></svg> 6344 </span> 6345 </button> 6346 </div> 6347 <div id="search_autocomplete" 6348 class="search-autocomplete absolute w-full" 6349 :class="{'h-[365px] md:h-auto' : !!noResult && Object.values(searchResultsByType).length}" 6350 x-show="show" 6351 style="display: none;" 6352 :aria-expanded="show" 6353 aria-label="ShelterLogic Group Product(s)" 6354 role="listbox" 6355 tabindex="0" 6356 > 6357 <div class="p-2 h-full overflow-y-scroll md:overflow-y-auto relative top-px pt-6 bg-white border border-t-0 6358 border-solid border-gray-300 z-50 w-full grid grid-cols-1" 6359 :class="{'md:grid-cols-2' : Object.values(searchResultsByType).length === 2, 6360 'md:grid-cols-3' : Object.values(searchResultsByType).length === 3, 6361 'md:grid-cols-3 lg:grid-cols-4' : Object.values(searchResultsByType).length === 4}" 6362 > 6363 <div role="alert" 6364 class="sr-only" 6365 :text="(searchResultsByType?.product?.length || 0) + (searchResultsByType?.category?.length || 0)" 6366 > 6367 </div>
6368 <span id="search-instruction" 6369 class="sr-only" 6370 > 6371 When autocomplete results are available use up and down arrows to review and enter to select. Touch device users, explore by touch or with swipe gestures. </span> 6372 <template x-for="searchResultByType in Object.values(searchResultsByType)"> 6373 <div> 6374 <template x-if="searchResultByType.hasOwnProperty(0) && templates[searchResultByType[0].type].title && templates[searchResultByType[0].type].titleRenderer === undefined"> 6375 <h2 class="text-16 font-bold pt-2 pl-2" 6376 x-text="templates[searchResultByType[0].type].title" 6377 ></h2> 6378 </template> 6379 <template x-if="searchResultByType.hasOwnProperty(0) && templates[searchResultByType[0].type].titleRenderer !== undefined"> 6380 <h2 class="text-16 font-bold pt-2 pl-2" 6381 x-text="window[templates[searchResultByType[0].type].titleRenderer](searchResultByType)" 6382 ></h2> 6383 </template> 6384 <template x-for="searchResult in searchResultByType"> 6385 <div role="option" class="hover:bg-gray-100"> 6386 <template x-if="searchResult.type == 'term'"><a class="w-full block p-2" x-bind:href="'https://www.shelterlogic.com/catalogsearch/result?q=' + searchResult.title" :title="searchResult.title"><span class="text-sm" x-text="searchResult.title"></span> <span class="text-sm" x-text="'(' + searchResult.num_results + ')'"></span></a></template> 6387<template x-if="searchResult.type == 'product'"> 6388 <a class="w-full block" role="link" :href="searchResult.url" :title="searchResult.title"> 6389 <div class="grid grid-cols-4 gap-4 p-3"> 6390 <div class="text-center"> 6391 <img class="inline-block" 6392 :src="searchResult.image" 6393 :title="searchResult.title" 6394 width="55" 6395 height="55" 6396 loading="lazy" 6397 /> 6398 </div> 6399 <div class="col-span-3"> 6400 <span class="text-sm" x-html="searchResult.title"></span> 6401 <span class="text-sm font-bold" x-html="searchResult.price"></span> 6402 </div> 6403 </div> 6404 </a> 6405</template> <template x-if="searchResult.type == 'category'"><a class="w-full block p-2" :href="searchResult.url" :title="searchResult.title"><span class="text-sm italic block text-gray-500" x-text="searchResult.breadcrumb.join(' > ').concat(' > ')"></span> <span class="text-sm" x-text="searchResult.title"></span></a></template> <template x-if="searchResult.type == 'product_attribute'"><a class="w-full block p-2" :href="searchResult.url" :title="searchResult.title"><span class="text-sm" x-text="searchResult.title"></span> <span class="text-xs uppercase text-gray-500" x-text="searchResult.attribute_label" style="vertical-align: super;"></span></a></template>
6405<script> 6406 function renderEsAutocompleteTitleAttribute(data) 6407 { 6408 data = data.filter(function(item) { 6409 return item.type === 'product_attribute'; 6410 }).map(function(item) { 6411 return item['attribute_label'] 6412 }).reduce(function(prev, item) { 6413 if (item in prev) { 6414 prev[item]++; 6415 } else { 6416 prev[item] = 1; 6417 } 6418 return prev; 6419 }, {}); 6420 6421 data = Object.entries(data).sort(function(item1, item2) { 6422 return item2[1] - item1[1] 6423 }).map(function(item) {return item[0]}); 6424 6425 if (data.length > 2) { 6426 data = data.slice(0, 2); 6427 data.push('...'); 6428 } 6429 6430 return data.join(', '); 6431 }</script>
6431 <template x-if="searchResult.type == 'cms_page'"><a class="w-full block p-2" :href="searchResult.url" :title="searchResult.title"><span class="text-sm" x-text="searchResult.title"></span></a></template> </div> 6432 </template> 6433 </div> 6434 </template> 6435 <template x-if="noResult && !Object.values(searchResultsByType).length"> 6436 <div class="font-bold p-2 pt-0 text-center" 6437 x-text="noResultMsg" 6438 ></div> 6439 </template> 6440 </div> 6441 </div> 6442 </form> 6443</div> </div> 6444 6445 <!--Search Icon--> 6446 <button id="menu-search-icon" 6447 class="ml-2 xss:ml-6 lg:hidden inline-block no-underline" 6448 @click.prevent=" 6449 searchOpen = !searchOpen; 6450 $dispatch('search-open'); 6451 " 6452 aria-label="Toggle search form" 6453 aria-haspopup="true" 6454 :aria-expanded="searchOpen" 6455 x-ref="searchButton" 6456 tabindex="0" 6457 > 6458 6459 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="text-white st-1" width="26" height="26" aria-hidden="true"> 6460 <path fill-rule="evenodd" d="M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z" clip-rule="evenodd"/> 6461</svg> 6462 </button> 6463 </div> 6464 <div class="w-auto lg:w-3/12 order-2 flex justify-end"> 6465 <div class="content-none text-sm flex items-center order-2 justify-end"> 6466 <a id="compare-link" 6467 class="content-none ml-1 md:ml-0 relative hidden lg:mr-6 xl:mr-14 flex flex-col items-center text-white no-underline" 6468 :class="{ 'hidden': !(itemCount > 0) }" 6469 href="https://www.shelterlogic.com/catalog/product_compare/index" 6470 title="Compare Products" 6471 x-data="initCompareHeader()" 6472 @private-content-loaded.window="receiveCompareData($event.detail.data)"> 6473 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="fill-current hover:text-orange-lighter text-orange" width="25" height="25" role="img"> 6474 <path fill-rule="evenodd" d="M10 2a1 1 0 011 1v1.323l3.954 1.582 1.599-.8a1 1 0 01.894 1.79l-1.233.616 1.738 5.42a1 1 0 01-.285 1.05A3.989 3.989 0 0115 15a3.989 3.989 0 01-2.667-1.019 1 1 0 01-.285-1.05l1.715-5.349L11 6.477V16h2a1 1 0 110 2H7a1 1 0 110-2h2V6.477L6.237 7.582l1.715 5.349a1 1 0 01-.285 1.05A3.989 3.989 0 015 15a3.989 3.989 0 01-2.667-1.019 1 1 0 01-.285-1.05l1.738-5.42-1.233-.617a1 1 0 01.894-1.788l1.599.799L9 4.323V3a1 1 0 011-1zm-5 8.274l-.818 2.552c.25.112.526.174.818.174.292 0 .569-.062.818-.174L5 10.274zm10 0l-.818 2.552c.25.112.526.174.818.174.292 0 .569-.062.818-.174L15 10.274z" clip-rule="evenodd"/> 6475<title>scale</title></svg> 6476 6477 <span class="sr-only lg:not-sr-only"> 6478 Items </span> 6479 6480 <span class="absolute top-0 right-0 h-5 px-2 py-1 -mt-5 -mr-4 text-xs font-semibold 6481 leading-none text-center text-whiteSmoke uppercase transform -translate-x-1 6482 translate-y-1/2 bg-orange rounded-full"> 6483 <span x-text="itemCount"></span> 6484 <span x-show="itemCount === 1" class="sr-only"> 6485 item </span> 6486 <span x-show="itemCount > 1" class="sr-only"> 6487 items </span> 6488 </span> 6489 </a> 6490 6491 <!-- BLOCK header.customer --> 6492<div 6493 class="relative inline-block ml-1 lg:ml-0" 6494 x-data="{ open: false }" 6495 @keyup.escape="open = false" 6496 @click.outside="open = false" 6497> 6498 <button 6499 type="button" 6500 id="customer-menu" 6501 class="flex flex-col items-center text-white no-underline rounded-full cursor-pointer" 6502 @click="open = !open" 6503 :aria-expanded="open ? 'true' : 'false'" 6504 :aria-pressed="open" 6505 role="button" 6506 tabindex="0" 6507 aria-label="Sign In" 6508 aria-haspopup="true" 6509 title="Sign In" 6510 >
6511 <span class="flex items-center justify-center justify-center w-6 h-6 bg-orange rounded-full bg-container-lighter"> 6512 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="fill-current text-grey" width="17" height="17" aria-hidden="true"> 6513 <path stroke-linecap="round" stroke-linejoin="round" d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"/> 6514</svg> 6515 </span> 6516 <span class="hidden lg:block hover:text-orange"> 6517 Sign In </span> 6518 </button> 6519 <nav 6520 class=" 6521 absolute right-0 z-50 w-40 py-2 mt-2 -mr-4 px-1 overflow-auto origin-top-right rounded-sm 6522 shadow-lg sm:w-48 lg:mt-3 bg-container-lighter 6523 " 6524 x-cloak 6525 x-show="open" 6526 aria-labelledby="customer-menu" 6527 > 6528 6529<a id="customer.header.sign.in.link" 6530 class="block px-4 py-2 lg:px-5 lg:py-2 hover:bg-gray-100" 6531 onclick="hyva.setCookie && hyva.setCookie( 6532 'login_redirect', 6533 window.location.href, 6534 1 6535 )" 6536 href="https://www.shelterlogic.com/customer/account/index" 6537 title="Sign In" 6538> 6539 Sign In</a> 6540 <a id="customer.header.register.link" 6541 class="block px-4 py-2 lg:px-5 lg:py-2 hover:bg-gray-100" 6542 href="https://www.shelterlogic.com/customer/account/create" 6543 title="Create an Account" 6544 > 6545 Create an Account </a> 6546 </nav> 6547</div><!-- /BLOCK header.customer --> 6548 <button 6549 id="menu-cart-icon" 6550 type="button" 6551 class="relative flex flex-col items-center ml-2 xss:ml-6 lg:ml-8 xl:ml-18 no-underline text-white cursor-pointer" 6552 x-ref="cartButton" 6553 :aria-disabled="isCartEmpty()" 6554 title="Cart" 6555 :title="`${'Cart'} ${cart.summary_count}`" 6556 @click.prevent.stop="() => { 6557 $dispatch('toggle-cart', { isOpen: true }) 6558 }" 6559 @toggle-cart.window="toggleCart($event)" 6560 :aria-expanded="isCartOpen" 6561 aria-haspopup="dialog" 6562 :aria-label="`${'Cart'} ${cart.summary_count}`" 6563 > 6564 <span 6565 class="sr-only label" 6566 x-text="` 6567 Toggle minicart, 6568 ${isCartEmpty() ? 6569 'Cart is empty' : 6570 hyva.str( 6571 'You have %1 product%2 in your cart.', 6572 cart.summary_count, 6573 cart.summary_count === 1 ? '' : 's' 6574 )}` 6575 " 6576 > 6577 </span> 6578 6579 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="fill-current hover:text-orange-lighter text-orange" width="25" height="25" role="img"> 6580 <path d="M3 1a1 1 0 000 2h1.22l.305 1.222a.997.997 0 00.01.042l1.358 5.43-.893.892C3.74 11.846 4.632 14 6.414 14H15a1 1 0 000-2H6.414l1-1H14a1 1 0 00.894-.553l3-6A1 1 0 0017 3H6.28l-.31-1.243A1 1 0 005 1H3zM16 16.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM6.5 18a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"/> 6581<title>shopping-cart</title></svg> 6582 <span class="hidden lg:block text-white hover:text-orange">Cart</span> 6583 6584 <span 6585 x-text="cart.summary_count" 6586 x-show="!isCartEmpty()" 6587 x-cloak 6588 class="absolute top-0 right-0 h-5 px-2 py-1 -mt-5 -mr-4 text-xs font-semibold 6589 leading-none text-center !text-grey uppercase transform -translate-x-1 6590 translate-y-1/2 rounded-full bg-orange" 6591 aria-hidden="true" 6592 ></span> 6593 </button> 6594 </div> 6595 </div> 6596 </div> 6597
6598 <!--Cart Drawer--> 6599
6600<script> 6601 function initCartDrawer() { 6602 return { 6603 open: false, 6604 isLoading: false, 6605 cart: {}, 6606 extraActions: null, 6607 maxItemsToDisplay: 10, 6608 itemsCount: 0, 6609 createQtyPlusProductName: null, 6610 getData(data) { 6611 if (data.cart) { 6612 this.cart = data.cart; 6613 this.itemsCount = data.cart.items && data.cart.items.length || 0; 6614 this.extraActions = this.cart.extra_actions; 6615 Alpine.store('extraActions', this.cart.extra_actions); 6616 6617 this.setCartItems(); 6618 } 6619 this.isLoading = false; 6620 }, 6621 cartItems: [], 6622 getItemCountTitle() { 6623 return hyva.strf('\u00250\u0020of\u0020\u00251\u0020products\u0020in\u0020cart\u0020displayed', this.maxItemsToDisplay, this.itemsCount) 6624 }, 6625 getTotalItemsTitle() { 6626 return this.itemsCount > 1 6627 ? hyva.strf('\u00250\u0020Items', this.itemsCount) 6628 : hyva.strf('\u00250\u0020Item', this.itemsCount); 6629 }, 6630 setCartItems() { 6631 this.cartItems = this.cart.items && this.cart.items.sort((a, b) => b.item_id - a.item_id) || []; 6632 6633 if (this.maxItemsToDisplay > 0) { 6634 this.cartItems = this.cartItems.slice(0, parseInt(this.maxItemsToDisplay, 10)); 6635 } 6636 }, 6637 updateItemQty(form) { 6638 this.isLoading = true; 6639 6640 hyvaAjaxFormMinicart({ 6641 form, 6642 redirect: false 6643 }, () => { 6644 this.isLoading = false; 6645 }); 6646 }, 6647 deleteItemFromCart(itemId) { 6648 this.isLoading = true; 6649 6650 const itemData = this.cart.items.filter((item) => item['item_id'] === itemId); 6651 const formKey = hyva.getFormKey(); 6652 const postUrl = BASE_URL + 'checkout/sidebar/removeItem/'; 6653 6654 fetch(postUrl, { 6655 "headers": { 6656 "content-type": "application/x-www-form-urlencoded; charset=UTF-8", 6657 }, 6658 "body": "form_key=" + formKey + "&item_id=" + itemId, 6659 "method": "POST", 6660 "mode": "cors", 6661 "credentials": "include" 6662 }).then(response => { 6663 if (response.redirected) { 6664 window.location.href = response.url; 6665 } else if (response.ok) { 6666 return response.json(); 6667 } else { 6668 window.dispatchMessages && window.dispatchMessages([{ 6669 type: 'warning', 6670 text: 'Could\u0020not\u0020remove\u0020item\u0020from\u0020quote.' 6671 }]); 6672 this.isLoading = false; 6673 } 6674 }).then(result => { 6675 window.dispatchMessages && window.dispatchMessages([{ 6676 type: result.success ? 'success' : 'error', 6677 text: result.success 6678 ? 'You\u0020removed\u0020the\u0020item.' 6679 : result.error_message 6680 }], result.success ? 5000 : 0); 6681 6682 if (result.success && itemData) { 6683 window.dispatchEvent(new CustomEvent('cart-item-removed', { detail: itemData })); 6684 } 6685 6686 window.dispatchEvent(new CustomEvent('reload-customer-section-data')); 6687 }); 6688 }, 6689 scrollLock(use = true) { 6690 document.body.style.overflow = use ? "hidden" : ""; 6691 }, 6692 toggleCartDrawer(event) { 6693 if (event.detail && event.detail.isOpen !== undefined) { 6694 if (event.detail.isOpen) { 6695 this.openCartDrawer(); 6696 } else { 6697 this.open = false;
6698 this.scrollLock(false); 6699 this.$refs && this.$refs.cartDialogContent && hyva.releaseFocus(this.$refs.cartDialogContent); 6700 } 6701 } else { 6702 this.openCartDrawer() 6703 } 6704 }, 6705 openCartDrawer() { 6706 this.open = true; 6707 this.scrollLock(true); 6708 this.$nextTick(() => { 6709 this.$refs && this.$refs.cartDialogContent && hyva.trapFocus(this.$refs.cartDialogContent) 6710 }) 6711 }, 6712 closeCartDrawer() { 6713 this.$dispatch('toggle-cart', { isOpen: false }) 6714 }, 6715 getSectionDataExtraActions() { 6716 if (!this.cart.extra_actions) { 6717 return ''; 6718 } 6719 6720 const contentNode = document.createElement('div'); 6721 contentNode.innerHTML = this.cart.extra_actions; 6722 6723 hyva.activateScripts(contentNode); 6724 6725 return contentNode.innerHTML; 6726 } 6727 } 6728 } 6729 6730 async function hyvaAjaxFormMinicart( 6731 { 6732 form = null, 6733 url = '', 6734 body = '', 6735 redirect = 'default', 6736 message = '', 6737 } = {}, 6738 callback = () => {} 6739 ) { 6740 const formData = body ? body : (form ? new FormData(form) : ''); 6741 const postUrl = url ? url : (form ? form.action : ''); 6742 if (!formData || !postUrl) { 6743 console.warn('You must provide the form or formData and postUrl!'); 6744 return; 6745 } 6746 6747 const formUenc = hyva.getUenc(); 6748 const itemId = body ? new URLSearchParams(body).get('item_id') : formData.get('item_id'); 6749 let bodyUrl = new URLSearchParams(formData); 6750 bodyUrl.append('uenc', formUenc); 6751 6752 try { 6753 const response = await fetch(postUrl, { 6754 method: 'POST', 6755 body: bodyUrl.toString(), 6756 mode: 'cors', 6757 credentials: 'include', 6758 headers: { 6759 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8', 6760 'X-Requested-With': 'XMLHttpRequest' 6761 } 6762 }); 6763 6764 if (!response.ok) { 6765 return form.submit(); 6766 } 6767 6768 if (redirect === 'default' && response.redirected) { 6769 return window.location.href = response.url; 6770 } else if (redirect !== 'default' && redirect !== false) { 6771 return window.location.href = redirect; 6772 } 6773 6774 const responseBody = await response.json(); 6775 6776 if (!responseBody.success) { 6777 throw responseBody.error_message; 6778 } 6779 6780 window.dispatchEvent(new CustomEvent('reload-customer-section-data')); 6781 window.addEventListener('private-content-loaded', () => callback(), { once: true }); 6782 } catch (error) { 6783 window.dispatchEvent(new CustomEvent('minicart-error-message', { detail: { itemId, message: error } })); 6784 callback(); 6785 } 6786 } 6787</script>
6787 6788 6789
6790<script> 6791 function initPayPalExpress(url) { 6792 return { 6793 returnUrlId: 'return_url', 6794 returnUrlValue: url || false, 6795 submitForm() { 6796 const isProductPage = document.body.classList.contains('catalog-product-view'); 6797 6798 isProductPage 6799 ? this.submitFromCatalog() 6800 : this.submitFromCart(); 6801 }, 6802 submitFromCatalog() { 6803 if (this.returnUrlValue) { 6804 return false 6805 } 6806 const formParentId = 'product_addtocart_form'; 6807 if (!document.getElementById(this.returnUrlId)) { 6808 const elReturnUrl = document.createElement('input'); 6809 elReturnUrl.setAttribute('type', 'hidden'); 6810 elReturnUrl.setAttribute('name', 'return_url'); 6811 elReturnUrl.setAttribute('value', this.returnUrlValue); 6812 elReturnUrl.setAttribute('id', this.returnUrlId); 6813 6814 document.getElementById(formParentId).appendChild(elReturnUrl); 6815 } 6816 else { 6817 document.getElementById(this.returnUrlId).value = this.returnUrlValue; 6818 } 6819 document.getElementById(formParentId).submit(); 6820 }, 6821 submitFromCart() { 6822 if (this.returnUrlValue) { 6823 window.location = this.returnUrlValue; 6824 } 6825 } 6826 } 6827 } 6828</script>
6828 6829<section x-cloak 6830 x-show="cart" 6831 id="cart-drawer" 6832 x-data="initCartDrawer()" 6833 @private-content-loaded.window="getData($event.detail.data)" 6834 @toggle-cart.window="toggleCartDrawer($event)" 6835 @keydown.escape="closeCartDrawer" 6836> 6837 <div role="dialog" 6838 aria-labelledby="cart-drawer-title" 6839 aria-modal="true" 6840 :aria-hidden="!open" 6841 class="fixed inset-y-0 right-0 z-30 flex max-w-full"> 6842 <div class="backdrop" 6843 x-show="open" 6844 x-transition:enter="ease-in-out duration-500" 6845 x-transition:enter-start="opacity-0" 6846 x-transition:enter-end="opacity-100" 6847 x-transition:leave="ease-in-out duration-500" 6848 x-transition:leave-start="opacity-100" 6849 x-transition:leave-end="opacity-0" 6850 role="button" 6851 @click="closeCartDrawer" 6852 aria-label="Close minicart"></div> 6853 <div class="relative w-screen max-w-lg shadow-2xl bg-whiteSmoke" 6854 x-show="open" 6855 x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700" 6856 x-transition:enter-start="translate-x-full" 6857 x-transition:enter-end="translate-x-0" 6858 x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700" 6859 x-transition:leave-start="translate-x-0" 6860 x-transition:leave-end="translate-x-full" 6861 x-ref="cartDialogContent" 6862 role="region" 6863 :tabindex="open ? 0 : -1" 6864 aria-label="My Cart" 6865 > 6866 <div class="flex flex-col h-full max-h-screen shadow-xl"> 6867 6868 <header class="relative px-6 py-3 border-b border-b-secondary"> 6869 <h2 id="cart-drawer-title" class="text-lg font-semibold leading-6"> 6870 Shopping Cart <span class="text-base leading-5.5 font-normal text-primary-light ml-4" 6871 x-show="itemsCount" 6872 x-text="getTotalItemsTitle()"></span> 6873 </h2> 6874 </header> 6875 6876 6877 <template x-if="!itemsCount"> 6878 <div class="relative px-4 py-6 bg-white sm:px-6"> 6879 <div class="relative px-4 py-6 md:py-8 lg:py-12 bg-white border-bs sm:px-6 border-container flex flex-col justify-start items-center gap-5 text-center"> 6880 <div class="bg-container-darker text-gray-darker rounded-full w-32 h-32 p-6 flex justify-center items-center outline-dashed outline-2 outline-current outline-offset-[10px] mt-3 mb-3 opacity-80"> 6881 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-20 h-20 text-white" width="80" height="80" aria-hidden="true"> 6882 <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"/> 6883</svg> 6884 </div> 6885 <span class="text-lg font-bold leading-none">Your Cart is Currently Empty</span> 6886 <span class="leading-none">Add some products to your cart!</span> 6887 </div> 6888 </div> 6889 </template> 6890 6891 <template x-if="itemsCount"> 6892 <div class="relative grid p-3 bg-white overflow-y-auto overscroll-y-contain"> 6893 <template x-for="item in cartItems"> 6894 <div class="grid grid-cols-5 gap-6 items-start p-3 border-b border-secondary last:border-0"> 6895 <template x-if="item.product_has_url && item.is_visible_in_site_visibility"> 6896 <a :href="item.product_url" 6897 :aria-label="hyva.strf('Product\u0020\u0022\u00250\u0022', item.product_name)" 6898 > 6899 <img 6900 :src="item.product_image.src" 6901 :width="item.product_image.width" 6902 :height="item.product_image.height" 6903 :alt="'Product image - ' + item.product_name" 6904 loading="lazy" 6905 />
6906 <span class="sr-only" x-html="item.product_name"></span> 6907 </a> 6908 </template> 6909 <template x-if="!item.product_has_url || !item.is_visible_in_site_visibility"> 6910 <div> 6911 <img 6912 :src="item.product_image.src" 6913 :width="item.product_image.width" 6914 :height="item.product_image.height" 6915 loading="lazy" 6916 :alt="item.product_name" 6917 /> 6918 </div> 6919 </template> 6920 <div class="col-span-4"> 6921 <div class="flex gap-5"> 6922 <div> 6923 <a :href="item.product_url" 6924 class="text-base font-bold hover:underline leading-5.5" 6925 :aria-label="`${item.qty + ' x ' + item.product_name}`" 6926 > 6927 <span x-html="item.product_name"></span> 6928 </a> 6929 <p class="text-sm"><span x-html="item.product_sku"></span></p> 6930 </div> 6931 <div x-html="item.product_price"></div> 6932 </div> 6933 <template x-if="item.options.length"> 6934 <div x-data="{ open: false }" class="mt-3"> 6935 <div @click="open = ! open" :aria-expanded="open" class="cursor-pointer text-sm leading-4.5"> 6936 <span class="underline">See Details</span> 6937 <span x-show="!open"> 6938 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="inline-block" width="16" height="16" aria-hidden="true"> 6939 <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/> 6940</svg> 6941 </span> 6942 <span x-show="open"> 6943 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="inline-block" width="16" height="16" aria-hidden="true"> 6944 <path fill-rule="evenodd" d="M14.707 12.707a1 1 0 01-1.414 0L10 9.414l-3.293 3.293a1 1 0 01-1.414-1.414l4-4a1 1 0 011.414 0l4 4a1 1 0 010 1.414z" clip-rule="evenodd"/> 6945</svg> 6946 </span> 6947 </div> 6948 <div x-show="open" class="text-sm leading-4.5"> 6949 <template x-for="option in item.options"> 6950 <div class="py-1"> 6951 <p><span class="font-bold pr-2" x-text="option.label + ':'"></span> 6952 <span x-html="option.value"></span></p> 6953 </div> 6954 </template> 6955 </div> 6956 </div> 6957 </template> 6958 <div class="pt-3 flex justify-between"> 6959 <form 6960 action="https://www.shelterlogic.com/checkout/sidebar/updateItemQty" 6961 x-data="{ 6962 initQty: item.qty, 6963 itemQty: item.qty, 6964 prevQty: item.qty, 6965 updateQty($event, itemId) { 6966 if (!this.itemQty && itemId) { 6967 deleteItemFromCart(itemId); 6968 return; 6969 } 6970 const submitEvent = new Event('submit', { cancelable: true }); 6971 this.$root.dispatchEvent(submitEvent); 6972 }, 6973 setQtyDefaults() { 6974 this.initQty = item.qty; 6975 this.itemQty = item.qty; 6976 this.prevQty = item.qty; 6977 } 6978 }" 6979 @submit.prevent="updateItemQty($event.target);" 6980 x-init="$watch('item.qty', () => setQtyDefaults());" 6981 method="post" 6982 class="form form-cart flex gap-2 items-center" 6983 > 6984 <input name="form_key" type="hidden" value="t9xtKlgZHli8JmLf" tabindex="-1"/> <input type="hidden" name="item_id" :value="item.item_id"> 6985 6986 <div class="flex"> 6987 <button class="cursor-pointer border-secondary rounded-none border border-r-0 text-grey-lighter w-9 h-9 bg-neutral-150 flex justify-center items-center" 6988 aria-label="Decrease Qty" 6989 @click="itemQty <= 0 ? itemQty = 0 : itemQty--" 6990 @click.debounce.100ms="updateQty($event, item.item_id);" 6991 type="button"> 6992 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 text-slate-700" width="24" height="24" role="img"> 6993 <path fill-rule="evenodd" d="M5 10a1 1 0 011-1h8a1 1 0 110 2H6a1 1 0 01-1-1z" clip-rule="evenodd"/> 6994<title>minus-sm</title></svg> 6995 </button> 6996 <input 6997 :id="`minicart-${item.item_id}-qty`" 6998 name="item_qty" 6999 x-model.number="itemQty" 7000 type="number" 7001 inputmode="numeric" 7002 size="4" 7003 step="any" 7004 title="Qty" 7005 class="qty form-input px-2 py-0 h-9 min-h-0 w-12 text-center rounded-none relative z-10" 7006 required 7007 min="0" 7008 data-role="cart-item-qty" 7009 :value="itemQty" 7010 @change.debounce.100ms="updateQty($event, item.item_id)" 7011 /> 7012 <button class="cursor-pointer border-secondary rounded-none border border-l-0 text-grey-lighter w-9 h-9 bg-neutral-150 flex justify-center items-center" 7013 aria-label="Increase Qty" 7014 @click="itemQty++" 7015 @click.debounce.100ms="updateQty($event, item.item_id);" 7016 type="button"> 7017 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 text-slate-700" width="24" height="24" role="img"> 7018 <path fill-rule="evenodd" d="M10 5a1 1 0 011 1v3h3a1 1 0 110 2h-3v3a1 1 0 11-2 0v-3H6a1 1 0 110-2h3V6a1 1 0 011-1z" clip-rule="evenodd"/> 7019<title>plus-sm</title></svg> 7020 </button> 7021 </div> 7022 </form> 7023 <div> 7024 <a :href="item.configure_url" 7025 x-show="item.product_type !== 'grouped' && item.is_visible_in_site_visibility" 7026 class="inline-flex p-2 mr-2 btn bg-whiteSmoke-darker" 7027 aria-label="Edit Item" 7028 :aria-label="hyva.strf('Edit\u0020product\u
70280020\u0022\u00250\u0022', item.product_name)" 7029 tabindex="1" 7030 > 7031 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" width="15" height="15" aria-hidden="true"> 7032 <path d="M13.586 3.586a2 2 0 112.828 2.828l-.793.793-2.828-2.828.793-.793zM11.379 5.793L3 14.172V17h2.828l8.38-8.379-2.83-2.828z"/> 7033</svg> 7034 </a> 7035 <button type="button" 7036 class="inline-flex p-2 btn bg-whiteSmoke-darker" 7037 @click="deleteItemFromCart(item.item_id)" 7038 aria-label="Remove Item" 7039 :aria-label="hyva.strf('Remove\u0020product\u0020\u0022\u00250\u0022\u0020from\u0020cart', item.product_name)" 7040 title="Remove Item" 7041 :title="hyva.strf('Remove\u0020product\u0020\u0022\u00250\u0022\u0020from\u0020cart', item.product_name)" 7042 > 7043 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" width="15" height="15" aria-hidden="true"> 7044 <path fill-rule="evenodd" d="M9 2a1 1 0 00-.894.553L7.382 4H4a1 1 0 000 2v10a2 2 0 002 2h8a2 2 0 002-2V6a1 1 0 100-2h-3.382l-.724-1.447A1 1 0 0011 2H9zM7 8a1 1 0 012 0v6a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v6a1 1 0 102 0V8a1 1 0 00-1-1z" clip-rule="evenodd"/> 7045</svg> 7046 </button> 7047 </div> 7048 </div> 7049 </div> 7050 </div> 7051 </template> 7052 </div> 7053 </template> 7054 7055 7056 7057 <template x-if="itemsCount"> 7058 <div class="border-t border-t-secondary relative"> 7059 <div class="w-full flex justify-between items-center gap-5 text-base leading-5.5 border-b border-b-secondary py-3 px-5 md:px-10"> 7060 <span>Subtotal:</span> 7061 <span class="font-bold" x-html="cart.subtotal"></span> 7062 </div> 7063 <div class="text-center flex flex-col gap-3 py-3 px-4"> 7064 <a href="https://www.shelterlogic.com/checkout/cart" 7065 class="inline-block text-lg leading-6 underline hover:no-underline" 7066 aria-label="View and Edit Cart" 7067 tabindex="1" 7068 > 7069 View and Edit Cart </a> 7070 <a @click.prevent.stop="closeCartDrawer, $dispatch('toggle-authentication', 7071 {url: 'https://www.shelterlogic.com/checkout'});" 7072 href="https://www.shelterlogic.com/checkout" 7073 class="inline-block text-center w-full btn btn-primary" 7074 aria-label="Checkout" 7075 tabindex="1" 7076 > 7077 Checkout </a> 7078 </div> 7079 <div class="px-4 py-3 grid grid-cols-2 md:grid-cols-4 gap-4 justify-between items-start text-center"> 7080 <div x-html="getSectionDataExtraActions()" class="contents"></div> 7081 </div> 7082 </div> 7083 </template> 7084 7085 </div> 7086 7087 <button 7088 type="button" 7089 @click="closeCartDrawer" 7090 aria-label="Close minicart" 7091 class="absolute top-0 right-0 p-3.5 text-primary-light hover:text-orange transition-colors" 7092 > 7093 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5" width="20" height="20" aria-hidden="true"> 7094 <path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd"/> 7095</svg> 7096 </button> 7097 </div> 7098 <div 7099 class="z-50 inset-0 grid place-items-center bg-white/70 text-slate-800 fixed" 7100 x-cloak 7101 x-show="isLoading" 7102 x-transition.opacity.duration.200ms 7103> 7104 <div class="flex gap-10 items-center p-4"> 7105 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 57 57" width="57" height="57" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"> 7106 <style>
7107 @keyframes spinner-ball-triangle1 { 7108 0% { transform: translate(0%, 0%); } 7109 33% { transform: translate(38%, -79%); } 7110 66% { transform: translate(77%, 0%); } 7111 100% { transform: translate(0%, 0%); } 7112 } 7113 7114 @keyframes spinner-ball-triangle2 { 7115 0% { transform: translate(0%, 0%); } 7116 33% { transform: translate(38%, 79%); } 7117 66% { transform: translate(-38%, 79%); } 7118 100% { transform: translate(0%, 0%); } 7119 } 7120 7121 @keyframes spinner-ball-triangle3 { 7122 0% { transform: translate(0%, 0%); } 7123 33% { transform: translate(-77%, 0%); } 7124 66% { transform: translate(-38%, -79%); } 7125 100% { transform: translate(0%, 0%); } 7126 } 7127 </style> 7128 <circle cx="5" cy="50" r="5" style="animation: spinner-ball-triangle1 2.2s linear infinite"/> 7129 <circle cx="27" cy="5" r="5" style="animation: spinner-ball-triangle2 2.2s linear infinite"/> 7130 <circle cx="49" cy="50" r="5" style="animation: spinner-ball-triangle3 2.2s linear infinite"/> 7131</svg> 7132 <span class="text-xl select-none"> 7133 Loading... </span> 7134 </div> 7135</div> </div> 7136</section> 7137 <!--Authentication Pop-Up--> 7138 <!-- BLOCK authentication-popup -->
7138<script> 7139 function initAuthentication() { 7140 return { 7141 open: false, 7142 close() { 7143 this.open = false; 7144 }, 7145 forceAuthentication: false, 7146 checkoutUrl: 'https://www.shelterlogic.com/checkout/index', 7147 errors: 0, 7148 hasCaptchaToken: 0, 7149 displayErrorMessage: false, 7150 errorMessages: [], 7151 setErrorMessages(message) { 7152 this.errorMessages = [message]; 7153 this.displayErrorMessage = true; 7154 }, 7155 submitForm() { 7156 // Do not rename $form, the variable is expected to be declared in the recaptcha output 7157 const $form = document.querySelector('#login-form'); 7158 if (!this.hasCaptchaToken) { 7159 this.errors = 1; 7160 7161 7162 const executeGreCaptcha = () => { 7163 grecaptcha.ready(() => { 7164 grecaptcha.execute( 7165 '6Ld7TjssAAAAAEISy7Zejr4a6l76\u002DFkBM89gLGGS', 7166 {action: 'submit'} 7167 ).then((token) => { 7168 const tokenElement = $form['g\u002Drecaptcha\u002Dresponse']; 7169 7170 if (tokenElement && token && token.length > 0) { 7171 $form['g\u002Drecaptcha\u002Dresponse'].value = token; 7172 this.errors = 0; 7173 this.hasCaptchaToken = 1; 7174 (this.submitForm || $form.submit).call(this); 7175 } else { 7176 this.errors = 1; 7177 const error = tokenElement 7178 ? 'ReCaptcha\u0020validation\u0020failed,\u0020please\u0020try\u0020again' 7179 : 'ReCaptcha\u0020token\u0020element\u0020is\u0020missing.\u0020Please\u0020refresh\u0020the\u0020page\u0020and\u0020trying\u0020again.'; 7180 if (this.setErrorMessages) { 7181 this.setErrorMessages([error]) 7182 this.displayErrorMessage = true; 7183 } else { 7184 window.dispatchMessages && window.dispatchMessages([{type: "error", text: error}], 5000); 7185 } 7186 } 7187 }).catch(exception => { 7188 console.error(exception || `An unknown error occurred during ReCaptcha validation. Are the tokens and the domain correctly set up in the Google console?`) 7189 }); 7190 }) 7191 } 7192 7193 if (window.grecaptcha) { 7194 executeGreCaptcha(); 7195 } else { 7196 const recaptchaUrl = "https://www.google.com/recaptcha/api.js?render=6Ld7TjssAAAAAEISy7Zejr4a6l76\u002DFkBM89gLGGS"; 7197 const script = document.createElement('script'); 7198 script.setAttribute('type', 'text/javascript'); 7199 script.setAttribute('src', recaptchaUrl); 7200 document.head.appendChild(script); 7201 7202 script.addEventListener("load", executeGreCaptcha, false); 7203 } 7204 } 7205 7206 if (this.errors === 0) { 7207 this.dispatchLoginRequest($form); 7208 } 7209 }, 7210 onPrivateContentLoaded() { 7211 const data = this.$event.detail.data; 7212 const isLoggedIn = data.customer && data.customer.firstname; 7213 if (data.cart && !isLoggedIn) { 7214 this.forceAuthentication = !data.cart.isGuestCheckoutAllowed; 7215 } 7216 }, 7217 redirectIfAuthenticated() { 7218 const event = this.$event; 7219 this.open = this.forceAuthentication; 7220 7221 if (event.detail && event.detail.url) { 7222 this.checkoutUrl = event.detail.url; 7223 } 7224 if (!this.forceAuthentication) { 7225 window.location.href = this.checkoutUrl; 7226 } 7227 }, 7228 resetErrors() { 7229 this.errors = 0; 7230 }, 7231 dispatchLoginRequest(form) { 7232 this.isLoading = true; 7233 const username = this.$refs['customer-email'].value; 7234 const password = this.$refs['customer-password'].value; 7235 const formKey = hyva.getFormKey(); 7236 const bodyFields = { 7237 'username': username, 7238 'password': password, 7239 'formKey': formKey 7240 }; 7241 const fieldName = 'g\u002Drecaptcha\u002Dresponse'; 7242 const recaptchaField = fieldName && form[fieldName]; 7243 if (recaptchaField) { 7244 bodyFields[fieldName] = recaptchaField.value; 7245 } 7246 fetch('https://www.shelterlogic.com/customer/ajax/login', { 7247 method: 'POST', 7248 headers: { 7249 'Content-Type': 'application/json', 7250 'X-Requested-With': 'XMLHttpRequest' 7251 }, 7252 body: JSON.stringify(bodyFields) 7253 } 7254 ).then(response => { 7255 return response.json() 7256 } 7257 ).then(data => { 7258 this.isLoading = false;
7259 if (data.errors) { 7260 this.setErrorMessages(data.message); 7261 this.errors = 1; 7262 this.hasCaptchaToken = 0; 7263 } else { 7264 window.location.href = this.checkoutUrl; 7265 } 7266 }); 7267 } 7268 } 7269 } 7270 7271 window.addEventListener('alpine:init', () => Alpine.data('initAuthentication', initAuthentication), {once: true}) 7272</script>
7272 7273<section id="authentication-popup" 7274 x-data="initAuthentication" 7275 @private-content-loaded.window="onPrivateContentLoaded" 7276 @toggle-authentication.window="redirectIfAuthenticated" 7277 @keydown.window.escape="close" 7278> 7279 <div 7280 class="backdrop" 7281 aria-hidden="true" 7282 x-cloak 7283 x-show="open" 7284 x-transition:enter="ease-in-out duration-500" 7285 x-transition:enter-start="opacity-0" 7286 x-transition:enter-end="opacity-100" 7287 x-transition:leave="ease-in-out duration-500" 7288 x-transition:leave-start="opacity-100" 7289 x-transition:leave-end="opacity-0" 7290 @click="close" 7291 ></div> 7292 <div role="dialog" 7293 aria-modal="true" 7294 @click.outside="close" 7295 class="inset-y-0 right-0 z-30 flex max-w-full fixed" 7296 x-cloak 7297 x-show="open" 7298 > 7299 <div class="relative w-screen max-w-md pt-16 bg-container-lighter" 7300 x-show="open" 7301 x-cloak 7302 x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700" 7303 x-transition:enter-start="translate-x-full" 7304 x-transition:enter-end="translate-x-0" 7305 x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700" 7306 x-transition:leave-start="translate-x-0" 7307 x-transition:leave-end="translate-x-full" 7308 > 7309 <div 7310 x-show="open" 7311 x-cloak 7312 x-transition:enter="ease-in-out duration-500" 7313 x-transition:enter-start="opacity-0" 7314 x-transition:enter-end="opacity-100" 7315 x-transition:leave="ease-in-out duration-500" 7316 x-transition:leave-start="opacity-100" 7317 x-transition:leave-end="opacity-0" class="absolute top-0 right-2 flex p-2 mt-2"> 7318 <button 7319 type="button" 7320 @click="close" 7321 aria-label="Close panel" 7322 class="p-2 text-gray-300 transition duration-150 ease-in-out hover:text-black" 7323 > 7324 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" aria-hidden="true"> 7325 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 7326</svg> 7327 </button> 7328 </div> 7329 <template x-if="open"> 7330 <div class="flex flex-col h-full py-6 space-y-6 bg-white shadow-xl overflow-y-auto"> 7331 <div class="mx-4"> 7332 <div class="message error mb-0" x-show="errors" x-cloak> 7333 <template x-for="(message, index) in errorMessages" :key="index"> 7334 <div> 7335 <template x-if="message"> 7336 <span x-html="message"></span> 7337 </template> 7338 </div> 7339 </template> 7340 </div> 7341 </div> 7342 <div class="block-customer-login bg-container border border-container mx-4 p-4 shadow-sm"> 7343 <p id="authenticate-customer-login" class="text-lg leading-7 text-gray-900"> 7344 <strong class="font-medium">Checkout using your account</strong> 7345 </p> 7346 7347 <form class="form form-login" 7348 method="post" 7349 @submit.prevent="submitForm" 7350 id="login-form" 7351 > 7352 <div class="control"> 7353 <input type="hidden" 7354 value="" 7355 name="g-recaptcha-response" 7356 > 7357</div> <div class="fieldset login"> 7358 <div class="field email required"> 7359 <label class="label" for="form-login-username" form="login-form" >
7360 <span>Email Address</span> 7361 </label> 7362 <div class="control"> 7363 <input name="username" 7364 id="form-login-username" 7365 x-ref="customer-email" 7366 @change="resetErrors" 7367 type="email" 7368 required 7369 autocomplete="off" 7370 class="form-input" 7371 > 7372 </div> 7373 </div> 7374 <div class="field password required"> 7375 <label for="form-login-password" class="label" form="login-form"> 7376 <span>Password</span> 7377 </label> 7378 <div class="control"> 7379 <input name="password" 7380 id="form-login-password" 7381 type="password" 7382 class="form-input" 7383 required 7384 x-ref="customer-password" 7385 autocomplete="off" 7386 @change="resetErrors" 7387 > 7388 </div> 7389 </div> 7390 7391 <input name="context" type="hidden" value="checkout"> 7392 <div class="actions-toolbar pt-6 pb-2"> 7393 <button type="submit" class="inline-flex btn btn-primary disabled:opacity-75" 7394 > 7395 Sign In </button> 7396 <a href="https://www.shelterlogic.com/customer/account/forgotpassword" 7397 > 7398 Forgot Your Password? </a> 7399 </div> 7400 7401 </div> 7402 </form> 7403 </div> 7404 <div class="mx-4"> 7405 <p class="my-4 text-sm text-gray-900"> 7406This form is protected by reCAPTCHA - the <a class="underline" href="https://policies.google.com/privacy" target="_blank" rel="noopener">Google Privacy Policy</a> and <a class="underline" href="https://policies.google.com/terms" target="_blank" rel="noopener">Terms of Service</a> apply.</p> </div> 7407 <div class="block-new-customer bg-container border border-container mx-4 p-4 shadow-sm"> 7408 <p id="authenticate-new-customer" class="text-lg mb-2 leading-7 text-gray-900"> 7409 <strong class="font-medium">Checkout as a new customer</strong> 7410 </p> 7411 7412 <div class="block-content"> 7413 <p class="mb-1"> 7414 Creating an account has many benefits: </p> 7415 <ul class="list-disc pl-5"> 7416 <li> See order and shipping status</li> 7417 <li> Track order history</li> 7418 <li> Check out faster</li> 7419 </ul> 7420 <div class="actions-toolbar mt-6 mb-2"> 7421 <a href="https://www.shelterlogic.com/customer/account/create" 7422 class="inline-flex btn btn-primary"> 7423 Create an Account </a> 7424 </div> 7425 </div> 7426 </div> 7427 </div> 7428 </template> 7429 </div> 7430 </div> 7431</section><!-- /BLOCK authentication-popup --></div><div class="top-container"> <div class="widget block block-static-block"><style>.cmsb594-img-cover { 7432height: 100%; 7433width: 100%; 7434img { 7435margin-top: 0px; 7436margin-bottom: 0px 7437} 7438img { 7439margin-left: auto; 7440margin-right: auto 7441} 7442img { 7443height: 100% !important 7444} 7445img { 7446width: 100% !important 7447} 7448img { 7449object-fit: cover 7450} 7451} 7452.cmsb594-img-contain { 7453img { 7454margin-top: 0px; 7455margin-bottom: 0px 7456} 7457img { 7458margin-left: auto; 7459margin-right: auto 7460} 7461img { 7462height: 100% !important 7463} 7464img { 7465width: 100% !important 7466} 7467img { 7468object-fit: contain 7469} 7470} 7471.cmsb594-box-checkmark { 7472position: relative; 7473padding-left: 3rem; 7474&:before { 7475position: absolute 7476} 7477&:before { 7478left: 0px 7479} 7480&:before { 7481top: 0px 7482} 7483&:before { 7484height: 2rem 7485} 7486&:before { 7487width: 2rem 7488} 7489&:before { 7490border-width: 4px 7491} 7492&:before { 7493--tw-border-opacity: 1; 7494border-color: rgb(225 171 46 / var(--tw-border-opacity)) 7495} 7496&:before { 7497--tw-bg-opacity: 1; 7498background-color: rgb(255 255 255 / var(--tw-bg-opacity)) 7499} 7500&:before { 7501--tw-content: ''; 7502content: var(--tw-content) 7503} 7504}
7505.cmsb594-px-5 { 7506padding-left: 1.25rem; 7507padding-right: 1.25rem 7508} 7509.cmsb594-py-2\.5 { 7510padding-top: 0.625rem; 7511padding-bottom: 0.625rem 7512} 7513.cmsb594-text-center { 7514text-align: center 7515} 7516.cmsb594-text-sm { 7517font-size: 0.875rem; 7518line-height: 1.25rem 7519}</style> 7520<style>#html-body [data-pb-style=RXXEP5D]{justify-content:flex-start;display:flex;flex-direction:column;background-color:#f3f3f3;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;text-align:center}#html-body [data-pb-style=WO5I5W2]{text-align:center}</style><div data-content-type="row" data-appearance="full-bleed" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="RXXEP5D"><div data-content-type="html" data-appearance="default" data-element="main" data-pb-style="WO5I5W2" data-decoded="true"><div class="cmsb594-py-2.5 cmsb594-px-5 cmsb594-text-center cmsb594-text-sm"> 7521 <a href="https://www.shelterlogic.com/deals/sale"> 7522<strong>Carports, Sheds, Garages, Farm, Firewood and Shade are up to 60% off <span style="color: #C8102E;">(Limited Supply)</span></strong> 7523 </a> 7524</div> 7525</div></div></div> 7526 7527 <nav class="breadcrumbs" aria-label="Breadcrumbs"> 7528 <div class="container"> 7529 <ol class="items list-reset py-4 rounded flex flex-wrap text-grey text-sm"> 7530 <li class="item flex home"> 7531 <a href="https://www.shelterlogic.com/" 7532 class="no-underline cursor-pointer text-primary-dark" 7533 role="link" 7534 aria-label="Go to Home Page" 7535 > 7536 Home </a> 7537 </li> 7538 <li class="item flex category1152"> 7539 <span aria-hidden="true" class="separator text-primary-lighter px-1 md:px-2">/</span> 7540 <span class="text-primary-light" 7541 aria-current="page">Custom Commercial Grade Buildings & Shelters</span> 7542 </li> 7543 </ol> 7544 </div> 7545 </nav> 7546
7546<script type="application/ld+json"> 7547 { 7548 "@context": "https://schema.org/", 7549 "@type": "BreadcrumbList", 7550 "name": "Breadcrumbs\u0020Navigation", 7551 "@id": "https\u003A\u002F\u002Fwww.shelterlogic.com\u002F#breadcrumbs", 7552 "itemListElement": [ 7553 { 7554 "@type": "ListItem", 7555 "position": 1, 7556 "name": "Home", 7557 "item": "https://www.shelterlogic.com/" 7558 } 7559 ,{ 7560 "@type": "ListItem", 7561 "position": 2, 7562 "name": "Custom\u0020Commercial\u0020Grade\u0020Buildings\u0020\u0026\u0020Shelters", 7563 "item": "https://www.shelterlogic.com/commercial-grade-products" 7564 } 7565 ] 7566 }</script>
7566</div></header><main id="maincontent" class="page-main"><div class="page messages">
7566<script> 7567 function initMessages() { 7568 "use strict"; 7569 return { 7570 messages: window.mageMessages || [], 7571 isEmpty() { 7572 return this.messages.reduce( 7573 function (isEmpty, message) { 7574 return isEmpty && message === undefined 7575 }, true 7576 ) 7577 }, 7578 hasMessages() { 7579 return !this.isEmpty(); 7580 }, 7581 hasMessage() { 7582 return !!this.message; 7583 }, 7584 removeMessage() { 7585 this.messages[this.index] = undefined; 7586 }, 7587 addMessages(messages, hideAfter) { 7588 messages.map((message) => { 7589 this.messages = this.messages.concat(message); 7590 if (hideAfter === undefined && message.type === 'success' && window.defaultSuccessMessageTimeout) { 7591 hideAfter = window.defaultSuccessMessageTimeout; 7592 } 7593 if (hideAfter) { 7594 this.setHideTimeOut(this.messages.length -1, hideAfter); 7595 } 7596 }); 7597 }, 7598 setHideTimeOut(messageIndex, hideAfter) { 7599 setTimeout((messageIndex) => { 7600 this.messages[messageIndex] = undefined; 7601 }, hideAfter, messageIndex); 7602 }, 7603 eventListeners: { 7604 ['@messages-loaded.window'](event) { 7605 this.addMessages(event.detail.messages, event.detail.hideAfter) 7606 }, 7607 ['@private-content-loaded.window'](event) { 7608 const data = event.detail.data; 7609 if ( 7610 data.messages && 7611 data.messages.messages && 7612 data.messages.messages.length 7613 ) { 7614 this.addMessages(data.messages.messages, 3000); 7615 } 7616 }, 7617 ['@clear-messages.window']() { 7618 this.messages = []; 7619 } 7620 }, 7621 getMessageUiId() { 7622 return 'message-' + this.message.type; 7623 } 7624 } 7625 } 7626 7627 window.addEventListener('alpine:init', () => Alpine.data('initMessages', initMessages), {once: true}) 7628</script>
7628 7629<section id="messages" 7630 x-data="initMessages" 7631 x-bind="eventListeners" 7632 role="alert" 7633> 7634 <template x-if="hasMessages"> 7635 <div class="w-full"> 7636 <div class="messages container mx-auto py-3"> 7637 <template x-for="(message, index) in messages" :key="index"> 7638 <div> 7639 <template x-if="hasMessage"> 7640 <div class="message" 7641 :class="message.type" 7642 :ui-id="getMessageUiId" 7643 > 7644 <span x-html="message.text"></span> 7645 <button 7646 type="button" 7647 class="close cursor-pointer" 7648 aria-label="Close message" 7649 @click.prevent="removeMessage" 7650 > 7651 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="text-grey" width="18" height="18" aria-hidden="true"> 7652 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> 7653</svg> 7654 </button> 7655 </div> 7656 </template> 7657 </div> 7658 </template> 7659 </div> 7660 </div> 7661 </template> 7662</section></div> <style>.cc1152-img-cover { 7663height: 100%; 7664width: 100%; 7665img { 7666margin-top: 0px; 7667margin-bottom: 0px 7668} 7669img { 7670margin-left: auto; 7671margin-right: auto 7672} 7673img { 7674height: 100% !important 7675} 7676img { 7677width: 100% !important 7678} 7679img { 7680object-fit: cover 7681} 7682} 7683.cc1152-img-contain { 7684img { 7685margin-top: 0px; 7686margin-bottom: 0px 7687} 7688img { 7689margin-left: auto; 7690margin-right: auto 7691} 7692img { 7693height: 100% !important 7694} 7695img { 7696width: 100% !important 7697} 7698img { 7699object-fit: contain 7700} 7701} 7702.cc1152-box-checkmark { 7703position: relative; 7704padding-left: 3rem; 7705&:before { 7706position: absolute 7707} 7708&:before { 7709left: 0px 7710} 7711&:before { 7712top: 0px 7713} 7714&:before { 7715height: 2rem 7716} 7717&:before { 7718width: 2rem 7719} 7720&:before { 7721border-width: 4px 7722} 7723&:before { 7724--tw-border-opacity: 1; 7725border-color: rgb(225 171 46 / var(--tw-border-opacity)) 7726} 7727&:before { 7728--tw-bg-opacity: 1; 7729background-color: rgb(255 255 255 / var(--tw-bg-opacity)) 7730} 7731&:before { 7732--tw-content: ''; 7733content: var(--tw-content) 7734} 7735} 7736.cc1152-mx-auto { 7737margin-left: auto; 7738margin-right: auto 7739} 7740.cc1152-mb-2 { 7741margin-bottom: 0.5rem 7742} 7743.cc1152-mb-4 { 7744margin-bottom: 1rem 7745} 7746.cc1152-mb-5 { 7747margin-bottom: 1.25rem 7748} 7749.cc1152-mt-6 { 7750margin-top: 1.5rem 7751} 7752.cc1152-inline { 7753display: inline 7754} 7755.cc1152-flex { 7756display: flex 7757} 7758.cc1152-hidden { 7759display: none 7760} 7761.cc1152-h-28 { 7762height: 7rem 7763} 7764.cc1152-w-28 { 7765width: 7rem 7766} 7767.cc1152-w-full { 7768width: 100% 7769} 7770.cc1152-max-w-xl { 7771max-width: 36rem 7772} 7773.cc1152-flex-row { 7774flex-direction: row 7775} 7776.cc1152-flex-col { 7777flex-direction: column 7778} 7779.cc1152-flex-wrap { 7780flex-wrap: wrap 7781} 7782.cc1152-items-center { 7783align-items: center 7784} 7785.cc1152-justify-between { 7786justify-content: space-between 7787} 7788.cc1152-rounded-full { 7789border-radius: 9999px 7790} 7791.cc1152-bg-gray-100 { 7792--tw-bg-opacity: 1; 7793background-color: rgb(243 244 246 / var(--tw-bg-opacity)) 7794} 7795.cc1152-bg-whiteSmoke { 7796--tw-bg-opacity: 1; 7797background-color: rgb(243 243 243 / var(--tw-bg-opacity)) 7798} 7799.cc1152-p-1 { 7800padding: 0.25rem 7801} 7802.cc1152-p-8 { 7803padding: 2rem 7804} 7805.cc1152-pb-8 { 7806padding-bottom: 2rem 7807} 7808.cc1152-text-center { 7809text-align: center 7810} 7811.cc1152-text-28 { 7812font-size: 28px 7813} 7814.cc1152-text-sm { 7815font-size: 0.875rem; 7816line-height: 1.25rem 7817} 7818.cc1152-font-bold {
7819font-weight: 700 7820} 7821.cc1152-font-extrabold { 7822font-weight: 800 7823} 7824.cc1152-font-semibold { 7825font-weight: 600 7826} 7827.cc1152-uppercase { 7828text-transform: uppercase 7829} 7830.cc1152-leading-10 { 7831line-height: 2.5rem 7832} 7833.cc1152-text-gray-700 { 7834--tw-text-opacity: 1; 7835color: rgb(55 65 81 / var(--tw-text-opacity)) 7836} 7837.cc1152-text-gray-900 { 7838--tw-text-opacity: 1; 7839color: rgb(17 24 39 / var(--tw-text-opacity)) 7840} 7841.cc1152-underline { 7842text-decoration-line: underline 7843} 7844@media (min-width: 768px) { 7845.cc1152-md\:mx-5 { 7846margin-left: 1.25rem; 7847margin-right: 1.25rem 7848} 7849.cc1152-md\:mr-8 { 7850margin-right: 2rem 7851} 7852.cc1152-md\:block { 7853display: block 7854} 7855.cc1152-md\:flex-row { 7856flex-direction: row 7857} 7858.cc1152-md\:text-left { 7859text-align: left 7860} 7861} 7862@media (min-width: 1024px) { 7863.cc1152-lg\:mx-2 { 7864margin-left: 0.5rem; 7865margin-right: 0.5rem 7866} 7867.cc1152-lg\:mb-8 { 7868margin-bottom: 2rem 7869} 7870.cc1152-lg\:flex-nowrap { 7871flex-wrap: nowrap 7872} 7873.cc1152-lg\:py-8 { 7874padding-top: 2rem; 7875padding-bottom: 2rem 7876} 7877.cc1152-lg\:pb-12 { 7878padding-bottom: 3rem 7879} 7880}</style> 7881 7882 <div class="container flex flex-col md:flex-row flex-wrap mt-4 lg:mt-8 justify-center text-3xl"> 7883 <h1 class="font-bold text-28 lg:text-4xl page-title title-font " 7884 > 7885 <span 7886 x-data='{ productName: "Custom\u0020Commercial\u0020Grade\u0020Buildings\u0020\u0026\u0020Shelters" }' 7887 @configurable-dynamic-attributes-change.window="productName = $event?.detail?.name ?? 'Custom\u0020Commercial\u0020Grade\u0020Buildings\u0020\u0026\u0020Shelters'" 7888 class="base" 7889 data-ui-id="page-title-wrapper" 7890 x-html="productName" 7891 > 7892 Custom Commercial Grade Buildings & Shelters </span> 7893 </h1> 7894 </div> 7895<div class="columns"><div class="column main"> <div class="category-cms"><style>#html-body [data-pb-style=LKMF6RF],#html-body [data-pb-style=RFV7TOY]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=RFV7TOY]{justify-content:center;display:flex;flex-direction:column;padding-bottom:36px}#html-body [data-pb-style=LKMF6RF]{align-self:stretch}#html-body [data-pb-style=XCE42PH]{display:flex;width:100%}#html-body [data-pb-style=JG3BUW4]{justify-content:center;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:33.3333%;padding-top:27px;padding-bottom:27px;align-self:stretch}#html-body [data-pb-style=DNE67P0]{display:none}#html-body [data-pb-style=YA0IO81]{display:inline-block}#html-body [data-pb-style=A77A40W]{text-align:center}#html-body [data-pb-style=UNQS5Q0]{justify-content:center;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:66.6667%;align-self:stretch}#html-body [data-pb-style=LFLD01F]{border-style:none}#html-body [data-pb-style=N2V96HG],#html-body [data-pb-style=Q30LRAV]{max-width:100%;height:auto}#html-body [data-pb-style=EATQGPB],#html-body [data-pb-style=EI3RV03]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=EI3RV03]{justify-content:flex-start;display:flex;flex-direction:column}#html-body [data-pb-style=EATQGPB]{align-self:stretch}#html-body [data-pb-style=S8I4PEL]{display:flex;width:100%}#html-body [data-pb-style=HTLB4TH]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:50%;align-self:stretch}#html-body [data-pb-style=FYWHL37]{text-align:center;border-style:none}#html-body [data-pb-style=F8PVLKK],#html-body [data-pb-style=Y8HMIFN]{max-width:100%;height:auto}#html-body [data-pb-style=V3SOI0X]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:50%;align-self:stretch}#html-body [data-pb-style=L71T7JP]{text-align:center;border-style:none}#html-body [data-pb-style=HW2TNT9],#html-body [data-pb-style=X05GGR1]{max-width:100%;height:auto}#html-body [data-pb-style=Y6N2SXD]{display:flex;width:100%}#html-body [data-pb-style=D89DFC7]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:50%;align-self:stretch}
7895#html-body [data-pb-style=LTLQ4Q2]{text-align:center;border-style:none}#html-body [data-pb-style=M5YTC2J],#html-body [data-pb-style=RR34WLG]{max-width:100%;height:auto}#html-body [data-pb-style=BJCJ1NO]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:50%;align-self:stretch}#html-body [data-pb-style=R3B7B6M]{text-align:center;border-style:none}#html-body [data-pb-style=PR7KJN6],#html-body [data-pb-style=VAHEUOV]{max-width:100%;height:auto}#html-body [data-pb-style=M6GBHUX]{display:flex;width:100%}#html-body [data-pb-style=G37SDBA]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:50%;align-self:stretch}#html-body [data-pb-style=OQ5770J]{text-align:center;border-style:none}#html-body [data-pb-style=HEFJFBY],#html-body [data-pb-style=IWYML81]{max-width:100%;height:auto}#html-body [data-pb-style=YJ7TPWQ]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:50%;align-self:stretch}#html-body [data-pb-style=FSCRBDY]{text-align:center;border-style:none}#html-body [data-pb-style=TA25N0O],#html-body [data-pb-style=XRTJC07]{max-width:100%;height:auto}#html-body [data-pb-style=TIW5F78]{justify-content:flex-start;display:none;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=TIW5F78],#html-body [data-pb-style=Y482Y9I]{border-style:none;border-width:1px;border-radius:0}#html-body [data-pb-style=NT5CIO5],#html-body [data-pb-style=P4QUHTV]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=NT5CIO5]{justify-content:flex-start;display:flex;flex-direction:column}#html-body [data-pb-style=P4QUHTV]{align-self:stretch}#html-body [data-pb-style=NACTIOV]{display:flex;width:100%}#html-body [data-pb-style=UHD40NR]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:8.33333%}#html-body [data-pb-style=CS3QUKB],#html-body [data-pb-style=UHD40NR],#html-body [data-pb-style=Y0O1BT1]{justify-content:flex-start;display:flex;flex-direction:column;align-self:stretch}#html-body [data-pb-style=Y0O1BT1]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:83.3333%}#html-body [data-pb-style=CS3QUKB]{width:8.33333%}#html-body [data-pb-style=CS3QUKB],#html-body [data-pb-style=CSCFN7S],#html-body [data-pb-style=GBK0L81]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=CSCFN7S]{justify-content:flex-start;display:flex;flex-direction:column}#html-body [data-pb-style=GBK0L81]{text-align:center;display:none;align-self:stretch}#html-body [data-pb-style=PCD9U24]{display:flex;width:100%}#html-body [data-pb-style=QKIWP10],#html-body [data-pb-style=UV7P5AK]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=QKIWP10]{width:100%;align-self:stretch}#html-body [data-pb-style=UV7P5AK]{padding-bottom:40px}#html-body [data-pb-style=OO19NX0]{margin-bottom:74px}@media only screen and (max-width: 767px) { #html-body [data-pb-style=FSCRBDY],#html-body [data-pb-style=FYWHL37],#html-body [data-pb-style=L71T7JP],#html-body [data-pb-style=LFLD01F],#html-body [data-pb-style=LTLQ4Q2],#html-body [data-pb-style=OQ5770J],#html-body [data-pb-style=R3B7B6M]{border-style:none} }</style><div class="content-big-banner-section" data-content-type="row" data-appearance="full-bleed" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="RFV7TOY"><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="LKMF6RF"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="XCE42PH"><div class="pagebuilder-column content-big-banner-section__col-left" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="JG3BUW4"><div class="content-big-banner-section__title" data-content-type="text" data-appearance="default" data-element="main"><p>Built for Industry Demands, Engineered to Last</p></div><div class="content-big-banner-section__content" data-content-type="text" data-appearance="default" data-element="main"><p id="P73I729" style="line-height: 23px;">From industrial-scale warehousing and certified fleet protection to professional-grade agriculture and turf management, discover ShelterLogic’s suite of Commercial Grade Products. Rugged, reliable, and tailored to the needs of your business or municipality.</p></div><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main" data-pb-style="DNE67P0"><div class="pagebuilder-button-large pagebuilder-button-transparent" data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="YA0IO81"><a class="pagebuilder-button-secondary" href="https://www.shelterlogic.com/made-to-order/heavy-duty-shelters" target="" data-link-type="category" data-element="link" data-pb-style="A77A40W"><span data-element="link_text">Shop Now</span></a></div></div></div><div class="pagebuilder-column content-big-banner-section__col-right" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="UNQS5Q0"><figure data-content-type="image" data-appearance="browser-lazy-image" data-element="main" data-pb-style="LFLD01F"><img class="pagebuilder-mobile-hidden" loading="lazy" src="https://www.shelterlogic.com/media/wysiwyg/ShelterTech_Peak_GardenWarehouse_ASpot.png" width="984" height="500" alt="ShelterLogic Truss Buildings" title="ShelterLogic Truss Buildings" data-element="desktop_image" data-pb-style="N2V96HG"><img class="pagebuilder-mobile-only" loading="lazy" src="https://www.shelterlogic.com/media/wysiwyg/ShelterTech_Peak_GardenWarehouse_ASpot.png" width="984" height="500" alt="ShelterLogic Truss Buildings" title="ShelterLogic Truss Buildings" data-element="mobile_image" data-pb-style="Q30LRAV"><figcaption data-element="caption">ShelterLogic Truss Buildings</figcaption></figure></div></div></div></div><div class="promo-banner-section" data-content-type="row" data-appearance="full-bleed" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="EI3RV03"><div class="pagebuilder-column-group grid-2col-promo" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="EATQGPB"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="S8I4PEL"><div class="pagebuilder-column promo-banner-section__col-left" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="HTLB4TH"><figure class="arrow-right" data-content-type="image" data-appearance="browser-lazy-image" data-element="main" data-pb-style="FYWHL37"><a href="https://www.shelterlogic.com/made-to-order/truss-buildings" target="" data-link-type="category" title="ShelterTruss Building" data-element="link"><img class="pagebuilder-mobile-hidden" loading="lazy" src="https://www.shelterlogic.com/media/wysiwyg/ShelterTech-Round_BSpot.png" width="750" height="450" alt="ShelterTruss Building" title="ShelterTruss Building" data-element="desktop_image" data-pb-style="F8PVLKK"><img class="pagebuilder-mobile-only" loading="lazy" src="https://www.shelterlogic.com/media/wysiwyg/ShelterTech-Round_BSpot.png" width="750" height="450" alt="ShelterTruss Building" title="ShelterTruss Building" data-element="mobile_image" data-pb-style="Y8HMIFN"></a><figcaption data-element="caption">ShelterTruss Building</figcaption></figure><div class="promo-banner-section__content" data-content-type="text" data-appearance="default" data-element="main"><h3><span class="cc1152-uppercase" style="font-size: 28px;">Truss Buildings</span></h3> 7896<p> </p> 7897<p id="SDQLMKY">
7897Large-Scale Infrastructure. Permanent-site solutions for warehousing, hangars, and bulk storage.</p></div></div><div class="pagebuilder-column promo-banner-section__col-right" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="V3SOI0X"><figure class="arrow-right" data-content-type="image" data-appearance="browser-lazy-image" data-element="main" data-pb-style="L71T7JP"><a href="https://www.shelterlogic.com/outdoor-storage/garages/sheltertech" target="" data-link-type="category" title="ShelterTech® Portable Garage" data-element="link"><img class="pagebuilder-mobile-hidden" loading="lazy" src="https://www.shelterlogic.com/media/wysiwyg/Round_Hover_Image_BSpot.png" width="750" height="450" alt="ShelterTech® Portable Garage" title="ShelterTech® Portable Garage" data-element="desktop_image" data-pb-style="X05GGR1"><img class="pagebuilder-mobile-only" loading="lazy" src="https://www.shelterlogic.com/media/wysiwyg/Round_Hover_Image_BSpot.png" width="750" height="450" alt="ShelterTech® Portable Garage" title="ShelterTech® Portable Garage" data-element="mobile_image" data-pb-style="HW2TNT9"></a><figcaption data-element="caption">ShelterTech® Portable Garage</figcaption></figure><div class="promo-banner-section__content" data-content-type="text" data-appearance="default" data-element="main"><h3><span class="cc1152-uppercase" style="font-size: 28px;">ShelterTech® SP</span></h3> 7898<p> </p> 7899<p>The Gold Standard in Fabric Shelters. Our most durable, wind and snow-load certified custom fabric garages.</p></div></div></div><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="Y6N2SXD"><div class="pagebuilder-column promo-banner-section__col-right" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="D89DFC7"><figure class="arrow-right" data-content-type="image" data-appearance="browser-lazy-image" data-element="main" data-pb-style="LTLQ4Q2"><a href="https://www.shelterlogic.com/outdoor-storage/garages/metal-garages" target="" data-link-type="default" title="Murryhill Garage" data-element="link"><img class="pagebuilder-mobile-hidden" loading="lazy" src="https://www.shelterlogic.com/media/wysiwyg/SteelShed_BSpot.png" width="750" height="450" alt="Murryhill Garage" title="Murryhill Garage" data-element="desktop_image" data-pb-style="M5YTC2J"><img class="pagebuilder-mobile-only" loading="lazy" src="https://www.shelterlogic.com/media/wysiwyg/SteelShed_BSpot.png" width="750" height="450" alt="Murryhill Garage" title="Murryhill Garage" data-element="mobile_image" data-pb-style="RR34WLG"></a><figcaption data-element="caption">Murryhill Garage</figcaption></figure><div class="promo-banner-section__content" data-content-type="text" data-appearance="default" data-element="main"><h3><span class="cc1152-uppercase" style="font-size: 28px;">Steel Garages</span></h3> 7900<p> </p> 7901<p>Ultimate Security. All-steel, 29-gauge buildings for workshops and high-value inventory storage.</p></div></div><div class="pagebuilder-column promo-banner-section__col-left" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="BJCJ1NO"><figure class="arrow-right" data-content-type="image" data-appearance="browser-lazy-image" data-element="main" data-pb-style="R3B7B6M"><a href="https://www.shelterlogic.com/outdoor-storage/carports/steelpeak" target="" data-link-type="category" title="STEELPEAK Carport" data-element="link"><img class="pagebuilder-mobile-hidden" loading="lazy" src="https://www.shelterlogic.com/media/wysiwyg/STeelPeak_BSpot_Commercial.jpg" width="750" height="450" alt="STEELPEAK Carport" title="STEELPEAK Carport" data-element="desktop_image" data-pb-style="VAHEUOV"><img class="pagebuilder-mobile-only" loading="lazy" src="https://www.shelterlogic.com/media/wysiwyg/STeelPeak_BSpot_Commercial.jpg" width="750" height="450" alt="STEELPEAK Carport" title="STEELPEAK Carport" data-element="mobile_image" data-pb-style="PR7KJN6"></a><figcaption data-element="caption">
7901STEELPEAK Carport</figcaption></figure><div class="promo-banner-section__content" data-content-type="text" data-appearance="default" data-element="main"><h3><span class="cc1152-uppercase" style="font-size: 28px;">STEELPEAK™ Carports</span></h3> 7902<p> </p> 7903<p>Fleet & Equipment Protection. High-clearance, certified steel structures for tractors, trucks, and vans.</p></div></div></div><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="M6GBHUX"><div class="pagebuilder-column promo-banner-section__col-right" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="G37SDBA"><figure class="arrow-right" data-content-type="image" data-appearance="browser-lazy-image" data-element="main" data-pb-style="OQ5770J"><a href="https://www.shelterlogic.com/gardening/greenhouses/high-tunnel-greenhouses" target="" data-link-type="category" title="High Tunnel Greenhouses" data-element="link"><img class="pagebuilder-mobile-hidden" loading="lazy" src="https://www.shelterlogic.com/media/wysiwyg/HighTunnelBSpot.png" width="750" height="450" alt="High Tunnel Greenhouses" title="High Tunnel Greenhouses" data-element="desktop_image" data-pb-style="HEFJFBY"><img class="pagebuilder-mobile-only" loading="lazy" src="https://www.shelterlogic.com/media/wysiwyg/HighTunnelBSpot.png" width="750" height="450" alt="High Tunnel Greenhouses" title="High Tunnel Greenhouses" data-element="mobile_image" data-pb-style="IWYML81"></a><figcaption data-element="caption">High Tunnel Greenhouses</figcaption></figure><div class="promo-banner-section__content" data-content-type="text" data-appearance="default" data-element="main"><h3><span class="cc1152-uppercase" style="font-size: 28px;">High Tunnel Greenhouses</span></h3> 7904<p> </p> 7905<p>Commercial Cultivation. Professional season-extension kits for high-yield agricultural operations.</p></div></div><div class="pagebuilder-column promo-banner-section__col-right" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="YJ7TPWQ"><figure class="arrow-right" data-content-type="image" data-appearance="browser-lazy-image" data-element="main" data-pb-style="FSCRBDY"><a href="https://www.shelterlogic.com/made-to-order/baseball-field-tarps" target="" data-link-type="category" title="Turf Field Tarp" data-element="link"><img class="pagebuilder-mobile-hidden" loading="lazy" src="https://www.shelterlogic.com/media/catalog/category/03_Baseball_PromoBlock_MadeToOrder_0323.jpg" width="750" height="450" alt="Turf Field Tarp" title="Turf Field Tarp" data-element="desktop_image" data-pb-style="TA25N0O"><img class="pagebuilder-mobile-only" loading="lazy" src="https://www.shelterlogic.com/media/catalog/category/03_Baseball_PromoBlock_MadeToOrder_0323.jpg" width="750" height="450" alt="Turf Field Tarp" title="Turf Field Tarp" data-element="mobile_image" data-pb-style="XRTJC07"></a><figcaption data-element="caption">Turf Field Tarp</figcaption></figure><div class="promo-banner-section__content" data-content-type="text" data-appearance="default" data-element="main"><h3><span class="cc1152-uppercase" style="font-size: 28px;">Athletic Field Tarps</span></h3> 7906<p> </p> 7907<p>Professional Turf Care. Trusted protection for collegiate and professional-level baseball and softball fields.</p></div></div></div></div></div><div class="cc1152-pb-8 cc1152-lg:pb-12" data-content-type="row" data-appearance="full-bleed" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="TIW5F78"><div data-content-type="text" data-appearance="default" data-element="main" data-pb-style="Y482Y9I"><p></p><div class="block widget block-products-list grid"> 7908 <h2 class="block-title mb-3 md:mb-8 text-24 lg:text-3xl font-extrabold"> 7909 <strong>Made To Order Products</strong> 7910 </h2> 7911 <div class="block-content"> 7912 <div class="mx-auto grid gap-4 sm:gap-6 grid-cols-2 md:grid-cols-3 lg:grid-cols-5"> 7913 <div class="item product product-item shrink-0 product_addtocart_form flex flex-col w-full " data-sku="SteelPeak"> 7914 <div class="product-info-top grow">
7915 <span class="relative block"> 7916 <a href="https://www.shelterlogic.com/arrow-steelpeak-vertical-boxed-eave-carport" class="xs:p-2 product flex justify-center border border-gray-100 product-item-photo mb-3 " aria-label="Product image Arrow STEELPEAK™ Vertical Boxed Eave Carport" x-data="{ hover: false }" title="Arrow STEELPEAK™ Vertical Boxed Eave Carport" @mouseover="hover=true" @mouseover.away="hover=false" tabindex="0"> 7917 <span class="sr-only">Product image Arrow STEELPEAK™ Vertical Boxed Eave Carport</span> 7918 <div x-show="!hover"> 7919 <img class="object-contain product-image-photo" x-data="" @update-gallery-59697.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/i/m/image_vcp202007cc_silo_image_01.png?quality=80&bg-color=255,255,255&fit=bounds&height=222&width=222&canvas=222:222" loading="lazy" width="222" height="222" alt="Arrow STEELPEAK™ Vertical Boxed Eave Carport"> </div> 7920 <div x-cloak x-show="hover"> 7921 <img class="object-contain product-image-photo" x-data="" @update-gallery-59697.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/i/m/image_vcp123008eg_silo_image_01_1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=260&width=260&canvas=260:260" loading="lazy" width="222" height="222" alt="Arrow STEELPEAK™ Vertical Boxed Eave Carport"> </div> 7922 </a> 7923 <div class="absolute label-additional-new"> 7924 New </div> 7925 7926 </span> 7927 <a class="text-base font-bold product-item-link h-[47px] line-clamp-2 hover:underline" aria-label="Arrow STEELPEAK™ Vertical Boxed Eave Carport" href="https://www.shelterlogic.com/arrow-steelpeak-vertical-boxed-eave-carport" :id="`slide-desc-59697-${$id('slider-id')}`"> 7928 Arrow STEELPEAK™ Vertical Boxed Eave Carport </a> 7929 </div> 7930 <div class="product-info-bottom flex flex-col justify-start h-full"> 7931 <div class="mt-2 2xss:h-6 2xss:overflow-hidden mb-1.5"> 7932 <div class="rating-snippet-product-rating-listing cursor-pointer" data-sku="SteelPeak;VCP1210007CC;VCP1210007EG;VCP1210008CC;VCP1210008EG;VCP1210009CC;VCP1210009EG;VCP122007CC;VCP122007EG;VCP122008CC;VCP122008EG;VCP122009CC;VCP122009EG;VCP122507CC;VCP122507EG;VCP122508CC;VCP122508EG;VCP122509CC;VCP122509EG;VCP123007CC;VCP123007EG;VCP123008CC;VCP123008EG;VCP123009CC;VCP123009EG;VCP123507CC;VCP123507EG;VCP123508CC;VCP123508EG;VCP123509CC;VCP123509EG;VCP124007CC;VCP124007EG;VCP124008CC;VCP124008EG;VCP124009CC;VCP124009EG;VCP124507CC;VCP124507EG;VCP124508CC;VCP124508EG;VCP124509CC;VCP124509EG;VCP125007CC;VCP125007EG;VCP125008CC;VCP125008EG;VCP125009CC;VCP125009EG;VCP125507CC;VCP125507EG;VCP125508CC;VCP125508EG;VCP125509CC;VCP125509EG;VCP126007CC;VCP126007EG;VCP126008CC;VCP126008EG;VCP126009CC;VCP126009EG;VCP126507CC;VCP126507EG;VCP126508CC;VCP126508EG;VCP126509CC;VCP126509EG;VCP127007CC;VCP127007EG;VCP127008CC;VCP127008EG;VCP127009CC;VCP127009EG;VCP127507CC;VCP127507EG;VCP127508CC;VCP127508EG;VCP127509CC;VCP127509EG;VCP128007CC;VCP128007EG;VCP128008CC;VCP128008EG;VCP128009CC;VCP128009EG;VCP128507CC;VCP128507EG;VCP128508CC;VCP128508EG;VCP128509CC;VCP128509EG;VCP129007CC;VCP129007EG;VCP129008CC;VCP129008EG;VCP129009CC;VCP129009EG;VCP129507CC;VCP129507EG;VCP129508CC;VCP129508EG;VCP129509CC;VCP129509EG;VCP202007CC;VCP202007EG;VCP202008CC;VCP202008EG;VCP202009CC;VCP202009EG;VCP202010CC;VCP202010EG;VCP202011CC;VCP202011EG;VCP202012CC;VCP202012EG;VCP202013CC;VCP202013EG;VCP202507CC;VCP202507EG;VCP202508CC;VCP202508EG;VCP202509CC;VCP202509EG;VCP202510CC;VCP202510EG;VCP202511CC;VCP202511EG;VCP202512CC;VCP202512EG;VCP202513CC;VCP202513EG;VCP203007CC;VCP203007EG;VCP203008CC;VCP203008EG;VCP203009CC;VCP203009EG;VCP203010CC;VCP203010EG;VCP203011CC;VCP203011EG;VCP203012CC;VCP203012EG;VCP203013CC;VCP203013EG;VCP203507CC;VCP203507EG;VCP203508CC;VCP203508EG;VCP203509CC;VCP203509EG;VCP203510CC;VCP203510EG;VCP203511CC;VCP203511EG;VCP203512CC;VCP203512EG;VCP203513CC;VCP203513EG;VCP204007CC;VCP204007EG;VCP204008CC;VCP204008EG;VCP204009CC;VCP204009EG;VCP204010CC;VCP204010EG;VCP204011CC;VCP204011EG;VCP204012CC;VCP204012EG;VCP204013CC;VCP204013EG;VCP204507CC;VCP204507EG;VCP204508CC;VCP204508EG;VCP204509CC;VCP204509EG;VCP204510CC;VCP204510EG;VCP204511CC;VCP204511EG;VCP204512CC;VCP204512EG;VCP204513CC;VCP204513EG;VCP205007CC;VCP205007EG;VCP205008CC;VCP205008EG;VCP205009CC;VCP205009EG;VCP205010CC;VCP205010EG;VCP205011CC;VCP205011EG;VCP205012CC;VCP205012EG;VCP205013CC;VCP205013EG;VCP205507CC;VCP205507EG;VCP205508CC;VCP205508EG;VCP205509CC;VCP205509EG;VCP205510CC;VCP205510EG;VCP205511CC;VCP205511EG;VCP205512CC;VCP205512EG;VCP205513CC;VCP205513EG;VCP206007CC;VCP206007EG;VCP206008CC;VCP206008EG;VCP206009CC;VCP206009EG;VCP206010CC;VCP206010EG;VCP206011CC;VCP206011EG;VCP206012CC;VCP206012EG;VCP206013CC;VCP206013EG;VCP206507CC;VCP206507EG;VCP206508CC;VCP206508EG;VCP206509CC;VCP206509EG;VCP206510CC;VCP206510EG;VCP206511CC;VCP206511EG;VCP206512CC;VCP206512EG;VCP206513CC;VCP206513EG;VCP207007CC;VCP207007EG;VCP207008CC;VCP207008EG;VCP207009CC;VCP207009EG;VCP207010CC;VCP207010EG;VCP207011CC;VCP207011EG;VCP207012CC;VCP207012EG;VCP207013CC;VCP207013EG;VCP242007CC;VCP242007EG;VCP242008CC;VCP242008EG;VCP242009CC;VCP242009EG;VCP242010CC;VCP242010EG;VCP242011CC;VCP242011EG;VCP242012CC;VCP242012EG;VCP242013CC;VCP242013EG;VCP242507CC;VCP242507EG;VCP242508CC;VCP242508EG;VCP242509CC;VCP242509EG;VCP242510CC;VCP242510EG;VCP242511CC;VCP242511EG;VCP242512CC;VCP242512EG;VCP242513CC;VCP242513EG;VCP243007CC;VCP243007EG;VCP243008CC;VCP243008EG;VCP243009CC;VCP243009EG;VCP243010CC;VCP243010EG;VCP243011CC;VCP243011EG;VCP243012CC;VCP243012EG;VCP243013CC;VCP243013EG;VCP243507CC;VCP243507EG;VCP243508CC;VCP243508EG;VCP243509CC;VCP243509EG;VCP243510CC;VCP243510EG;VCP243511CC;VCP243511EG;VCP243512CC;VCP243512EG;VCP243513CC;VCP243513EG;VCP244007CC;VCP244007EG;VCP244008CC;VCP244008EG;VCP244009CC;VCP244009EG;VCP244010CC;VCP244010EG;VCP244011CC;VCP244011EG;VCP244012CC;VCP244012EG;VCP244013CC;VCP244013EG;VCP244507CC;VCP244507EG;VCP244508CC;VCP244508EG;VCP244509CC;VCP244509EG;VCP244510CC;VCP244510EG;VCP244511CC;VCP244511EG;VCP244512CC;VCP244512EG;VCP244513CC;VCP244513EG;VCP245007CC;VCP245007EG;VCP245008CC;VCP245008EG;VCP245009CC;VCP245009EG;VCP245010CC;VCP245010EG;VCP245011CC;VCP245011EG;VCP245012CC;VCP245012EG;VCP245013CC;VCP245013EG;VCP245507CC;VCP245507EG;VCP245508CC;VCP245508EG;VCP245509CC;VCP245509EG;VCP245510CC;VCP245510EG;VCP245511CC;VCP245511EG;VCP245512CC;VCP245512EG;VCP245513CC;VCP245513EG" aria-label="Product Reviews sku SteelPeak" role="link" tabindex="0"></div> 7933 <!--suppress JSUnresolvedReference --> 7934
7934<script type="text/javascript"> 7935 window.addEventListener('reviews-io-loaded', () => { 7936 ratingSnippet('rating-snippet-product-rating-listing', { 7937 store: 'shelterlogic.com', 7938 mode: 'default', 7939 color: '\u0023E1AB2E', 7940 linebreak: false, 7941 text: 'Reviews', 7942 singularText: 'Review', 7943 lang: 'en', 7944 usePolaris: false, 7945 showEmptyStars: true, 7946 }); 7947 }, {once: true, passive: true}); 7948 </script>
7948 7949 7950 </div> 7951 7952 7953 7954 7955 <div class="text-grey-darker relative pt-4" x-data="initPriceBox()" x-defer="intersect" @update-prices-59697.window="updatePrice($event.detail);"> 7956 7957 <div class="price-box price-final_price" data-role="priceBox" data-product-id="59697" data-price-box="product-id-59697"> <span class="normal-price"><span x-data x-id="['product\u002Dprice\u002D59697']" class="price-container price-final_price tax weee"> 7958 <span class="price-label">Starting at</span> 7959 <span :id="$id('product\u002Dprice\u002D59697')" data-price-amount="2209.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">$2,209.99</span><span class="pl-1 xl:pl-2 font-bold text-base currency-syffix">USD</span></span> 7960 </span></span> <span class="old-price sly-old-price"><span x-data x-id="['old\u002Dprice\u002D59697']" class="price-container price-final_price tax weee"> 7961 <span class="price-label">Regular Price</span> 7962 <span :id="$id('old\u002Dprice\u002D59697')" data-price-amount="2599.99" data-price-type="oldPrice" class="price-wrapper "><span class="price">$2,599.99</span><span class="pl-1 xl:pl-2 font-bold text-base currency-syffix">USD</span></span> 7963 </span></span> </div> 7964 <div class="flex flex-col flex-wrap justify-center"> 7965 <div class="flex mt-1 text-sm label-additional-middle label-additional-free-shipping fotorama-loaded"> 7966 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" class="fill-current text-red-50 w-5 h-5 mr-1" width="25" height="25" aria-hidden="true"> 7967 <path d="M8 16.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM15 16.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0z"></path> 7968 <path d="M3 4a1 1 0 00-1 1v10a1 1 0 001 1h1.05a2.5 2.5 0 014.9 0H10a1 1 0 001-1V5a1 1 0 00-1-1H3zM14 7a1 1 0 00-1 1v6.05A2.5 2.5 0 0115.95 16H17a1 1 0 001-1v-5a1 1 0 00-.293-.707l-2-2A1 1 0 0015 7h-1z"></path> 7969</svg> 7970 Free Shipping </div> 7971
7971<script> 7972 'use strict'; 7973 7974 (() => { 7975 window.addEventListener( 7976 'ga-initialized', 7977 () => { 7978 const productForm = document.querySelector( 7979 'form\u005Bdata\u002Dsku\u003D\u0022SteelPeak\u0022\u005D' 7980 ); 7981 7982 if (!productForm) { 7983 return; 7984 } 7985 7986 let sku = 'SteelPeak'; 7987 7988 window.addEventListener( 7989 'listing\u002Dconfigurable-selection-changed', 7990 (event) => { 7991 if (event.detail.skuCandidates.length === 1 7992 && event.detail.productId === '59697' 7993 ) { 7994 sku = event.detail.skuCandidates[0]; 7995 } 7996 } 7997 ); 7998 7999 function bindEventListener(element, event) 8000 { 8001 element.addEventListener(event, () => { 8002 if (productForm.checkValidity()) { 8003 const priceSelector = false ? '#product-price-59697 .price' 8004 : '[data-price-box="product-id-59697"] .price'; 8005 8006 window.dispatchEvent(new CustomEvent('cart-item-added', { 8007 detail: [{ 8008 product_sku: sku, 8009 product_name: 'Arrow\u0020STEELPEAK\u2122\u0020Vertical\u0020Boxed\u0020Eave\u0020Carport', 8010 product_price_value: document.querySelector(priceSelector).textContent.slice(1), 8011 8012 qty: 1, 8013 }], 8014 })); 8015 } 8016 }); 8017 } 8018 8019 const button = productForm.querySelector( 8020 'button\u005Bdata\u002Daddto\u003D\u0022cart\u0022\u005D' 8021 ); 8022 8023 if (!button) { 8024 return; 8025 } 8026 8027 bindEventListener(button, 'click'); 8028 }, 8029 { once: true } 8030 ); 8031 })();</script>
8031 </div> 8032 </div> 8033 </div> 8034</div> 8035 <div class="item product product-item shrink-0 product_addtocart_form flex flex-col w-full " data-sku="AASC"> 8036 <div class="product-info-top grow"> 8037 <span class="relative block"> 8038 <a href="https://www.shelterlogic.com/arrow-carport" class="xs:p-2 product flex justify-center border border-gray-100 product-item-photo mb-3 " aria-label="Product image Arrow Carport Kit - Build your Own" x-data="{ hover: false }" title="Arrow Carport Kit - Build your Own" @mouseover="hover=true" @mouseover.away="hover=false" tabindex="0"> 8039 <span class="sr-only">Product image Arrow Carport Kit - Build your Own</span> 8040 <div x-show="!hover"> 8041 <img class="object-contain product-image-photo" x-data="" @update-gallery-49888.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/c/p/cph202007_silo_image_01_5.png?quality=80&bg-color=255,255,255&fit=bounds&height=222&width=222&canvas=222:222" loading="lazy" width="222" height="222" alt="Arrow Carport Kit - Build your Own"> </div> 8042 <div x-cloak x-show="hover"> 8043 <img class="object-contain product-image-photo" x-data="" @update-gallery-49888.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/c/p/cphc202907_silo_image_01_3.png?quality=80&bg-color=255,255,255&fit=bounds&height=260&width=260&canvas=260:260" loading="lazy" width="222" height="222" alt="Arrow Carport Kit - Build your Own"> </div> 8044 </a> 8045 8046 </span> 8047 <a class="text-base font-bold product-item-link h-[47px] line-clamp-2 hover:underline" aria-label="Arrow Carport Kit - Build your Own" href="https://www.shelterlogic.com/arrow-carport" :id="`slide-desc-49888-${$id('slider-id')}`"> 8048 Arrow Carport Kit - Build your Own </a> 8049 </div> 8050 <div class="product-info-bottom flex flex-col justify-start h-full"> 8051 <div class="mt-2 2xss:h-6 2xss:overflow-hidden mb-1.5"> 8052 <div class="rating-snippet-product-rating-listing cursor-pointer" data-sku="AASC;CPH122007;CPH101507;CPH102407;CPH122407;CPH122907;CPH102907;CPH102007;CPH1010007;CPH103307;CPH103807;CPH104207;CPH104707;CPH105107;CPH105607;CPH106007;CPH106507;CPH106907;CPH107407;CPH107807;CPH108207;CPH108707;CPH109107;CPH109607;CPH1210007;CPH123307;CPH123807;CPH124207;CPH124707;CPH125107;CPH125607;CPH126007;CPH126507;CPH126907;CPH127407;CPH127807;CPH128207;CPH128707;CPH129107;CPH129607;CPHC1010007;CPHC101507;CPHC102007;CPHC102407;CPHC102907;CPHC103307;CPHC103807;CPHC104207;CPHC104707;CPHC105107;CPHC105607;CPHC106007;CPHC106507;CPHC106907;CPHC107407;CPHC107807;CPHC108207;CPHC108707;CPHC109107;CPHC109607;CPHC1210007;CPHC122007;CPHC122407;CPHC122907;CPHC123307;CPHC123807;CPHC124207;CPHC124707;CPHC125107;CPHC125607;CPHC126007;CPHC126507;CPHC126907;CPHC127407;CPHC127807;CPHC128207;CPHC128707;CPHC129107;CPHC129607;CPH202007;CPHC202007;CPH202407;CPH202907;CPHC202407;CPHC202907;CPH203307;CPH203807;CPH204207;CPH204707;CPH205107;CPH205607;CPH206007;CPH206507;CPH206907;CPH207407;CPH207807;CPH208207;CPH208707;CPH209107;CPH209607;CPH2010007;CPHC203307;CPHC203807;CPHC204207;CPHC204707;CPHC205107;CPHC205607;CPHC206007;CPHC206507;CPHC206907;CPHC207407;CPHC207807;CPHC208207;CPHC208707;CPHC209107;CPHC209607;CPHC2010007;CPH142014;CPH142414;CPH142914;CPH143314;CPH143814;CPH144214;CPH144714;CPH101509;CPH102009;CPH102409;CPH102909;CPH122009;CPH122409;CPH122909;CPH202009;CPH202409;CPH202909;CPHC101509;CPHC102009;CPHC102409;CPHC102909;CPHC122009;CPHC122409;CPHC122909;CPHC202009;CPHC202409;CPHC202909;CPH103309;CPH103809;CPH104209;CPH104709;CPH105109;CPH105609;CPH106009;CPH106509;CPH106909;CPH107409;CPH107809;CPH108209;CPH108709;CPH109109;CPH109609;CPH1010009;CPH123309;CPH123809;CPH124209;CPH124709;CPH125109;CPH125609;CPH126009;CPH126509;CPH126909;CPH127409;CPH127809;CPH128209;CPH128709;CPH129109;CPH129609;CPH1210009;CPH203309;CPH203809;CPH204209;CPH204709;CPH205109;CPH205609;CPH206009;CPH206509;CPH206909;CPH207409;CPH207809;CPH208209;CPH208709;CPH209109;CPH209609;CPH2010009;CPHC103309;CPHC103809;CPHC104209;CPHC104709;CPHC105109;CPHC105609;CPHC106009;CPHC106509;CPHC106909;CPHC107409;CPHC107809;CPHC108209;CPHC108709;CPHC109109;CPHC109609;CPHC1010009;CPHC123309;CPHC123809;CPHC124209;CPHC124709;CPHC125109;CPHC125609;CPHC126009;CPHC126509;CPHC126909;CPHC127409;CPHC127809;CPHC128209;CPHC128709;CPHC129109;CPHC129609;CPHC1210009;CPHC203309;CPHC203809;CPHC204209;CPHC204709;CPHC205109;CPHC205609;CPHC206009;CPHC206509;CPHC206909;CPHC207409;CPHC207809;CPHC208209;CPHC208709;CPHC209109;CPHC209609;CPHC2010009;CPHC147814" aria-label="Product Reviews sku AASC" role="link" tabindex="0"></div> 8053 <!--suppress JSUnresolvedReference --> 8054
8054<script type="text/javascript"> 8055 window.addEventListener('reviews-io-loaded', () => { 8056 ratingSnippet('rating-snippet-product-rating-listing', { 8057 store: 'shelterlogic.com', 8058 mode: 'default', 8059 color: '\u0023E1AB2E', 8060 linebreak: false, 8061 text: 'Reviews', 8062 singularText: 'Review', 8063 lang: 'en', 8064 usePolaris: false, 8065 showEmptyStars: true, 8066 }); 8067 }, {once: true, passive: true}); 8068 </script>
8068 8069 8070 </div> 8071 8072
8072<script nonce="NHRtODJpbGtodmR4MTgxcmxkd2F3a2c0Z2piYWdtNWo="> 8073 window['YIREO_GOOGLETAGMANAGER2_PRODUCT_DATA_ID_49888'] = {"item_id":"AASC","item_sku":"AASC","magento_sku":"AASC","magento_id":"49888","item_image_url":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/placeholder\/default\/SLG_PlaceholderLogo_0322_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265","item_name":"Arrow Carport Kit - Build your Own","item_brand":"Arrow\u00ae","item_list_id":"167","item_list_name":"Outdoor Storage","price":1199.99,"item_category":"Outdoor Storage","item_category2":"Motorcycle Sheds + Shelters","item_category3":"Custom Commercial Grade Buildings & Shelters","item_category4":"Arrow Single and Double Car Carports","item_category5":"Arrow Carports for Trucks & SUVs","index":0};</script>
8073 8074 8075 8076 <div class="text-grey-darker relative pt-4" x-data="initPriceBox()" x-defer="intersect" @update-prices-49888.window="updatePrice($event.detail);"> 8077 8078 <div class="price-box price-final_price" data-role="priceBox" data-product-id="49888" data-price-box="product-id-49888"> <span class="normal-price"><span x-data x-id="['product\u002Dprice\u002D49888']" class="price-container price-final_price tax weee"> 8079 <span class="price-label">Starting at</span> 8080 <span :id="$id('product\u002Dprice\u002D49888')" data-price-amount="1199.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">$1,199.99</span><span class="pl-1 xl:pl-2 font-bold text-base currency-syffix">USD</span></span> 8081 </span></span> </div> 8082 <div class="flex flex-col flex-wrap justify-center"> 8083 <div class="flex mt-1 text-sm label-additional-middle label-additional-free-shipping fotorama-loaded"> 8084 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" class="fill-current text-red-50 w-5 h-5 mr-1" width="25" height="25" aria-hidden="true"> 8085 <path d="M8 16.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM15 16.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0z"></path> 8086 <path d="M3 4a1 1 0 00-1 1v10a1 1 0 001 1h1.05a2.5 2.5 0 014.9 0H10a1 1 0 001-1V5a1 1 0 00-1-1H3zM14 7a1 1 0 00-1 1v6.05A2.5 2.5 0 0115.95 16H17a1 1 0 001-1v-5a1 1 0 00-.293-.707l-2-2A1 1 0 0015 7h-1z"></path> 8087</svg> 8088 Free Shipping </div> 8089
8089<script> 8090 'use strict'; 8091 8092 (() => { 8093 window.addEventListener( 8094 'ga-initialized', 8095 () => { 8096 const productForm = document.querySelector( 8097 'form\u005Bdata\u002Dsku\u003D\u0022AASC\u0022\u005D' 8098 ); 8099 8100 if (!productForm) { 8101 return; 8102 } 8103 8104 let sku = 'AASC'; 8105 8106 window.addEventListener( 8107 'listing\u002Dconfigurable-selection-changed', 8108 (event) => { 8109 if (event.detail.skuCandidates.length === 1 8110 && event.detail.productId === '49888' 8111 ) { 8112 sku = event.detail.skuCandidates[0]; 8113 } 8114 } 8115 ); 8116 8117 function bindEventListener(element, event) 8118 { 8119 element.addEventListener(event, () => { 8120 if (productForm.checkValidity()) { 8121 const priceSelector = false ? '#product-price-49888 .price' 8122 : '[data-price-box="product-id-49888"] .price'; 8123 8124 window.dispatchEvent(new CustomEvent('cart-item-added', { 8125 detail: [{ 8126 product_sku: sku, 8127 product_name: 'Arrow\u0020Carport\u0020Kit\u0020\u002D\u0020Build\u0020your\u0020Own', 8128 product_price_value: document.querySelector(priceSelector).textContent.slice(1), 8129 8130 qty: 1, 8131 }], 8132 })); 8133 } 8134 }); 8135 } 8136 8137 const button = productForm.querySelector( 8138 'button\u005Bdata\u002Daddto\u003D\u0022cart\u0022\u005D' 8139 ); 8140 8141 if (!button) { 8142 return; 8143 } 8144 8145 bindEventListener(button, 'click'); 8146 }, 8147 { once: true } 8148 ); 8149 })();</script>
8149 </div> 8150 </div> 8151 </div> 8152</div> 8153 <div class="item product product-item shrink-0 product_addtocart_form flex flex-col w-full " data-sku="STHTGH-FK"> 8154 <div class="product-info-top grow"> 8155 <span class="relative block"> 8156 <a href="https://www.shelterlogic.com/sheltertech-high-tunnel-greenhouse-full-kit" class="xs:p-2 product flex justify-center border border-gray-100 product-item-photo mb-3 " aria-label="Product image High Tunnel Greenhouse, Full Kit" x-data="{ hover: false }" title="High Tunnel Greenhouse, Full Kit" @mouseover="hover=true" @mouseover.away="hover=false" tabindex="0"> 8157 <span class="sr-only">Product image High Tunnel Greenhouse, Full Kit</span> 8158 <div x-show="!hover"> 8159 <img class="object-contain product-image-photo" x-data="" @update-gallery-48218.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/s/t/sthtgh-fk.png?quality=80&bg-color=255,255,255&fit=bounds&height=222&width=222&canvas=222:222" loading="lazy" width="222" height="222" alt="High Tunnel Greenhouse, Full Kit"> </div> 8160 <div x-cloak x-show="hover"> 8161 <img class="object-contain product-image-photo" x-data="" @update-gallery-48218.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/s/t/sthtgh-fk_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=260&width=260&canvas=260:260" loading="lazy" width="222" height="222" alt="High Tunnel Greenhouse, Full Kit"> </div> 8162 </a> 8163 8164 </span> 8165 <a class="text-base font-bold product-item-link h-[47px] line-clamp-2 hover:underline" aria-label="High Tunnel Greenhouse, Full Kit" href="https://www.shelterlogic.com/sheltertech-high-tunnel-greenhouse-full-kit" :id="`slide-desc-48218-${$id('slider-id')}`"> 8166 High Tunnel Greenhouse, Full Kit </a> 8167 </div> 8168 <div class="product-info-bottom flex flex-col justify-start h-full"> 8169 <div class="mt-2 2xss:h-6 2xss:overflow-hidden mb-1.5"> 8170 <div class="rating-snippet-product-rating-listing cursor-pointer" data-sku="STHTGH-FK;CFBAJJ0608F00800408;CFBAJJ0608F00800808;CFBAJJ0608F00801208;CFBAJJ0608F00801608;CFBAJJ0608F00802008;CFBAJJ0608F00802408;CFBAJJ0608F00802808;CFBAJJ0608F00803208;CFBAJJ0608F00803608;CFBAJJ0608F00804008;CFBAJJ0608F00804408;CFBAJJ0608F00804808;CFBAJJ0608F00805208;CFBAJJ0608F00805608;CFBAJJ0608F00806008;CFBAJJ0608F00806408;CFBAJJ0608F00806808;CFBAJJ0608F00807208;CFBAJJ0608F00807608;CFBAJJ0608F00808008;CFBAJJ0608F00808408;CFBAJJ0608F00808808;CFBAJJ0608F00809208;CFBAJJ0608F00809608;CFBAJJ0608F00810008;CFBAJJ0608F01000408;CFBAJJ0608F01000808;CFBAJJ0608F01001208;CFBAJJ0608F01001608;CFBAJJ0608F01002008;CFBAJJ0608F01002408;CFBAJJ0608F01002808;CFBAJJ0608F01003208;CFBAJJ0608F01003608;CFBAJJ0608F01004008;CFBAJJ0608F01004408;CFBAJJ0608F01004808;CFBAJJ0608F01005208;CFBAJJ0608F01005608;CFBAJJ0608F01006008;CFBAJJ0608F01006408;CFBAJJ0608F01006808;CFBAJJ0608F01007208;CFBAJJ0608F01007608;CFBAJJ0608F01008008;CFBAJJ0608F01008408;CFBAJJ0608F01008808;CFBAJJ0608F01009208;CFBAJJ0608F01009608;CFBAJJ0608F01010008;CFBAJJ0608F01200408;CFBAJJ0608F01200808;CFBAJJ0608F01201208;CFBAJJ0608F01201608;CFBAJJ0608F01202008;CFBAJJ0608F01202408;CFBAJJ0608F01202808;CFBAJJ0608F01203208;CFBAJJ0608F01203608;CFBAJJ0608F01204008;CFBAJJ0608F01204408;CFBAJJ0608F01204808;CFBAJJ0608F01205208;CFBAJJ0608F01205608;CFBAJJ0608F01206008;CFBAJJ0608F01206408;CFBAJJ0608F01206808;CFBAJJ0608F01207208;CFBAJJ0608F01207608;CFBAJJ0608F01208008;CFBAJJ0608F01208408;CFBAJJ0608F01208808;CFBAJJ0608F01209208;CFBAJJ0608F01209608;CFBAJJ0608F01210008;CFBAJJ0608F01400408;CFBAJJ0608F01400808;CFBAJJ0608F01401208;CFBAJJ0608F01401608;CFBAJJ0608F01402008;CFBAJJ0608F01402408;CFBAJJ0608F01402808;CFBAJJ0608F01403208;CFBAJJ0608F01403608;CFBAJJ0608F01404008;CFBAJJ0608F01404408;CFBAJJ0608F01404808;CFBAJJ0608F01405208;CFBAJJ0608F01405608;
8170CFBAJJ0608F01406008;CFBAJJ0608F01406408;CFBAJJ0608F01406808;CFBAJJ0608F01407208;CFBAJJ0608F01407608;CFBAJJ0608F01408008;CFBAJJ0608F01408408;CFBAJJ0608F01408808;CFBAJJ0608F01409208;CFBAJJ0608F01409608;CFBAJJ0608F01410008;CFBAJJ0608F02000410;CFBAJJ0608F02000810;CFBAJJ0608F02001210;CFBAJJ0608F02001610;CFBAJJ0608F02002010;CFBAJJ0608F02002410;CFBAJJ0608F02002810;CFBAJJ0608F02003210;CFBAJJ0608F02003610;CFBAJJ0608F02004010;CFBAJJ0608F02004410;CFBAJJ0608F02004810;CFBAJJ0608F02005210;CFBAJJ0608F02005610;CFBAJJ0608F02006010;CFBAJJ0608F02006410;CFBAJJ0608F02006810;CFBAJJ0608F02007210;CFBAJJ0608F02007610;CFBAJJ0608F02008010;CFBAJJ0608F02008410;CFBAJJ0608F02008810;CFBAJJ0608F02009210;CFBAJJ0608F02009610;CFBAJJ0608F02010010;CFBAJJ0608F02600413;CFBAJJ0608F02600813;CFBAJJ0608F02601213;CFBAJJ0608F02601613;CFBAJJ0608F02602013;CFBAJJ0608F02602413;CFBAJJ0608F02602813;CFBAJJ0608F02603213;CFBAJJ0608F02603613;CFBAJJ0608F02604013;CFBAJJ0608F02604413;CFBAJJ0608F02604813;CFBAJJ0608F02605213;CFBAJJ0608F02605613;CFBAJJ0608F02606013;CFBAJJ0608F02606413;CFBAJJ0608F02606813;CFBAJJ0608F02607213;CFBAJJ0608F02607613;CFBAJJ0608F02608013;CFBAJJ0608F02608413;CFBAJJ0608F02608813;CFBAJJ0608F02609213;CFBAJJ0608F02609613;CFBAJJ0608F02610013;CFBAJJ0608F03800415;CFBAJJ0608F03800815;CFBAJJ0608F03801215;CFBAJJ0608F03801615;CFBAJJ0608F03802015;CFBAJJ0608F03802415;CFBAJJ0608F03802815;CFBAJJ0608F03803215;CFBAJJ0608F03803615;CFBAJJ0608F03804015;CFBAJJ0608F03804415;CFBAJJ0608F03804815;CFBAJJ0608F03805215;CFBAJJ0608F03805615;CFBAJJ0608F03806015;CFBAJJ0608F03806415;CFBAJJ0608F03806815;CFBAJJ0608F03807215;CFBAJJ0608F03807615;CFBAJJ0608F03808015;CFBAJJ0608F03808415;CFBAJJ0608F03808815;CFBAJJ0608F03809215;CFBAJJ0608F03809615;CFBAJJ0608F03810015;CFEAJJ0608F01800411;CFEAJJ0608F01800811;CFEAJJ0608F01801211;CFEAJJ0608F01801611;CFEAJJ0608F01802011;CFEAJJ0608F01802411;CFEAJJ0608F01802811;CFEAJJ0608F01803211;CFEAJJ0608F01803611;CFEAJJ0608F01804011;CFEAJJ0608F01804411;CFEAJJ0608F01804811;CFEAJJ0608F01805211;CFEAJJ0608F01805611;CFEAJJ0608F01806011;CFEAJJ0608F01806411;CFEAJJ0608F01806811;CFEAJJ0608F01807211;CFEAJJ0608F01807611;CFEAJJ0608F01808011;CFEAJJ0608F01808411;CFEAJJ0608F01808811;CFEAJJ0608F01809211;CFEAJJ0608F01809611;CFEAJJ0608F01810011;CFEAJJ0608F02000412;CFEAJJ0608F02000812;CFEAJJ0608F02001212;CFEAJJ0608F02001612;CFEAJJ0608F02002012;CFEAJJ0608F02002412;CFEAJJ0608F02002812;CFEAJJ0608F02003212;CFEAJJ0608F02003612;CFEAJJ0608F02004012;CFEAJJ0608F02004412;CFEAJJ0608F02004812;CFEAJJ0608F02005212;CFEAJJ0608F02005612;CFEAJJ0608F02006012;CFEAJJ0608F02006412;CFEAJJ0608F02006812;CFEAJJ0608F02007212;CFEAJJ0608F02007612;CFEAJJ0608F02008012;CFEAJJ0608F02008412;CFEAJJ0608F02008812;CFEAJJ0608F02009212;CFEAJJ0608F02009612;CFEAJJ0608F02010012;CFEAJJ0608F02400412;CFEAJJ0608F02400812;CFEAJJ0608F02401212;CFEAJJ0608F02401612;CFEAJJ0608F02402012;CFEAJJ0608F02402412;CFEAJJ0608F02402812;CFEAJJ0608F02403212;CFEAJJ0608F02403612;CFEAJJ0608F02404012;CFEAJJ0608F02404412;CFEAJJ0608F02404812;CFEAJJ0608F02405212;CFEAJJ0608F02405612;CFEAJJ0608F02406012;CFEAJJ0608F02406412;CFEAJJ0608F02406812;CFEAJJ0608F02407212;CFEAJJ0608F02407612;CFEAJJ0608F02408012;CFEAJJ0608F02408412;CFEAJJ0608F02408812;CFEAJJ0608F02409212;CFEAJJ0608F02409612;CFEAJJ0608F02410012;CFEAJJ0608F02600412;CFEAJJ0608F02600812;CFEAJJ0608F02601212;CFEAJJ0608F02601612;CFEAJJ0608F02602012;CFEAJJ0608F02602412;CFEAJJ0608F02602812;CFEAJJ0608F02603212;CFEAJJ0608F02603612;CFEAJJ0608F02604012;CFEAJJ0608F02604412;CFEAJJ0608F02604812;CFEAJJ0608F02605212;CFEAJJ0608F02605612;CFEAJJ0608F02606012;CFEAJJ0608F02606412;CFEAJJ0608F02606812;CFEAJJ0608F02607212;CFEAJJ0608F02607612;CFEAJJ0608F02608012;CFEAJJ0608F02608412;CFEAJJ0608F02608812;CFEAJJ0608F02609212;CFEAJJ0608F02609612;CFEAJJ0608F02610012;CFEAJJ0608F03000412;CFEAJJ0608F03000812;CFEAJJ0608F03001212;CFEAJJ0608F03001612;CFEAJJ0608F03002012;CFEAJJ0608F03002412;CFEAJJ0608F03002812;CFEAJJ0608F03003212;CFEAJJ0608F03003612;CFEAJJ0608F03004012;CFEAJJ0608F03004412;CFEAJJ0608F03004812;CFEAJJ0608F03005212;CFEAJJ0608F03005612;CFEAJJ0608F03006012;CFEAJJ0608F03006412;CFEAJJ0608F03006812;CFEAJJ0608F03007212;CFEAJJ0608F03007612;CFEAJJ0608F03008012;CFEAJJ0608F03008412;CFEAJJ0608F03008812;CFEAJJ0608F03009212;CFEAJJ0608F03009612;CFEAJJ0608F03010012;CFEAJJ0608F03400412;CFEAJJ0608F03400812;CFEAJJ0608F03401212;CFEAJJ0608F03401612;CFEAJJ0608F03402012;CFEAJJ0608F03402412;CFEAJJ0608F03402812;CFEAJJ0608F03403212;CFEAJJ0608F03403612;CFEAJJ0608F03404012;CFEAJJ0608F03404412;CFEAJJ0608F03404812;CFEAJJ0608F03405212;
8170CFEAJJ0608F03405612;CFEAJJ0608F03406012;CFEAJJ0608F03406412;CFEAJJ0608F03406812;CFEAJJ0608F03407212;CFEAJJ0608F03407612;CFEAJJ0608F03408012;CFEAJJ0608F03408412;CFEAJJ0608F03408812;CFEAJJ0608F03409212;CFEAJJ0608F03409612;CFEAJJ0608F03410012" aria-label="Product Reviews sku STHTGH-FK" role="link" tabindex="0"></div> 8171 <!--suppress JSUnresolvedReference --> 8172
8172<script type="text/javascript"> 8173 window.addEventListener('reviews-io-loaded', () => { 8174 ratingSnippet('rating-snippet-product-rating-listing', { 8175 store: 'shelterlogic.com', 8176 mode: 'default', 8177 color: '\u0023E1AB2E', 8178 linebreak: false, 8179 text: 'Reviews', 8180 singularText: 'Review', 8181 lang: 'en', 8182 usePolaris: false, 8183 showEmptyStars: true, 8184 }); 8185 }, {once: true, passive: true}); 8186 </script>
8186 8187 8188 </div> 8189 8190
8190<script nonce="NHRtODJpbGtodmR4MTgxcmxkd2F3a2c0Z2piYWdtNWo="> 8191 window['YIREO_GOOGLETAGMANAGER2_PRODUCT_DATA_ID_48218'] = {"item_id":"STHTGH-FK","item_sku":"STHTGH-FK","magento_sku":"STHTGH-FK","magento_id":"48218","item_image_url":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/placeholder\/default\/SLG_PlaceholderLogo_0322_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265","item_name":"High Tunnel Greenhouse, Full Kit","item_brand":"ShelterLogic\u00ae","item_list_id":"185","item_list_name":"Greenhouses","price":1133.22,"item_category":"Custom Commercial Grade Buildings & Shelters","item_category2":"Greenhouses","item_category3":"High Tunnel Greenhouses","item_category4":"ShelterLogic\u00ae","item_category5":"Backyard Greenhouse Kits for Growing Year-Round","index":1};</script>
8191 8192 8193 8194 <div class="text-grey-darker relative pt-4" x-data="initPriceBox()" x-defer="intersect" @update-prices-48218.window="updatePrice($event.detail);"> 8195 8196 <div class="price-box price-final_price" data-role="priceBox" data-product-id="48218" data-price-box="product-id-48218"> <span class="normal-price"><span x-data x-id="['product\u002Dprice\u002D48218']" class="price-container price-final_price tax weee"> 8197 <span class="price-label">Starting at</span> 8198 <span :id="$id('product\u002Dprice\u002D48218')" data-price-amount="1133.22" data-price-type="finalPrice" class="price-wrapper "><span class="price">$1,133.22</span><span class="pl-1 xl:pl-2 font-bold text-base currency-syffix">USD</span></span> 8199 </span></span> </div> 8200 <div class="flex flex-col flex-wrap justify-center"> 8201
8201<script> 8202 'use strict'; 8203 8204 (() => { 8205 window.addEventListener( 8206 'ga-initialized', 8207 () => { 8208 const productForm = document.querySelector( 8209 'form\u005Bdata\u002Dsku\u003D\u0022STHTGH\u002DFK\u0022\u005D' 8210 ); 8211 8212 if (!productForm) { 8213 return; 8214 } 8215 8216 let sku = 'STHTGH\u002DFK'; 8217 8218 window.addEventListener( 8219 'listing\u002Dconfigurable-selection-changed', 8220 (event) => { 8221 if (event.detail.skuCandidates.length === 1 8222 && event.detail.productId === '48218' 8223 ) { 8224 sku = event.detail.skuCandidates[0]; 8225 } 8226 } 8227 ); 8228 8229 function bindEventListener(element, event) 8230 { 8231 element.addEventListener(event, () => { 8232 if (productForm.checkValidity()) { 8233 const priceSelector = false ? '#product-price-48218 .price' 8234 : '[data-price-box="product-id-48218"] .price'; 8235 8236 window.dispatchEvent(new CustomEvent('cart-item-added', { 8237 detail: [{ 8238 product_sku: sku, 8239 product_name: 'High\u0020Tunnel\u0020Greenhouse,\u0020Full\u0020Kit', 8240 product_price_value: document.querySelector(priceSelector).textContent.slice(1), 8241 8242 qty: 1, 8243 }], 8244 })); 8245 } 8246 }); 8247 } 8248 8249 const button = productForm.querySelector( 8250 'button\u005Bdata\u002Daddto\u003D\u0022cart\u0022\u005D' 8251 ); 8252 8253 if (!button) { 8254 return; 8255 } 8256 8257 bindEventListener(button, 'click'); 8258 }, 8259 { once: true } 8260 ); 8261 })();</script>
8261 </div> 8262 </div> 8263 </div> 8264</div> 8265 <div class="item product product-item shrink-0 product_addtocart_form flex flex-col w-full " data-sku="ShelterCoat Barn"> 8266 <div class="product-info-top grow"> 8267 <span class="relative block"> 8268 <a href="https://www.shelterlogic.com/sheltercoat-custom-shelters-barn" class="xs:p-2 product flex justify-center border border-gray-100 product-item-photo mb-3 " aria-label="Product image ShelterCoat® Custom Shelter, Barn" x-data="{ hover: false }" title="ShelterCoat® Custom Shelter, Barn" @mouseover="hover=true" @mouseover.away="hover=false" tabindex="0"> 8269 <span class="sr-only">Product image ShelterCoat® Custom Shelter, Barn</span> 8270 <div x-show="!hover"> 8271 <img class="object-contain product-image-photo" x-data="" @update-gallery-48044.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/s/h/sheltercoat_gray_barn.png?quality=80&bg-color=255,255,255&fit=bounds&height=222&width=222&canvas=222:222" loading="lazy" width="222" height="222" alt="ShelterCoat® Custom Shelter, Barn"> </div> 8272 <div x-cloak x-show="hover"> 8273 <img class="object-contain product-image-photo" x-data="" @update-gallery-48044.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/s/h/sheltercoat_white_barn.png?quality=80&bg-color=255,255,255&fit=bounds&height=260&width=260&canvas=260:260" loading="lazy" width="222" height="222" alt="ShelterCoat® Custom Shelter, Barn"> </div> 8274 </a> 8275 8276 </span> 8277 <a class="text-base font-bold product-item-link h-[47px] line-clamp-2 hover:underline" aria-label="ShelterCoat® Custom Shelter, Barn" href="https://www.shelterlogic.com/sheltercoat-custom-shelters-barn" :id="`slide-desc-48044-${$id('slider-id')}`"> 8278 ShelterCoat® Custom Shelter, Barn </a> 8279 </div> 8280 <div class="product-info-bottom flex flex-col justify-start h-full"> 8281 <div class="mt-2 2xss:h-6 2xss:overflow-hidden mb-1.5"> 8282 <div class="rating-snippet-product-rating-listing cursor-pointer" data-sku="ShelterCoat Barn;90053;90054;90055;90253;90254;90255;91053;91054;91055;91056;91057;91058;91153;91154;91155;91156;91157;91158;91253;91254;91255;91256;91257;91258;92155;97053;97054;97055;97153;97154;97155;97253;97254;97255;98053;98054;98055;98056;98057;98058;98153;98154;98155;98156;98157;98158;98253;98254;98255;98256;98257;98258;79085;79098;79111;79124;79138;79152;79165;79178;79191;79204;79217;79230;79243;79256;79269;79282;79295;79308;79327;79341;79356;79372;79386;79399;79412;79425;79440;79455;79469;79482;79495;79508;79521;79534;79548;79563;79086;79099;79112;79125;79139;79153;79166;79179;79192;79205;79218;79231;79244;79257;79270;79283;79296;79309;79328;79343;79357;79373;79387;79400;79413;79426;79442;79456;79470;79483;79496;79509;79522;79535;79549;79564;79087;79100;79113;79126;79140;79154;79167;79180;79193;79206;79219;79232;79245;79258;79271;79284;79297;79310;79329;79344;79358;79374;79388;79401;79414;79427;79443;79457;79471;79484;79497;79510;79523;79536;79550;79565;79088;79101;79114;79127;79142;79155;79168;79181;79194;79207;79220;79233;79246;79259;79272;79285;79298;79311;79330;79345;79359;79375;79389;79402;79415;79428;79444;79458;79472;79485;79498;79511;79524;79537;79552;79566;79090;79103;79116;79129;79144;79157;79170;79183;79196;79209;79222;79235;79248;79261;79274;79287;79300;79313;79333;79347;79361;79377;79391;79404;79417;79432;79446;79460;79474;79487;79500;79513;79526;79539;79554;79568;79091;79104;79117;79130;79145;79158;79171;79184;79197;79210;79223;79236;79249;79262;79275;79288;79301;79314;79334;79348;79365;79378;79392;79405;79418;79433;79447;79462;79475;79488;79501;79514;79527;79540;79555;79569;79079;79092;79105;79118;79132;79146;79159;79172;79185;79198;79211;79224;79237;79250;79263;79276;79289;79302;79321;79335;79349;79366;79379;79393;79406;79419;79434;79448;79463;79476;79489;79502;79515;79528;79542;79556;79080;79093;79106;79119;79133;79147;79160;79173;79186;79199;79212;79225;79238;79251;79264;79277;79290;79303;89322;79336;79350;79367;79380;79394;79407;79420;79435;79449;79464;79477;79490;79503;79516;79529;79543;79557;79081;79094;79107;79120;79134;79148;79161;79174;79187;79200;79213;79226;79239;79252;79265;79278;79291;79304;79323;79337;79351;79368;79381;79395;79408;79421;79436;79450;79465;79478;79491;79504;79517;79530;79544;79558" aria-label="Product Reviews sku ShelterCoat Barn" role="link" tabindex="0"></div> 8283 <!--suppress JSUnresolvedReference --> 8284
8284<script type="text/javascript"> 8285 window.addEventListener('reviews-io-loaded', () => { 8286 ratingSnippet('rating-snippet-product-rating-listing', { 8287 store: 'shelterlogic.com', 8288 mode: 'default', 8289 color: '\u0023E1AB2E', 8290 linebreak: false, 8291 text: 'Reviews', 8292 singularText: 'Review', 8293 lang: 'en', 8294 usePolaris: false, 8295 showEmptyStars: true, 8296 }); 8297 }, {once: true, passive: true}); 8298 </script>
8298 8299 8300 </div> 8301 8302
8302<script nonce="NHRtODJpbGtodmR4MTgxcmxkd2F3a2c0Z2piYWdtNWo="> 8303 window['YIREO_GOOGLETAGMANAGER2_PRODUCT_DATA_ID_48044'] = {"item_id":"ShelterCoat Barn","item_sku":"ShelterCoat Barn","magento_sku":"ShelterCoat Barn","magento_id":"48044","item_image_url":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/placeholder\/default\/SLG_PlaceholderLogo_0322_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265","item_name":"ShelterCoat\u00ae Custom Shelter, Barn","item_brand":"ShelterLogic\u00ae","item_list_id":"71","item_list_name":"Customize Your ShelterCoat\u00ae Garage for Heavy-Duty All-Season Storage ","price":1070.99,"item_category":"Outdoor Storage","item_category2":"Custom Commercial Grade Buildings & Shelters","item_category3":"ShelterLogic\u00ae","item_category4":"Customize Your ShelterCoat\u00ae Garage for Heavy-Duty All-Season Storage ","item_category5":"Portable and Metal Garages","index":2};</script>
8303 8304 8305 8306 <div class="text-grey-darker relative pt-4" x-data="initPriceBox()" x-defer="intersect" @update-prices-48044.window="updatePrice($event.detail);"> 8307 8308 <div class="price-box price-final_price" data-role="priceBox" data-product-id="48044" data-price-box="product-id-48044"> <span class="normal-price"><span x-data x-id="['product\u002Dprice\u002D48044']" class="price-container price-final_price tax weee"> 8309 <span class="price-label">Starting at</span> 8310 <span :id="$id('product\u002Dprice\u002D48044')" data-price-amount="1070.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">$1,070.99</span><span class="pl-1 xl:pl-2 font-bold text-base currency-syffix">USD</span></span> 8311 </span></span> </div> 8312 <div class="flex flex-col flex-wrap justify-center"> 8313
8313<script> 8314 'use strict'; 8315 8316 (() => { 8317 window.addEventListener( 8318 'ga-initialized', 8319 () => { 8320 const productForm = document.querySelector( 8321 'form\u005Bdata\u002Dsku\u003D\u0022ShelterCoat\u0020Barn\u0022\u005D' 8322 ); 8323 8324 if (!productForm) { 8325 return; 8326 } 8327 8328 let sku = 'ShelterCoat\u0020Barn'; 8329 8330 window.addEventListener( 8331 'listing\u002Dconfigurable-selection-changed', 8332 (event) => { 8333 if (event.detail.skuCandidates.length === 1 8334 && event.detail.productId === '48044' 8335 ) { 8336 sku = event.detail.skuCandidates[0]; 8337 } 8338 } 8339 ); 8340 8341 function bindEventListener(element, event) 8342 { 8343 element.addEventListener(event, () => { 8344 if (productForm.checkValidity()) { 8345 const priceSelector = false ? '#product-price-48044 .price' 8346 : '[data-price-box="product-id-48044"] .price'; 8347 8348 window.dispatchEvent(new CustomEvent('cart-item-added', { 8349 detail: [{ 8350 product_sku: sku, 8351 product_name: 'ShelterCoat\u00AE\u0020Custom\u0020Shelter,\u0020Barn', 8352 product_price_value: document.querySelector(priceSelector).textContent.slice(1), 8353 8354 qty: 1, 8355 }], 8356 })); 8357 } 8358 }); 8359 } 8360 8361 const button = productForm.querySelector( 8362 'button\u005Bdata\u002Daddto\u003D\u0022cart\u0022\u005D' 8363 ); 8364 8365 if (!button) { 8366 return; 8367 } 8368 8369 bindEventListener(button, 'click'); 8370 }, 8371 { once: true } 8372 ); 8373 })();</script>
8373 </div> 8374 </div> 8375 </div> 8376</div> 8377 <div class="item product product-item shrink-0 product_addtocart_form flex flex-col w-full " data-sku="STHTGH-FO"> 8378 <div class="product-info-top grow"> 8379 <span class="relative block"> 8380 <a href="https://www.shelterlogic.com/sheltertech-high-tunnel-greenhouse-frame-only" class="xs:p-2 product flex justify-center border border-gray-100 product-item-photo mb-3 " aria-label="Product image High Tunnel Greenhouse, Frame Only" x-data="{ hover: false }" title="High Tunnel Greenhouse, Frame Only" @mouseover="hover=true" @mouseover.away="hover=false" tabindex="0"> 8381 <span class="sr-only">Product image High Tunnel Greenhouse, Frame Only</span> 8382 <div x-show="!hover"> 8383 <img class="object-contain product-image-photo" x-data="" @update-gallery-48216.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/s/t/sthtgh-fo.png?quality=80&bg-color=255,255,255&fit=bounds&height=222&width=222&canvas=222:222" loading="lazy" width="222" height="222" alt="High Tunnel Greenhouse, Frame Only"> </div> 8384 <div x-cloak x-show="hover"> 8385 <img class="object-contain product-image-photo" x-data="" @update-gallery-48216.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/s/t/sthtgh-fo_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=260&width=260&canvas=260:260" loading="lazy" width="222" height="222" alt="High Tunnel Greenhouse, Frame Only"> </div> 8386 </a> 8387 8388 </span> 8389 <a class="text-base font-bold product-item-link h-[47px] line-clamp-2 hover:underline" aria-label="High Tunnel Greenhouse, Frame Only" href="https://www.shelterlogic.com/sheltertech-high-tunnel-greenhouse-frame-only" :id="`slide-desc-48216-${$id('slider-id')}`"> 8390 High Tunnel Greenhouse, Frame Only </a> 8391 </div> 8392 <div class="product-info-bottom flex flex-col justify-start h-full"> 8393 <div class="mt-2 2xss:h-6 2xss:overflow-hidden mb-1.5"> 8394 <div class="rating-snippet-product-rating-listing cursor-pointer" data-sku="STHTGH-FO;CFBB000000F00800408;CFBB000000F00800808;CFBB000000F00801208;CFBB000000F00801608;CFBB000000F00802008;CFBB000000F00802408;CFBB000000F00802808;CFBB000000F00803208;CFBB000000F00803608;CFBB000000F00804008;CFBB000000F00804408;CFBB000000F00804808;CFBB000000F00805208;CFBB000000F00805608;CFBB000000F00806008;CFBB000000F00806408;CFBB000000F00806808;CFBB000000F00807208;CFBB000000F00807608;CFBB000000F00808008;CFBB000000F00808408;CFBB000000F00808808;CFBB000000F00809208;CFBB000000F00809608;CFBB000000F00810008;CFBB000000F01000408;CFBB000000F01000808;CFBB000000F01001208;CFBB000000F01001608;CFBB000000F01002008;CFBB000000F01002408;CFBB000000F01002808;CFBB000000F01003208;CFBB000000F01003608;CFBB000000F01004008;CFBB000000F01004408;CFBB000000F01004808;CFBB000000F01005208;CFBB000000F01005608;CFBB000000F01006008;CFBB000000F01006408;CFBB000000F01006808;CFBB000000F01007208;CFBB000000F01007608;CFBB000000F01008008;CFBB000000F01008408;CFBB000000F01008808;CFBB000000F01009208;CFBB000000F01009608;CFBB000000F01010008;CFBB000000F01200408;CFBB000000F01200808;CFBB000000F01201208;CFBB000000F01201608;CFBB000000F01202008;CFBB000000F01202408;CFBB000000F01202808;CFBB000000F01203208;CFBB000000F01203608;CFBB000000F01204008;CFBB000000F01204408;CFBB000000F01204808;CFBB000000F01205208;CFBB000000F01205608;CFBB000000F01206008;CFBB000000F01206408;CFBB000000F01206808;CFBB000000F01207208;CFBB000000F01207608;CFBB000000F01208008;CFBB000000F01208408;CFBB000000F01208808;CFBB000000F01209208;CFBB000000F01209608;CFBB000000F01210008;CFBB000000F01400408;CFBB000000F01400808;CFBB000000F01401208;CFBB000000F01401608;CFBB000000F01402008;CFBB000000F01402408;CFBB000000F01402808;CFBB000000F01403208;CFBB000000F01403608;CFBB000000F01404008;CFBB000000F01404408;CFBB000000F01404808;CFBB000000F01405208;CFBB000000F01405608;
8394CFBB000000F01406008;CFBB000000F01406408;CFBB000000F01406808;CFBB000000F01407208;CFBB000000F01407608;CFBB000000F01408008;CFBB000000F01408408;CFBB000000F01408808;CFBB000000F01409208;CFBB000000F01409608;CFBB000000F01410008;CFBB000000F02000410;CFBB000000F02000810;CFBB000000F02001210;CFBB000000F02001610;CFBB000000F02002010;CFBB000000F02002410;CFBB000000F02002810;CFBB000000F02003210;CFBB000000F02003610;CFBB000000F02004010;CFBB000000F02004410;CFBB000000F02004810;CFBB000000F02005210;CFBB000000F02005610;CFBB000000F02006010;CFBB000000F02006410;CFBB000000F02006810;CFBB000000F02007210;CFBB000000F02007610;CFBB000000F02008010;CFBB000000F02008410;CFBB000000F02008810;CFBB000000F02009210;CFBB000000F02009610;CFBB000000F02010010;CFBB000000F02600413;CFBB000000F02600813;CFBB000000F02601213;CFBB000000F02601613;CFBB000000F02602013;CFBB000000F02602413;CFBB000000F02602813;CFBB000000F02603213;CFBB000000F02603613;CFBB000000F02604013;CFBB000000F02604413;CFBB000000F02604813;CFBB000000F02605213;CFBB000000F02605613;CFBB000000F02606013;CFBB000000F02606413;CFBB000000F02606813;CFBB000000F02607213;CFBB000000F02607613;CFBB000000F02608013;CFBB000000F02608413;CFBB000000F02608813;CFBB000000F02609213;CFBB000000F02609613;CFBB000000F02610013;CFBB000000F03800415;CFBB000000F03800815;CFBB000000F03801215;CFBB000000F03801615;CFBB000000F03802015;CFBB000000F03802415;CFBB000000F03802815;CFBB000000F03803215;CFBB000000F03803615;CFBB000000F03804015;CFBB000000F03804415;CFBB000000F03804815;CFBB000000F03805215;CFBB000000F03805615;CFBB000000F03806015;CFBB000000F03806415;CFBB000000F03806815;CFBB000000F03807215;CFBB000000F03807615;CFBB000000F03808015;CFBB000000F03808415;CFBB000000F03808815;CFBB000000F03809215;CFBB000000F03809615;CFBB000000F03810015;CFEB000000F01800411;CFEB000000F01800811;CFEB000000F01801211;CFEB000000F01801611;CFEB000000F01802011;CFEB000000F01802411;CFEB000000F01802811;CFEB000000F01803211;CFEB000000F01803611;CFEB000000F01804011;CFEB000000F01804411;CFEB000000F01804811;CFEB000000F01805211;CFEB000000F01805611;CFEB000000F01806011;CFEB000000F01806411;CFEB000000F01806811;CFEB000000F01807211;CFEB000000F01807611;CFEB000000F01808011;CFEB000000F01808411;CFEB000000F01808811;CFEB000000F01809211;CFEB000000F01809611;CFEB000000F01810011;CFEB000000F02000412;CFEB000000F02000812;CFEB000000F02001212;CFEB000000F02001612;CFEB000000F02002012;CFEB000000F02002412;CFEB000000F02002812;CFEB000000F02003212;CFEB000000F02003612;CFEB000000F02004012;CFEB000000F02004412;CFEB000000F02004812;CFEB000000F02005212;CFEB000000F02005612;CFEB000000F02006012;CFEB000000F02006412;CFEB000000F02006812;CFEB000000F02007212;CFEB000000F02007612;CFEB000000F02008012;CFEB000000F02008412;CFEB000000F02008812;CFEB000000F02009212;CFEB000000F02009612;CFEB000000F02010012;CFEB000000F02400412;CFEB000000F02400812;CFEB000000F02401212;CFEB000000F02401612;CFEB000000F02402012;CFEB000000F02402412;CFEB000000F02402812;CFEB000000F02403212;CFEB000000F02403612;CFEB000000F02404012;CFEB000000F02404412;CFEB000000F02404812;CFEB000000F02405212;CFEB000000F02405612;CFEB000000F02406012;CFEB000000F02406412;CFEB000000F02406812;CFEB000000F02407212;CFEB000000F02407612;CFEB000000F02408012;CFEB000000F02408412;CFEB000000F02408812;CFEB000000F02409212;CFEB000000F02409612;CFEB000000F02410012;CFEB000000F02600412;CFEB000000F02600812;CFEB000000F02601212;CFEB000000F02601612;CFEB000000F02602012;CFEB000000F02602412;CFEB000000F02602812;CFEB000000F02603212;CFEB000000F02603612;CFEB000000F02604012;CFEB000000F02604412;CFEB000000F02604812;CFEB000000F02605212;CFEB000000F02605612;CFEB000000F02606012;CFEB000000F02606412;CFEB000000F02606812;CFEB000000F02607212;CFEB000000F02607612;CFEB000000F02608012;CFEB000000F02608412;CFEB000000F02608812;CFEB000000F02609212;CFEB000000F02609612;CFEB000000F02610012;CFEB000000F03000412;CFEB000000F03000812;CFEB000000F03001212;CFEB000000F03001612;CFEB000000F03002012;CFEB000000F03002412;CFEB000000F03002812;CFEB000000F03003212;CFEB000000F03003612;CFEB000000F03004012;CFEB000000F03004412;CFEB000000F03004812;CFEB000000F03005212;CFEB000000F03005612;CFEB000000F03006012;CFEB000000F03006412;CFEB000000F03006812;CFEB000000F03007212;CFEB000000F03007612;CFEB000000F03008012;CFEB000000F03008412;CFEB000000F03008812;CFEB000000F03009212;CFEB000000F03009612;CFEB000000F03010012;CFEB000000F03400412;CFEB000000F03400812;CFEB000000F03401212;CFEB000000F03401612;CFEB000000F03402012;CFEB000000F03402412;CFEB000000F03402812;CFEB000000F03403212;CFEB000000F03403612;CFEB000000F03404012;CFEB000000F03404412;CFEB000000F03404812;CFEB000000F03405212;
8394CFEB000000F03405612;CFEB000000F03406012;CFEB000000F03406412;CFEB000000F03406812;CFEB000000F03407212;CFEB000000F03407612;CFEB000000F03408012;CFEB000000F03408412;CFEB000000F03408812;CFEB000000F03409212;CFEB000000F03409612;CFEB000000F03410012" aria-label="Product Reviews sku STHTGH-FO" role="link" tabindex="0"></div> 8395 <!--suppress JSUnresolvedReference --> 8396
8396<script type="text/javascript"> 8397 window.addEventListener('reviews-io-loaded', () => { 8398 ratingSnippet('rating-snippet-product-rating-listing', { 8399 store: 'shelterlogic.com', 8400 mode: 'default', 8401 color: '\u0023E1AB2E', 8402 linebreak: false, 8403 text: 'Reviews', 8404 singularText: 'Review', 8405 lang: 'en', 8406 usePolaris: false, 8407 showEmptyStars: true, 8408 }); 8409 }, {once: true, passive: true}); 8410 </script>
8410 8411 8412 </div> 8413 8414
8414<script nonce="NHRtODJpbGtodmR4MTgxcmxkd2F3a2c0Z2piYWdtNWo="> 8415 window['YIREO_GOOGLETAGMANAGER2_PRODUCT_DATA_ID_48216'] = {"item_id":"STHTGH-FO","item_sku":"STHTGH-FO","magento_sku":"STHTGH-FO","magento_id":"48216","item_image_url":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/placeholder\/default\/SLG_PlaceholderLogo_0322_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265","item_name":"High Tunnel Greenhouse, Frame Only","item_brand":"ShelterLogic\u00ae","item_list_id":"185","item_list_name":"Greenhouses","price":273.45,"item_category":"Custom Commercial Grade Buildings & Shelters","item_category2":"Greenhouses","item_category3":"High Tunnel Greenhouses","item_category4":"ShelterLogic\u00ae","item_category5":"Backyard Greenhouse Kits for Growing Year-Round","index":3};</script>
8415 8416 8417 8418 <div class="text-grey-darker relative pt-4" x-data="initPriceBox()" x-defer="intersect" @update-prices-48216.window="updatePrice($event.detail);"> 8419 8420 <div class="price-box price-final_price" data-role="priceBox" data-product-id="48216" data-price-box="product-id-48216"> <span class="normal-price"><span x-data x-id="['product\u002Dprice\u002D48216']" class="price-container price-final_price tax weee"> 8421 <span class="price-label">Starting at</span> 8422 <span :id="$id('product\u002Dprice\u002D48216')" data-price-amount="273.45" data-price-type="finalPrice" class="price-wrapper "><span class="price">$273.45</span><span class="pl-1 xl:pl-2 font-bold text-base currency-syffix">USD</span></span> 8423 </span></span> </div> 8424 <div class="flex flex-col flex-wrap justify-center"> 8425
8425<script> 8426 'use strict'; 8427 8428 (() => { 8429 window.addEventListener( 8430 'ga-initialized', 8431 () => { 8432 const productForm = document.querySelector( 8433 'form\u005Bdata\u002Dsku\u003D\u0022STHTGH\u002DFO\u0022\u005D' 8434 ); 8435 8436 if (!productForm) { 8437 return; 8438 } 8439 8440 let sku = 'STHTGH\u002DFO'; 8441 8442 window.addEventListener( 8443 'listing\u002Dconfigurable-selection-changed', 8444 (event) => { 8445 if (event.detail.skuCandidates.length === 1 8446 && event.detail.productId === '48216' 8447 ) { 8448 sku = event.detail.skuCandidates[0]; 8449 } 8450 } 8451 ); 8452 8453 function bindEventListener(element, event) 8454 { 8455 element.addEventListener(event, () => { 8456 if (productForm.checkValidity()) { 8457 const priceSelector = false ? '#product-price-48216 .price' 8458 : '[data-price-box="product-id-48216"] .price'; 8459 8460 window.dispatchEvent(new CustomEvent('cart-item-added', { 8461 detail: [{ 8462 product_sku: sku, 8463 product_name: 'High\u0020Tunnel\u0020Greenhouse,\u0020Frame\u0020Only', 8464 product_price_value: document.querySelector(priceSelector).textContent.slice(1), 8465 8466 qty: 1, 8467 }], 8468 })); 8469 } 8470 }); 8471 } 8472 8473 const button = productForm.querySelector( 8474 'button\u005Bdata\u002Daddto\u003D\u0022cart\u0022\u005D' 8475 ); 8476 8477 if (!button) { 8478 return; 8479 } 8480 8481 bindEventListener(button, 'click'); 8482 }, 8483 { once: true } 8484 ); 8485 })();</script>
8485 </div> 8486 </div> 8487 </div> 8488</div> 8489 <div class="item product product-item shrink-0 product_addtocart_form flex flex-col w-full " data-sku="ShelterCoat Round"> 8490 <div class="product-info-top grow"> 8491 <span class="relative block"> 8492 <a href="https://www.shelterlogic.com/sheltercoat-custom-shelters-round" class="xs:p-2 product flex justify-center border border-gray-100 product-item-photo mb-3 " aria-label="Product image ShelterCoat® Custom Wind and Snow Rated Shelter, Round" x-data="{ hover: false }" title="ShelterCoat® Custom Wind and Snow Rated Shelter, Round" @mouseover="hover=true" @mouseover.away="hover=false" tabindex="0"> 8493 <span class="sr-only">Product image ShelterCoat® Custom Wind and Snow Rated Shelter, Round</span> 8494 <div x-show="!hover"> 8495 <img class="object-contain product-image-photo" x-data="" @update-gallery-48043.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/s/h/sheltercoat_gray_round.png?quality=80&bg-color=255,255,255&fit=bounds&height=222&width=222&canvas=222:222" loading="lazy" width="222" height="222" alt="ShelterCoat® Custom Wind and Snow Rated Shelter, Round"> </div> 8496 <div x-cloak x-show="hover"> 8497 <img class="object-contain product-image-photo" x-data="" @update-gallery-48043.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/s/h/sheltercoat_green_round.png?quality=80&bg-color=255,255,255&fit=bounds&height=260&width=260&canvas=260:260" loading="lazy" width="222" height="222" alt="ShelterCoat® Custom Wind and Snow Rated Shelter, Round"> </div> 8498 </a> 8499 8500 </span> 8501 <a class="text-base font-bold product-item-link h-[47px] line-clamp-2 hover:underline" aria-label="ShelterCoat® Custom Wind and Snow Rated Shelter, Round" href="https://www.shelterlogic.com/sheltercoat-custom-shelters-round" :id="`slide-desc-48043-${$id('slider-id')}`"> 8502 ShelterCoat® Custom Wind and Snow Rated Shelter, Round </a> 8503 </div> 8504 <div class="product-info-bottom flex flex-col justify-start h-full"> 8505 <div class="mt-2 2xss:h-6 2xss:overflow-hidden mb-1.5"> 8506 <div class="rating-snippet-product-rating-listing cursor-pointer" data-sku="ShelterCoat Round;71011;71012;71013;71016;71017;71018;71019;71020;71031;71032;71033;71036;71037;71038;71039;71040;71051;71052;71053;71056;71057;71058;71059;71060;71071;71072;71073;71076;71077;71078;71079;71080;71081;71083;71085;71087;71332;71342;71352;71733;71734;71735;71736;71737;71738;72332;72342;72352;72532;72542;72552;72562;72563;72564;73332;73342;73352;73532;73542;73552;73562;73563;73564;74332;74342;74352;74532;74542;74552;74562;74732;74742;74752;74762;74763;74764;75463;75464;76632;76642;76652;76803;76804;76805;76813;76814;76815;76819;76820;76821;76822;76823;76824;76825;76827;76829;76836;76840;76851;76857;76858;76859;76862;76863;76865;76866;76867;76868;76880;76881;76886;76902;76903;76904;76907;76908;76909;76910;76911;76912;76924;76925;76954;76955;76956;76960;76961;76962;76963;76965;76966;76967;76968;76969;76973;76974;76975;76976;76978;76979;76980;76981;76982;76986;76987;76988;76989;76991;76992;76993;76994;76995;76999;77000;77001;77002;77004;77005;77006;77007;77008;77012;77013;77014;77015;77017;77018;77019;77020;77021;77025;77026;77027;77028;77030;77031;77032;77033;77034;77038;77039;77040;77041;77043;77044;77045;77046;77047;77051;77052;77053;77054;77056;77057;77058;77059;77060;77064;77065;77066;77067;77069;77070;77081;77082;77803;77804;77805;77813;77814;77815;77819;77820;77821;77822;77823;77824;77825;77827;77829;77833;77834;77835;77837;77838;77839;77840;77841;77842;77844;77845;77846;77847;77848;77849;77851;77852;77853;77854;77855;77856;78332;78342;78352;78362;78363;
850678364;78803;78804;78805;78806;78807;78808;78813;78814;78815;78816;78817;78818;78823;78824;78825;78826;78827;78828;79332;79342;79352;79362;79363;79364;79803;79804;79805;79806;79807;79808;79813;79814;79815;79816;79817;79818;79823;79824;79825;79826;79827;79828;90233;90234;90235;90333;90334;90335;90336;90337;90338;95333;95334;95335;95340;95341;95342;95345;95346;95347;95348;95349;95360;95361;95362;95365;95366;95367;95368;95369;95380;95382;95433;95434;95435;95533;95534;95535;95538;95539;95540;95541;95542;95544;77495;77508;77521;77534;77547;77560;77573;77586;77599;77622;77635;77648;77661;77674;77687;77700;77713;77726;78047;78058;78071;78084;78097;78110;78123;78136;78149;78162;78175;78188;78201;78214;78227;78240;78253;78266;78283;78294;78307;78320;78333;78347;78361;78377;78390;78403;78416;78429;78447;78464;78477;78490;78503;78516;79586;79609;79622;79635;79648;79661;79674;79687;79700;79713;79726;79739;79752;79765;79778;79791;77496;77509;77522;77535;77548;77561;77574;77587;77600;77623;77636;77649;77662;77675;77688;77701;77714;77727;78048;78059;78072;78085;78098;78111;78124;78137;78150;78163;78176;78189;78202;78215;78228;78241;78254;78267;78284;78295;78308;78321;78334;78348;78365;78378;78391;78404;78417;78433;78448;78465;78478;78491;78504;78517;79587;79610;79623;79636;79649;79662;79675;79688;79701;79714;79727;79740;79753;79766;79779;79792;77497;77510;77523;77536;77549;77562;77575;77588;77601;77624;77637;77650;77663;77676;77689;77702;77715;77728;78049;78060;78073;78086;78099;78112;78125;78138;78151;78164;78177;78190;78203;78216;78229;78242;78255;78268;78285;78296;78309;78322;78335;78349;78366;78379;78392;78405;78418;78434;78449;78466;78479;78492;78505;78518;79588;79611;79624;79637;79650;79663;79676;79689;79702;79715;79728;79741;79754;79767;79780;79793;77498;77511;77524;77537;77550;77563;77576;77589;77602;77625;77638;77651;77664;77677;77690;77703;77716;77729;78050;78061;78074;78087;78100;78113;78126;78139;78152;78165;78178;78191;78204;78217;78230;78243;78256;78269;78286;78297;78310;78323;78336;78350;78367;78380;78393;78406;78419;78435;78450;78467;78480;78493;78506;78519;79599;79612;79625;79638;79651;79664;79677;79690;79703;79716;79729;79742;79755;79768;79781;79794;77500;77513;77526;77539;77552;77565;77578;77591;77604;77627;77640;77653;77666;77679;77692;77705;77718;77731;78052;78063;78076;78089;78102;78115;78128;78141;78154;78167;78180;78193;78206;78219;78232;78245;78258;78271;78288;78299;78312;78325;78338;78353;78369;78382;78395;78408;78421;78437;78454;78469;78482;78495;78508;78521;79601;79614;79627;79640;79653;79666;79679;79692;79705;79718;79731;79744;79757;79770;79783;79796;77501;77514;77527;77540;77553;77566;77579;77592;77605;77628;77641;77654;77667;77680;77693;77706;77719;77732;78053;78064;78077;78090;78103;78116;78129;78142;78155;78168;78181;78194;78207;78220;78233;78246;78259;78272;78289;78300;78313;78326;78339;78354;78370;78383;78396;78409;78422;78438;78455;78470;78483;78496;78509;78522;79602;79615;79628;79641;79654;79667;79680;79693;79706;79719;79732;79745;79758;79771;79784;79797;77489;77515;77528;77541;77554;77567;77580;77593;77616;77629;77642;77655;77668;77681;77694;77707;77720;76547;76571;78065;78078;78091;78104;78117;78130;78143;78156;78169;78182;78195;78208;78221;78234;78247;78260;76559;76582;78301;78314;78327;78340;78355;78371;78384;78397;78410;78423;78439;78456;78471;78484;78497;78510;79580;79603;79616;79629;79642;79655;79668;79681;79694;79707;79720;79733;79746;79759;79772;79785;77490;77503;77516;77529;77542;77555;77568;77581;77594;77617;77630;77643;77656;77669;77682;77695;77708;77721;76546;76570;78066;78079;78092;78105;78118;78131;78144;78157;78170;78183;78196;78209;78222;78235;78248;78261;76558;76581;78302;78315;78328;78341;78356;78372;78385;78398;78411;78424;78440;78457;78472;78485;78498;78511;79581;79604;79617;79630;79643;79656;79669;79682;79695;79708;79721;79734;79747;79760;79773;79786;77491;77504;77517;77530;77543;77556;77569;77582;77595;77618;77631;77644;77657;77670;77683;77696;77709;77722;78043;78054;78067;78080;78093;78106;78119;78132;78145;78158;78171;78184;78197;78210;78223;78236;78249;78262;78279;78290;78303;78316;78329;78343;78357;78373;78386;78399;78412;78425;78443;78458;78473;78486;78499;78512;79582;79605;79618;79631;79644;79657;79670;79683;79696;79709;79722;79735;79748;79761;79774;79787" aria-label="Product Reviews sku ShelterCoat Round" role="link" tabindex="0"></div> 8507 <!--suppress JSUnresolvedReference --> 8508
8508<script type="text/javascript"> 8509 window.addEventListener('reviews-io-loaded', () => { 8510 ratingSnippet('rating-snippet-product-rating-listing', { 8511 store: 'shelterlogic.com', 8512 mode: 'default', 8513 color: '\u0023E1AB2E', 8514 linebreak: false, 8515 text: 'Reviews', 8516 singularText: 'Review', 8517 lang: 'en', 8518 usePolaris: false, 8519 showEmptyStars: true, 8520 }); 8521 }, {once: true, passive: true}); 8522 </script>
8522 8523 8524 </div> 8525 8526
8526<script nonce="NHRtODJpbGtodmR4MTgxcmxkd2F3a2c0Z2piYWdtNWo="> 8527 window['YIREO_GOOGLETAGMANAGER2_PRODUCT_DATA_ID_48043'] = {"item_id":"ShelterCoat Round","item_sku":"ShelterCoat Round","magento_sku":"ShelterCoat Round","magento_id":"48043","item_image_url":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/placeholder\/default\/SLG_PlaceholderLogo_0322_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265","item_name":"ShelterCoat\u00ae Custom Wind and Snow Rated Shelter, Round","item_brand":"ShelterLogic\u00ae","item_list_id":"71","item_list_name":"Customize Your ShelterCoat\u00ae Garage for Heavy-Duty All-Season Storage ","price":433.99,"item_category":"Outdoor Storage","item_category2":"Custom Commercial Grade Buildings & Shelters","item_category3":"ShelterLogic\u00ae","item_category4":"Customize Your ShelterCoat\u00ae Garage for Heavy-Duty All-Season Storage ","item_category5":"Portable and Metal Garages","index":4};</script>
8527 8528 8529 8530 <div class="text-grey-darker relative pt-4" x-data="initPriceBox()" x-defer="intersect" @update-prices-48043.window="updatePrice($event.detail);"> 8531 8532 <div class="price-box price-final_price" data-role="priceBox" data-product-id="48043" data-price-box="product-id-48043"> <span class="normal-price"><span x-data x-id="['product\u002Dprice\u002D48043']" class="price-container price-final_price tax weee"> 8533 <span class="price-label">Starting at</span> 8534 <span :id="$id('product\u002Dprice\u002D48043')" data-price-amount="433.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">$433.99</span><span class="pl-1 xl:pl-2 font-bold text-base currency-syffix">USD</span></span> 8535 </span></span> <span class="old-price sly-old-price"><span x-data x-id="['old\u002Dprice\u002D48043']" class="price-container price-final_price tax weee"> 8536 <span class="price-label">Regular Price</span> 8537 <span :id="$id('old\u002Dprice\u002D48043')" data-price-amount="433.99" data-price-type="oldPrice" class="price-wrapper "><span class="price">$433.99</span><span class="pl-1 xl:pl-2 font-bold text-base currency-syffix">USD</span></span> 8538 </span></span> </div> 8539 <div class="flex flex-col flex-wrap justify-center"> 8540
8540<script> 8541 'use strict'; 8542 8543 (() => { 8544 window.addEventListener( 8545 'ga-initialized', 8546 () => { 8547 const productForm = document.querySelector( 8548 'form\u005Bdata\u002Dsku\u003D\u0022ShelterCoat\u0020Round\u0022\u005D' 8549 ); 8550 8551 if (!productForm) { 8552 return; 8553 } 8554 8555 let sku = 'ShelterCoat\u0020Round'; 8556 8557 window.addEventListener( 8558 'listing\u002Dconfigurable-selection-changed', 8559 (event) => { 8560 if (event.detail.skuCandidates.length === 1 8561 && event.detail.productId === '48043' 8562 ) { 8563 sku = event.detail.skuCandidates[0]; 8564 } 8565 } 8566 ); 8567 8568 function bindEventListener(element, event) 8569 { 8570 element.addEventListener(event, () => { 8571 if (productForm.checkValidity()) { 8572 const priceSelector = false ? '#product-price-48043 .price' 8573 : '[data-price-box="product-id-48043"] .price'; 8574 8575 window.dispatchEvent(new CustomEvent('cart-item-added', { 8576 detail: [{ 8577 product_sku: sku, 8578 product_name: 'ShelterCoat\u00AE\u0020Custom\u0020Wind\u0020and\u0020Snow\u0020Rated\u0020Shelter,\u0020Round', 8579 product_price_value: document.querySelector(priceSelector).textContent.slice(1), 8580 8581 qty: 1, 8582 }], 8583 })); 8584 } 8585 }); 8586 } 8587 8588 const button = productForm.querySelector( 8589 'button\u005Bdata\u002Daddto\u003D\u0022cart\u0022\u005D' 8590 ); 8591 8592 if (!button) { 8593 return; 8594 } 8595 8596 bindEventListener(button, 'click'); 8597 }, 8598 { once: true } 8599 ); 8600 })();</script>
8600 </div> 8601 </div> 8602 </div> 8603</div> 8604 <div class="item product product-item shrink-0 product_addtocart_form flex flex-col w-full " data-sku="ShelterCoat Peak"> 8605 <div class="product-info-top grow"> 8606 <span class="relative block"> 8607 <a href="https://www.shelterlogic.com/sheltercoat-custom-shelters-peak" class="xs:p-2 product flex justify-center border border-gray-100 product-item-photo mb-3 " aria-label="Product image ShelterCoat® Custom Shelter, Peak" x-data="{ hover: false }" title="ShelterCoat® Custom Shelter, Peak" @mouseover="hover=true" @mouseover.away="hover=false" tabindex="0"> 8608 <span class="sr-only">Product image ShelterCoat® Custom Shelter, Peak</span> 8609 <div> 8610 <img class="object-contain product-image-photo" x-data="" @update-gallery-48041.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/s/h/sheltercoat_gray_peak.png?quality=80&bg-color=255,255,255&fit=bounds&height=222&width=222&canvas=222:222" loading="lazy" width="222" height="222" alt="ShelterCoat® Custom Shelter, Peak"> </div> 8611 </a> 8612 8613 </span> 8614 <a class="text-base font-bold product-item-link h-[47px] line-clamp-2 hover:underline" aria-label="ShelterCoat® Custom Shelter, Peak" href="https://www.shelterlogic.com/sheltercoat-custom-shelters-peak" :id="`slide-desc-48041-${$id('slider-id')}`"> 8615 ShelterCoat® Custom Shelter, Peak </a> 8616 </div> 8617 <div class="product-info-bottom flex flex-col justify-start h-full"> 8618 <div class="mt-2 2xss:h-6 2xss:overflow-hidden mb-1.5"> 8619 <div class="rating-snippet-product-rating-listing cursor-pointer" data-sku="ShelterCoat Peak;71001;71002;71003;71006;71007;71008;71009;71010;71021;71022;71023;71026;71027;71028;71029;71030;71041;71042;71043;71046;71047;71048;71049;71050;71061;71062;71063;71066;71067;71068;71069;71070;71082;71084;71086;71088;71434;71444;71454;71633;71634;71635;71636;71637;71638;71802;71804;71805;71806;71808;71813;71814;71815;71816;71818;71823;71824;71825;71826;71828;71853;71854;71855;71856;71858;71863;71865;72434;72444;72454;72634;72644;72654;72664;72665;72666;72803;72804;72805;72813;72814;72815;72823;72824;72825;72853;72854;72855;72863;72864;72865;72873;72874;72875;73432;73442;73452;73632;73642;73652;73662;73663;73664;73803;73804;73805;73806;73807;73808;73813;73814;73815;73816;73817;73818;73823;73824;73825;73826;73827;73828;73853;73854;73855;73856;73857;73865;73866;73868;73878;74432;74442;74452;74632;74642;74652;74662;74663;74664;74813;74814;74815;74816;74817;74818;74823;74824;74825;74826;74827;74828;74832;74842;74852;74853;74854;74855;74856;74857;74858;74862;74863;74864;74865;74866;74867;74868;74869;74870;74873;74874;74875;74876;74877;74878;75232;75242;75252;75432;75442;75452;75532;75533;75538;75539;75540;75541;75542;75543;75544;76332;76342;76352;76362;76363;76364;76432;76442;76452;76869;76870;76871;76872;76873;76874;76875;76876;76877;76878;76879;76892;76913;76914;76915;76916;76917;76918;76919;76920;76921;76922;76923;76938;77332;77342;77352;77362;77363;77364;78431;78441;78451;78631;78651;78731;78741;78742;78744;78745;78746;78747;78748;78750;78751;78752;78753;78754;78756;78757;78758;78759;78760;78762;78763;78764;78765;78767;78769;78771;78773;78775;78776;78810;78931;78941;79031;79041;79131;79141;79431;79441;80001;80002;80003;80005;80006;80007;80009;80010;80012;80013;80014;80016;80017;80018;80020;80021;80022;80024;80025;80026;80028;80029;80030;80032;80033;80034;80036;80037;80038;80040;80041;80042;80043;80044;80045;80047;80053;80060;80101;80102;80103;80104;80105;80106;80107;80108;80109;80110;80111;80112;80113;80114;80115;80116;80117;80118;80119;80120;80121;80122;80123;80124;80125;80126;80127;80128;80129;80130;80131;80132;80133;80134;80135;80136;80137;80138;80139;80140;80141;80142;80143;80144;80145;80146;80147;80148;80149;80150;80151;80152;80153;80154;80155;80156;80157;80158;80159;80160;80161;80162;80163;80164;80199;80200;80543;80843;80844;80845;
861981431;81441;81451;81461;81462;81463;81531;81541;81551;81561;81562;81563;82043;82044;82045;82143;82144;82145;82243;82244;82245;82247;82248;82249;82250;82251;82253;82254;82255;82256;82257;82259;82260;82261;82262;82263;82265;82266;82267;82268;82270;82272;82274;82276;82277;82278;82279;82431;82441;82443;82444;82451;82461;82462;82463;82531;82541;82543;82544;82551;82561;82562;82563;82643;82644;84005;84006;84007;84008;84009;84010;84011;84012;84013;84014;84015;84016;84017;84018;84019;84020;84021;84022;84025;84026;84027;84028;84029;84030;84031;84032;84033;84034;84035;84036;84037;84038;84041;84042;84047;84048;84049;84050;84051;84052;84053;84054;84055;84056;84057;84058;84059;84060;84061;84062;84063;84064;84065;84066;84067;84068;84069;84070;84071;84072;84073;84074;84075;84076;84077;84078;84079;84080;84081;84082;84083;84084;84085;84086;84087;84088;84089;84090;84091;84092;84093;84094;84095;84096;84097;84098;84099;84100;84101;84102;84103;84104;84105;84106;84107;84108;84109;84110;84111;84112;84113;84114;84115;84116;84117;84118;84119;84120;84121;84122;84123;84124;84125;84126;84127;84128;84150;84151;84523;84524;84525;84526;84527;84823;84824;84825;84826;84827;86043;86044;86045;86047;86048;86049;86051;86052;86053;86055;86056;86058;86059;86060;86062;86063;86064;86066;86067;86068;86070;86071;86072;86074;86075;86076;86078;86079;86080;86082;86083;86084;86086;86087;86088;86089;86090;86091;86092;86093;86094;86095;86096;86097;86098;86099;86100;86101;86102;86103;86104;86105;86106;86107;86108;86109;86110;86111;86112;86113;86114;86115;86116;86117;86118;86119;86120;86121;86122;86123;86124;86125;86126;86127;86128;86129;86130;86131;86132;86133;86134;86136;86138;86140;86142;86144;86145;86146;86147;86148;86149;86156;86157;86158;86159;86160;86161;86162;86163;86164;86165;86166;86167;86169;86543;86843;86844;86845;90243;90244;90245;90343;90344;90345;90346;90347;90348;95350;95351;95352;95355;95356;95357;95358;95359;95370;95371;95372;95375;95376;95377;95378;95379;95381;95383;95645;95843;95844;95845;95943;95944;95945;96643;96644;96645;96646;96647;96649;96843;96844;96845;96846;96853;96854;96943;96944;96945;96946;96947;96949;802976;77225;77238;77251;77264;77277;77290;77303;77316;77329;73864;73874;76896;76940;77357;77373;77387;77400;77412;77425;77444;77458;77472;77749;77762;77775;77788;77801;77862;77875;77888;77901;77924;77937;77950;77963;77976;77989;78004;78017;78030;78533;78545;78559;78572;78585;78598;78611;78624;78638;78653;78668;78681;78694;78707;78720;78734;78783;78796;78839;78852;78866;78879;78892;78905;78919;78933;78947;78960;78973;78986;78999;79012;79025;79039;79053;79066;79832;79846;79860;79874;79887;79900;79913;79926;79939;79952;79965;79978;79991;80304;80317;80330;80349;80362;80375;80388;80401;80414;80427;80440;80453;80466;80479;80492;80505;80518;80298;80556;80569;80582;80595;80608;80621;80634;80647;80660;80673;80686;80699;80712;80725;80750;80763;80776;80789;80802;80815;80828;80841;80859;80872;80885;80898;80911;80924;80937;80962;80975;80988;81001;81014;81027;81040;81053;81066;81079;81092;81105;81118;81131;81144;81170;81183;81196;81209;81222;81235;81248;81261;81275;81288;81301;81314;81327;81340;81353;81378;81391;81404;81417;81430;81445;81459;81475;81488;81501;81514;81527;81542;81557;81573;81598;81611;81624;81637;81650;81663;81676;81689;81702;81715;81728;81741;81754;81767;81780;81805;81818;81831;81844;81857;81870;81883;81896;81909;81922;81935;81948;81961;81974;81987;82012;82025;82038;82057;82070;82083;82096;82109;82122;82135;82153;82168;82181;82197;82210;77226;77239;77252;77265;77278;77291;77304;77317;77330;73863;73873;76897;76941;77358;77374;77388;77401;77413;77426;77445;77459;77473;77750;77763;77776;77789;77802;77863;77876;77889;77902;77925;77938;77951;77964;77977;77990;78005;78018;78031;78534;78546;78560;78573;78586;78599;78612;78625;78639;78654;78669;78682;78695;78708;78721;78735;78784;78797;78840;78853;78867;78880;78893;78906;78920;78934;78948;78961;78974;78987;79000;79013;79026;79040;79054;79067;79833;79847;
861979862;79875;79888;79901;79914;79927;79940;79953;79966;79979;79992;80305;80318;80331;80350;80363;80376;80389;80402;80415;80428;80441;80454;80467;80480;80493;80506;80519;80544;80557;80570;80583;80596;80609;80622;80635;80648;80661;80674;80687;80700;80713;80726;80751;80764;80777;80790;80803;80816;80829;80842;80860;80873;80886;80899;80912;80925;80938;80963;80976;80989;81002;81015;81028;81041;81054;81067;81080;81093;81106;81119;81132;81145;81171;81184;81197;81210;81223;81236;81249;81262;81276;81289;81302;81315;81328;81341;81354;81379;81392;81405;81418;81432;81446;81460;81476;81489;81502;81515;81528;81543;81558;81574;81599;81612;81625;81638;81651;81664;81677;81690;81703;81716;81729;81742;81755;81768;81781;81806;81819;81832;81845;81858;81871;81884;81897;81910;81923;81936;81949;81962;81975;81988;82013;82026;82039;82058;82071;82084;82097;82110;82123;82136;82156;82169;82182;82198;82211;77227;77240;77253;77266;77279;77292;77305;77318;77331;73875;76898;76942;77359;77375;77389;77402;77414;77427;77446;77460;77474;77751;77764;77777;77790;77807;77864;77877;77890;77903;77926;77939;77952;77965;77978;77991;78006;78019;78032;78535;78547;78561;78574;78587;78600;78613;78626;78640;78655;78670;78683;78696;78709;78722;78736;78785;78798;78842;78854;78868;78881;78894;78907;78921;78935;78949;78962;78975;78988;79001;79014;79027;79042;79055;79068;79834;79848;79863;79876;79889;79902;79915;79928;79941;79954;79967;79980;79993;80306;80319;80332;80351;80364;80377;80390;80403;80416;80429;80442;80455;80468;80481;80494;80507;80520;80545;80558;80571;80584;80597;80610;80623;80636;80649;80662;80675;80688;80701;80714;80727;80752;80765;80778;80791;80804;80817;80830;80848;80861;80874;80887;80900;80913;80926;80939;80964;80977;80990;81003;81016;81029;81042;81055;81068;81081;81094;81107;81120;81133;81146;81172;81185;81198;81211;81224;81237;81250;81263;81277;81290;81303;81316;81329;81342;81355;81380;81393;81406;81419;81433;81447;81464;81477;81490;81503;81516;81529;81544;81559;81575;81600;81613;81626;81639;81652;81665;81678;81691;81704;81717;81730;81743;81756;81769;81782;81807;81820;81833;81846;81859;81872;81885;81898;81911;81924;81937;81950;81963;81976;81989;82014;82027;82040;82059;82072;82085;82098;82111;82124;82137;82157;82170;82183;82199;82212;77228;77241;77254;77267;77280;77293;77306;77319;77349;73876;76899;76943;77360;77376;77390;77403;77415;77428;77447;77462;77475;77752;77765;77778;77791;77809;77865;77878;77891;77904;77927;77940;77953;77966;77979;77992;78007;78020;78033;78536;78548;78562;78575;78588;78601;78614;78627;78642;78656;78671;78684;78697;78710;78723;78737;78786;78799;78843;78855;78869;78882;78895;78908;78922;78936;78950;78963;78976;78989;79002;79015;79028;79043;79056;79069;79835;79849;79864;79877;79890;79903;79916;79929;79942;79955;79968;79981;79994;80307;80320;80333;80352;80365;80378;80391;80404;80417;80430;80443;80456;80469;80482;80495;80508;80521;80546;80559;80572;80585;80598;80611;80624;80637;80650;80663;80676;80689;80702;80715;80728;80753;80766;80779;80792;80805;80818;80831;80849;80862;80875;80888;80901;80914;80927;80940;80965;80978;80991;81004;81017;81030;81043;81056;81069;81082;81095;81108;81121;81134;81147;81173;81186;81199;81212;81225;81238;81251;81265;81278;81291;81304;81317;81330;81343;81356;81381;81394;81407;81420;81434;81448;81465;81478;81491;81504;81517;81530;81545;81560;81576;81601;81614;81627;81640;81653;81666;81679;81692;81705;81718;81731;81744;81757;81770;81783;81808;81821;81834;81847;81860;81873;81886;81899;81912;81925;81938;81951;81964;81977;81990;82015;82028;82041;82060;82073;82086;82099;82112;82125;82138;82158;82171;82187;82200;82213;77230;77243;77256;77269;77282;77295;77308;77321;77334;73867;73877;76900;76944;77365;77378;77392;77405;77417;77432;77449;77464;77477;77754;77767;77780;77793;77811;77867;77880;77893;
861977906;77929;77942;77955;77968;77981;77994;78009;78022;78035;78538;78550;78564;78577;78590;78603;78616;78629;78644;78658;78673;78686;78699;78712;78725;78739;78788;78801;78845;78857;78871;78884;78897;78911;78924;78938;78952;78965;78978;78991;79004;79017;79030;79045;79058;79071;79837;79852;79866;79879;79892;79905;79918;79931;79944;79957;79970;79983;79996;80309;80322;80335;80354;80367;80380;80393;80406;80419;80432;80445;80458;80471;80484;80497;80510;80523;80548;80561;80574;80587;80600;80613;80626;80639;80652;80665;80678;80691;80704;80717;80730;80755;80768;80781;80794;80807;80820;80833;80851;80864;80877;80890;80903;80916;80929;80942;80967;80980;80993;81006;81019;81032;81045;81058;81071;81084;81097;81110;81123;81136;81149;81175;81188;81201;81214;81227;81240;81253;81267;81280;81293;81306;81319;81332;81345;81358;81383;81396;81409;81422;81436;81450;81467;81480;81493;81506;81519;81533;81547;81565;81578;81603;81616;81629;81642;81655;81668;81681;81694;81707;81720;81733;81746;81759;81772;81785;81810;81823;81836;81849;81862;81875;81888;81901;81914;81927;81940;81953;81966;81979;81992;82017;82030;82049;82062;82075;82088;82101;82114;82127;82140;82160;82173;82189;82202;82215;77231;77244;77257;77270;77283;77296;77309;77322;77335;73858;76901;76945;77366;77379;77393;77406;77418;77435;77450;77465;77478;77755;77768;77781;77794;77812;77868;77881;77894;77907;77930;77943;77956;77969;77982;77995;78010;78023;78036;78539;78552;78565;78578;78591;78604;78617;78630;78645;78659;78674;78687;78700;78713;78726;78740;78789;78802;78846;78858;78872;78885;78898;78912;78925;78939;78953;78966;78979;78992;79005;79018;79032;79046;79059;79072;79838;79853;79867;79880;79893;79906;79919;79932;79945;79958;79971;79984;79997;80310;80323;80336;80355;80368;80381;80394;80407;80420;80433;80446;80459;80472;80485;80498;80511;80524;80549;80562;80575;80588;80601;80614;80627;80640;80653;80666;80679;80692;80705;80718;80731;80756;80769;80782;80795;80808;80821;80834;80852;80865;80878;80891;80904;80917;80930;80943;80968;80981;80994;81007;81020;81033;81046;81059;81072;81085;81098;81111;81124;81137;81150;81176;81189;81202;81215;81228;81241;81254;81268;81281;81294;81307;81320;81333;81346;81359;81384;81397;81410;81423;81437;81452;81468;81481;81494;81507;81520;81534;81548;81566;81579;81604;81617;81630;81643;81656;81669;81682;81695;81708;81721;81734;81747;81760;81773;81786;81811;81824;81837;81850;81863;81876;81889;81902;81915;81928;81941;81954;81967;81980;81993;82018;82031;82050;82063;82076;82089;82102;82115;82128;82141;82161;82174;82190;82203;82216;77219;77232;77245;77258;77271;77284;77297;77310;77323;71864;71874;76891;76935;77348;77367;77380;77394;77407;77419;77436;77452;77466;77743;77756;77769;77782;77795;77817;77869;77882;77895;77918;77931;77944;77957;77970;77983;77996;78011;78024;76502;76524;78553;78566;78579;78592;78605;78618;78632;78646;78660;78675;78688;78701;78714;78727;78777;78790;76513;76535;78859;78873;78886;78899;78913;78926;78940;78954;78967;78980;78993;79006;79019;79033;79047;79060;79820;79839;79854;79868;79881;79894;79907;79920;79933;79946;79959;79972;79985;79998;80311;80324;80343;80356;80369;80382;80395;80408;80421;80434;80447;80460;80473;80486;80499;80512;80537;80550;80563;80576;80589;80602;80615;80628;80641;80654;80667;80680;80693;80706;80719;80744;80757;80770;80783;80796;80809;80822;80835;80853;80866;80879;80892;80905;80918;80931;80956;80969;80982;80995;81008;81021;81034;81047;81060;81073;81086;81099;81112;81125;81138;81164;81177;81190;81203;81216;81229;81242;81255;81269;81282;81295;81308;81321;81334;81347;81372;81385;81398;81411;81424;81438;81453;81469;81482;81495;81508;81521;81535;81549;81567;81592;81605;81618;81631;81644;81657;81670;81683;81696;81709;81722;81735;81748;81761;81774;81799;81812;81825;81838;81851;81864;81877;81890;81903;81916;81929;81942;81955;81968;81981;82006;82019;82032;82051;82064;82077;82090;82103;82116;82129;82142;82162;82175;82191;82204;77220;77233;77246;77259;77272;77285;77298;77311;77324;71873;76936;77351;77368;77381;77395;77420;77437;77453;77467;77744;77757;77770;77783;77796;77857;77870;77883;77896;77919;77932;77945;77958;77971;77984;77997;78012;78025;76501;76523;78554;78567;78580;78593;78606;78619;78633;78647;78663;78676;78689;78702;78715;78728;78778;78791;76512;76534;78860;78874;78887;78900;78914;78927;78942;78955;78968;78981;78994;79007;79020;79034;79048;79061;79821;79840;79855;79869;79882;79895;79908;79921;79934;79947;79960;79973;79986;79999;80312;80325;80344;80357;80370;80383;80396;80409;80422;80435;80448;80461;80474;80487;80500;80513;80538;80551;80564;80577;80590;80603;80616;80629;80642;80655;80668;80681;80694;80707;80720;80745;80758;80771;80784;80797;80810;80823;80836;80854;80867;80880;80893;80906;80919;80932;80957;80970;80983;80996;81009;81022;81035;81048;81061;81074;81087;81100;81113;81126;81139;81165;81178;81191;81204;81217;81230;81243;81256;81270;81283;81296;81309;81322;81335;81348;81373;81386;81399;81412;81425;81439;81454;81470;81483;81496;81509;81522;81536;81550;81568;81593;81606;81619;81632;81645;81658;81671;81684;81697;81710;81723;81736;81749;81762;81775;81800;81813;81826;81839;81852;81865;81878;81891;81904;81917;81930;81943;81956;81969;81982;82007;82020;82033;82052;82065;82078;82091;82104;82117;82130;82148;82163;82176;82192;82205;77221;77234;77247;77260;77273;77286;77299;77312;77325;71875;76893;76937;77353;77369;77383;77396;77408;77421;77438;77454;77468;77745;77758;77771;77784;77797;77858;77871;77884;77897;77920;77933;77946;77959;77972;77985;77998;78013;78026;78529;78540;78555;78568;78581;78594;78607;78620;78634;78648;78664;78677;78690;78703;78716;78729;78779;78792;78835;78847;78862;78875;78888;78901;78915;78928;78943;78956;78969;78982;78995;79008;79021;79035;79049;79062;79822;79842;79856;79870;79883;79896;79909;79922;79935;79948;79961;79974;79987;80300;80313;80326;80345;80358;80371;80384;80397;80410;80423;80436;80449;80462;80475;80488;80501;80514;80539;80552;80565;80578;80591;80604;80617;80630;80643;80656;80669;80682;80695;80708;80721;80746;80759;80772;80785;80798;80811;80824;80837;80855;80868;80881;80894;80907;80920;80933;80958;80971;80984;80997;81010;81023;81036;81049;81062;81075;81088;81101;81114;81127;81140;81166;81179;81192;81205;81218;81231;81244;81257;81271;81284;81297;81310;81323;81336;81349;81374;81387;81400;81413;81426;81440;81455;81471;81484;81497;81510;81523;81537;81553;81569;81594;81607;81620;81633;81646;81659;81672;81685;81698;81711;81724;81737;81750;81763;81776;81801;81814;81827;81840;81853;81866;81879;81892;81905;81918;81931;81944;81957;81970;81983;82008;82021;82034;82053;82066;82079;82092;82105;82118;82131;82149;82164;82177;82193;82206;77222;77235;77248;77261;77274;77287;77300;77313;77326;71866;71876;76894;77354;77370;77384;77397;77409;77422;77439;77455;77469;81375;81388;81401;81414;81427;81442;81456;81472;81485;81498;81511;81524;81538;81554;81570;81595;81608;81621;81634;81647;81660;81673;81686;81699;81712;81725;81738;81751;81764;81777;77223;77236;77249;77262;77275;77288;77301;77314;77327;71868;71878;76895;76939;77355;77371;77385;77398;77410;77423;77440;77456;77470;81376;81389;81402;81415;81428;81443;81457;81473;81486;81499;81512;81525;81539;81555;81571;81596;81609;81622;81635;81648;81661;81674;81687;81700;81713;81726;81739;81752;81765;81778" aria-label="Product Reviews sku ShelterCoat Peak" role="link" tabindex="0"></div> 8620 <!--suppress JSUnresolvedReference --> 8621
8621<script type="text/javascript"> 8622 window.addEventListener('reviews-io-loaded', () => { 8623 ratingSnippet('rating-snippet-product-rating-listing', { 8624 store: 'shelterlogic.com', 8625 mode: 'default', 8626 color: '\u0023E1AB2E', 8627 linebreak: false, 8628 text: 'Reviews', 8629 singularText: 'Review', 8630 lang: 'en', 8631 usePolaris: false, 8632 showEmptyStars: true, 8633 }); 8634 }, {once: true, passive: true}); 8635 </script>
8635 8636 8637 </div> 8638 8639
8639<script nonce="NHRtODJpbGtodmR4MTgxcmxkd2F3a2c0Z2piYWdtNWo="> 8640 window['YIREO_GOOGLETAGMANAGER2_PRODUCT_DATA_ID_48041'] = {"item_id":"ShelterCoat Peak","item_sku":"ShelterCoat Peak","magento_sku":"ShelterCoat Peak","magento_id":"48041","item_image_url":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/placeholder\/default\/SLG_PlaceholderLogo_0322_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265","item_name":"ShelterCoat\u00ae Custom Shelter, Peak","item_brand":"ShelterLogic\u00ae","item_list_id":"71","item_list_name":"Customize Your ShelterCoat\u00ae Garage for Heavy-Duty All-Season Storage ","price":454.99,"item_category":"Outdoor Storage","item_category2":"Custom Commercial Grade Buildings & Shelters","item_category3":"ShelterLogic\u00ae","item_category4":"Customize Your ShelterCoat\u00ae Garage for Heavy-Duty All-Season Storage ","item_category5":"Portable and Metal Garages","index":5};</script>
8640 8641 8642 8643 <div class="text-grey-darker relative pt-4" x-data="initPriceBox()" x-defer="intersect" @update-prices-48041.window="updatePrice($event.detail);"> 8644 8645 <div class="price-box price-final_price" data-role="priceBox" data-product-id="48041" data-price-box="product-id-48041"> <span class="normal-price"><span x-data x-id="['product\u002Dprice\u002D48041']" class="price-container price-final_price tax weee"> 8646 <span class="price-label">Starting at</span> 8647 <span :id="$id('product\u002Dprice\u002D48041')" data-price-amount="454.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">$454.99</span><span class="pl-1 xl:pl-2 font-bold text-base currency-syffix">USD</span></span> 8648 </span></span> </div> 8649 <div class="flex flex-col flex-wrap justify-center"> 8650
8650<script> 8651 'use strict'; 8652 8653 (() => { 8654 window.addEventListener( 8655 'ga-initialized', 8656 () => { 8657 const productForm = document.querySelector( 8658 'form\u005Bdata\u002Dsku\u003D\u0022ShelterCoat\u0020Peak\u0022\u005D' 8659 ); 8660 8661 if (!productForm) { 8662 return; 8663 } 8664 8665 let sku = 'ShelterCoat\u0020Peak'; 8666 8667 window.addEventListener( 8668 'listing\u002Dconfigurable-selection-changed', 8669 (event) => { 8670 if (event.detail.skuCandidates.length === 1 8671 && event.detail.productId === '48041' 8672 ) { 8673 sku = event.detail.skuCandidates[0]; 8674 } 8675 } 8676 ); 8677 8678 function bindEventListener(element, event) 8679 { 8680 element.addEventListener(event, () => { 8681 if (productForm.checkValidity()) { 8682 const priceSelector = false ? '#product-price-48041 .price' 8683 : '[data-price-box="product-id-48041"] .price'; 8684 8685 window.dispatchEvent(new CustomEvent('cart-item-added', { 8686 detail: [{ 8687 product_sku: sku, 8688 product_name: 'ShelterCoat\u00AE\u0020Custom\u0020Shelter,\u0020Peak', 8689 product_price_value: document.querySelector(priceSelector).textContent.slice(1), 8690 8691 qty: 1, 8692 }], 8693 })); 8694 } 8695 }); 8696 } 8697 8698 const button = productForm.querySelector( 8699 'button\u005Bdata\u002Daddto\u003D\u0022cart\u0022\u005D' 8700 ); 8701 8702 if (!button) { 8703 return; 8704 } 8705 8706 bindEventListener(button, 'click'); 8707 }, 8708 { once: true } 8709 ); 8710 })();</script>
8710 </div> 8711 </div> 8712 </div> 8713</div> 8714 <div class="item product product-item shrink-0 product_addtocart_form flex flex-col w-full " data-sku="ACW"> 8715 <div class="product-info-top grow"> 8716 <span class="relative block"> 8717 <a href="https://www.shelterlogic.com/arrow-carport-with-enclosure" class="xs:p-2 product flex justify-center border border-gray-100 product-item-photo mb-3 " aria-label="Product image Arrow Carport With Sides - Configure Your Own" x-data="{ hover: false }" title="Arrow Carport With Sides - Configure Your Own" @mouseover="hover=true" @mouseover.away="hover=false" tabindex="0"> 8718 <span class="sr-only">Product image Arrow Carport With Sides - Configure Your Own</span> 8719 <div x-show="!hover"> 8720 <img class="object-contain product-image-photo" x-data="" @update-gallery-57164.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/c/a/carport-enclosure.png?quality=80&bg-color=255,255,255&fit=bounds&height=222&width=222&canvas=222:222" loading="lazy" width="222" height="222" alt="Arrow Carport With Sides - Configure Your Own"> </div> 8721 <div x-cloak x-show="hover"> 8722 <img class="object-contain product-image-photo" x-data="" @update-gallery-57164.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/c/p/cphc122909ecl1_silo_image_01_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=260&width=260&canvas=260:260" loading="lazy" width="222" height="222" alt="Arrow Carport With Sides - Configure Your Own"> </div> 8723 </a> 8724 8725 </span> 8726 <a class="text-base font-bold product-item-link h-[47px] line-clamp-2 hover:underline" aria-label="Arrow Carport With Sides - Configure Your Own" href="https://www.shelterlogic.com/arrow-carport-with-enclosure" :id="`slide-desc-57164-${$id('slider-id')}`"> 8727 Arrow Carport With Sides - Configure Your Own </a> 8728 </div> 8729 <div class="product-info-bottom flex flex-col justify-start h-full"> 8730 <div class="mt-2 2xss:h-6 2xss:overflow-hidden mb-1.5"> 8731 <div class="rating-snippet-product-rating-listing cursor-pointer" data-sku="ACW;CPHC102007ECL2;CPH102407ECL2;CPHC102909ECL2;CPH101509ECL1;CPHC101509ECL1;CPHC102409ECL2;CPH101507ECL2;CPH102909ECL2;CPH102409ECL2;CPH102909ECL1;CPHC102907ECL2;CPH102009ECL1;CPHC102009ECL2;CPHC102007ECL1;CPH102007ECL1;CPHC101509ECL2;CPHC102407ECL1;CPHC102909ECL1;CPHC102009ECL1;CPH102007ECL2;CPHC101507ECL2;CPH101507ECL1;CPHC102907ECL1;CPHC101507ECL1;CPH102009ECL2;CPH101509ECL2;CPHC102407ECL2;CPH102409ECL1;CPHC102409ECL1;CPH102407ECL1;CPH106909ECL1;CPHC107407ECL1;CPHC109109ECL1;CPH109109ECL1;CPH104207ECL1;CPH105107ECL1;CPH106509ECL1;CPH106007ECL1;CPH104709ECL1;CPHC1010007ECL1;CPHC107409ECL1;CPHC109607ECL1;CPHC103807ECL1;CPHC103809ECL1;CPH104209ECL1;CPH106009ECL1;CPH108209ECL1;CPHC103309ECL1;CPHC1010009ECL1;CPH107809ECL1;CPH105609ECL1;CPHC105607ECL1;CPH108707ECL1;CPH109107ECL1;CPH103807ECL1;CPHC106507ECL1;CPHC106007ECL1;CPHC106509ECL1;CPH109607ECL1;CPHC104207ECL1;CPHC106909ECL1;CPHC105107ECL1;CPH106907ECL1;CPHC105109ECL1;CPHC107809ECL1;CPHC109609ECL1;CPHC103307ECL1;CPH104707ECL1;CPHC106907ECL1;CPHC109107ECL1;CPHC104709ECL1;CPH105109ECL1;CPH107807ECL1;CPH102907ECL1;CPH107407ECL1;CPHC108209ECL1;CPHC104209ECL1;CPH108709ECL1;CPH103307ECL1;CPHC104707ECL1;CPH108207ECL1;CPH1010009ECL1;CPHC108707ECL1;CPH103309ECL1;CPHC108207ECL1;CPH103809ECL1;CPH107409ECL1;CPHC108709ECL1;CPH105607ECL1;CPHC107807ECL1;CPH1010007ECL1;CPH109609ECL1;CPHC106009ECL1;CPHC105609ECL1;CPH106507ECL1;CPHC124709ECL1;CPH128207ECL1;CPH125107ECL1;CPHC1210009ECL1;CPHC129107ECL1;CPHC122409ECL1;CPH126509ECL1;CPH122907ECL1;CPHC128209ECL1;CPH125607ECL1;CPHC125107ECL1;CPHC128709ECL1;CPH126009ECL1;CPH1210009ECL1;CPHC123307ECL1;CPHC125607ECL1;CPH126907ECL1;CPHC124207ECL1;CPHC128707ECL1;CPHC129609ECL1;CPH126007ECL1;CPH122009ECL1;CPHC122007ECL1;CPH124209ECL1;CPH128709ECL1;CPH122409ECL1;CPHC122909ECL1;CPHC1210007ECL1;CPHC126007ECL1;CPH127409ECL1;CPHC123809ECL1;CPH129607ECL1;CPH128707ECL1;CPHC128207ECL1;CPHC122907ECL1;CPH124707ECL1;CPHC124707ECL1;CPH127809ECL1;CPH126507ECL1;CPH122407ECL1;CPHC126509ECL1;CPH128209ECL1;CPHC126009ECL1;CPHC126909ECL1;CPHC122009ECL1;CPH125109ECL1;CPHC123807ECL1;CPHC127809ECL1;CPH127407ECL1;CPH129109ECL1;CPH122007ECL1;CPH1210007ECL1;CPHC129607ECL1;CPHC129109ECL1;CPH125609ECL1;CPHC125609ECL1;CPH129609ECL1;CPH123309ECL1;CPH127807ECL1;CPHC123309ECL1;CPH123809ECL1;CPHC127409ECL1;CPHC127407ECL1;CPH122909ECL1;CPHC126907ECL1;CPHC124209ECL1;CPH123307ECL1;CPHC126507ECL1;CPH129107ECL1;CPH124207ECL1;CPHC122407ECL1;CPH123807ECL1;CPH124709ECL1;CPHC125109ECL1;CPHC127807ECL1;CPH126909ECL1;CPH2010009ECL1;CPH208209ECL1;CPH205609ECL1;CPH202409ECL1;CPH203809ECL1;CPHC209109ECL1;CPHC202907ECL1;CPHC208207ECL1;CPH202007ECL1;CPH208709ECL1;CPHC205109ECL1;CPHC205609ECL1;CPHC205607ECL1;CPHC209607ECL1;CPH206507ECL1;CPHC2010009ECL1;CPHC208707ECL1;CPHC207409ECL1;CPHC208209ECL1;CPHC204207ECL1;CPHC203307ECL1;CPH206007ECL1;CPHC202007ECL1;CPH208707ECL1;CPH206909ECL1;CPH209109ECL1;CPH204707ECL1;CPH204209ECL1;CPH202009ECL1;CPH209107ECL1;CPH203807ECL1;CPH207807ECL1;CPH202407ECL1;CPH204709ECL1;CPHC206007ECL1;CPH206907ECL1;CPHC206907ECL1;CPH205109ECL1;CPH203307ECL1;CPH204207ECL1;CPHC207407ECL1;CPHC203809ECL1;CPH207809ECL1;CPHC203807ECL1;CPHC206509ECL1;CPH209607ECL1;CPHC202009ECL1;CPHC202407ECL1;CPHC209107ECL1;CPH207409ECL1;CPHC2010007ECL1;CPHC204209ECL1;CPH207407ECL1;CPHC207809ECL1;CPH206509ECL1;CPH202907ECL1;CPH202909ECL1;CPHC207807ECL1;CPHC204709ECL1;CPHC202409ECL1;CPHC206507ECL1;CPHC208709ECL1;CPHC206009ECL1;CPHC209609ECL1;CPHC204707ECL1;CPH2010007ECL1;CPH206009ECL1;CPHC202909ECL1;CPH209609ECL1;CPHC206909ECL1;CPH208207ECL1;CPH205107ECL1;CPHC203309ECL1;CPHC205107ECL1;CPH203309ECL1;CPH205607ECL1;CPHC105109ECL2;CPH104709ECL2;CPH103307ECL2;CPHC108707ECL2;CPHC106909ECL2;CPHC107809ECL2;CPH105109ECL2;CPH105107ECL2;CPHC106509ECL2;CPH107807ECL2;CPH1010007ECL2;CPHC106507ECL2;CPHC104209ECL2;CPH109109ECL2;CPHC108709ECL2;CPH106909ECL2;CPHC104709ECL2;CPH105609ECL2;CPHC103809ECL2;CPHC106009ECL2;CPH109609ECL2;CPH107409ECL2;CPH109107ECL2;CPHC109109ECL2;CPH104207ECL2;CPH106009ECL2;CPH106507ECL2;CPHC103309ECL2;CPHC106907ECL2;CPHC104707ECL2;CPHC103807ECL2;CPH106907ECL2;CPHC108209ECL2;CPHC109609ECL2;CPH107809ECL2;CPHC1010009ECL2;CPHC109107ECL2;CPHC107409ECL2;CPH108709ECL2;CPHC103307ECL2;CPH104209ECL2;CPH106007ECL2;CPH104707ECL2;CPHC107807ECL2;CPH108707ECL2;CPH106509ECL2;CPH109607ECL2;CPH107407ECL2;CPHC107407ECL2;CPHC104207ECL2;CPHC108207ECL2;CPHC105107ECL2;CPH1010009ECL2;
8731CPH103809ECL2;CPH103807ECL2;CPHC106007ECL2;CPH105607ECL2;CPHC105609ECL2;CPH102907ECL2;CPHC1010007ECL2;CPH103309ECL2;CPHC109607ECL2;CPHC105607ECL2;CPH108209ECL2;CPH108207ECL2;CPH122407ECL2;CPH129107ECL2;CPHC125109ECL2;CPH126009ECL2;CPHC124707ECL2;CPH123809ECL2;CPH126509ECL2;CPH128707ECL2;CPH1210007ECL2;CPHC127807ECL2;CPHC1210009ECL2;CPH124709ECL2;CPHC122009ECL2;CPHC126909ECL2;CPHC126009ECL2;CPHC122407ECL2;CPHC127407ECL2;CPHC128207ECL2;CPHC123807ECL2;CPHC124207ECL2;CPH129607ECL2;CPHC126507ECL2;CPHC129609ECL2;CPHC129107ECL2;CPHC1210007ECL2;CPHC125607ECL2;CPH122907ECL2;CPH1210009ECL2;CPH124209ECL2;CPH127807ECL2;CPH123307ECL2;CPH122909ECL2;CPH122007ECL2;CPH125107ECL2;CPHC122909ECL2;CPHC128707ECL2;CPH126909ECL2;CPH128207ECL2;CPH129109ECL2;CPH123807ECL2;CPH128209ECL2;CPH128709ECL2;CPHC126907ECL2;CPHC122409ECL2;CPH125607ECL2;CPH123309ECL2;CPHC128709ECL2;CPH122409ECL2;CPHC123809ECL2;CPH125109ECL2;CPHC123307ECL2;CPHC129109ECL2;CPH126007ECL2;CPH124207ECL2;CPH127809ECL2;CPH125609ECL2;CPH126907ECL2;CPHC129607ECL2;CPHC124709ECL2;CPHC125107ECL2;CPH122009ECL2;CPHC128209ECL2;CPH127409ECL2;CPHC127809ECL2;CPHC124209ECL2;CPHC126509ECL2;CPHC123309ECL2;CPHC127409ECL2;CPHC126007ECL2;CPH129609ECL2;CPH126507ECL2;CPHC125609ECL2;CPH127407ECL2;CPH124707ECL2;CPHC122907ECL2;CPHC122007ECL2;CPHC202409ECL2;CPH206909ECL2;CPHC208709ECL2;CPHC204709ECL2;CPHC206909ECL2;CPHC204707ECL2;CPH209607ECL2;CPH205107ECL2;CPHC204209ECL2;CPHC205609ECL2;CPHC203309ECL2;CPH207407ECL2;CPHC2010009ECL2;CPH208707ECL2;CPHC205107ECL2;CPH207409ECL2;CPH202009ECL2;CPH204207ECL2;CPHC2010007ECL2;CPHC203307ECL2;CPH204707ECL2;CPHC209109ECL2;CPH208709ECL2;CPHC203809ECL2;CPHC202907ECL2;CPHC207409ECL2;CPHC207809ECL2;CPHC206907ECL2;CPH202409ECL2;CPHC208209ECL2;CPHC203807ECL2;CPH206507ECL2;CPHC204207ECL2;CPH205109ECL2;CPHC207407ECL2;CPHC202407ECL2;CPH207807ECL2;CPHC202009ECL2;CPHC209107ECL2;CPHC202007ECL2;CPHC205109ECL2;CPH206509ECL2;CPHC206007ECL2;CPH206007ECL2;CPH203807ECL2;CPH208207ECL2;CPH2010009ECL2;CPH203809ECL2;CPH202407ECL2;CPHC206507ECL2;CPH206907ECL2;CPH206009ECL2;CPHC206509ECL2;CPHC208207ECL2;CPHC208707ECL2;CPH2010007ECL2;CPH203307ECL2;CPHC202909ECL2;CPHC207807ECL2;CPHC205607ECL2;CPH207809ECL2;CPH209609ECL2;CPHC209607ECL2;CPHC206009ECL2;CPH203309ECL2;CPH204209ECL2;CPH204709ECL2;CPH202909ECL2;CPH208209ECL2;CPH205609ECL2;CPH209109ECL2;CPH202907ECL2;CPH202007ECL2;CPH209107ECL2;CPHC209609ECL2;CPH205607ECL2;CPH122009ECL3;CPH122909ECL3;CPHC102409ECL3;CPH102409ECL3;CPH102007ECL3;CPHC202907ECL3;CPHC122007ECL3;CPH122409ECL3;CPH122407ECL3;CPHC102407ECL3;CPH101507ECL3;CPHC202409ECL3;CPHC102009ECL3;CPH202907ECL3;CPH102407ECL3;CPH122907ECL3;CPHC202009ECL3;CPH202009ECL3;CPH102909ECL3;CPH202407ECL3;CPHC202909ECL3;CPHC122907ECL3;CPH202909ECL3;CPHC101507ECL3;CPHC122909ECL3;CPHC102007ECL3;CPHC101509ECL3;CPHC202407ECL3;CPHC122009ECL3;CPH102009ECL3;CPHC122409ECL3;CPHC202007ECL3;CPH202007ECL3;CPHC102909ECL3;CPH102907ECL3;CPH202409ECL3;CPH101509ECL3;CPHC102907ECL3;CPH122007ECL3;CPHC122407ECL3" aria-label="Product Reviews sku ACW" role="link" tabindex="0"></div> 8732 <!--suppress JSUnresolvedReference --> 8733
8733<script type="text/javascript"> 8734 window.addEventListener('reviews-io-loaded', () => { 8735 ratingSnippet('rating-snippet-product-rating-listing', { 8736 store: 'shelterlogic.com', 8737 mode: 'default', 8738 color: '\u0023E1AB2E', 8739 linebreak: false, 8740 text: 'Reviews', 8741 singularText: 'Review', 8742 lang: 'en', 8743 usePolaris: false, 8744 showEmptyStars: true, 8745 }); 8746 }, {once: true, passive: true}); 8747 </script>
8747 8748 8749 </div> 8750 8751
8751<script nonce="NHRtODJpbGtodmR4MTgxcmxkd2F3a2c0Z2piYWdtNWo="> 8752 window['YIREO_GOOGLETAGMANAGER2_PRODUCT_DATA_ID_57164'] = {"item_id":"ACW","item_sku":"ACW","magento_sku":"ACW","magento_id":"57164","item_image_url":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/placeholder\/default\/SLG_PlaceholderLogo_0322_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265","item_name":"Arrow Carport With Sides - Configure Your Own","item_brand":"Arrow\u00ae","item_list_id":"1259","item_list_name":"Car Carports","price":1659.99,"item_category":"Custom Commercial Grade Buildings & Shelters","item_category2":"Arrow Single and Double Car Carports","item_category3":"Arrow Carports for Trucks & SUVs","item_category4":"Arrow Carports for UTVs and Golf Carts","item_category5":"Arrow Carports for Lawn Equipment, Scissor Lifts, Skid Steers, Forklifts, Backhoes","index":6};</script>
8752 8753 8754 8755 <div class="text-grey-darker relative pt-4" x-data="initPriceBox()" x-defer="intersect" @update-prices-57164.window="updatePrice($event.detail);"> 8756 8757 <div class="price-box price-final_price" data-role="priceBox" data-product-id="57164" data-price-box="product-id-57164"> <span class="normal-price"><span x-data x-id="['product\u002Dprice\u002D57164']" class="price-container price-final_price tax weee"> 8758 <span class="price-label">Starting at</span> 8759 <span :id="$id('product\u002Dprice\u002D57164')" data-price-amount="1659.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">$1,659.99</span><span class="pl-1 xl:pl-2 font-bold text-base currency-syffix">USD</span></span> 8760 </span></span> </div> 8761 <div class="flex flex-col flex-wrap justify-center"> 8762 <div class="flex mt-1 text-sm label-additional-middle label-additional-free-shipping fotorama-loaded"> 8763 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" class="fill-current text-red-50 w-5 h-5 mr-1" width="25" height="25" aria-hidden="true"> 8764 <path d="M8 16.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM15 16.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0z"></path> 8765 <path d="M3 4a1 1 0 00-1 1v10a1 1 0 001 1h1.05a2.5 2.5 0 014.9 0H10a1 1 0 001-1V5a1 1 0 00-1-1H3zM14 7a1 1 0 00-1 1v6.05A2.5 2.5 0 0115.95 16H17a1 1 0 001-1v-5a1 1 0 00-.293-.707l-2-2A1 1 0 0015 7h-1z"></path> 8766</svg> 8767 Free Shipping </div> 8768
8768<script> 8769 'use strict'; 8770 8771 (() => { 8772 window.addEventListener( 8773 'ga-initialized', 8774 () => { 8775 const productForm = document.querySelector( 8776 'form\u005Bdata\u002Dsku\u003D\u0022ACW\u0022\u005D' 8777 ); 8778 8779 if (!productForm) { 8780 return; 8781 } 8782 8783 let sku = 'ACW'; 8784 8785 window.addEventListener( 8786 'listing\u002Dconfigurable-selection-changed', 8787 (event) => { 8788 if (event.detail.skuCandidates.length === 1 8789 && event.detail.productId === '57164' 8790 ) { 8791 sku = event.detail.skuCandidates[0]; 8792 } 8793 } 8794 ); 8795 8796 function bindEventListener(element, event) 8797 { 8798 element.addEventListener(event, () => { 8799 if (productForm.checkValidity()) { 8800 const priceSelector = false ? '#product-price-57164 .price' 8801 : '[data-price-box="product-id-57164"] .price'; 8802 8803 window.dispatchEvent(new CustomEvent('cart-item-added', { 8804 detail: [{ 8805 product_sku: sku, 8806 product_name: 'Arrow\u0020Carport\u0020With\u0020Sides\u0020\u002D\u0020Configure\u0020Your\u0020Own', 8807 product_price_value: document.querySelector(priceSelector).textContent.slice(1), 8808 8809 qty: 1, 8810 }], 8811 })); 8812 } 8813 }); 8814 } 8815 8816 const button = productForm.querySelector( 8817 'button\u005Bdata\u002Daddto\u003D\u0022cart\u0022\u005D' 8818 ); 8819 8820 if (!button) { 8821 return; 8822 } 8823 8824 bindEventListener(button, 'click'); 8825 }, 8826 { once: true } 8827 ); 8828 })();</script>
8828 </div> 8829 </div> 8830 </div> 8831</div> 8832 <div class="item product product-item shrink-0 product_addtocart_form flex flex-col w-full " data-sku="STHTGH-FE"> 8833 <div class="product-info-top grow"> 8834 <span class="relative block"> 8835 <a href="https://www.shelterlogic.com/sheltertech-high-tunnel-greenhouse-frame-and-end-panel-frame" class="xs:p-2 product flex justify-center border border-gray-100 product-item-photo mb-3 " aria-label="Product image High Tunnel Greenhouse, Frame and End Panel Frame" x-data="{ hover: false }" title="High Tunnel Greenhouse, Frame and End Panel Frame" @mouseover="hover=true" @mouseover.away="hover=false" tabindex="0"> 8836 <span class="sr-only">Product image High Tunnel Greenhouse, Frame and End Panel Frame</span> 8837 <div x-show="!hover"> 8838 <img class="object-contain product-image-photo" x-data="" @update-gallery-48219.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/s/t/sthtgh-fe.png?quality=80&bg-color=255,255,255&fit=bounds&height=222&width=222&canvas=222:222" loading="lazy" width="222" height="222" alt="High Tunnel Greenhouse, Frame and End Panel Frame"> </div> 8839 <div x-cloak x-show="hover"> 8840 <img class="object-contain product-image-photo" x-data="" @update-gallery-48219.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/s/t/sthtgh-fe_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=260&width=260&canvas=260:260" loading="lazy" width="222" height="222" alt="High Tunnel Greenhouse, Frame and End Panel Frame"> </div> 8841 </a> 8842 8843 </span> 8844 <a class="text-base font-bold product-item-link h-[47px] line-clamp-2 hover:underline" aria-label="High Tunnel Greenhouse, Frame and End Panel Frame" href="https://www.shelterlogic.com/sheltertech-high-tunnel-greenhouse-frame-and-end-panel-frame" :id="`slide-desc-48219-${$id('slider-id')}`"> 8845 High Tunnel Greenhouse, Frame and End Panel Frame </a> 8846 </div> 8847 <div class="product-info-bottom flex flex-col justify-start h-full"> 8848 <div class="mt-2 2xss:h-6 2xss:overflow-hidden mb-1.5"> 8849 <div class="rating-snippet-product-rating-listing cursor-pointer" data-sku="STHTGH-FE;CFBAJJ0000F00800408;CFBAJJ0000F00800808;CFBAJJ0000F00801208;CFBAJJ0000F00801608;CFBAJJ0000F00802008;CFBAJJ0000F00802408;CFBAJJ0000F00802808;CFBAJJ0000F00803208;CFBAJJ0000F00803608;CFBAJJ0000F00804008;CFBAJJ0000F00804408;CFBAJJ0000F00804808;CFBAJJ0000F00805208;CFBAJJ0000F00805608;CFBAJJ0000F00806008;CFBAJJ0000F00806408;CFBAJJ0000F00806808;CFBAJJ0000F00807208;CFBAJJ0000F00807608;CFBAJJ0000F00808008;CFBAJJ0000F00808408;CFBAJJ0000F00808808;CFBAJJ0000F00809208;CFBAJJ0000F00809608;CFBAJJ0000F00810008;CFBAJJ0000F01000408;CFBAJJ0000F01000808;CFBAJJ0000F01001208;CFBAJJ0000F01001608;CFBAJJ0000F01002008;CFBAJJ0000F01002408;CFBAJJ0000F01002808;CFBAJJ0000F01003208;CFBAJJ0000F01003608;CFBAJJ0000F01004008;CFBAJJ0000F01004408;CFBAJJ0000F01004808;CFBAJJ0000F01005208;CFBAJJ0000F01005608;CFBAJJ0000F01006008;CFBAJJ0000F01006408;CFBAJJ0000F01006808;CFBAJJ0000F01007208;CFBAJJ0000F01007608;CFBAJJ0000F01008008;CFBAJJ0000F01008408;CFBAJJ0000F01008808;CFBAJJ0000F01009208;CFBAJJ0000F01009608;CFBAJJ0000F01010008;CFBAJJ0000F01200408;CFBAJJ0000F01200808;CFBAJJ0000F01201208;CFBAJJ0000F01201608;CFBAJJ0000F01202008;CFBAJJ0000F01202408;CFBAJJ0000F01202808;CFBAJJ0000F01203208;CFBAJJ0000F01203608;CFBAJJ0000F01204008;CFBAJJ0000F01204408;CFBAJJ0000F01204808;CFBAJJ0000F01205208;CFBAJJ0000F01205608;CFBAJJ0000F01206008;CFBAJJ0000F01206408;CFBAJJ0000F01206808;CFBAJJ0000F01207208;CFBAJJ0000F01207608;CFBAJJ0000F01208008;CFBAJJ0000F01208408;CFBAJJ0000F01208808;CFBAJJ0000F01209208;CFBAJJ0000F01209608;CFBAJJ0000F01210008;CFBAJJ0000F01400408;CFBAJJ0000F01400808;CFBAJJ0000F01401208;CFBAJJ0000F01401608;CFBAJJ0000F01402008;CFBAJJ0000F01402408;CFBAJJ0000F01402808;CFBAJJ0000F01403208;CFBAJJ0000F01403608;CFBAJJ0000F01404008;CFBAJJ0000F01404408;CFBAJJ0000F01404808;CFBAJJ0000F01405208;CFBAJJ0000F01405608;
8849CFBAJJ0000F01406008;CFBAJJ0000F01406408;CFBAJJ0000F01406808;CFBAJJ0000F01407208;CFBAJJ0000F01407608;CFBAJJ0000F01408008;CFBAJJ0000F01408408;CFBAJJ0000F01408808;CFBAJJ0000F01409208;CFBAJJ0000F01409608;CFBAJJ0000F01410008;CFBAJJ0000F02000410;CFBAJJ0000F02000810;CFBAJJ0000F02001210;CFBAJJ0000F02001610;CFBAJJ0000F02002010;CFBAJJ0000F02002410;CFBAJJ0000F02002810;CFBAJJ0000F02003210;CFBAJJ0000F02003610;CFBAJJ0000F02004010;CFBAJJ0000F02004410;CFBAJJ0000F02004810;CFBAJJ0000F02005210;CFBAJJ0000F02005610;CFBAJJ0000F02006010;CFBAJJ0000F02006410;CFBAJJ0000F02006810;CFBAJJ0000F02007210;CFBAJJ0000F02007610;CFBAJJ0000F02008010;CFBAJJ0000F02008410;CFBAJJ0000F02008810;CFBAJJ0000F02009210;CFBAJJ0000F02009610;CFBAJJ0000F02010010;CFBAJJ0000F02600413;CFBAJJ0000F02600813;CFBAJJ0000F02601213;CFBAJJ0000F02601613;CFBAJJ0000F02602013;CFBAJJ0000F02602413;CFBAJJ0000F02602813;CFBAJJ0000F02603213;CFBAJJ0000F02603613;CFBAJJ0000F02604013;CFBAJJ0000F02604413;CFBAJJ0000F02604813;CFBAJJ0000F02605213;CFBAJJ0000F02605613;CFBAJJ0000F02606013;CFBAJJ0000F02606413;CFBAJJ0000F02606813;CFBAJJ0000F02607213;CFBAJJ0000F02607613;CFBAJJ0000F02608013;CFBAJJ0000F02608413;CFBAJJ0000F02608813;CFBAJJ0000F02609213;CFBAJJ0000F02609613;CFBAJJ0000F02610013;CFBAJJ0000F03800415;CFBAJJ0000F03800815;CFBAJJ0000F03801215;CFBAJJ0000F03801615;CFBAJJ0000F03802015;CFBAJJ0000F03802415;CFBAJJ0000F03802815;CFBAJJ0000F03803215;CFBAJJ0000F03803615;CFBAJJ0000F03804015;CFBAJJ0000F03804415;CFBAJJ0000F03804815;CFBAJJ0000F03805215;CFBAJJ0000F03805615;CFBAJJ0000F03806015;CFBAJJ0000F03806415;CFBAJJ0000F03806815;CFBAJJ0000F03807215;CFBAJJ0000F03807615;CFBAJJ0000F03808015;CFBAJJ0000F03808415;CFBAJJ0000F03808815;CFBAJJ0000F03809215;CFBAJJ0000F03809615;CFBAJJ0000F03810015;CFEAJJ0000F018004011;CFEAJJ0000F018008011;CFEAJJ0000F018012011;CFEAJJ0000F018016011;CFEAJJ0000F018020011;CFEAJJ0000F018024011;CFEAJJ0000F018028011;CFEAJJ0000F018032011;CFEAJJ0000F018036011;CFEAJJ0000F018040011;CFEAJJ0000F018044011;CFEAJJ0000F018048011;CFEAJJ0000F018052011;CFEAJJ0000F018056011;CFEAJJ0000F018060011;CFEAJJ0000F018064011;CFEAJJ0000F018068011;CFEAJJ0000F018072011;CFEAJJ0000F018076011;CFEAJJ0000F018080011;CFEAJJ0000F018084011;CFEAJJ0000F018088011;CFEAJJ0000F018092011;CFEAJJ0000F018096011;CFEAJJ0000F018100011;CFEAJJ0000F02000412;CFEAJJ0000F02000812;CFEAJJ0000F02001212;CFEAJJ0000F02001612;CFEAJJ0000F02002012;CFEAJJ0000F02002412;CFEAJJ0000F02002812;CFEAJJ0000F02003212;CFEAJJ0000F02003612;CFEAJJ0000F02004012;CFEAJJ0000F02004412;CFEAJJ0000F02004812;CFEAJJ0000F02005212;CFEAJJ0000F02005612;CFEAJJ0000F02006012;CFEAJJ0000F02006412;CFEAJJ0000F02006812;CFEAJJ0000F02007212;CFEAJJ0000F02007612;CFEAJJ0000F02008012;CFEAJJ0000F02008412;CFEAJJ0000F02008812;CFEAJJ0000F02009212;CFEAJJ0000F02009612;CFEAJJ0000F02010012;CFEAJJ0000F02400412;CFEAJJ0000F02400812;CFEAJJ0000F02401212;CFEAJJ0000F02401612;CFEAJJ0000F02402012;CFEAJJ0000F02402412;CFEAJJ0000F02402812;CFEAJJ0000F02403212;CFEAJJ0000F02403612;CFEAJJ0000F02404012;CFEAJJ0000F02404412;CFEAJJ0000F02404812;CFEAJJ0000F02405212;CFEAJJ0000F02405612;CFEAJJ0000F02406012;CFEAJJ0000F02406412;CFEAJJ0000F02406812;CFEAJJ0000F02407212;CFEAJJ0000F02407612;CFEAJJ0000F02408012;CFEAJJ0000F02408412;CFEAJJ0000F02408812;CFEAJJ0000F02409212;CFEAJJ0000F02409612;CFEAJJ0000F02410012;CFEAJJ0000F02600412;CFEAJJ0000F02600812;CFEAJJ0000F02601212;CFEAJJ0000F02601612;CFEAJJ0000F02602012;CFEAJJ0000F02602412;CFEAJJ0000F02602812;CFEAJJ0000F02603212;CFEAJJ0000F02603612;CFEAJJ0000F02604012;CFEAJJ0000F02604412;CFEAJJ0000F02604812;CFEAJJ0000F02605212;CFEAJJ0000F02605612;CFEAJJ0000F02606012;CFEAJJ0000F02606412;CFEAJJ0000F02606812;CFEAJJ0000F02607212;CFEAJJ0000F02607612;CFEAJJ0000F02608012;CFEAJJ0000F02608412;CFEAJJ0000F02608812;CFEAJJ0000F02609212;CFEAJJ0000F02609612;CFEAJJ0000F02610012;CFEAJJ0000F03000412;CFEAJJ0000F03000812;CFEAJJ0000F03001212;CFEAJJ0000F03001612;CFEAJJ0000F03002012;CFEAJJ0000F03002412;CFEAJJ0000F03002812;CFEAJJ0000F03003212;CFEAJJ0000F03003612;CFEAJJ0000F03004012;CFEAJJ0000F03004412;CFEAJJ0000F03004812;CFEAJJ0000F03005212;CFEAJJ0000F03005612;CFEAJJ0000F03006012;CFEAJJ0000F03006412;CFEAJJ0000F03006812;CFEAJJ0000F03007212;CFEAJJ0000F03007612;CFEAJJ0000F03008012;CFEAJJ0000F03008412;CFEAJJ0000F03008812;CFEAJJ0000F03009212;CFEAJJ0000F03009612;CFEAJJ0000F03010012;CFEAJJ0000F03400412;CFEAJJ0000F03400812;CFEAJJ0000F03401212;CFEAJJ0000F03401612;CFEAJJ0000F03402012;CFEAJJ0000F03402412;CFEAJJ0000F03402812;CFEAJJ0000F03403212;CFEAJJ0000F03403612;CFEAJJ0000F03404012;CFEAJJ0000F03404412;CFEAJJ0000F03404812;CFEAJJ0000F03405212;
8849CFEAJJ0000F03405612;CFEAJJ0000F03406012;CFEAJJ0000F03406412;CFEAJJ0000F03406812;CFEAJJ0000F03407212;CFEAJJ0000F03407612;CFEAJJ0000F03408012;CFEAJJ0000F03408412;CFEAJJ0000F03408812;CFEAJJ0000F03409212;CFEAJJ0000F03409612;CFEAJJ0000F03410012" aria-label="Product Reviews sku STHTGH-FE" role="link" tabindex="0"></div> 8850 <!--suppress JSUnresolvedReference --> 8851
8851<script type="text/javascript"> 8852 window.addEventListener('reviews-io-loaded', () => { 8853 ratingSnippet('rating-snippet-product-rating-listing', { 8854 store: 'shelterlogic.com', 8855 mode: 'default', 8856 color: '\u0023E1AB2E', 8857 linebreak: false, 8858 text: 'Reviews', 8859 singularText: 'Review', 8860 lang: 'en', 8861 usePolaris: false, 8862 showEmptyStars: true, 8863 }); 8864 }, {once: true, passive: true}); 8865 </script>
8865 8866 8867 </div> 8868 8869
8869<script nonce="NHRtODJpbGtodmR4MTgxcmxkd2F3a2c0Z2piYWdtNWo="> 8870 window['YIREO_GOOGLETAGMANAGER2_PRODUCT_DATA_ID_48219'] = {"item_id":"STHTGH-FE","item_sku":"STHTGH-FE","magento_sku":"STHTGH-FE","magento_id":"48219","item_image_url":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/placeholder\/default\/SLG_PlaceholderLogo_0322_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265","item_name":"High Tunnel Greenhouse, Frame and End Panel Frame","item_brand":"ShelterLogic\u00ae","item_list_id":"185","item_list_name":"Greenhouses","price":919.5,"item_category":"Custom Commercial Grade Buildings & Shelters","item_category2":"Greenhouses","item_category3":"High Tunnel Greenhouses","item_category4":"ShelterLogic\u00ae","item_category5":"Backyard Greenhouse Kits for Growing Year-Round","index":7};</script>
8870 8871 8872 8873 <div class="text-grey-darker relative pt-4" x-data="initPriceBox()" x-defer="intersect" @update-prices-48219.window="updatePrice($event.detail);"> 8874 8875 <div class="price-box price-final_price" data-role="priceBox" data-product-id="48219" data-price-box="product-id-48219"> <span class="normal-price"><span x-data x-id="['product\u002Dprice\u002D48219']" class="price-container price-final_price tax weee"> 8876 <span class="price-label">Starting at</span> 8877 <span :id="$id('product\u002Dprice\u002D48219')" data-price-amount="919.5" data-price-type="finalPrice" class="price-wrapper "><span class="price">$919.50</span><span class="pl-1 xl:pl-2 font-bold text-base currency-syffix">USD</span></span> 8878 </span></span> </div> 8879 <div class="flex flex-col flex-wrap justify-center"> 8880
8880<script> 8881 'use strict'; 8882 8883 (() => { 8884 window.addEventListener( 8885 'ga-initialized', 8886 () => { 8887 const productForm = document.querySelector( 8888 'form\u005Bdata\u002Dsku\u003D\u0022STHTGH\u002DFE\u0022\u005D' 8889 ); 8890 8891 if (!productForm) { 8892 return; 8893 } 8894 8895 let sku = 'STHTGH\u002DFE'; 8896 8897 window.addEventListener( 8898 'listing\u002Dconfigurable-selection-changed', 8899 (event) => { 8900 if (event.detail.skuCandidates.length === 1 8901 && event.detail.productId === '48219' 8902 ) { 8903 sku = event.detail.skuCandidates[0]; 8904 } 8905 } 8906 ); 8907 8908 function bindEventListener(element, event) 8909 { 8910 element.addEventListener(event, () => { 8911 if (productForm.checkValidity()) { 8912 const priceSelector = false ? '#product-price-48219 .price' 8913 : '[data-price-box="product-id-48219"] .price'; 8914 8915 window.dispatchEvent(new CustomEvent('cart-item-added', { 8916 detail: [{ 8917 product_sku: sku, 8918 product_name: 'High\u0020Tunnel\u0020Greenhouse,\u0020Frame\u0020and\u0020End\u0020Panel\u0020Frame', 8919 product_price_value: document.querySelector(priceSelector).textContent.slice(1), 8920 8921 qty: 1, 8922 }], 8923 })); 8924 } 8925 }); 8926 } 8927 8928 const button = productForm.querySelector( 8929 'button\u005Bdata\u002Daddto\u003D\u0022cart\u0022\u005D' 8930 ); 8931 8932 if (!button) { 8933 return; 8934 } 8935 8936 bindEventListener(button, 'click'); 8937 }, 8938 { once: true } 8939 ); 8940 })();</script>
8940 </div> 8941 </div> 8942 </div> 8943</div> 8944 <div class="item product product-item shrink-0 product_addtocart_form flex flex-col w-full " data-sku="STHTGH-FC"> 8945 <div class="product-info-top grow"> 8946 <span class="relative block"> 8947 <a href="https://www.shelterlogic.com/sheltertech-high-tunnel-greenhouse-frame-and-cover" class="xs:p-2 product flex justify-center border border-gray-100 product-item-photo mb-3 " aria-label="Product image High Tunnel Greenhouse, Frame and Cover" x-data="{ hover: false }" title="High Tunnel Greenhouse, Frame and Cover" @mouseover="hover=true" @mouseover.away="hover=false" tabindex="0"> 8948 <span class="sr-only">Product image High Tunnel Greenhouse, Frame and Cover</span> 8949 <div x-show="!hover"> 8950 <img class="object-contain product-image-photo" x-data="" @update-gallery-48217.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/s/t/sthtgh-fc.png?quality=80&bg-color=255,255,255&fit=bounds&height=222&width=222&canvas=222:222" loading="lazy" width="222" height="222" alt="High Tunnel Greenhouse, Frame and Cover"> </div> 8951 <div x-cloak x-show="hover"> 8952 <img class="object-contain product-image-photo" x-data="" @update-gallery-48217.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/s/t/sthtgh-fc_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=260&width=260&canvas=260:260" loading="lazy" width="222" height="222" alt="High Tunnel Greenhouse, Frame and Cover"> </div> 8953 </a> 8954 8955 </span> 8956 <a class="text-base font-bold product-item-link h-[47px] line-clamp-2 hover:underline" aria-label="High Tunnel Greenhouse, Frame and Cover" href="https://www.shelterlogic.com/sheltertech-high-tunnel-greenhouse-frame-and-cover" :id="`slide-desc-48217-${$id('slider-id')}`"> 8957 High Tunnel Greenhouse, Frame and Cover </a> 8958 </div> 8959 <div class="product-info-bottom flex flex-col justify-start h-full"> 8960 <div class="mt-2 2xss:h-6 2xss:overflow-hidden mb-1.5"> 8961 <div class="rating-snippet-product-rating-listing cursor-pointer" data-sku="STHTGH-FC;CFBAAA0608F00800408;CFBAAA0608F00800808;CFBAAA0608F00801208;CFBAAA0608F00801608;CFBAAA0608F00802008;CFBAAA0608F00802408;CFBAAA0608F00802808;CFBAAA0608F00803208;CFBAAA0608F00803608;CFBAAA0608F00804008;CFBAAA0608F00804408;CFBAAA0608F00804808;CFBAAA0608F00805208;CFBAAA0608F00805608;CFBAAA0608F00806008;CFBAAA0608F00806408;CFBAAA0608F00806808;CFBAAA0608F00807208;CFBAAA0608F00807608;CFBAAA0608F00808008;CFBAAA0608F00808408;CFBAAA0608F00808808;CFBAAA0608F00809208;CFBAAA0608F00809608;CFBAAA0608F00810008;CFBAAA0608F01000408;CFBAAA0608F01000808;CFBAAA0608F01001208;CFBAAA0608F01001608;CFBAAA0608F01002008;CFBAAA0608F01002408;CFBAAA0608F01002808;CFBAAA0608F01003208;CFBAAA0608F01003608;CFBAAA0608F01004008;CFBAAA0608F01004408;CFBAAA0608F01004808;CFBAAA0608F01005208;CFBAAA0608F01005608;CFBAAA0608F01006008;CFBAAA0608F01006408;CFBAAA0608F01006808;CFBAAA0608F01007208;CFBAAA0608F01007608;CFBAAA0608F01008008;CFBAAA0608F01008408;CFBAAA0608F01008808;CFBAAA0608F01009208;CFBAAA0608F01009608;CFBAAA0608F01010008;CFBAAA0608F01200408;CFBAAA0608F01200808;CFBAAA0608F01201208;CFBAAA0608F01201608;CFBAAA0608F01202008;CFBAAA0608F01202408;CFBAAA0608F01202808;CFBAAA0608F01203208;CFBAAA0608F01203608;CFBAAA0608F01204008;CFBAAA0608F01204408;CFBAAA0608F01204808;CFBAAA0608F01205208;CFBAAA0608F01205608;CFBAAA0608F01206008;CFBAAA0608F01206408;CFBAAA0608F01206808;CFBAAA0608F01207208;CFBAAA0608F01207608;CFBAAA0608F01208008;CFBAAA0608F01208408;CFBAAA0608F01208608;CFBAAA0608F01209208;CFBAAA0608F01209608;CFBAAA0608F01210008;CFBAAA0608F01400408;CFBAAA0608F01400808;CFBAAA0608F01401208;CFBAAA0608F01401608;CFBAAA0608F01402008;CFBAAA0608F01402408;CFBAAA0608F01402808;CFBAAA0608F01403208;CFBAAA0608F01403608;CFBAAA0608F01404008;CFBAAA0608F01404408;CFBAAA0608F01404808;CFBAAA0608F01405208;CFBAAA0608F01405608;
8961CFBAAA0608F01406008;CFBAAA0608F01406408;CFBAAA0608F01406808;CFBAAA0608F01407208;CFBAAA0608F01407608;CFBAAA0608F01408008;CFBAAA0608F01408408;CFBAAA0608F01408808;CFBAAA0608F01409208;CFBAAA0608F01409608;CFBAAA0608F01410008;CFBAAA0608F02000410;CFBAAA0608F02000810;CFBAAA0608F02001210;CFBAAA0608F02001610;CFBAAA0608F02002010;CFBAAA0608F02002410;CFBAAA0608F02002810;CFBAAA0608F02003210;CFBAAA0608F02003610;CFBAAA0608F02004010;CFBAAA0608F02004410;CFBAAA0608F02004810;CFBAAA0608F02005210;CFBAAA0608F02005610;CFBAAA0608F02006010;CFBAAA0608F02006410;CFBAAA0608F02006810;CFBAAA0608F02007210;CFBAAA0608F02007610;CFBAAA0608F02008010;CFBAAA0608F02008410;CFBAAA0608F02008810;CFBAAA0608F02009210;CFBAAA0608F02009610;CFBAAA0608F02010010;CFBAAA0608F02600413;CFBAAA0608F02600813;CFBAAA0608F02601213;CFBAAA0608F02601613;CFBAAA0608F02602013;CFBAAA0608F02602413;CFBAAA0608F02602813;CFBAAA0608F02603213;CFBAAA0608F02603613;CFBAAA0608F02604013;CFBAAA0608F02604413;CFBAAA0608F02604813;CFBAAA0608F02605213;CFBAAA0608F02605613;CFBAAA0608F02606013;CFBAAA0608F02606413;CFBAAA0608F02606813;CFBAAA0608F02607213;CFBAAA0608F02607613;CFBAAA0608F02608013;CFBAAA0608F02608413;CFBAAA0608F02608813;CFBAAA0608F02609213;CFBAAA0608F02609613;CFBAAA0608F02610013;CFBAAA0608F03800415;CFBAAA0608F03800815;CFBAAA0608F03801215;CFBAAA0608F03801615;CFBAAA0608F03802015;CFBAAA0608F03802415;CFBAAA0608F03802815;CFBAAA0608F03803215;CFBAAA0608F03803615;CFBAAA0608F03804015;CFBAAA0608F03804415;CFBAAA0608F03804815;CFBAAA0608F03805215;CFBAAA0608F03805615;CFBAAA0608F03806015;CFBAAA0608F03806415;CFBAAA0608F03806815;CFBAAA0608F03807215;CFBAAA0608F03807615;CFBAAA0608F03808015;CFBAAA0608F03808415;CFBAAA0608F03808815;CFBAAA0608F03809215;CFBAAA0608F03809615;CFBAAA0608F03810015;CFEAAA0608F01800411;CFEAAA0608F01800811;CFEAAA0608F01801211;CFEAAA0608F01801611;CFEAAA0608F01802011;CFEAAA0608F01802411;CFEAAA0608F01802811;CFEAAA0608F01803211;CFEAAA0608F01803611;CFEAAA0608F01804011;CFEAAA0608F01804411;CFEAAA0608F01804811;CFEAAA0608F01805211;CFEAAA0608F01805611;CFEAAA0608F01806011;CFEAAA0608F01806411;CFEAAA0608F01806811;CFEAAA0608F01807211;CFEAAA0608F01807611;CFEAAA0608F01808011;CFEAAA0608F01808411;CFEAAA0608F01808811;CFEAAA0608F01809211;CFEAAA0608F01809611;CFEAAA0608F01810011;CFEAAA0608F02000412;CFEAAA0608F02000812;CFEAAA0608F02001212;CFEAAA0608F02001612;CFEAAA0608F02002012;CFEAAA0608F02002412;CFEAAA0608F02002812;CFEAAA0608F02003212;CFEAAA0608F02003612;CFEAAA0608F02004012;CFEAAA0608F02004412;CFEAAA0608F02004812;CFEAAA0608F02005212;CFEAAA0608F02005612;CFEAAA0608F02006012;CFEAAA0608F02006412;CFEAAA0608F02006812;CFEAAA0608F02007212;CFEAAA0608F02007612;CFEAAA0608F02008012;CFEAAA0608F02008412;CFEAAA0608F02008812;CFEAAA0608F02009212;CFEAAA0608F02009612;CFEAAA0608F02010012;CFEAAA0608F02400412;CFEAAA0608F02400812;CFEAAA0608F02401212;CFEAAA0608F02401612;CFEAAA0608F02402012;CFEAAA0608F02402412;CFEAAA0608F02402812;CFEAAA0608F02403212;CFEAAA0608F02403612;CFEAAA0608F02404012;CFEAAA0608F02404412;CFEAAA0608F02404812;CFEAAA0608F02405212;CFEAAA0608F02405612;CFEAAA0608F02406012;CFEAAA0608F02406412;CFEAAA0608F02406812;CFEAAA0608F02407212;CFEAAA0608F02407612;CFEAAA0608F02408012;CFEAAA0608F02408412;CFEAAA0608F02408812;CFEAAA0608F02409212;CFEAAA0608F02409612;CFEAAA0608F02410012;CFEAAA0608F02600412;CFEAAA0608F02600812;CFEAAA0608F02601212;CFEAAA0608F02601612;CFEAAA0608F02602012;CFEAAA0608F02602412;CFEAAA0608F02602812;CFEAAA0608F02603212;CFEAAA0608F02603612;CFEAAA0608F02604012;CFEAAA0608F02604412;CFEAAA0608F02604812;CFEAAA0608F02605212;CFEAAA0608F02605612;CFEAAA0608F02606012;CFEAAA0608F02606412;CFEAAA0608F02606812;CFEAAA0608F02607212;CFEAAA0608F02607612;CFEAAA0608F02608012;CFEAAA0608F02608412;CFEAAA0608F02608812;CFEAAA0608F02609212;CFEAAA0608F02609612;CFEAAA0608F02610012;CFEAAA0608F03000412;CFEAAA0608F03000812;CFEAAA0608F03001212;CFEAAA0608F03001612;CFEAAA0608F03002012;CFEAAA0608F03002412;CFEAAA0608F03002812;CFEAAA0608F03003212;CFEAAA0608F03003612;CFEAAA0608F03004012;CFEAAA0608F03004412;CFEAAA0608F03004812;CFEAAA0608F03005212;CFEAAA0608F03005612;CFEAAA0608F03006012;CFEAAA0608F03006412;CFEAAA0608F03006812;CFEAAA0608F03007212;CFEAAA0608F03007612;CFEAAA0608F03008012;CFEAAA0608F03008412;CFEAAA0608F03008812;CFEAAA0608F03009212;CFEAAA0608F03009612;CFEAAA0608F03010012;CFEAAA0608F03400412;CFEAAA0608F03400812;CFEAAA0608F03401212;CFEAAA0608F03401612;CFEAAA0608F03402012;CFEAAA0608F03402412;CFEAAA0608F03402812;CFEAAA0608F03403212;CFEAAA0608F03403612;CFEAAA0608F03404012;CFEAAA0608F03404412;CFEAAA0608F03404812;CFEAAA0608F03405212;
8961CFEAAA0608F03405612;CFEAAA0608F03406012;CFEAAA0608F03406412;CFEAAA0608F03406812;CFEAAA0608F03407212;CFEAAA0608F03407612;CFEAAA0608F03408012;CFEAAA0608F03408412;CFEAAA0608F03408812;CFEAAA0608F03409212;CFEAAA0608F03409612;CFEAAA0608F03410012" aria-label="Product Reviews sku STHTGH-FC" role="link" tabindex="0"></div> 8962 <!--suppress JSUnresolvedReference --> 8963
8963<script type="text/javascript"> 8964 window.addEventListener('reviews-io-loaded', () => { 8965 ratingSnippet('rating-snippet-product-rating-listing', { 8966 store: 'shelterlogic.com', 8967 mode: 'default', 8968 color: '\u0023E1AB2E', 8969 linebreak: false, 8970 text: 'Reviews', 8971 singularText: 'Review', 8972 lang: 'en', 8973 usePolaris: false, 8974 showEmptyStars: true, 8975 }); 8976 }, {once: true, passive: true}); 8977 </script>
8977 8978 8979 </div> 8980 8981
8981<script nonce="NHRtODJpbGtodmR4MTgxcmxkd2F3a2c0Z2piYWdtNWo="> 8982 window['YIREO_GOOGLETAGMANAGER2_PRODUCT_DATA_ID_48217'] = {"item_id":"STHTGH-FC","item_sku":"STHTGH-FC","magento_sku":"STHTGH-FC","magento_id":"48217","item_image_url":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/placeholder\/default\/SLG_PlaceholderLogo_0322_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265","item_name":"High Tunnel Greenhouse, Frame and Cover","item_brand":"ShelterLogic\u00ae","item_list_id":"185","item_list_name":"Greenhouses","price":487.17,"item_category":"Custom Commercial Grade Buildings & Shelters","item_category2":"Greenhouses","item_category3":"High Tunnel Greenhouses","item_category4":"ShelterLogic\u00ae","item_category5":"Backyard Greenhouse Kits for Growing Year-Round","index":8};</script>
8982 8983 8984 8985 <div class="text-grey-darker relative pt-4" x-data="initPriceBox()" x-defer="intersect" @update-prices-48217.window="updatePrice($event.detail);"> 8986 8987 <div class="price-box price-final_price" data-role="priceBox" data-product-id="48217" data-price-box="product-id-48217"> <span class="normal-price"><span x-data x-id="['product\u002Dprice\u002D48217']" class="price-container price-final_price tax weee"> 8988 <span class="price-label">Starting at</span> 8989 <span :id="$id('product\u002Dprice\u002D48217')" data-price-amount="487.17" data-price-type="finalPrice" class="price-wrapper "><span class="price">$487.17</span><span class="pl-1 xl:pl-2 font-bold text-base currency-syffix">USD</span></span> 8990 </span></span> </div> 8991 <div class="flex flex-col flex-wrap justify-center"> 8992
8992<script> 8993 'use strict'; 8994 8995 (() => { 8996 window.addEventListener( 8997 'ga-initialized', 8998 () => { 8999 const productForm = document.querySelector( 9000 'form\u005Bdata\u002Dsku\u003D\u0022STHTGH\u002DFC\u0022\u005D' 9001 ); 9002 9003 if (!productForm) { 9004 return; 9005 } 9006 9007 let sku = 'STHTGH\u002DFC'; 9008 9009 window.addEventListener( 9010 'listing\u002Dconfigurable-selection-changed', 9011 (event) => { 9012 if (event.detail.skuCandidates.length === 1 9013 && event.detail.productId === '48217' 9014 ) { 9015 sku = event.detail.skuCandidates[0]; 9016 } 9017 } 9018 ); 9019 9020 function bindEventListener(element, event) 9021 { 9022 element.addEventListener(event, () => { 9023 if (productForm.checkValidity()) { 9024 const priceSelector = false ? '#product-price-48217 .price' 9025 : '[data-price-box="product-id-48217"] .price'; 9026 9027 window.dispatchEvent(new CustomEvent('cart-item-added', { 9028 detail: [{ 9029 product_sku: sku, 9030 product_name: 'High\u0020Tunnel\u0020Greenhouse,\u0020Frame\u0020and\u0020Cover', 9031 product_price_value: document.querySelector(priceSelector).textContent.slice(1), 9032 9033 qty: 1, 9034 }], 9035 })); 9036 } 9037 }); 9038 } 9039 9040 const button = productForm.querySelector( 9041 'button\u005Bdata\u002Daddto\u003D\u0022cart\u0022\u005D' 9042 ); 9043 9044 if (!button) { 9045 return; 9046 } 9047 9048 bindEventListener(button, 'click'); 9049 }, 9050 { once: true } 9051 ); 9052 })();</script>
9052 </div> 9053 </div> 9054 </div> 9055</div> 9056 <div class="item product product-item shrink-0 product_addtocart_form flex flex-col w-full " data-sku="ShelterTube40HDKit"> 9057 <div class="product-info-top grow"> 9058 <span class="relative block"> 9059 <a href="https://www.shelterlogic.com/sheltertube-wind-and-snow-rated-garage-heavy-duty-cover-10-year-warranty" class="xs:p-2 product flex justify-center border border-gray-100 product-item-photo mb-3 " aria-label="Product image ShelterTube® Wind and Snow Rated Garage, Heavy Duty Cover (10-year warranty)" x-data="{ hover: false }" title="ShelterTube® Wind and Snow Rated Garage, Heavy Duty Cover (10-year warranty)" @mouseover="hover=true" @mouseover.away="hover=false" tabindex="0"> 9060 <span class="sr-only">Product image ShelterTube® Wind and Snow Rated Garage, Heavy Duty Cover (10-year warranty)</span> 9061 <div x-show="!hover"> 9062 <img class="object-contain product-image-photo" x-data="" @update-gallery-57784.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/n/e/new_heavy_1_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=222&width=222&canvas=222:222" loading="lazy" width="222" height="222" alt="ShelterTube® Wind and Snow Rated Garage, Heavy Duty Cover (10-year warranty)"> </div> 9063 <div x-cloak x-show="hover"> 9064 <img class="object-contain product-image-photo" x-data="" @update-gallery-57784.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/s/q/sqaacc0201c0_1008_representative_silo_image_01.png?quality=80&bg-color=255,255,255&fit=bounds&height=260&width=260&canvas=260:260" loading="lazy" width="222" height="222" alt="ShelterTube® Wind and Snow Rated Garage, Heavy Duty Cover (10-year warranty)"> </div> 9065 </a> 9066 9067 </span> 9068 <a class="text-base font-bold product-item-link h-[47px] line-clamp-2 hover:underline" aria-label="ShelterTube® Wind and Snow Rated Garage, Heavy Duty Cover (10-year warranty)" href="https://www.shelterlogic.com/sheltertube-wind-and-snow-rated-garage-heavy-duty-cover-10-year-warranty" :id="`slide-desc-57784-${$id('slider-id')}`"> 9069 ShelterTube® Wind and Snow Rated Garage, Heavy Duty Cover (10-year warranty) </a> 9070 </div> 9071 <div class="product-info-bottom flex flex-col justify-start h-full"> 9072 <div class="mt-2 2xss:h-6 2xss:overflow-hidden mb-1.5"> 9073 <div class="rating-snippet-product-rating-listing cursor-pointer" data-sku="ShelterTube40HDKit;SQAADD0204C02002312;SQAADD0205C02002312;SQAADD0203C02001812;SQAACC0201C01403616;SQAACC0204C01001410;SQAACC0205C01003610;SQAADD0205C02003610;SQAACC0201C01402716;SQAACC0203C01401816;SQAACC0201C01401816;SQAADD0204C02002712;SQAACC0204C01003208;SQAACC0203C01002708;SQAACC0205C01002708;SQAADD0203C02003212;SQAADD0204C02003210;SQAACC0204C01004008;SQAACC0203C01003208;SQAACC0205C01004010;SQAADD0203C02002712;SQAACC0203C01403616;SQAACC0205C01001808;SQAADD0204C02003612;SQAACC0205C01403616;SQAACC0203C01003210;SQAADD0201C02004010;SQAACC0204C01002710;SQAACC0203C01001808;SQAACC0201C01003208;SQAADD0201C02003212;SQAACC0204C01003608;SQAADD0204C02004010;SQAACC0201C01002708;SQAADD0201C02003610;SQAACC0205C01402716;SQAACC0203C01002310;SQAADD0201C02003210;SQAACC0205C01001408;SQAACC0203C01003608;SQAACC0203C01003610;SQAACC0201C01003610;SQAADD0203C02004010;SQAACC0201C01001410;SQAACC0201C01003608;SQAADD0201C02002712;SQAACC0205C01404016;SQAACC0201C01001810;SQAADD0204C02003610;SQAACC0205C01002710;SQAADD0205C02002712;SQAADD0204C02003212;SQAADD0201C02002312;SQAACC0204C01403216;SQAACC0201C01002308;SQAACC0204C01403616;SQAADD0205C02001810;SQAACC0205C01003608;SQAACC0201C01404016;SQAADD0203C02003210;SQAACC0204C01004010;SQAADD0203C02002710;SQAACC0203C01001410;SQAADD0204C02004012;SQAADD0203C02003610;SQAACC0205C01402316;SQAADD0201C02002710;SQAACC0201C01403216;SQAACC0205C01002308;SQAACC0204C01402316;SQAACC0204C01402716;SQAADD0201C02003612;SQAACC0304C01003610;SQAACC0204C01001810;SQAACC0204C01002708;SQAACC0204C01404016;SQAACC0201C01001808;SQAADD0204C02002710;SQAADD0203C02004012;SQAADD0201C02004012;SQAACC0205C01004008;SQAADD0201C02001810;SQAACC0203C01402316;SQAADD0201C02002310;SQAACC0203C01002710;SQAADD0205C02003210;SQAACC0205C01003210;SQAACC0201C01002710;SQAADD0204C02001810;SQAACC0201C01004008;SQAACC0205C01401816;SQAACC0203C01403216;SQAACC0204C01002310;SQAACC0204C01001808;SQAADD0205C02002710;SQAACC0204C01401816;SQAACC0205C01403216;SQAACC0201C01003210;SQAACC0203C01004008;SQAACC0204C01002308;SQAADD0205C02004010;SQAADD0205C02001812;SQAACC0203C01001408;SQAADD0204C02002310;SQAADD0203C02002312;SQAACC0201C01001408;SQAACC0203C01001810;SQAACC0205C01001410;SQAADD0203C02001810;SQAACC0201C01402316;SQAADD0201C02001812;SQAACC0203C01404016;SQAACC0201C01004010;SQAACC0205C01002310;SQAACC0205C01003208;SQAACC0205C01001810;SQAACC0201C01002310;SQAACC0203C01004010;SQAADD0203C02002310;SQAADD0205C02002310;SQAADD0204C02001812;SQAACC0204C01001408;SQAACC0203C01402716;SQAADD0205C02003212;SQAADD0205C02003612;SQAACC0201C01201808;SQAACC0201C01201810;SQAACC0201C01202308;SQAACC0201C01202310;SQAACC0201C01202708;SQAACC0201C01202710;SQAACC0201C01203208;SQAACC0201C01203210;SQAACC0201C01203608;SQAACC0201C01203610;SQAACC0201C01204008;SQAACC0201C01204010;SQAACC0203C01201808;SQAACC0203C01201810;SQAACC0203C01202308;SQAACC0203C01202310;SQAACC0203C01202708;SQAACC0203C01202710;SQAACC0203C01203208;SQAACC0203C01203210;SQAACC0203C01203608;SQAACC0203C01203610;SQAACC0203C01204008;SQAACC0203C01204010;SQAACC0204C01003210;SQAACC0204C01201808;SQAACC0204C01201810;SQAACC0204C01202308;SQAACC0204C01202310;SQAACC0204C01202708;SQAACC0204C01202710;SQAACC0204C01203208;SQAACC0204C01203210;SQAACC0204C01203608;SQAACC0204C01203610;SQAACC0204C01204008;SQAACC0204C01204010;SQAACC0205C01201808;SQAACC0205C01201810;SQAACC0205C01202308;SQAACC0205C01202310;SQAACC0205C01202708;SQAACC0205C01202710;SQAACC0205C01203208;SQAACC0205C01203210;SQAACC0205C01203608;SQAACC0205C01203610;SQAACC0205C01204008;SQAACC0205C01204010" aria-label="Product Reviews sku ShelterTube40HDKit" role="link" tabindex="0"></div> 9074 <!--suppress JSUnresolvedReference --> 9075
9075<script type="text/javascript"> 9076 window.addEventListener('reviews-io-loaded', () => { 9077 ratingSnippet('rating-snippet-product-rating-listing', { 9078 store: 'shelterlogic.com', 9079 mode: 'default', 9080 color: '\u0023E1AB2E', 9081 linebreak: false, 9082 text: 'Reviews', 9083 singularText: 'Review', 9084 lang: 'en', 9085 usePolaris: false, 9086 showEmptyStars: true, 9087 }); 9088 }, {once: true, passive: true}); 9089 </script>
9089 9090 9091 </div> 9092 9093
9093<script nonce="NHRtODJpbGtodmR4MTgxcmxkd2F3a2c0Z2piYWdtNWo="> 9094 window['YIREO_GOOGLETAGMANAGER2_PRODUCT_DATA_ID_57784'] = {"item_id":"ShelterTube40HDKit","item_sku":"ShelterTube40HDKit","magento_sku":"ShelterTube40HDKit","magento_id":"57784","item_image_url":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/placeholder\/default\/SLG_PlaceholderLogo_0322_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265","item_name":"ShelterTube\u00ae Wind and Snow Rated Garage, Heavy Duty Cover (10-year warranty)","item_brand":"ShelterLogic\u00ae","item_list_id":"72","item_list_name":"ShelterTube\u00ae Garages: Heavy-Duty Outdoor Storage for Vehicles & Equipment","price":2199.99,"item_category":"Outdoor Storage","item_category2":"Custom Commercial Grade Buildings & Shelters","item_category3":"ShelterLogic\u00ae","item_category4":"Portable and Metal Garages","item_category5":"Portable Garages for Your Car","index":9};</script>
9094 9095 9096 9097 <div class="text-grey-darker relative pt-4" x-data="initPriceBox()" x-defer="intersect" @update-prices-57784.window="updatePrice($event.detail);"> 9098 9099 <div class="price-box price-final_price" data-role="priceBox" data-product-id="57784" data-price-box="product-id-57784"> <span class="normal-price"><span x-data x-id="['product\u002Dprice\u002D57784']" class="price-container price-final_price tax weee"> 9100 <span class="price-label">Starting at</span> 9101 <span :id="$id('product\u002Dprice\u002D57784')" data-price-amount="2199.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">$2,199.99</span><span class="pl-1 xl:pl-2 font-bold text-base currency-syffix">USD</span></span> 9102 </span></span> </div> 9103 <div class="flex flex-col flex-wrap justify-center"> 9104 <div class="flex mt-1 text-sm label-additional-middle label-additional-free-shipping fotorama-loaded"> 9105 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" class="fill-current text-red-50 w-5 h-5 mr-1" width="25" height="25" aria-hidden="true"> 9106 <path d="M8 16.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM15 16.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0z"></path> 9107 <path d="M3 4a1 1 0 00-1 1v10a1 1 0 001 1h1.05a2.5 2.5 0 014.9 0H10a1 1 0 001-1V5a1 1 0 00-1-1H3zM14 7a1 1 0 00-1 1v6.05A2.5 2.5 0 0115.95 16H17a1 1 0 001-1v-5a1 1 0 00-.293-.707l-2-2A1 1 0 0015 7h-1z"></path> 9108</svg> 9109 Free Shipping </div> 9110
9110<script> 9111 'use strict'; 9112 9113 (() => { 9114 window.addEventListener( 9115 'ga-initialized', 9116 () => { 9117 const productForm = document.querySelector( 9118 'form\u005Bdata\u002Dsku\u003D\u0022ShelterTube40HDKit\u0022\u005D' 9119 ); 9120 9121 if (!productForm) { 9122 return; 9123 } 9124 9125 let sku = 'ShelterTube40HDKit'; 9126 9127 window.addEventListener( 9128 'listing\u002Dconfigurable-selection-changed', 9129 (event) => { 9130 if (event.detail.skuCandidates.length === 1 9131 && event.detail.productId === '57784' 9132 ) { 9133 sku = event.detail.skuCandidates[0]; 9134 } 9135 } 9136 ); 9137 9138 function bindEventListener(element, event) 9139 { 9140 element.addEventListener(event, () => { 9141 if (productForm.checkValidity()) { 9142 const priceSelector = false ? '#product-price-57784 .price' 9143 : '[data-price-box="product-id-57784"] .price'; 9144 9145 window.dispatchEvent(new CustomEvent('cart-item-added', { 9146 detail: [{ 9147 product_sku: sku, 9148 product_name: 'ShelterTube\u00AE\u0020Wind\u0020and\u0020Snow\u0020Rated\u0020Garage,\u0020Heavy\u0020Duty\u0020Cover\u0020\u002810\u002Dyear\u0020warranty\u0029', 9149 product_price_value: document.querySelector(priceSelector).textContent.slice(1), 9150 9151 qty: 1, 9152 }], 9153 })); 9154 } 9155 }); 9156 } 9157 9158 const button = productForm.querySelector( 9159 'button\u005Bdata\u002Daddto\u003D\u0022cart\u0022\u005D' 9160 ); 9161 9162 if (!button) { 9163 return; 9164 } 9165 9166 bindEventListener(button, 'click'); 9167 }, 9168 { once: true } 9169 ); 9170 })();</script>
9170 </div> 9171 </div> 9172 </div> 9173</div> 9174 <div class="item product product-item shrink-0 product_addtocart_form flex flex-col w-full " data-sku="ShelterTube40STKit"> 9175 <div class="product-info-top grow"> 9176 <span class="relative block"> 9177 <a href="https://www.shelterlogic.com/sheltertube-wind-and-snow-rated-garage-starter-cover-1-year-warranty" class="xs:p-2 product flex justify-center border border-gray-100 product-item-photo mb-3 " aria-label="Product image ShelterTube® Wind and Snow Rated Garage, Starter Cover (1-year warranty)" x-data="{ hover: false }" title="ShelterTube® Wind and Snow Rated Garage, Starter Cover (1-year warranty)" @mouseover="hover=true" @mouseover.away="hover=false" tabindex="0"> 9178 <span class="sr-only">Product image ShelterTube® Wind and Snow Rated Garage, Starter Cover (1-year warranty)</span> 9179 <div x-show="!hover"> 9180 <img class="object-contain product-image-photo" x-data="" @update-gallery-57778.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/n/e/new_standard_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=222&width=222&canvas=222:222" loading="lazy" width="222" height="222" alt="ShelterTube® Wind and Snow Rated Garage, Starter Cover (1-year warranty)"> </div> 9181 <div x-cloak x-show="hover"> 9182 <img class="object-contain product-image-photo" x-data="" @update-gallery-57778.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/s/q/sqaacc0205c0_1008_representative_silo_image_01.png?quality=80&bg-color=255,255,255&fit=bounds&height=260&width=260&canvas=260:260" loading="lazy" width="222" height="222" alt="ShelterTube® Wind and Snow Rated Garage, Starter Cover (1-year warranty)"> </div> 9183 </a> 9184 9185 </span> 9186 <a class="text-base font-bold product-item-link h-[47px] line-clamp-2 hover:underline" aria-label="ShelterTube® Wind and Snow Rated Garage, Starter Cover (1-year warranty)" href="https://www.shelterlogic.com/sheltertube-wind-and-snow-rated-garage-starter-cover-1-year-warranty" :id="`slide-desc-57778-${$id('slider-id')}`"> 9187 ShelterTube® Wind and Snow Rated Garage, Starter Cover (1-year warranty) </a> 9188 </div> 9189 <div class="product-info-bottom flex flex-col justify-start h-full"> 9190 <div class="mt-2 2xss:h-6 2xss:overflow-hidden mb-1.5"> 9191 <div class="rating-snippet-product-rating-listing cursor-pointer" data-sku="ShelterTube40STKit;SQAACC0104C01202710;SQAADD0104C02002310;SQAACC0104C01001808;SQAACC0104C01401816;SQAADD0103C02003210;SQAADD0104C02003212;SQAACC0103C01402316;SQAACC0103C01001810;SQAACC0104C01002310;SQAACC0104C01201808;SQAACC0103C01201810;SQAACC0104C01001810;SQAACC0103C01402716;SQAACC0103C01201808;SQAACC0103C01001808;SQAACC0103C01002710;SQAACC0104C01403216;SQAADD0104C02001810;SQAACC0103C01002708;SQAACC0104C01002710;SQAACC0103C01002308;SQAADD0103C02002712;SQAADD0104C02002712;SQAACC0104C01201810;SQAACC0103C01202308;SQAADD0103C02002312;SQAACC0104C01402716;SQAACC0103C01403616;SQAACC0104C01402316;SQAACC0103C01202708;SQAACC0103C01001408;SQAACC0104C01002308;SQAACC0103C01001410;SQAADD0104C02001812;SQAACC0103C01202710;SQAACC0104C01001410;SQAACC0104C01202310;SQAACC0104C01202308;SQAACC0104C01202708;SQAADD0103C02001812;SQAADD0104C02002710;SQAACC0103C01002310;SQAADD0103C02002710;SQAACC0104C01002708;SQAADD0103C02002310;SQAACC0103C01404016;SQAADD0103C02003212;SQAACC0103C01202310;SQAADD0103C02001810;SQAADD0104C02003210;SQAACC0104C01403616;SQAACC0104C01404016;SQAACC0103C01403216;SQAACC0103C01401816;SQAADD0104C02002312;SQAACC0104C01001408;SQAACC0103C01004010;SQAADD0105C02003612;SQAADD0104C02003610;SQAACC0105C01002708;SQAACC0105C01403616;SQAADD0103C02003610;SQAADD0105C02002710;SQAACC0105C01003208;SQAADD0105C02001810;SQAADD0104C02003612;SQAADD0105C02003610;SQAADD0103C02004012;SQAACC0105C01001808;SQAACC0104C01003210;SQAACC0103C01004008;SQAADD0104C02004012;SQAACC0105C01002308;SQAACC0105C01403216;SQAACC0103C01003610;SQAADD0105C02004012;SQAACC0105C01002310;SQAADD0105C02004010;SQAADD0105C02002310;SQAADD0105C02002312;SQAACC0105C01402316;SQAACC0105C01402716;SQAACC0103C01003208;SQAADD0103C02004010;SQAACC0105C01004008;SQAADD0105C02001812;SQAACC0105C01003210;SQAADD0104C02004010;SQAACC0105C01401816;SQAADD0105C02002712;SQAACC0105C01001408;SQAADD0105C02003210;SQAADD0105C02003212;SQAACC0105C01002710;SQAADD0103C02003612;SQAACC0103C01003608;SQAACC0105C01404016;SQAACC0103C01003210;SQAACC0105C01001410;SQAACC0105C01004010;SQAACC0105C01003610;SQAACC0105C01001810;SQAACC0105C01003608;SQAACC0103C01203208;SQAACC0103C01203210;SQAACC0103C01203608;SQAACC0103C01203610;SQAACC0103C01204008;SQAACC0103C01204010;SQAACC0104C01003208;SQAACC0104C01003608;SQAACC0104C01004008;SQAACC0104C01203210;SQAACC0104C01203608;SQAACC0104C01203610;SQAACC0104C01204008;SQAACC0104C01204010;SQAACC0105C01206708;SQAACC0105C01406716;SQAACC0105C01201808;SQAACC0105C01201810;SQAACC0105C01202308;SQAACC0105C01202310;SQAACC0105C01202708;SQAACC0105C01202710;SQAACC0105C01203208;SQAACC0105C01203210;SQAACC0105C01203608;SQAACC0105C01203610;SQAACC0105C01204008;SQAACC0105C01204010" aria-label="Product Reviews sku ShelterTube40STKit" role="link" tabindex="0"></div> 9192 <!--suppress JSUnresolvedReference --> 9193
9193<script type="text/javascript"> 9194 window.addEventListener('reviews-io-loaded', () => { 9195 ratingSnippet('rating-snippet-product-rating-listing', { 9196 store: 'shelterlogic.com', 9197 mode: 'default', 9198 color: '\u0023E1AB2E', 9199 linebreak: false, 9200 text: 'Reviews', 9201 singularText: 'Review', 9202 lang: 'en', 9203 usePolaris: false, 9204 showEmptyStars: true, 9205 }); 9206 }, {once: true, passive: true}); 9207 </script>
9207 9208 9209 </div> 9210 9211
9211<script nonce="NHRtODJpbGtodmR4MTgxcmxkd2F3a2c0Z2piYWdtNWo="> 9212 window['YIREO_GOOGLETAGMANAGER2_PRODUCT_DATA_ID_57778'] = {"item_id":"ShelterTube40STKit","item_sku":"ShelterTube40STKit","magento_sku":"ShelterTube40STKit","magento_id":"57778","item_image_url":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/placeholder\/default\/SLG_PlaceholderLogo_0322_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265","item_name":"ShelterTube\u00ae Wind and Snow Rated Garage, Starter Cover (1-year warranty)","item_brand":"ShelterLogic\u00ae","item_list_id":"72","item_list_name":"ShelterTube\u00ae Garages: Heavy-Duty Outdoor Storage for Vehicles & Equipment","price":1699.99,"item_category":"Outdoor Storage","item_category2":"Custom Commercial Grade Buildings & Shelters","item_category3":"ShelterLogic\u00ae","item_category4":"Portable and Metal Garages","item_category5":"Portable Garages for Your Car","index":10};</script>
9212 9213 9214 9215 <div class="text-grey-darker relative pt-4" x-data="initPriceBox()" x-defer="intersect" @update-prices-57778.window="updatePrice($event.detail);"> 9216 9217 <div class="price-box price-final_price" data-role="priceBox" data-product-id="57778" data-price-box="product-id-57778"> <span class="normal-price"><span x-data x-id="['product\u002Dprice\u002D57778']" class="price-container price-final_price tax weee"> 9218 <span class="price-label">Starting at</span> 9219 <span :id="$id('product\u002Dprice\u002D57778')" data-price-amount="1699.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">$1,699.99</span><span class="pl-1 xl:pl-2 font-bold text-base currency-syffix">USD</span></span> 9220 </span></span> </div> 9221 <div class="flex flex-col flex-wrap justify-center"> 9222 <div class="flex mt-1 text-sm label-additional-middle label-additional-free-shipping fotorama-loaded"> 9223 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" class="fill-current text-red-50 w-5 h-5 mr-1" width="25" height="25" aria-hidden="true"> 9224 <path d="M8 16.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM15 16.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0z"></path> 9225 <path d="M3 4a1 1 0 00-1 1v10a1 1 0 001 1h1.05a2.5 2.5 0 014.9 0H10a1 1 0 001-1V5a1 1 0 00-1-1H3zM14 7a1 1 0 00-1 1v6.05A2.5 2.5 0 0115.95 16H17a1 1 0 001-1v-5a1 1 0 00-.293-.707l-2-2A1 1 0 0015 7h-1z"></path> 9226</svg> 9227 Free Shipping </div> 9228
9228<script> 9229 'use strict'; 9230 9231 (() => { 9232 window.addEventListener( 9233 'ga-initialized', 9234 () => { 9235 const productForm = document.querySelector( 9236 'form\u005Bdata\u002Dsku\u003D\u0022ShelterTube40STKit\u0022\u005D' 9237 ); 9238 9239 if (!productForm) { 9240 return; 9241 } 9242 9243 let sku = 'ShelterTube40STKit'; 9244 9245 window.addEventListener( 9246 'listing\u002Dconfigurable-selection-changed', 9247 (event) => { 9248 if (event.detail.skuCandidates.length === 1 9249 && event.detail.productId === '57778' 9250 ) { 9251 sku = event.detail.skuCandidates[0]; 9252 } 9253 } 9254 ); 9255 9256 function bindEventListener(element, event) 9257 { 9258 element.addEventListener(event, () => { 9259 if (productForm.checkValidity()) { 9260 const priceSelector = false ? '#product-price-57778 .price' 9261 : '[data-price-box="product-id-57778"] .price'; 9262 9263 window.dispatchEvent(new CustomEvent('cart-item-added', { 9264 detail: [{ 9265 product_sku: sku, 9266 product_name: 'ShelterTube\u00AE\u0020Wind\u0020and\u0020Snow\u0020Rated\u0020Garage,\u0020Starter\u0020Cover\u0020\u00281\u002Dyear\u0020warranty\u0029', 9267 product_price_value: document.querySelector(priceSelector).textContent.slice(1), 9268 9269 qty: 1, 9270 }], 9271 })); 9272 } 9273 }); 9274 } 9275 9276 const button = productForm.querySelector( 9277 'button\u005Bdata\u002Daddto\u003D\u0022cart\u0022\u005D' 9278 ); 9279 9280 if (!button) { 9281 return; 9282 } 9283 9284 bindEventListener(button, 'click'); 9285 }, 9286 { once: true } 9287 ); 9288 })();</script>
9288 </div> 9289 </div> 9290 </div> 9291</div> 9292 <div class="item product product-item shrink-0 product_addtocart_form flex flex-col w-full " data-sku="ACW3SE"> 9293 <div class="product-info-top grow"> 9294 <span class="relative block"> 9295 <a href="https://www.shelterlogic.com/arrow-carport-with-3-sided-enclosure" class="xs:p-2 product flex justify-center border border-gray-100 product-item-photo mb-3 " aria-label="Product image Arrow Carport Kit: 3-sided Enclosure Configuration" x-data="{ hover: false }" title="Arrow Carport Kit: 3-sided Enclosure Configuration" @mouseover="hover=true" @mouseover.away="hover=false" tabindex="0"> 9296 <span class="sr-only">Product image Arrow Carport Kit: 3-sided Enclosure Configuration</span> 9297 <div x-show="!hover"> 9298 <img class="object-contain product-image-photo" x-data="" @update-gallery-68232.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/c/p/cphc101507ecl3_silo_image_01_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=222&width=222&canvas=222:222" loading="lazy" width="222" height="222" alt="Arrow Carport Kit: 3-sided Enclosure Configuration"> </div> 9299 <div x-cloak x-show="hover"> 9300 <img class="object-contain product-image-photo" x-data="" @update-gallery-68232.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/c/p/cphc202007ecl3_silo_image_01_1_.png?quality=80&bg-color=255,255,255&fit=bounds&height=260&width=260&canvas=260:260" loading="lazy" width="222" height="222" alt="Arrow Carport Kit: 3-sided Enclosure Configuration"> </div> 9301 </a> 9302 9303 </span> 9304 <a class="text-base font-bold product-item-link h-[47px] line-clamp-2 hover:underline" aria-label="Arrow Carport Kit: 3-sided Enclosure Configuration" href="https://www.shelterlogic.com/arrow-carport-with-3-sided-enclosure" :id="`slide-desc-68232-${$id('slider-id')}`"> 9305 Arrow Carport Kit: 3-sided Enclosure Configuration </a> 9306 </div> 9307 <div class="product-info-bottom flex flex-col justify-start h-full"> 9308 <div class="mt-2 2xss:h-6 2xss:overflow-hidden mb-1.5"> 9309 <div class="rating-snippet-product-rating-listing cursor-pointer" data-sku="ACW3SE;CPH122009ECL3;CPH122909ECL3;CPHC102409ECL3;CPH102409ECL3;CPH102007ECL3;CPHC202907ECL3;CPHC122007ECL3;CPH122409ECL3;CPH122407ECL3;CPHC102407ECL3;CPH101507ECL3;CPHC202409ECL3;CPHC102009ECL3;CPH202907ECL3;CPH102407ECL3;CPH122907ECL3;CPHC202009ECL3;CPH202009ECL3;CPH102909ECL3;CPH202407ECL3;CPHC202909ECL3;CPHC122907ECL3;CPH202909ECL3;CPHC101507ECL3;CPHC122909ECL3;CPHC102007ECL3;CPHC101509ECL3;CPHC202407ECL3;CPHC122009ECL3;CPH102009ECL3;CPHC122409ECL3;CPHC202007ECL3;CPH202007ECL3;CPHC102909ECL3;CPH102907ECL3;CPH202409ECL3;CPH101509ECL3;CPHC102907ECL3;CPH122007ECL3;CPHC122407ECL3" aria-label="Product Reviews sku ACW3SE" role="link" tabindex="0"></div> 9310 <!--suppress JSUnresolvedReference --> 9311
9311<script type="text/javascript"> 9312 window.addEventListener('reviews-io-loaded', () => { 9313 ratingSnippet('rating-snippet-product-rating-listing', { 9314 store: 'shelterlogic.com', 9315 mode: 'default', 9316 color: '\u0023E1AB2E', 9317 linebreak: false, 9318 text: 'Reviews', 9319 singularText: 'Review', 9320 lang: 'en', 9321 usePolaris: false, 9322 showEmptyStars: true, 9323 }); 9324 }, {once: true, passive: true}); 9325 </script>
9325 9326 9327 </div> 9328 9329
9329<script nonce="NHRtODJpbGtodmR4MTgxcmxkd2F3a2c0Z2piYWdtNWo="> 9330 window['YIREO_GOOGLETAGMANAGER2_PRODUCT_DATA_ID_68232'] = {"item_id":"ACW3SE","item_sku":"ACW3SE","magento_sku":"ACW3SE","magento_id":"68232","item_image_url":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/placeholder\/default\/SLG_PlaceholderLogo_0322_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265","item_name":"Arrow Carport Kit: 3-sided Enclosure Configuration","item_brand":"Arrow\u00ae","price":2779.99,"index":11};</script>
9330 9331 9332 9333 <div class="text-grey-darker relative pt-4" x-data="initPriceBox()" x-defer="intersect" @update-prices-68232.window="updatePrice($event.detail);"> 9334 9335 <div class="price-box price-final_price" data-role="priceBox" data-product-id="68232" data-price-box="product-id-68232"> <span class="normal-price"><span x-data x-id="['product\u002Dprice\u002D68232']" class="price-container price-final_price tax weee"> 9336 <span class="price-label">Starting at</span> 9337 <span :id="$id('product\u002Dprice\u002D68232')" data-price-amount="2779.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">$2,779.99</span><span class="pl-1 xl:pl-2 font-bold text-base currency-syffix">USD</span></span> 9338 </span></span> </div> 9339 <div class="flex flex-col flex-wrap justify-center"> 9340 <div class="flex mt-1 text-sm label-additional-middle label-additional-free-shipping fotorama-loaded"> 9341 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" class="fill-current text-red-50 w-5 h-5 mr-1" width="25" height="25" aria-hidden="true"> 9342 <path d="M8 16.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM15 16.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0z"></path> 9343 <path d="M3 4a1 1 0 00-1 1v10a1 1 0 001 1h1.05a2.5 2.5 0 014.9 0H10a1 1 0 001-1V5a1 1 0 00-1-1H3zM14 7a1 1 0 00-1 1v6.05A2.5 2.5 0 0115.95 16H17a1 1 0 001-1v-5a1 1 0 00-.293-.707l-2-2A1 1 0 0015 7h-1z"></path> 9344</svg> 9345 Free Shipping </div> 9346
9346<script> 9347 'use strict'; 9348 9349 (() => { 9350 window.addEventListener( 9351 'ga-initialized', 9352 () => { 9353 const productForm = document.querySelector( 9354 'form\u005Bdata\u002Dsku\u003D\u0022ACW3SE\u0022\u005D' 9355 ); 9356 9357 if (!productForm) { 9358 return; 9359 } 9360 9361 let sku = 'ACW3SE'; 9362 9363 window.addEventListener( 9364 'listing\u002Dconfigurable-selection-changed', 9365 (event) => { 9366 if (event.detail.skuCandidates.length === 1 9367 && event.detail.productId === '68232' 9368 ) { 9369 sku = event.detail.skuCandidates[0]; 9370 } 9371 } 9372 ); 9373 9374 function bindEventListener(element, event) 9375 { 9376 element.addEventListener(event, () => { 9377 if (productForm.checkValidity()) { 9378 const priceSelector = false ? '#product-price-68232 .price' 9379 : '[data-price-box="product-id-68232"] .price'; 9380 9381 window.dispatchEvent(new CustomEvent('cart-item-added', { 9382 detail: [{ 9383 product_sku: sku, 9384 product_name: 'Arrow\u0020Carport\u0020Kit\u003A\u00203\u002Dsided\u0020Enclosure\u0020Configuration', 9385 product_price_value: document.querySelector(priceSelector).textContent.slice(1), 9386 9387 qty: 1, 9388 }], 9389 })); 9390 } 9391 }); 9392 } 9393 9394 const button = productForm.querySelector( 9395 'button\u005Bdata\u002Daddto\u003D\u0022cart\u0022\u005D' 9396 ); 9397 9398 if (!button) { 9399 return; 9400 } 9401 9402 bindEventListener(button, 'click'); 9403 }, 9404 { once: true } 9405 ); 9406 })();</script>
9406 </div> 9407 </div> 9408 </div> 9409</div> 9410 <div class="item product product-item shrink-0 product_addtocart_form flex flex-col w-full " data-sku="Arrow Steel Panels 34"> 9411 <div class="product-info-top grow"> 9412 <span class="relative block"> 9413 <a href="https://www.shelterlogic.com/arrow-steel-panels-34-gauge" class="xs:p-2 product flex justify-center border border-gray-100 product-item-photo mb-3 " aria-label="Product image Arrow 34 Gauge Galvanized Steel Panels" x-data="{ hover: false }" title="Arrow 34 Gauge Galvanized Steel Panels" @mouseover="hover=true" @mouseover.away="hover=false" tabindex="0"> 9414 <span class="sr-only">Product image Arrow 34 Gauge Galvanized Steel Panels</span> 9415 <div x-show="!hover"> 9416 <img class="object-contain product-image-photo" x-data="" @update-gallery-60007.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/3/4/34gauge_steel_panel_allcolors_silo_image_02_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=222&width=222&canvas=222:222" loading="lazy" width="222" height="222" alt="Arrow 34 Gauge Galvanized Steel Panels"> </div> 9417 <div x-cloak x-show="hover"> 9418 <img class="object-contain product-image-photo" x-data="" @update-gallery-60007.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/3/4/34gauge_steelpanel_cc_image_01_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=260&width=260&canvas=260:260" loading="lazy" width="222" height="222" alt="Arrow 34 Gauge Galvanized Steel Panels"> </div> 9419 </a> 9420 <div class="absolute label-additional-new"> 9421 New </div> 9422 9423 </span> 9424 <a class="text-base font-bold product-item-link h-[47px] line-clamp-2 hover:underline" aria-label="Arrow 34 Gauge Galvanized Steel Panels" href="https://www.shelterlogic.com/arrow-steel-panels-34-gauge" :id="`slide-desc-60007-${$id('slider-id')}`"> 9425 Arrow 34 Gauge Galvanized Steel Panels </a> 9426 </div> 9427 <div class="product-info-bottom flex flex-col justify-start h-full"> 9428 <div class="mt-2 2xss:h-6 2xss:overflow-hidden mb-1.5"> 9429 <div class="rating-snippet-product-rating-listing cursor-pointer" data-sku="Arrow Steel Panels 34;MTO34G276CO;MTO34G276EG;MTO34G278CO;MTO34G275EG;MTO34G275CC;MTO34G278BG;MTO34G276CC;MTO34G278CC;MTO34G278EG;MTO34G276BG;MTO34G275BG" aria-label="Product Reviews sku Arrow Steel Panels 34" role="link" tabindex="0"></div> 9430 <!--suppress JSUnresolvedReference --> 9431
9431<script type="text/javascript"> 9432 window.addEventListener('reviews-io-loaded', () => { 9433 ratingSnippet('rating-snippet-product-rating-listing', { 9434 store: 'shelterlogic.com', 9435 mode: 'default', 9436 color: '\u0023E1AB2E', 9437 linebreak: false, 9438 text: 'Reviews', 9439 singularText: 'Review', 9440 lang: 'en', 9441 usePolaris: false, 9442 showEmptyStars: true, 9443 }); 9444 }, {once: true, passive: true}); 9445 </script>
9445 9446 9447 </div> 9448 9449
9449<script nonce="NHRtODJpbGtodmR4MTgxcmxkd2F3a2c0Z2piYWdtNWo="> 9450 window['YIREO_GOOGLETAGMANAGER2_PRODUCT_DATA_ID_60007'] = {"item_id":"Arrow Steel Panels 34","item_sku":"Arrow Steel Panels 34","magento_sku":"Arrow Steel Panels 34","magento_id":"60007","item_image_url":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/placeholder\/default\/SLG_PlaceholderLogo_0322_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265","item_name":"Arrow 34 Gauge Galvanized Steel Panels","item_brand":"Arrow\u00ae","item_list_id":"173","item_list_name":"Outdoor Storage Accessories","price":9.99,"item_category":"Custom Commercial Grade Buildings & Shelters","item_category2":"Outdoor Storage Accessories","item_category3":"Gardening Shade Accessories","item_category4":"New Products from ShelterLogic Group","item_category5":"Arrow Carport and Shed Accessories","index":12};</script>
9450 9451 9452 9453 <div class="text-grey-darker relative pt-4" x-data="initPriceBox()" x-defer="intersect" @update-prices-60007.window="updatePrice($event.detail);"> 9454 9455 <div class="price-box price-final_price" data-role="priceBox" data-product-id="60007" data-price-box="product-id-60007"> <span class="normal-price"><span x-data x-id="['product\u002Dprice\u002D60007']" class="price-container price-final_price tax weee"> 9456 <span class="price-label">Starting at</span> 9457 <span :id="$id('product\u002Dprice\u002D60007')" data-price-amount="9.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">$9.99</span><span class="pl-1 xl:pl-2 font-bold text-base currency-syffix">USD</span></span> 9458 </span></span> </div> 9459 <div class="flex flex-col flex-wrap justify-center"> 9460
9460<script> 9461 'use strict'; 9462 9463 (() => { 9464 window.addEventListener( 9465 'ga-initialized', 9466 () => { 9467 const productForm = document.querySelector( 9468 'form\u005Bdata\u002Dsku\u003D\u0022Arrow\u0020Steel\u0020Panels\u002034\u0022\u005D' 9469 ); 9470 9471 if (!productForm) { 9472 return; 9473 } 9474 9475 let sku = 'Arrow\u0020Steel\u0020Panels\u002034'; 9476 9477 window.addEventListener( 9478 'listing\u002Dconfigurable-selection-changed', 9479 (event) => { 9480 if (event.detail.skuCandidates.length === 1 9481 && event.detail.productId === '60007' 9482 ) { 9483 sku = event.detail.skuCandidates[0]; 9484 } 9485 } 9486 ); 9487 9488 function bindEventListener(element, event) 9489 { 9490 element.addEventListener(event, () => { 9491 if (productForm.checkValidity()) { 9492 const priceSelector = false ? '#product-price-60007 .price' 9493 : '[data-price-box="product-id-60007"] .price'; 9494 9495 window.dispatchEvent(new CustomEvent('cart-item-added', { 9496 detail: [{ 9497 product_sku: sku, 9498 product_name: 'Arrow\u002034\u0020Gauge\u0020Galvanized\u0020Steel\u0020Panels', 9499 product_price_value: document.querySelector(priceSelector).textContent.slice(1), 9500 9501 qty: 1, 9502 }], 9503 })); 9504 } 9505 }); 9506 } 9507 9508 const button = productForm.querySelector( 9509 'button\u005Bdata\u002Daddto\u003D\u0022cart\u0022\u005D' 9510 ); 9511 9512 if (!button) { 9513 return; 9514 } 9515 9516 bindEventListener(button, 'click'); 9517 }, 9518 { once: true } 9519 ); 9520 })();</script>
9520 </div> 9521 </div> 9522 </div> 9523</div> 9524 <div class="item product product-item shrink-0 product_addtocart_form flex flex-col w-full " data-sku="Arrow Steel Panels"> 9525 <div class="product-info-top grow"> 9526 <span class="relative block"> 9527 <a href="https://www.shelterlogic.com/arrow-steel-panels-28-gauge" class="xs:p-2 product flex justify-center border border-gray-100 product-item-photo mb-3 " aria-label="Product image Arrow 28 Gauge Galvanized Steel Panels" x-data="{ hover: false }" title="Arrow 28 Gauge Galvanized Steel Panels" @mouseover="hover=true" @mouseover.away="hover=false" tabindex="0"> 9528 <span class="sr-only">Product image Arrow 28 Gauge Galvanized Steel Panels</span> 9529 <div x-show="!hover"> 9530 <img class="object-contain product-image-photo" x-data="" @update-gallery-59989.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/2/8/28gauge_steel_panel_allcolors_silo_image_02_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=222&width=222&canvas=222:222" loading="lazy" width="222" height="222" alt="Arrow 28 Gauge Galvanized Steel Panels"> </div> 9531 <div x-cloak x-show="hover"> 9532 <img class="object-contain product-image-photo" x-data="" @update-gallery-59989.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/2/8/28gauge_steelpanel_sg_image_01.png?quality=80&bg-color=255,255,255&fit=bounds&height=260&width=260&canvas=260:260" loading="lazy" width="222" height="222" alt="Arrow 28 Gauge Galvanized Steel Panels"> </div> 9533 </a> 9534 <div class="absolute label-additional-new"> 9535 New </div> 9536 9537 </span> 9538 <a class="text-base font-bold product-item-link h-[47px] line-clamp-2 hover:underline" aria-label="Arrow 28 Gauge Galvanized Steel Panels" href="https://www.shelterlogic.com/arrow-steel-panels-28-gauge" :id="`slide-desc-59989-${$id('slider-id')}`"> 9539 Arrow 28 Gauge Galvanized Steel Panels </a> 9540 </div> 9541 <div class="product-info-bottom flex flex-col justify-start h-full"> 9542 <div class="mt-2 2xss:h-6 2xss:overflow-hidden mb-1.5"> 9543 <div class="rating-snippet-product-rating-listing cursor-pointer" data-sku="Arrow Steel Panels;MTO28G285BG;MTO28G286EG;MTO28G288EG;MTO28G285EG;MTO28G288SG;MTO28G285CC;MTO28G288CC;MTO28G286CC;MTO28G286BG;MTO28G288BG" aria-label="Product Reviews sku Arrow Steel Panels" role="link" tabindex="0"></div> 9544 <!--suppress JSUnresolvedReference --> 9545
9545<script type="text/javascript"> 9546 window.addEventListener('reviews-io-loaded', () => { 9547 ratingSnippet('rating-snippet-product-rating-listing', { 9548 store: 'shelterlogic.com', 9549 mode: 'default', 9550 color: '\u0023E1AB2E', 9551 linebreak: false, 9552 text: 'Reviews', 9553 singularText: 'Review', 9554 lang: 'en', 9555 usePolaris: false, 9556 showEmptyStars: true, 9557 }); 9558 }, {once: true, passive: true}); 9559 </script>
9559 9560 9561 </div> 9562 9563
9563<script nonce="NHRtODJpbGtodmR4MTgxcmxkd2F3a2c0Z2piYWdtNWo="> 9564 window['YIREO_GOOGLETAGMANAGER2_PRODUCT_DATA_ID_59989'] = {"item_id":"Arrow Steel Panels","item_sku":"Arrow Steel Panels","magento_sku":"Arrow Steel Panels","magento_id":"59989","item_image_url":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/placeholder\/default\/SLG_PlaceholderLogo_0322_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265","item_name":"Arrow 28 Gauge Galvanized Steel Panels","item_brand":"Arrow\u00ae","item_list_id":"173","item_list_name":"Outdoor Storage Accessories","price":14.99,"item_category":"Custom Commercial Grade Buildings & Shelters","item_category2":"Outdoor Storage Accessories","item_category3":"Gardening Shade Accessories","item_category4":"New Products from ShelterLogic Group","item_category5":"Arrow Carport and Shed Accessories","index":13};</script>
9564 9565 9566 9567 <div class="text-grey-darker relative pt-4" x-data="initPriceBox()" x-defer="intersect" @update-prices-59989.window="updatePrice($event.detail);"> 9568 9569 <div class="price-box price-final_price" data-role="priceBox" data-product-id="59989" data-price-box="product-id-59989"> <span class="normal-price"><span x-data x-id="['product\u002Dprice\u002D59989']" class="price-container price-final_price tax weee"> 9570 <span class="price-label">Starting at</span> 9571 <span :id="$id('product\u002Dprice\u002D59989')" data-price-amount="14.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">$14.99</span><span class="pl-1 xl:pl-2 font-bold text-base currency-syffix">USD</span></span> 9572 </span></span> </div> 9573 <div class="flex flex-col flex-wrap justify-center"> 9574
9574<script> 9575 'use strict'; 9576 9577 (() => { 9578 window.addEventListener( 9579 'ga-initialized', 9580 () => { 9581 const productForm = document.querySelector( 9582 'form\u005Bdata\u002Dsku\u003D\u0022Arrow\u0020Steel\u0020Panels\u0022\u005D' 9583 ); 9584 9585 if (!productForm) { 9586 return; 9587 } 9588 9589 let sku = 'Arrow\u0020Steel\u0020Panels'; 9590 9591 window.addEventListener( 9592 'listing\u002Dconfigurable-selection-changed', 9593 (event) => { 9594 if (event.detail.skuCandidates.length === 1 9595 && event.detail.productId === '59989' 9596 ) { 9597 sku = event.detail.skuCandidates[0]; 9598 } 9599 } 9600 ); 9601 9602 function bindEventListener(element, event) 9603 { 9604 element.addEventListener(event, () => { 9605 if (productForm.checkValidity()) { 9606 const priceSelector = false ? '#product-price-59989 .price' 9607 : '[data-price-box="product-id-59989"] .price'; 9608 9609 window.dispatchEvent(new CustomEvent('cart-item-added', { 9610 detail: [{ 9611 product_sku: sku, 9612 product_name: 'Arrow\u002028\u0020Gauge\u0020Galvanized\u0020Steel\u0020Panels', 9613 product_price_value: document.querySelector(priceSelector).textContent.slice(1), 9614 9615 qty: 1, 9616 }], 9617 })); 9618 } 9619 }); 9620 } 9621 9622 const button = productForm.querySelector( 9623 'button\u005Bdata\u002Daddto\u003D\u0022cart\u0022\u005D' 9624 ); 9625 9626 if (!button) { 9627 return; 9628 } 9629 9630 bindEventListener(button, 'click'); 9631 }, 9632 { once: true } 9633 ); 9634 })();</script>
9634 </div> 9635 </div> 9636 </div> 9637</div> 9638 <div class="item product product-item shrink-0 product_addtocart_form flex flex-col w-full " data-sku="ShelterCoat40KitRound"> 9639 <div class="product-info-top grow"> 9640 <span class="relative block"> 9641 <a href="https://www.shelterlogic.com/sheltercoat-custom-storage-building-round" class="xs:p-2 product flex justify-center border border-gray-100 product-item-photo mb-3 " aria-label="Product image ShelterCoat® Custom Shelter, Round" x-data="{ hover: false }" title="ShelterCoat® Custom Shelter, Round" @mouseover="hover=true" @mouseover.away="hover=false" tabindex="0"> 9642 <span class="sr-only">Product image ShelterCoat® Custom Shelter, Round</span> 9643 <div x-show="!hover"> 9644 <img class="object-contain product-image-photo" x-data="" @update-gallery-57814.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/s/h/sheltercoat_clear_round_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=222&width=222&canvas=222:222" loading="lazy" width="222" height="222" alt="ShelterCoat® Custom Shelter, Round"> </div> 9645 <div x-cloak x-show="hover"> 9646 <img class="object-contain product-image-photo" x-data="" @update-gallery-57814.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/s/h/sheltercoat_tan_round_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=260&width=260&canvas=260:260" loading="lazy" width="222" height="222" alt="ShelterCoat® Custom Shelter, Round"> </div> 9647 </a> 9648 9649 </span> 9650 <a class="text-base font-bold product-item-link h-[47px] line-clamp-2 hover:underline" aria-label="ShelterCoat® Custom Shelter, Round" href="https://www.shelterlogic.com/sheltercoat-custom-storage-building-round" :id="`slide-desc-57814-${$id('slider-id')}`"> 9651 ShelterCoat® Custom Shelter, Round </a> 9652 </div> 9653 <div class="product-info-bottom flex flex-col justify-start h-full"> 9654 <div class="mt-2 2xss:h-6 2xss:overflow-hidden mb-1.5"> 9655 <div class="rating-snippet-product-rating-listing cursor-pointer" data-sku="ShelterCoat40KitRound;71011;71012;71013;71016;71017;71018;71019;71020;71031;71032;71033;71036;71037;71038;71039;71040;71051;71052;71053;71056;71057;71058;71059;71060;71071;71072;71073;71076;71077;71078;71079;71080;71081;71083;71085;71087;71332;71342;71352;71733;71734;71735;71736;71737;71738;72332;72342;72352;72532;72542;72552;72562;72563;72564;73332;73342;73352;73532;73542;73552;73562;73563;73564;74332;74342;74352;74532;74542;74552;74562;74732;74742;74752;74762;74763;74764;75463;75464;76632;76642;76652;76803;76804;76805;76813;76814;76815;76819;76820;76821;76822;76823;76824;76825;76827;76829;76836;76840;76851;76857;76858;76859;76862;76863;76865;76866;76867;76868;76880;76881;76886;76902;76903;76904;76907;76908;76909;76910;76911;76912;76924;76925;76954;76955;76956;76960;76961;76962;76963;76965;76966;76967;76968;76969;76973;76974;76975;76976;76978;76979;76980;76981;76982;76986;76987;76988;76989;76991;76992;76993;76994;76995;76999;77000;77001;77002;77004;77005;77081;77082;77803;77804;77805;77813;77814;77815;77819;77820;77821;77822;77823;77824;77825;77827;77829;77833;77834;77835;77837;77838;77839;77840;77841;77842;77844;77845;77846;77847;77848;77849;77851;77852;77853;77854;77855;77856;78332;78342;78352;78362;78363;78364;78803;78804;78805;78806;78807;78808;78813;78814;78815;78816;78817;78818;78823;78824;78825;78826;78827;78828;79332;79342;79352;79362;79363;79364;79803;79804;79805;79806;79807;79808;79813;79814;79815;79816;79817;79818;79823;79824;79825;79826;79827;79828;90233;90234;90235;90333;90334;90335;90336;90337;90338;95333;95334;95335;95340;95341;95342;95345;95346;95347;95348;95349;95360;95361;95362;95365;95366;95367;95368;95369;95380;95382;95434;95435;95533;95534;95535;95539;95540;95541;95542;95544;77495;77508;77521;77534;77622;77635;77648;77661;78047;78058;78071;78283;78294;78307;79586;77496;77509;77522;77535;77623;77636;77649;77662;78048;78059;78072;78284;78295;78308;79587;77497;77510;77523;77536;77624;77637;77650;77663;78049;78060;78073;78285;78296;78309;79588;77498;
965577511;77524;77537;77625;77638;77651;77664;78050;78061;78074;78286;78297;78310;79599;77500;77513;77526;77539;77627;77640;77653;77666;78052;78063;78076;78288;78299;78312;79601;77501;77514;77527;77540;77628;77641;77654;77667;78053;78064;78077;78289;78300;78313;79602;77489;77515;77528;77616;77629;77642;77655;76547;76571;78065;76559;76582;78301;79580;77490;77503;77516;77529;77617;77630;77643;77656;76546;76570;78066;76558;76581;78302;79581;77491;77504;77517;77530;77618;77631;77644;77657;78043;78054;78067;78279;78290;78303;79582" aria-label="Product Reviews sku ShelterCoat40KitRound" role="link" tabindex="0"></div> 9656 <!--suppress JSUnresolvedReference --> 9657
9657<script type="text/javascript"> 9658 window.addEventListener('reviews-io-loaded', () => { 9659 ratingSnippet('rating-snippet-product-rating-listing', { 9660 store: 'shelterlogic.com', 9661 mode: 'default', 9662 color: '\u0023E1AB2E', 9663 linebreak: false, 9664 text: 'Reviews', 9665 singularText: 'Review', 9666 lang: 'en', 9667 usePolaris: false, 9668 showEmptyStars: true, 9669 }); 9670 }, {once: true, passive: true}); 9671 </script>
9671 9672 9673 </div> 9674 9675
9675<script nonce="NHRtODJpbGtodmR4MTgxcmxkd2F3a2c0Z2piYWdtNWo="> 9676 window['YIREO_GOOGLETAGMANAGER2_PRODUCT_DATA_ID_57814'] = {"item_id":"ShelterCoat40KitRound","item_sku":"ShelterCoat40KitRound","magento_sku":"ShelterCoat40KitRound","magento_id":"57814","item_image_url":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/placeholder\/default\/SLG_PlaceholderLogo_0322_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265","item_name":"ShelterCoat\u00ae Custom Shelter, Round","item_brand":"ShelterLogic\u00ae","item_list_id":"71","item_list_name":"Customize Your ShelterCoat\u00ae Garage for Heavy-Duty All-Season Storage ","price":433.99,"item_category":"Outdoor Storage","item_category2":"ShelterLogic\u00ae","item_category3":"Customize Your ShelterCoat\u00ae Garage for Heavy-Duty All-Season Storage ","item_category4":"Portable and Metal Garages","item_category5":"Portable Garages for Your Car","index":14};</script>
9676 9677 9678 9679 <div class="text-grey-darker relative pt-4" x-data="initPriceBox()" x-defer="intersect" @update-prices-57814.window="updatePrice($event.detail);"> 9680 9681 <div class="price-box price-final_price" data-role="priceBox" data-product-id="57814" data-price-box="product-id-57814"> <span class="normal-price"><span x-data x-id="['product\u002Dprice\u002D57814']" class="price-container price-final_price tax weee"> 9682 <span class="price-label">Starting at</span> 9683 <span :id="$id('product\u002Dprice\u002D57814')" data-price-amount="433.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">$433.99</span><span class="pl-1 xl:pl-2 font-bold text-base currency-syffix">USD</span></span> 9684 </span></span> <span class="old-price sly-old-price"><span x-data x-id="['old\u002Dprice\u002D57814']" class="price-container price-final_price tax weee"> 9685 <span class="price-label">Regular Price</span> 9686 <span :id="$id('old\u002Dprice\u002D57814')" data-price-amount="433.99" data-price-type="oldPrice" class="price-wrapper "><span class="price">$433.99</span><span class="pl-1 xl:pl-2 font-bold text-base currency-syffix">USD</span></span> 9687 </span></span> </div> 9688 <div class="flex flex-col flex-wrap justify-center"> 9689
9689<script> 9690 'use strict'; 9691 9692 (() => { 9693 window.addEventListener( 9694 'ga-initialized', 9695 () => { 9696 const productForm = document.querySelector( 9697 'form\u005Bdata\u002Dsku\u003D\u0022ShelterCoat40KitRound\u0022\u005D' 9698 ); 9699 9700 if (!productForm) { 9701 return; 9702 } 9703 9704 let sku = 'ShelterCoat40KitRound'; 9705 9706 window.addEventListener( 9707 'listing\u002Dconfigurable-selection-changed', 9708 (event) => { 9709 if (event.detail.skuCandidates.length === 1 9710 && event.detail.productId === '57814' 9711 ) { 9712 sku = event.detail.skuCandidates[0]; 9713 } 9714 } 9715 ); 9716 9717 function bindEventListener(element, event) 9718 { 9719 element.addEventListener(event, () => { 9720 if (productForm.checkValidity()) { 9721 const priceSelector = false ? '#product-price-57814 .price' 9722 : '[data-price-box="product-id-57814"] .price'; 9723 9724 window.dispatchEvent(new CustomEvent('cart-item-added', { 9725 detail: [{ 9726 product_sku: sku, 9727 product_name: 'ShelterCoat\u00AE\u0020Custom\u0020Shelter,\u0020Round', 9728 product_price_value: document.querySelector(priceSelector).textContent.slice(1), 9729 9730 qty: 1, 9731 }], 9732 })); 9733 } 9734 }); 9735 } 9736 9737 const button = productForm.querySelector( 9738 'button\u005Bdata\u002Daddto\u003D\u0022cart\u0022\u005D' 9739 ); 9740 9741 if (!button) { 9742 return; 9743 } 9744 9745 bindEventListener(button, 'click'); 9746 }, 9747 { once: true } 9748 ); 9749 })();</script>
9749 </div> 9750 </div> 9751 </div> 9752</div> 9753 <div class="item product product-item shrink-0 product_addtocart_form flex flex-col w-full " data-sku="ShelterTube40UDKit"> 9754 <div class="product-info-top grow"> 9755 <span class="relative block"> 9756 <a href="https://www.shelterlogic.com/sheltertube-wind-and-snow-rated-garage-utra-duty-cover-15-year-warranty" class="xs:p-2 product flex justify-center border border-gray-100 product-item-photo mb-3 " aria-label="Product image ShelterTube® Wind and Snow Rated Garage, Utra Duty Cover (15-year warranty)" x-data="{ hover: false }" title="ShelterTube® Wind and Snow Rated Garage, Utra Duty Cover (15-year warranty)" @mouseover="hover=true" @mouseover.away="hover=false" tabindex="0"> 9757 <span class="sr-only">Product image ShelterTube® Wind and Snow Rated Garage, Utra Duty Cover (15-year warranty)</span> 9758 <div x-show="!hover"> 9759 <img class="object-contain product-image-photo" x-data="" @update-gallery-57790.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/n/e/new_ultra_1_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=222&width=222&canvas=222:222" loading="lazy" width="222" height="222" alt="ShelterTube® Wind and Snow Rated Garage, Utra Duty Cover (15-year warranty)"> </div> 9760 <div x-cloak x-show="hover"> 9761 <img class="object-contain product-image-photo" x-data="" @update-gallery-57790.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/s/q/sqaacc0201c01201808_silo_image_01.png?quality=80&bg-color=255,255,255&fit=bounds&height=260&width=260&canvas=260:260" loading="lazy" width="222" height="222" alt="ShelterTube® Wind and Snow Rated Garage, Utra Duty Cover (15-year warranty)"> </div> 9762 </a> 9763 9764 9765 <div class="absolute label-additional-middle label-additional-lower-price"> 9766 NEW LOWER PRICE </div> 9767 </span> 9768 <a class="text-base font-bold product-item-link h-[47px] line-clamp-2 hover:underline" aria-label="ShelterTube® Wind and Snow Rated Garage, Utra Duty Cover (15-year warranty)" href="https://www.shelterlogic.com/sheltertube-wind-and-snow-rated-garage-utra-duty-cover-15-year-warranty" :id="`slide-desc-57790-${$id('slider-id')}`"> 9769 ShelterTube® Wind and Snow Rated Garage, Utra Duty Cover (15-year warranty) </a> 9770 </div> 9771 <div class="product-info-bottom flex flex-col justify-start h-full"> 9772 <div class="mt-2 2xss:h-6 2xss:overflow-hidden mb-1.5"> 9773 <div class="rating-snippet-product-rating-listing cursor-pointer" data-sku="ShelterTube40UDKit;SQAACC0301C01001410;SQAACC0304C01403216;SQAACC0301C01002310;SQAADD0304C02002710;SQAADD0301C02003612;SQAACC0301C01002710;SQAACC0304C01404016;SQAADD0304C02003610;SQAACC0301C01402316;SQAACC0304C01004010;SQAACC0301C01001810;SQAADD0301C02001810;SQAACC0304C01003208;SQAADD0301C02001812;SQAADD0301C02003610;SQAACC0301C01003210;SQAACC0304C01001410;SQAACC0304C01003608;SQAACC0301C01001808;SQAACC0301C01403616;SQAACC0301C01403216;SQAACC0304C01002308;SQAADD0301C02004010;SQAACC0301C01003608;SQAADD0304C02003212;SQAADD0304C02003612;SQAACC0304C01001808;SQAADD0304C02004010;SQAADD0304C02001810;SQAADD0301C02002712;SQAADD0304C02003210;SQAACC0301C01401816;SQAACC0301C01004010;SQAACC0304C01004008;SQAACC0304C01002710;SQAACC0304C01003610;SQAACC0304C01001408;SQAACC0304C01001810;SQAADD0301C02002312;SQAADD0301C02002710;SQAACC0301C01002708;SQAACC0301C01003208;SQAADD0304C02002312;SQAADD0304C02002712;SQAACC0304C01401816;SQAACC0304C01402316;SQAACC0304C01002708;SQAACC0304C01002310;SQAACC0301C01003610;SQAACC0301C01004008;SQAADD0304C02004012;SQAACC0304C01403616;SQAACC0304C01003210;SQAADD0301C02003210;SQAADD0304C02002310;SQAADD0301C02002310;SQAACC0301C01404016;SQAACC0301C01001408;SQAACC0301C01002308;SQAADD0304C02001812;SQAACC0301C01402716;SQAACC0304C01402716;SQAADD0301C02004012;SQAACC0301C01201808;SQAACC0301C01201810;SQAACC0301C01202308;SQAACC0301C01202310;SQAACC0301C01202708;SQAACC0301C01202710;SQAACC0301C01203208;SQAACC0301C01203210;SQAACC0301C01203608;SQAACC0301C01203610;SQAACC0301C01204008;SQAACC0301C01204010;SQAACC0304C01201808;SQAACC0304C01201810;SQAACC0304C01202308;SQAACC0304C01202310;SQAACC0304C01202708;SQAACC0304C01202710;SQAACC0304C01203208;SQAACC0304C01203210;SQAACC0304C01203608;SQAACC0304C01204008;SQAACC0304C01204010" aria-label="Product Reviews sku ShelterTube40UDKit" role="link" tabindex="0"></div> 9774 <!--suppress JSUnresolvedReference --> 9775
9775<script type="text/javascript"> 9776 window.addEventListener('reviews-io-loaded', () => { 9777 ratingSnippet('rating-snippet-product-rating-listing', { 9778 store: 'shelterlogic.com', 9779 mode: 'default', 9780 color: '\u0023E1AB2E', 9781 linebreak: false, 9782 text: 'Reviews', 9783 singularText: 'Review', 9784 lang: 'en', 9785 usePolaris: false, 9786 showEmptyStars: true, 9787 }); 9788 }, {once: true, passive: true}); 9789 </script>
9789 9790 9791 </div> 9792 9793
9793<script nonce="NHRtODJpbGtodmR4MTgxcmxkd2F3a2c0Z2piYWdtNWo="> 9794 window['YIREO_GOOGLETAGMANAGER2_PRODUCT_DATA_ID_57790'] = {"item_id":"ShelterTube40UDKit","item_sku":"ShelterTube40UDKit","magento_sku":"ShelterTube40UDKit","magento_id":"57790","item_image_url":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/placeholder\/default\/SLG_PlaceholderLogo_0322_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265","item_name":"ShelterTube\u00ae Wind and Snow Rated Garage, Utra Duty Cover (15-year warranty)","item_brand":"ShelterLogic\u00ae","item_list_id":"72","item_list_name":"ShelterTube\u00ae Garages: Heavy-Duty Outdoor Storage for Vehicles & Equipment","price":2599.99,"item_category":"Outdoor Storage","item_category2":"Custom Commercial Grade Buildings & Shelters","item_category3":"ShelterLogic\u00ae","item_category4":"Portable and Metal Garages","item_category5":"Portable Garages for Your Car","index":15};</script>
9794 9795 9796 9797 <div class="text-grey-darker relative pt-4" x-data="initPriceBox()" x-defer="intersect" @update-prices-57790.window="updatePrice($event.detail);"> 9798 9799 <div class="price-box price-final_price" data-role="priceBox" data-product-id="57790" data-price-box="product-id-57790"> <span class="normal-price"><span x-data x-id="['product\u002Dprice\u002D57790']" class="price-container price-final_price tax weee"> 9800 <span class="price-label">Starting at</span> 9801 <span :id="$id('product\u002Dprice\u002D57790')" data-price-amount="2599.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">$2,599.99</span><span class="pl-1 xl:pl-2 font-bold text-base currency-syffix">USD</span></span> 9802 </span></span> </div> 9803 <div class="flex flex-col flex-wrap justify-center"> 9804 <div class="flex mt-1 text-sm label-additional-middle label-additional-free-shipping fotorama-loaded label-additional-free-shipping-bottom"> 9805 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" class="fill-current text-red-50 w-5 h-5 mr-1" width="25" height="25" aria-hidden="true"> 9806 <path d="M8 16.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM15 16.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0z"></path> 9807 <path d="M3 4a1 1 0 00-1 1v10a1 1 0 001 1h1.05a2.5 2.5 0 014.9 0H10a1 1 0 001-1V5a1 1 0 00-1-1H3zM14 7a1 1 0 00-1 1v6.05A2.5 2.5 0 0115.95 16H17a1 1 0 001-1v-5a1 1 0 00-.293-.707l-2-2A1 1 0 0015 7h-1z"></path> 9808</svg> 9809 Free Shipping </div> 9810
9810<script> 9811 'use strict'; 9812 9813 (() => { 9814 window.addEventListener( 9815 'ga-initialized', 9816 () => { 9817 const productForm = document.querySelector( 9818 'form\u005Bdata\u002Dsku\u003D\u0022ShelterTube40UDKit\u0022\u005D' 9819 ); 9820 9821 if (!productForm) { 9822 return; 9823 } 9824 9825 let sku = 'ShelterTube40UDKit'; 9826 9827 window.addEventListener( 9828 'listing\u002Dconfigurable-selection-changed', 9829 (event) => { 9830 if (event.detail.skuCandidates.length === 1 9831 && event.detail.productId === '57790' 9832 ) { 9833 sku = event.detail.skuCandidates[0]; 9834 } 9835 } 9836 ); 9837 9838 function bindEventListener(element, event) 9839 { 9840 element.addEventListener(event, () => { 9841 if (productForm.checkValidity()) { 9842 const priceSelector = false ? '#product-price-57790 .price' 9843 : '[data-price-box="product-id-57790"] .price'; 9844 9845 window.dispatchEvent(new CustomEvent('cart-item-added', { 9846 detail: [{ 9847 product_sku: sku, 9848 product_name: 'ShelterTube\u00AE\u0020Wind\u0020and\u0020Snow\u0020Rated\u0020Garage,\u0020Utra\u0020Duty\u0020Cover\u0020\u002815\u002Dyear\u0020warranty\u0029', 9849 product_price_value: document.querySelector(priceSelector).textContent.slice(1), 9850 9851 qty: 1, 9852 }], 9853 })); 9854 } 9855 }); 9856 } 9857 9858 const button = productForm.querySelector( 9859 'button\u005Bdata\u002Daddto\u003D\u0022cart\u0022\u005D' 9860 ); 9861 9862 if (!button) { 9863 return; 9864 } 9865 9866 bindEventListener(button, 'click'); 9867 }, 9868 { once: true } 9869 ); 9870 })();</script>
9870 </div> 9871 </div> 9872 </div> 9873</div> 9874 <div class="item product product-item shrink-0 product_addtocart_form flex flex-col w-full " data-sku="ACW2SE"> 9875 <div class="product-info-top grow"> 9876 <span class="relative block"> 9877 <a href="https://www.shelterlogic.com/arrow-carport-with-2-sided-enclosure" class="xs:p-2 product flex justify-center border border-gray-100 product-item-photo mb-3 " aria-label="Product image Arrow Carport Kit: 2-sided Enclosure Configuration" x-data="{ hover: false }" title="Arrow Carport Kit: 2-sided Enclosure Configuration" @mouseover="hover=true" @mouseover.away="hover=false" tabindex="0"> 9878 <span class="sr-only">Product image Arrow Carport Kit: 2-sided Enclosure Configuration</span> 9879 <div x-show="!hover"> 9880 <img class="object-contain product-image-photo" x-data="" @update-gallery-56428.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/c/p/cphc101507ecl2_silo_image_01_1_.png?quality=80&bg-color=255,255,255&fit=bounds&height=222&width=222&canvas=222:222" loading="lazy" width="222" height="222" alt="Arrow Carport Kit: 2-sided Enclosure Configuration"> </div> 9881 <div x-cloak x-show="hover"> 9882 <img class="object-contain product-image-photo" x-data="" @update-gallery-56428.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/c/p/cphc101507ecl2_image_02.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=260&width=260&canvas=260:260" loading="lazy" width="222" height="222" alt="Arrow Carport Kit: 2-sided Enclosure Configuration"> </div> 9883 </a> 9884 9885 </span> 9886 <a class="text-base font-bold product-item-link h-[47px] line-clamp-2 hover:underline" aria-label="Arrow Carport Kit: 2-sided Enclosure Configuration" href="https://www.shelterlogic.com/arrow-carport-with-2-sided-enclosure" :id="`slide-desc-56428-${$id('slider-id')}`"> 9887 Arrow Carport Kit: 2-sided Enclosure Configuration </a> 9888 </div> 9889 <div class="product-info-bottom flex flex-col justify-start h-full"> 9890 <div class="mt-2 2xss:h-6 2xss:overflow-hidden mb-1.5"> 9891 <div class="rating-snippet-product-rating-listing cursor-pointer" data-sku="ACW2SE;CPHC102007ECL2;CPH102407ECL2;CPHC102909ECL2;CPHC102409ECL2;CPH101507ECL2;CPH102909ECL2;CPH102409ECL2;CPHC102907ECL2;CPHC102009ECL2;CPHC101509ECL2;CPH102007ECL2;CPHC101507ECL2;CPH102009ECL2;CPH101509ECL2;CPHC102407ECL2;CPHC105109ECL2;CPH104709ECL2;CPH103307ECL2;CPHC108707ECL2;CPHC106909ECL2;CPHC107809ECL2;CPH105109ECL2;CPH105107ECL2;CPHC106509ECL2;CPH107807ECL2;CPH1010007ECL2;CPHC106507ECL2;CPHC104209ECL2;CPH109109ECL2;CPHC108709ECL2;CPH106909ECL2;CPHC104709ECL2;CPH105609ECL2;CPHC103809ECL2;CPHC106009ECL2;CPH109609ECL2;CPH107409ECL2;CPH109107ECL2;CPHC109109ECL2;CPH104207ECL2;CPH106009ECL2;CPH106507ECL2;CPHC103309ECL2;CPHC106907ECL2;CPHC104707ECL2;CPHC103807ECL2;CPH106907ECL2;CPHC108209ECL2;CPHC109609ECL2;CPH107809ECL2;CPHC1010009ECL2;CPHC109107ECL2;CPHC107409ECL2;CPH108709ECL2;CPHC103307ECL2;CPH104209ECL2;CPH106007ECL2;CPH104707ECL2;CPHC107807ECL2;CPH108707ECL2;CPH106509ECL2;CPH109607ECL2;CPH107407ECL2;CPHC107407ECL2;CPHC104207ECL2;CPHC108207ECL2;CPHC105107ECL2;CPH1010009ECL2;CPH103809ECL2;CPH103807ECL2;CPHC106007ECL2;CPH105607ECL2;CPHC105609ECL2;CPH102907ECL2;CPHC1010007ECL2;CPH103309ECL2;CPHC109607ECL2;CPHC105607ECL2;CPH108209ECL2;CPH108207ECL2;CPH122407ECL2;CPH129107ECL2;CPHC125109ECL2;CPH126009ECL2;CPHC124707ECL2;CPH123809ECL2;CPH126509ECL2;CPH128707ECL2;CPH1210007ECL2;CPHC127807ECL2;CPHC1210009ECL2;CPH124709ECL2;CPHC122009ECL2;CPHC126909ECL2;CPHC126009ECL2;CPHC122407ECL2;CPHC127407ECL2;CPHC128207ECL2;CPHC123807ECL2;CPHC124207ECL2;CPH129607ECL2;CPHC126507ECL2;CPHC129609ECL2;CPHC129107ECL2;CPHC1210007ECL2;CPHC125607ECL2;CPH122907ECL2;CPH1210009ECL2;CPH124209ECL2;CPH127807ECL2;CPH123307ECL2;CPH122909ECL2;CPH122007ECL2;CPH125107ECL2;CPHC122909ECL2;CPHC128707ECL2;CPH126909ECL2;CPH128207ECL2;CPH129109ECL2;CPH123807ECL2;CPH128209ECL2;CPH128709ECL2;CPHC126907ECL2;CPHC122409ECL2;CPH125607ECL2;CPH123309ECL2;CPHC128709ECL2;CPH122409ECL2;CPHC123809ECL2;CPH125109ECL2;CPHC123307ECL2;CPHC129109ECL2;CPH126007ECL2;CPH124207ECL2;CPH127809ECL2;CPH125609ECL2;CPH126907ECL2;CPHC129607ECL2;CPHC124709ECL2;CPHC125107ECL2;CPH122009ECL2;CPHC128209ECL2;CPH127409ECL2;CPHC127809ECL2;CPHC124209ECL2;CPHC126509ECL2;CPHC123309ECL2;CPHC127409ECL2;CPHC126007ECL2;CPH129609ECL2;CPH126507ECL2;CPHC125609ECL2;CPH127407ECL2;CPH124707ECL2;CPHC122907ECL2;CPHC122007ECL2;CPHC202409ECL2;CPH206909ECL2;CPHC208709ECL2;CPHC204709ECL2;CPHC206909ECL2;CPHC204707ECL2;CPH209607ECL2;CPH205107ECL2;CPHC204209ECL2;CPHC205609ECL2;CPHC203309ECL2;CPH207407ECL2;CPHC2010009ECL2;CPH208707ECL2;CPHC205107ECL2;CPH207409ECL2;CPH202009ECL2;CPH204207ECL2;CPHC2010007ECL2;CPHC203307ECL2;CPH204707ECL2;CPHC209109ECL2;CPH208709ECL2;CPHC203809ECL2;CPHC202907ECL2;CPHC207409ECL2;CPHC207809ECL2;CPHC206907ECL2;CPH202409ECL2;CPHC208209ECL2;CPHC203807ECL2;CPH206507ECL2;CPHC204207ECL2;CPH205109ECL2;CPHC207407ECL2;CPHC202407ECL2;CPH207807ECL2;CPHC202009ECL2;CPHC209107ECL2;CPHC202007ECL2;CPHC205109ECL2;CPH206509ECL2;CPHC206007ECL2;CPH206007ECL2;CPH203807ECL2;CPH208207ECL2;CPH2010009ECL2;CPH203809ECL2;CPH202407ECL2;CPHC206507ECL2;CPH206907ECL2;CPH206009ECL2;CPHC206509ECL2;CPHC208207ECL2;CPHC208707ECL2;CPH2010007ECL2;CPH203307ECL2;CPHC202909ECL2;CPHC207807ECL2;CPHC205607ECL2;CPH207809ECL2;CPH209609ECL2;CPHC209607ECL2;CPHC206009ECL2;CPH203309ECL2;CPH204209ECL2;CPH204709ECL2;CPH202909ECL2;CPH208209ECL2;CPH205609ECL2;CPH209109ECL2;CPH202907ECL2;CPH202007ECL2;CPH209107ECL2;CPHC209609ECL2;CPH205607ECL2" aria-label="Product Reviews sku ACW2SE" role="link" tabindex="0"></div> 9892 <!--suppress JSUnresolvedReference --> 9893
9893<script type="text/javascript"> 9894 window.addEventListener('reviews-io-loaded', () => { 9895 ratingSnippet('rating-snippet-product-rating-listing', { 9896 store: 'shelterlogic.com', 9897 mode: 'default', 9898 color: '\u0023E1AB2E', 9899 linebreak: false, 9900 text: 'Reviews', 9901 singularText: 'Review', 9902 lang: 'en', 9903 usePolaris: false, 9904 showEmptyStars: true, 9905 }); 9906 }, {once: true, passive: true}); 9907 </script>
9907 9908 9909 </div> 9910 9911
9911<script nonce="NHRtODJpbGtodmR4MTgxcmxkd2F3a2c0Z2piYWdtNWo="> 9912 window['YIREO_GOOGLETAGMANAGER2_PRODUCT_DATA_ID_56428'] = {"item_id":"ACW2SE","item_sku":"ACW2SE","magento_sku":"ACW2SE","magento_id":"56428","item_image_url":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/placeholder\/default\/SLG_PlaceholderLogo_0322_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265","item_name":"Arrow Carport Kit: 2-sided Enclosure Configuration","item_brand":"Arrow\u00ae","price":2129.99,"index":16};</script>
9912 9913 9914 9915 <div class="text-grey-darker relative pt-4" x-data="initPriceBox()" x-defer="intersect" @update-prices-56428.window="updatePrice($event.detail);"> 9916 9917 <div class="price-box price-final_price" data-role="priceBox" data-product-id="56428" data-price-box="product-id-56428"> <span class="normal-price"><span x-data x-id="['product\u002Dprice\u002D56428']" class="price-container price-final_price tax weee"> 9918 <span class="price-label">Starting at</span> 9919 <span :id="$id('product\u002Dprice\u002D56428')" data-price-amount="2129.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">$2,129.99</span><span class="pl-1 xl:pl-2 font-bold text-base currency-syffix">USD</span></span> 9920 </span></span> </div> 9921 <div class="flex flex-col flex-wrap justify-center"> 9922
9922<script> 9923 'use strict'; 9924 9925 (() => { 9926 window.addEventListener( 9927 'ga-initialized', 9928 () => { 9929 const productForm = document.querySelector( 9930 'form\u005Bdata\u002Dsku\u003D\u0022ACW2SE\u0022\u005D' 9931 ); 9932 9933 if (!productForm) { 9934 return; 9935 } 9936 9937 let sku = 'ACW2SE'; 9938 9939 window.addEventListener( 9940 'listing\u002Dconfigurable-selection-changed', 9941 (event) => { 9942 if (event.detail.skuCandidates.length === 1 9943 && event.detail.productId === '56428' 9944 ) { 9945 sku = event.detail.skuCandidates[0]; 9946 } 9947 } 9948 ); 9949 9950 function bindEventListener(element, event) 9951 { 9952 element.addEventListener(event, () => { 9953 if (productForm.checkValidity()) { 9954 const priceSelector = false ? '#product-price-56428 .price' 9955 : '[data-price-box="product-id-56428"] .price'; 9956 9957 window.dispatchEvent(new CustomEvent('cart-item-added', { 9958 detail: [{ 9959 product_sku: sku, 9960 product_name: 'Arrow\u0020Carport\u0020Kit\u003A\u00202\u002Dsided\u0020Enclosure\u0020Configuration', 9961 product_price_value: document.querySelector(priceSelector).textContent.slice(1), 9962 9963 qty: 1, 9964 }], 9965 })); 9966 } 9967 }); 9968 } 9969 9970 const button = productForm.querySelector( 9971 'button\u005Bdata\u002Daddto\u003D\u0022cart\u0022\u005D' 9972 ); 9973 9974 if (!button) { 9975 return; 9976 } 9977 9978 bindEventListener(button, 'click'); 9979 }, 9980 { once: true } 9981 ); 9982 })();</script>
9982 </div> 9983 </div> 9984 </div> 9985</div> 9986 <div class="item product product-item shrink-0 product_addtocart_form flex flex-col w-full " data-sku="ACW1SE"> 9987 <div class="product-info-top grow"> 9988 <span class="relative block"> 9989 <a href="https://www.shelterlogic.com/arrow-carport-with-1-sided-enclosure" class="xs:p-2 product flex justify-center border border-gray-100 product-item-photo mb-3 " aria-label="Product image Arrow Carport Kit: 1-sided Enclosure Configuration" x-data="{ hover: false }" title="Arrow Carport Kit: 1-sided Enclosure Configuration" @mouseover="hover=true" @mouseover.away="hover=false" tabindex="0"> 9990 <span class="sr-only">Product image Arrow Carport Kit: 1-sided Enclosure Configuration</span> 9991 <div x-show="!hover"> 9992 <img class="object-contain product-image-photo" x-data="" @update-gallery-55765.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/c/p/cphc122909ecl1_silo_image_01.png?quality=80&bg-color=255,255,255&fit=bounds&height=222&width=222&canvas=222:222" loading="lazy" width="222" height="222" alt="Arrow Carport Kit: 1-sided Enclosure Configuration"> </div> 9993 <div x-cloak x-show="hover"> 9994 <img class="object-contain product-image-photo" x-data="" @update-gallery-55765.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/g/j/gjr0uqdxsncdrci9g3pi_860xtbugetimbm0v_3.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=260&width=260&canvas=260:260" loading="lazy" width="222" height="222" alt="Arrow Carport Kit: 1-sided Enclosure Configuration"> </div> 9995 </a> 9996 9997 </span> 9998 <a class="text-base font-bold product-item-link h-[47px] line-clamp-2 hover:underline" aria-label="Arrow Carport Kit: 1-sided Enclosure Configuration" href="https://www.shelterlogic.com/arrow-carport-with-1-sided-enclosure" :id="`slide-desc-55765-${$id('slider-id')}`"> 9999 Arrow Carport Kit: 1-sided Enclosure Configuration </a> 10000 </div> 10001 <div class="product-info-bottom flex flex-col justify-start h-full"> 10002 <div class="mt-2 2xss:h-6 2xss:overflow-hidden mb-1.5"> 10003 <div class="rating-snippet-product-rating-listing cursor-pointer" data-sku="ACW1SE;CPH101509ECL1;CPHC101509ECL1;CPH102909ECL1;CPH102009ECL1;CPHC102007ECL1;CPH102007ECL1;CPHC102407ECL1;CPHC102909ECL1;CPHC102009ECL1;CPH101507ECL1;CPHC102907ECL1;CPHC101507ECL1;CPH102409ECL1;CPHC102409ECL1;CPH102407ECL1;CPH106909ECL1;CPHC107407ECL1;CPHC109109ECL1;CPH109109ECL1;CPH104207ECL1;CPH105107ECL1;CPH106509ECL1;CPH106007ECL1;CPH104709ECL1;CPHC1010007ECL1;CPHC107409ECL1;CPHC109607ECL1;CPHC103807ECL1;CPHC103809ECL1;CPH104209ECL1;CPH106009ECL1;CPH108209ECL1;CPHC103309ECL1;CPHC1010009ECL1;CPH107809ECL1;CPH105609ECL1;CPHC105607ECL1;CPH108707ECL1;CPH109107ECL1;CPH103807ECL1;CPHC106507ECL1;CPHC106007ECL1;CPHC106509ECL1;CPH109607ECL1;CPHC104207ECL1;CPHC106909ECL1;CPHC105107ECL1;CPH106907ECL1;CPHC105109ECL1;CPHC107809ECL1;CPHC109609ECL1;CPHC103307ECL1;CPH104707ECL1;CPHC106907ECL1;CPHC109107ECL1;CPHC104709ECL1;CPH105109ECL1;CPH107807ECL1;CPH102907ECL1;CPH107407ECL1;CPHC108209ECL1;CPHC104209ECL1;CPH108709ECL1;CPH103307ECL1;CPHC104707ECL1;CPH108207ECL1;CPH1010009ECL1;CPHC108707ECL1;CPH103309ECL1;CPHC108207ECL1;CPH103809ECL1;CPH107409ECL1;CPHC108709ECL1;CPH105607ECL1;CPHC107807ECL1;CPH1010007ECL1;CPH109609ECL1;CPHC106009ECL1;CPHC105609ECL1;CPH106507ECL1;CPHC124709ECL1;CPH128207ECL1;CPH125107ECL1;CPHC1210009ECL1;CPHC129107ECL1;CPHC122409ECL1;CPH126509ECL1;CPH122907ECL1;CPHC128209ECL1;CPH125607ECL1;CPHC125107ECL1;CPHC128709ECL1;CPH126009ECL1;CPH1210009ECL1;CPHC123307ECL1;CPHC125607ECL1;CPH126907ECL1;CPHC124207ECL1;CPHC128707ECL1;CPHC129609ECL1;CPH126007ECL1;CPH122009ECL1;CPHC122007ECL1;CPH124209ECL1;CPH128709ECL1;CPH122409ECL1;CPHC122909ECL1;CPHC1210007ECL1;CPHC126007ECL1;CPH127409ECL1;CPHC123809ECL1;CPH129607ECL1;CPH128707ECL1;CPHC128207ECL1;CPHC122907ECL1;CPH124707ECL1;CPHC124707ECL1;CPH127809ECL1;CPH126507ECL1;CPH122407ECL1;CPHC126509ECL1;CPH128209ECL1;CPHC126009ECL1;CPHC126909ECL1;CPHC122009ECL1;CPH125109ECL1;CPHC123807ECL1;CPHC127809ECL1;CPH127407ECL1;CPH129109ECL1;CPH122007ECL1;CPH1210007ECL1;CPHC129607ECL1;CPHC129109ECL1;CPH125609ECL1;CPHC125609ECL1;CPH129609ECL1;CPH123309ECL1;CPH127807ECL1;CPHC123309ECL1;CPH123809ECL1;CPHC127409ECL1;CPHC127407ECL1;CPH122909ECL1;CPHC126907ECL1;CPHC124209ECL1;CPH123307ECL1;CPHC126507ECL1;CPH129107ECL1;CPH124207ECL1;CPHC122407ECL1;CPH123807ECL1;CPH124709ECL1;CPHC125109ECL1;CPHC127807ECL1;CPH126909ECL1;CPH2010009ECL1;CPH208209ECL1;CPH205609ECL1;CPH202409ECL1;CPH203809ECL1;CPHC209109ECL1;CPHC202907ECL1;CPHC208207ECL1;CPH202007ECL1;CPH208709ECL1;CPHC205109ECL1;CPHC205609ECL1;CPHC205607ECL1;CPHC209607ECL1;CPH206507ECL1;CPHC2010009ECL1;CPHC208707ECL1;CPHC207409ECL1;CPHC208209ECL1;CPHC204207ECL1;CPHC203307ECL1;CPH206007ECL1;CPHC202007ECL1;CPH208707ECL1;CPH206909ECL1;CPH209109ECL1;CPH204707ECL1;CPH204209ECL1;CPH202009ECL1;CPH209107ECL1;CPH203807ECL1;CPH207807ECL1;CPH202407ECL1;CPH204709ECL1;CPHC206007ECL1;CPH206907ECL1;CPHC206907ECL1;CPH205109ECL1;CPH203307ECL1;CPH204207ECL1;CPHC207407ECL1;CPHC203809ECL1;CPH207809ECL1;CPHC203807ECL1;CPHC206509ECL1;CPH209607ECL1;CPHC202009ECL1;CPHC202407ECL1;CPHC209107ECL1;CPH207409ECL1;CPHC2010007ECL1;CPHC204209ECL1;CPH207407ECL1;CPHC207809ECL1;CPH206509ECL1;CPH202907ECL1;CPH202909ECL1;CPHC207807ECL1;CPHC204709ECL1;CPHC202409ECL1;CPHC206507ECL1;CPHC208709ECL1;CPHC206009ECL1;CPHC209609ECL1;CPHC204707ECL1;CPH2010007ECL1;CPH206009ECL1;CPHC202909ECL1;CPH209609ECL1;CPHC206909ECL1;CPH208207ECL1;CPH205107ECL1;CPHC203309ECL1;CPHC205107ECL1;CPH203309ECL1;CPH205607ECL1" aria-label="Product Reviews sku ACW1SE" role="link" tabindex="0"></div> 10004 <!--suppress JSUnresolvedReference --> 10005
10005<script type="text/javascript"> 10006 window.addEventListener('reviews-io-loaded', () => { 10007 ratingSnippet('rating-snippet-product-rating-listing', { 10008 store: 'shelterlogic.com', 10009 mode: 'default', 10010 color: '\u0023E1AB2E', 10011 linebreak: false, 10012 text: 'Reviews', 10013 singularText: 'Review', 10014 lang: 'en', 10015 usePolaris: false, 10016 showEmptyStars: true, 10017 }); 10018 }, {once: true, passive: true}); 10019 </script>
10019 10020 10021 </div> 10022 10023
10023<script nonce="NHRtODJpbGtodmR4MTgxcmxkd2F3a2c0Z2piYWdtNWo="> 10024 window['YIREO_GOOGLETAGMANAGER2_PRODUCT_DATA_ID_55765'] = {"item_id":"ACW1SE","item_sku":"ACW1SE","magento_sku":"ACW1SE","magento_id":"55765","item_image_url":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/placeholder\/default\/SLG_PlaceholderLogo_0322_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265","item_name":"Arrow Carport Kit: 1-sided Enclosure Configuration","item_brand":"Arrow\u00ae","price":1659.99,"index":17};</script>
10024 10025 10026 10027 <div class="text-grey-darker relative pt-4" x-data="initPriceBox()" x-defer="intersect" @update-prices-55765.window="updatePrice($event.detail);"> 10028 10029 <div class="price-box price-final_price" data-role="priceBox" data-product-id="55765" data-price-box="product-id-55765"> <span class="normal-price"><span x-data x-id="['product\u002Dprice\u002D55765']" class="price-container price-final_price tax weee"> 10030 <span class="price-label">Starting at</span> 10031 <span :id="$id('product\u002Dprice\u002D55765')" data-price-amount="1659.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">$1,659.99</span><span class="pl-1 xl:pl-2 font-bold text-base currency-syffix">USD</span></span> 10032 </span></span> </div> 10033 <div class="flex flex-col flex-wrap justify-center"> 10034
10034<script> 10035 'use strict'; 10036 10037 (() => { 10038 window.addEventListener( 10039 'ga-initialized', 10040 () => { 10041 const productForm = document.querySelector( 10042 'form\u005Bdata\u002Dsku\u003D\u0022ACW1SE\u0022\u005D' 10043 ); 10044 10045 if (!productForm) { 10046 return; 10047 } 10048 10049 let sku = 'ACW1SE'; 10050 10051 window.addEventListener( 10052 'listing\u002Dconfigurable-selection-changed', 10053 (event) => { 10054 if (event.detail.skuCandidates.length === 1 10055 && event.detail.productId === '55765' 10056 ) { 10057 sku = event.detail.skuCandidates[0]; 10058 } 10059 } 10060 ); 10061 10062 function bindEventListener(element, event) 10063 { 10064 element.addEventListener(event, () => { 10065 if (productForm.checkValidity()) { 10066 const priceSelector = false ? '#product-price-55765 .price' 10067 : '[data-price-box="product-id-55765"] .price'; 10068 10069 window.dispatchEvent(new CustomEvent('cart-item-added', { 10070 detail: [{ 10071 product_sku: sku, 10072 product_name: 'Arrow\u0020Carport\u0020Kit\u003A\u00201\u002Dsided\u0020Enclosure\u0020Configuration', 10073 product_price_value: document.querySelector(priceSelector).textContent.slice(1), 10074 10075 qty: 1, 10076 }], 10077 })); 10078 } 10079 }); 10080 } 10081 10082 const button = productForm.querySelector( 10083 'button\u005Bdata\u002Daddto\u003D\u0022cart\u0022\u005D' 10084 ); 10085 10086 if (!button) { 10087 return; 10088 } 10089 10090 bindEventListener(button, 'click'); 10091 }, 10092 { once: true } 10093 ); 10094 })();</script>
10094 </div> 10095 </div> 10096 </div> 10097</div> 10098 <div class="item product product-item shrink-0 product_addtocart_form flex flex-col w-full " data-sku="BaseballFieldSpotCover"> 10099 <div class="product-info-top grow"> 10100 <span class="relative block"> 10101 <a href="https://www.shelterlogic.com/baseball-field-spot-cover" class="xs:p-2 product flex justify-center border border-gray-100 product-item-photo mb-3 " aria-label="Product image Baseball Field Spot Cover" x-data="{ hover: false }" title="Baseball Field Spot Cover" @mouseover="hover=true" @mouseover.away="hover=false" tabindex="0"> 10102 <span class="sr-only">Product image Baseball Field Spot Cover</span> 10103 <div x-show="!hover"> 10104 <img class="object-contain product-image-photo" x-data="" @update-gallery-53126.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/c/t/ct17yo9rxe5ufc0moxxg.jpeg?quality=80&bg-color=255,255,255&fit=bounds&height=222&width=222&canvas=222:222" loading="lazy" width="222" height="222" alt="Baseball Field Spot Cover"> </div> 10105 <div x-cloak x-show="hover"> 10106 <img class="object-contain product-image-photo" x-data="" @update-gallery-53126.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/r/3/r37bz9gbxkjavbhhze3v.jpeg?quality=80&bg-color=255,255,255&fit=bounds&height=260&width=260&canvas=260:260" loading="lazy" width="222" height="222" alt="Baseball Field Spot Cover"> </div> 10107 </a> 10108 10109 </span> 10110 <a class="text-base font-bold product-item-link h-[47px] line-clamp-2 hover:underline" aria-label="Baseball Field Spot Cover" href="https://www.shelterlogic.com/baseball-field-spot-cover" :id="`slide-desc-53126-${$id('slider-id')}`"> 10111 Baseball Field Spot Cover </a> 10112 </div> 10113 <div class="product-info-bottom flex flex-col justify-start h-full"> 10114 <div class="mt-2 2xss:h-6 2xss:overflow-hidden mb-1.5"> 10115 <div class="rating-snippet-product-rating-listing cursor-pointer" data-sku="BaseballFieldSpotCover;SCBA000104003803800;SCBA000605002602600;SCBA000301003003000;SCBA000105001001000;SCBA000605001601600;SCBA000301002802800;SCBA000105003803800;SCBA000605001001000;SCBA000103002802800;SCBA000104001501500;SCBA000101002402400;SCBA000301001201200;SCBA000101003803800;SCBA000103001801800;SCBA000605002402400;SCBA000101003603600;SCBA000105001201200;SCBA000605003803800;SCBA000101002202200;SCBA000605002002000;SCBA000105002002000;SCBA000101001801800;SCBA000103001001000;SCBA000304003203200;SCBA000304001801800;SCBA000105002402400;SCBA000301002202200;SCBA000105001801800;SCBA000304001601600;SCBA000304003603600;SCBA000105002602600;SCBA000101003203200;SCBA000103002002000;SCBA000103001501500;SCBA000105002802800;SCBA000301003203200;SCBA000301002402400;SCBA000103003603600;SCBA000304002602600;SCBA000301003603600;SCBA000301001001000;SCBA000104003003000;SCBA000301001801800;SCBA000301002602600;SCBA000304002402400;SCBA000301003403400;SCBA000101003003000;SCBA000304002002000;SCBA000301002002000;SCBA000605002802800;SCBA000605002202200;SCBA000104002602600;SCBA000101002602600;SCBA000605003003000;SCBA000304002802800;SCBA000605003203200;SCBA000101001201200;SCBA000301003803800;SCBA000103002202200;SCBA000103002602600;SCBA000301001501500;SCBA000104003203200;SCBA000105001501500;SCBA000104002802800;SCBA000605001801800;SCBA000105003003000;SCBA000104002002000;SCBA000605001201200;SCBA000101002002000;SCBA000101002802800;SCBA000605003403400;SCBA000104002402400;SCBA000605003603600;SCBA000101001001000;SCBA000304001001000;SCBA000103003003000;SCBA000304003403400;SCBA000101001601600;SCBA000103003403400;SCBA000304003803800;SCBA000105001601600;SCBA000304001501500;SCBA000104001801800;SCBA000105003603600;SCBA000104001201200;SCBA000103003803800;SCBA000104001001000;SCBA000101001501500;SCBA000301001601600;SCBA000104003403400;SCBA000105002202200;SCBA000104003603600;SCBA000304003003000;SCBA000103001201200;SCBA000104002202200;SCBA000105003203200;SCBA000605001501500;SCBA000101003403400;SCBA000105003403400;SCBA000103003203200;SCBA000104001601600;SCBA000103001601600;SCBA000304002202200;SCBA000103002402400;SCBA000304001201200" aria-label="Product Reviews sku BaseballFieldSpotCover" role="link" tabindex="0"></div> 10116 <!--suppress JSUnresolvedReference --> 10117
10117<script type="text/javascript"> 10118 window.addEventListener('reviews-io-loaded', () => { 10119 ratingSnippet('rating-snippet-product-rating-listing', { 10120 store: 'shelterlogic.com', 10121 mode: 'default', 10122 color: '\u0023E1AB2E', 10123 linebreak: false, 10124 text: 'Reviews', 10125 singularText: 'Review', 10126 lang: 'en', 10127 usePolaris: false, 10128 showEmptyStars: true, 10129 }); 10130 }, {once: true, passive: true}); 10131 </script>
10131 10132 10133 </div> 10134 10135
10135<script nonce="NHRtODJpbGtodmR4MTgxcmxkd2F3a2c0Z2piYWdtNWo="> 10136 window['YIREO_GOOGLETAGMANAGER2_PRODUCT_DATA_ID_53126'] = {"item_id":"BaseballFieldSpotCover","item_sku":"BaseballFieldSpotCover","magento_sku":"BaseballFieldSpotCover","magento_id":"53126","item_image_url":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/placeholder\/default\/SLG_PlaceholderLogo_0322_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265","item_name":"Baseball Field Spot Cover","item_brand":"ShelterLogic\u00ae","item_list_id":"1152","item_list_name":"Custom Commercial Grade Buildings & Shelters","price":29.99,"item_category":"Custom Commercial Grade Buildings & Shelters","index":18};</script>
10136 10137 10138 10139 <div class="text-grey-darker relative pt-4" x-data="initPriceBox()" x-defer="intersect" @update-prices-53126.window="updatePrice($event.detail);"> 10140 10141 <div class="price-box price-final_price" data-role="priceBox" data-product-id="53126" data-price-box="product-id-53126"> <span class="normal-price"><span x-data x-id="['product\u002Dprice\u002D53126']" class="price-container price-final_price tax weee"> 10142 <span class="price-label">Starting at</span> 10143 <span :id="$id('product\u002Dprice\u002D53126')" data-price-amount="29.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">$29.99</span><span class="pl-1 xl:pl-2 font-bold text-base currency-syffix">USD</span></span> 10144 </span></span> </div> 10145 <div class="flex flex-col flex-wrap justify-center"> 10146
10146<script> 10147 'use strict'; 10148 10149 (() => { 10150 window.addEventListener( 10151 'ga-initialized', 10152 () => { 10153 const productForm = document.querySelector( 10154 'form\u005Bdata\u002Dsku\u003D\u0022BaseballFieldSpotCover\u0022\u005D' 10155 ); 10156 10157 if (!productForm) { 10158 return; 10159 } 10160 10161 let sku = 'BaseballFieldSpotCover'; 10162 10163 window.addEventListener( 10164 'listing\u002Dconfigurable-selection-changed', 10165 (event) => { 10166 if (event.detail.skuCandidates.length === 1 10167 && event.detail.productId === '53126' 10168 ) { 10169 sku = event.detail.skuCandidates[0]; 10170 } 10171 } 10172 ); 10173 10174 function bindEventListener(element, event) 10175 { 10176 element.addEventListener(event, () => { 10177 if (productForm.checkValidity()) { 10178 const priceSelector = false ? '#product-price-53126 .price' 10179 : '[data-price-box="product-id-53126"] .price'; 10180 10181 window.dispatchEvent(new CustomEvent('cart-item-added', { 10182 detail: [{ 10183 product_sku: sku, 10184 product_name: 'Baseball\u0020Field\u0020Spot\u0020Cover', 10185 product_price_value: document.querySelector(priceSelector).textContent.slice(1), 10186 10187 qty: 1, 10188 }], 10189 })); 10190 } 10191 }); 10192 } 10193 10194 const button = productForm.querySelector( 10195 'button\u005Bdata\u002Daddto\u003D\u0022cart\u0022\u005D' 10196 ); 10197 10198 if (!button) { 10199 return; 10200 } 10201 10202 bindEventListener(button, 'click'); 10203 }, 10204 { once: true } 10205 ); 10206 })();</script>
10206 </div> 10207 </div> 10208 </div> 10209</div> 10210 <div class="item product product-item shrink-0 product_addtocart_form flex flex-col w-full " data-sku="SoftballFieldTarps"> 10211 <div class="product-info-top grow"> 10212 <span class="relative block"> 10213 <a href="https://www.shelterlogic.com/softball-field-tarps-53124" class="xs:p-2 product flex justify-center border border-gray-100 product-item-photo mb-3 " aria-label="Product image Softball Field Tarps" x-data="{ hover: false }" title="Softball Field Tarps" @mouseover="hover=true" @mouseover.away="hover=false" tabindex="0"> 10214 <span class="sr-only">Product image Softball Field Tarps</span> 10215 <div x-show="!hover"> 10216 <img class="object-contain product-image-photo" x-data="" @update-gallery-53124.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/p/y/pyojdoqalxi7mlmg45i8_1_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=222&width=222&canvas=222:222" loading="lazy" width="222" height="222" alt="Softball Field Tarps"> </div> 10217 <div x-cloak x-show="hover"> 10218 <img class="object-contain product-image-photo" x-data="" @update-gallery-53124.window="$root.src = $event.detail" src="https://www.shelterlogic.com/media/catalog/product/y/u/yuy21flz9y9nue6h3dez_1_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=260&width=260&canvas=260:260" loading="lazy" width="222" height="222" alt="Softball Field Tarps"> </div> 10219 </a> 10220 10221 </span> 10222 <a class="text-base font-bold product-item-link h-[47px] line-clamp-2 hover:underline" aria-label="Softball Field Tarps" href="https://www.shelterlogic.com/softball-field-tarps-53124" :id="`slide-desc-53124-${$id('slider-id')}`"> 10223 Softball Field Tarps </a> 10224 </div> 10225 <div class="product-info-bottom flex flex-col justify-start h-full"> 10226 <div class="mt-2 2xss:h-6 2xss:overflow-hidden mb-1.5"> 10227 <div class="rating-snippet-product-rating-listing cursor-pointer" data-sku="SoftballFieldTarps;FCSA000103014014000;FCSA000103011011000;FCSA000605014014000;FCSA000105014014000;FCSA000101011011000;FCSA000104013013000;FCSA000103013013000;FCSA000105012012000;FCSA000104011011000;FCSA000101013013000;FCSA000101012012000;FCSA000103012012000;FCSA000104014014000;FCSA000105011011000;FCSA000605012012000;FCSA000605013013000;FCSA000605011011000;FCSA000105013013000;FCSA000104012012000;FCSA000101014014000" aria-label="Product Reviews sku SoftballFieldTarps" role="link" tabindex="0"></div> 10228 <!--suppress JSUnresolvedReference --> 10229
10229<script type="text/javascript"> 10230 window.addEventListener('reviews-io-loaded', () => { 10231 ratingSnippet('rating-snippet-product-rating-listing', { 10232 store: 'shelterlogic.com', 10233 mode: 'default', 10234 color: '\u0023E1AB2E', 10235 linebreak: false, 10236 text: 'Reviews', 10237 singularText: 'Review', 10238 lang: 'en', 10239 usePolaris: false, 10240 showEmptyStars: true, 10241 }); 10242 }, {once: true, passive: true}); 10243 </script>
10243 10244 10245 </div> 10246 10247
10247<script nonce="NHRtODJpbGtodmR4MTgxcmxkd2F3a2c0Z2piYWdtNWo="> 10248 window['YIREO_GOOGLETAGMANAGER2_PRODUCT_DATA_ID_53124'] = {"item_id":"SoftballFieldTarps","item_sku":"SoftballFieldTarps","magento_sku":"SoftballFieldTarps","magento_id":"53124","item_image_url":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/placeholder\/default\/SLG_PlaceholderLogo_0322_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265","item_name":"Softball Field Tarps","item_brand":"ShelterLogic\u00ae","item_list_id":"1063","item_list_name":"Baseball Field Tarps and Spot Covers","price":3319.99,"item_category":"Custom Commercial Grade Buildings & Shelters","item_category2":"Baseball Field Tarps and Spot Covers","index":19};</script>
10248 10249 10250 10251 <div class="text-grey-darker relative pt-4" x-data="initPriceBox()" x-defer="intersect" @update-prices-53124.window="updatePrice($event.detail);"> 10252 10253 <div class="price-box price-final_price" data-role="priceBox" data-product-id="53124" data-price-box="product-id-53124"> <span class="normal-price"><span x-data x-id="['product\u002Dprice\u002D53124']" class="price-container price-final_price tax weee"> 10254 <span class="price-label">Starting at</span> 10255 <span :id="$id('product\u002Dprice\u002D53124')" data-price-amount="3319.99" data-price-type="finalPrice" class="price-wrapper "><span class="price">$3,319.99</span><span class="pl-1 xl:pl-2 font-bold text-base currency-syffix">USD</span></span> 10256 </span></span> </div> 10257 <div class="flex flex-col flex-wrap justify-center"> 10258
10258<script> 10259 'use strict'; 10260 10261 (() => { 10262 window.addEventListener( 10263 'ga-initialized', 10264 () => { 10265 const productForm = document.querySelector( 10266 'form\u005Bdata\u002Dsku\u003D\u0022SoftballFieldTarps\u0022\u005D' 10267 ); 10268 10269 if (!productForm) { 10270 return; 10271 } 10272 10273 let sku = 'SoftballFieldTarps'; 10274 10275 window.addEventListener( 10276 'listing\u002Dconfigurable-selection-changed', 10277 (event) => { 10278 if (event.detail.skuCandidates.length === 1 10279 && event.detail.productId === '53124' 10280 ) { 10281 sku = event.detail.skuCandidates[0]; 10282 } 10283 } 10284 ); 10285 10286 function bindEventListener(element, event) 10287 { 10288 element.addEventListener(event, () => { 10289 if (productForm.checkValidity()) { 10290 const priceSelector = false ? '#product-price-53124 .price' 10291 : '[data-price-box="product-id-53124"] .price'; 10292 10293 window.dispatchEvent(new CustomEvent('cart-item-added', { 10294 detail: [{ 10295 product_sku: sku, 10296 product_name: 'Softball\u0020Field\u0020Tarps', 10297 product_price_value: document.querySelector(priceSelector).textContent.slice(1), 10298 10299 qty: 1, 10300 }], 10301 })); 10302 } 10303 }); 10304 } 10305 10306 const button = productForm.querySelector( 10307 'button\u005Bdata\u002Daddto\u003D\u0022cart\u0022\u005D' 10308 ); 10309 10310 if (!button) { 10311 return; 10312 } 10313 10314 bindEventListener(button, 'click'); 10315 }, 10316 { once: true } 10317 ); 10318 })();</script>
10318 </div> 10319 </div> 10320 </div> 10321</div> 10322 </div> 10323 </div> 10324 </div></div></div><div class="qucklinks-section cc1152-lg:py-8" data-content-type="row" data-appearance="full-bleed" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="main" data-pb-style="NT5CIO5"><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="" data-element="main" data-pb-style="P4QUHTV"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="NACTIOV"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="UHD40NR"></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="Y0O1BT1"><div class="cc1152-font-extrabold cc1152-text-28 cc1152-leading-10 cc1152-mb-5 cc1152-lg:mb-8" data-content-type="text" data-appearance="default" data-element="main"><h2 style="text-align: center;">Have Questions?</h2></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><div class="cc1152-flex cc1152-flex-col cc1152-md:flex-row cc1152-items-center cc1152-bg-gray-100 cc1152-p-8 cc1152-max-w-xl cc1152-w-full cc1152-mx-auto"> 10325<svg class="cc1152-hidden cc1152-md:block cc1152-w-28 cc1152-h-28 cc1152-text-gray-700 cc1152-mb-4 md:md-0 cc1152-md:mr-8" width="100" height="100" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 100 100"> 10326 <path fill="#30302f" d="M85.08,83.48c0-.06,0-.13,0-.2-1.26-7.32-4.63-11.69-9.02-11.69h-.97c-3.96,0-7.09,0-10.25-4.53-.28-.4-.74-.64-1.24-.64-.31,0-.61.09-.86.27-.68.47-.85,1.42-.37,2.1,3.75,5.38,7.97,5.83,11.98,5.83.31,0,.61,0,.9,0h.81c2.23,0,4.21,2.39,5.43,6.55.06.22.02.46-.12.65-.14.19-.36.29-.59.29H19.21c-.23,0-.45-.11-.59-.29-.14-.18-.18-.42-.12-.65,1.22-4.16,3.2-6.55,5.43-6.55h.81c.29,0,.59,0,.89,0h0c4.17,0,8.56-.45,12.32-5.82.47-.68.31-1.62-.37-2.1-.25-.18-.55-.27-.86-.27-.49,0-.96.24-1.24.64-2.94,4.2-6.12,4.54-9.98,4.54h-1.57c-4.39,0-7.76,4.36-9.02,11.68,0,.06,0,.13,0,.19,0,.04-.01.09-.02.13.01.05.03.11.03.17.01.11.03.21.06.29.03.08.06.16.12.26.06.1.1.17.15.23.05.06.12.12.21.2.09.07.16.12.23.16.07.04.16.07.29.11.07.02.13.04.2.08.07,0,.14.01.2.01h67.21s.02,0,.02,0c.07,0,.14,0,.21-.01.07-.03.13-.06.21-.08.13-.04.21-.07.27-.1.07-.04.15-.09.23-.16.09-.07.15-.13.2-.19.05-.06.1-.13.16-.24.05-.1.09-.18.12-.26.02-.07.04-.16.06-.29,0-.05.02-.1.03-.16,0-.04-.02-.08-.02-.13Z"/> 10327 <path fill="#eaab00" d="M34.87,37.3h-2.76c-.42,0-.77-.35-.77-.77,0-6.36,1.51-10.95,4.59-14.03,3.09-3.09,7.69-4.59,14.07-4.59s10.98,1.5,14.07,4.59c3.08,3.08,4.59,7.67,4.59,14.03,0,.42-.35.77-.77.77h-.9s-2.65-.02-2.65-.02h0s0,0,0,0h-.02s-.09,0-.14.01c-.84.12-1.41.91-1.31,1.75.13,1.13.2,2.34.2,3.6,0,3.13-.49,6.2-1.46,9.13-.13.38-.1.79.08,1.15.18.36.49.63.88.75.13.04.26.06.38.07h0s.04,0,.04,0h.02s0,0,0,0h4.89c.41,0,.77.33.77.74,0,1.64-1.34,2.97-2.98,2.97h-8.93c-.43,0-.77-.34-.77-.77v-2.21c0-.83-.68-1.5-1.51-1.5s-1.51.68-1.51,1.5v4.44c0,.85.69,1.54,1.54,1.54h11.14c3.32,0,6.02-2.69,6.02-6.02v-.38c0-.31.2-.59.49-.69,2.39-.85,3.99-3.11,3.99-5.61v-4.48c0-2.54-1.63-4.8-4.06-5.64-.19-.06-.34-.2-.42-.37v-.71c0-7.09-1.85-12.53-5.49-16.17-3.64-3.64-9.09-5.49-16.18-5.49s-12.54,1.85-16.18,5.49c-3.64,3.64-5.49,9.08-5.49,16.15v.74c-.08.17-.23.3-.42.37-2.43.83-4.06,3.1-4.06,5.64v4.44c0,3.33,2.7,6.02,6.02,6.02h5.19c.83,0,1.5-.67,1.5-1.5v-.09c0-.79-.64-1.42-1.43-1.42h-5.26c-1.66,0-3.01-1.35-3.01-3.01v-4.41c0-1.66,1.35-3.01,3.01-3.01h4.98c.83,0,1.5-.67,1.51-1.5h-1.51c0-.83.85-1.51.03-1.51ZM73.14,47.73c0,1.66-1.35,3.01-3.01,3.01h-4.17c-.22,0-.44-.1-.58-.28-.14-.17-.19-.4-.14-.62.55-2.38.82-4.81.82-7.19,0-.53-.02-1.06-.05-1.57,0-.2.06-.4.2-.54.14-.15.33-.23.53-.23h3.37c1.66,0,3.01,1.35,3.01,3.01v4.41Z"/> 10328 <path fill="none" stroke="#30302f" stroke-linecap="round" stroke-linejoin="round" stroke-width="3px" d="M61.28,29.99s-2.71-4.79-12.03-4.79c-6.81,0-14.4,5.94-14.4,18.99,0,16.02,11.56,22.29,16.35,21.3"/> 10329</svg> 10330 10331 <div class="cc1152-text-center cc1152-md:text-left"> 10332 <p class="text-md cc1152-font-semibold">Talk to an expert in-house product specialist:</p> 10333 <p class="text-md cc1152-font-bold cc1152-text-gray-900"><a href="tel:1-800-560-8383" class="cc1152-underline">1-800-560-8383</a></p> 10334 <p class="cc1152-text-sm cc1152-text-gray-700 cc1152-mt-6">Monday – Friday: 8:00 AM – 8:00 PM EST</p> 10335 <p class="cc1152-text-sm cc1152-text-gray-700">Saturday – Sunday: 8:00 AM – 4:30 PM EST</p> 10336 </div> 10337 </div> 10338 </div></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="CS3QUKB"></div></div></div></div><div class="retail-corporation-section" data-content-type="row" data-appearance="full-bleed" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="CSCFN7S"><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="GBK0L81"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="PCD9U24"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="QKIWP10"><div class="retail-corporation-section__title" data-content-type="text" data-appearance="default" data-element="main"><p>Carried By</p></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><div 10339 class="retail-corporation-section__icons"> 10340 <a href="https://www.tractorsupply.com/" role='link' target="_blank" tabindex="0"> 10341 <img src="https://www.shelterlogic.com/media/wysiwyg/05_TSC_Color_AsSeenInMerchants_SojagHomepage_1222.png" 10342 width="88px" height="88px" alt="TSC" loading="lazy"/> 10343 </a> 10344 <a href="https://www.homedepot.com/" role='link' target="_blank" tabindex="0"> 10345 <img src="https://www.shelterlogic.com/media/wysiwyg/02_HomeDepot_Color_AsSeenInMerchants_SojagHomepage_1222.png" 10346 width="88px" height="88px" alt="HomeDepot" loading="lazy"/> 10347 </a> 10348 <a href="https://www.lowes.com/" role='link' target="_blank" tabindex="0"> 10349 <img src="https://www.shelterlogic.com/media/wysiwyg/01_Lowes_Color_AsSeenInMerchants_SojagHomepage_1222.png" 10350 width="88px" height="88px" alt="Lowes" loading="lazy"/> 10351 </a> 10352 <a href="https://www.samsclub.com/" role='link' target="_blank" tabindex="0"> 10353 <img src="https://www.shelterlogic.com/media/wysiwyg/03_SamsClub_Color_AsSeenInMerchants_SojagHomepage_1222.png" 10354 width="88px" height="88px" alt="SamsClub" loading="lazy"/> 10355 </a> 10356 <a href="https://www.costco.com/" role='link' target="_blank" tabindex="0"> 10357 <img src="https://www.shelterlogic.com/media/wysiwyg/04_TSC_Color_AsSeenInMerchants_SojagHomepage_1222.png" 10358 width="94px" height="18px" alt="Costco" loading="lazy"/> 10359 </a> 10360 </div> 10361 </div></div></div></div></div><div data-content-type="row" data-appearance="full-bleed" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="UV7P5AK"><div data-content-type="text" data-appearance="default" data-element="main" data-pb-style="OO19NX0"><h2 style="font-size: 23px;"><strong> Trusted By:</strong></h2></div><div class="cc1152-flex cc1152-flex-row cc1152-justify-between cc1152-flex-wrap cc1152-lg:flex-nowrap" data-content-type="text" data-appearance="default" data-element="main"><p class="cc1152-rounded-full cc1152-bg-whiteSmoke cc1152-p-1 cc1152-mb-2 cc1152-md:mx-5 cc1152-lg:mx-2"><img id="HI0M4CR" style="width: 132px; height: 132px;" src="https://www.shelterlogic.com/media/catalog/category/1_Companies_TrussBuildings_1023.png" alt="" width="132" height="132"></p> 10362<p class="cc1152-rounded-full cc1152-bg-whiteSmoke cc1152-p-1 cc1152-mb-2 cc1152-md:mx-5 cc1152-lg:mx-2"><img style="width: 131px; height: 132px;" src="https://www.shelterlogic.com/media/catalog/category/2_Companies_TrussBuildings_1023.png" alt="" width="131" height="132"></p> 10363<p class="cc1152-rounded-full cc1152-bg-whiteSmoke cc1152-p-1 cc1152-mb-2 cc1152-md:mx-5 cc1152-lg:mx-2"><img style="width: 131px; height: 131px;" src="https://www.shelterlogic.com/media/catalog/category/3_Companies_TrussBuildings_1023.png" alt="" width="131" height="131"></p> 10364<p class="cc1152-rounded-full cc1152-bg-whiteSmoke cc1152-p-1 cc1152-mb-2 cc1152-md:mx-5 cc1152-lg:mx-2"><img style="width: 131px; height: 132px;" src="https://www.shelterlogic.com/media/catalog/category/4_Companies_TrussBuildings_1023.png" alt="" width="131" height="132"></p> 10365<p class="cc1152-rounded-full cc1152-bg-whiteSmoke cc1152-p-1 cc1152-mb-2 cc1152-md:mx-5 cc1152-lg:mx-2"><img style="width: 132px; height: 131px;" src="https://www.shelterlogic.com/media/catalog/category/5_Companies_TrussBuildings_1023.png" alt="" width="132" height="131"></p> 10366<p class="cc1152-rounded-full cc1152-bg-whiteSmoke cc1152-p-1 cc1152-mb-2 cc1152-md:mx-5 cc1152-lg:mx-2"><img style="width: 131px; height: 131px;" src="https://www.shelterlogic.com/media/catalog/category/6_Companies_TrussBuildings_1023.png" alt="" width="131" height="131"></p> 10367<p class="cc1152-rounded-full cc1152-bg-whiteSmoke cc1152-p-1 cc1152-mb-2 cc1152-md:mx-5 cc1152-lg:mx-2"><img style="width: 132px; height: 131px;" src="https://www.shelterlogic.com/media/catalog/category/7_Companies_TrussBuildings_1023.png" alt="" width="132" height="131"></p> 10368<p class="cc1152-rounded-full cc1152-bg-whiteSmoke cc1152-p-1 cc1152-mb-2 cc1152-md:mx-5 cc1152-lg:mx-2"><img style="width: 131px; height: 131px;" src="https://www.shelterlogic.com/media/catalog/category/8_Companies_TrussBuildings_1023.png" alt="" width="131" height="131"></p></div></div></div> 10369
10369<script> 10370 (() => { 10371 window.addEventListener('init-external-scripts', () => { 10372 // Script comes from admin as a configured HTML 10373 const scriptHtml = document.createElement('div'); 10374 10375 scriptHtml.innerHTML = "
10375<script src='https:\/\/cdn.cookie.pii.ai\/1\/release\/1.6\/main.js' id='pieyecookiejs' config-url='https:\/\/cdn.cookie.pii.ai\/scripts\/1\/ws\/f76e9dd3-c1c7-4066-a7de-f3ca261db61b\/domain\/e29a705d-db3a-4fe8-982b-73933729177d\/config-e29a705d-db3a-4fe8-982b-73933729177d.json' async><\/script>"; 10376 10377 // Prepare it for direct injection 10378 const originalScript = scriptHtml.querySelector('script'); 10379 const injection = document.createElement('script'); 10380 10381 injection.src = originalScript.getAttribute('src'); 10382 injection.id = originalScript.getAttribute('id'); 10383 injection.nonce = document.querySelector('[nonce]'); 10384 injection.setAttribute('config-url', originalScript.getAttribute('config-url')); 10385 10386 document.head.appendChild(injection); 10387 }, {once: true, passive: true}); 10388 })(); 10389 </script>
10389 10390
10390<script type="application/ld+json"> 10391 { 10392 "@context": "https://schema.org", 10393 "name":"Custom Commercial Grade Buildings & Shelters", 10394"mainEntity":{ 10395"itemListElement":[ 10396{ 10397"@type":"ListItem", 10398"position":1, 10399"item":{ 10400"productGroupID":"Arrow Steel Panels 34", 10401"@type":"ProductGroup", 10402"@id":"https:\/\/www.shelterlogic.com\/arrow-steel-panels-34-gauge#product_group", 10403"url":"https:\/\/www.shelterlogic.com\/arrow-steel-panels-34-gauge", 10404"offers":{ 10405"@type":"AggregateOffer", 10406"@id":"https:\/\/www.shelterlogic.com\/arrow-steel-panels-34-gauge#product.aggregate_offer", 10407"priceCurrency":"USD", 10408"highPrice":9.99, 10409"lowPrice":9.99, 10410"offerCount":11, 10411"availability":"https:\/\/schema.org\/InStock" 10412} 10413, 10414"hasVariant":[ 10415{ 10416"@type":"Product", 10417"@id":"https:\/\/www.shelterlogic.com\/arrow-5-34-gauge-27-w-steel-panel-blue-grey#product", 10418"url":"https:\/\/www.shelterlogic.com\/arrow-5-34-gauge-27-w-steel-panel-blue-grey", 10419"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/arrow-5-34-gauge-27-w-steel-panel-blue-grey", 10420"name":"Arrow 5' 34 Gauge Classic 27\" W Steel Panel- Blue Grey", 10421"sku":"MTO34G275BG", 10422"description":"Arrow 5' 34 Gauge Classic 27\" W Steel Panel- Blue Grey", 10423"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/4\/4\/44a5666bf07345245e0b2f48ee7b1f72ec8138a2_risysyi6jsa796tn.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 10424"offers":{ 10425"@type":"Offer", 10426"@id":"https:\/\/www.shelterlogic.com\/arrow-5-34-gauge-27-w-steel-panel-blue-grey#product.offer", 10427"name":"Arrow 5' 34 Gauge Classic 27\" W Steel Panel- Blue Grey", 10428"priceCurrency":"USD", 10429"price":9.99, 10430"url":"https:\/\/www.shelterlogic.com\/arrow-5-34-gauge-27-w-steel-panel-blue-grey", 10431"availability":"https:\/\/schema.org\/InStock" 10432} 10433 10434} 10435, 10436{ 10437"@type":"Product", 10438"@id":"https:\/\/www.shelterlogic.com\/arrow-5-34-gauge-27-w-steel-panel-charcoal#product", 10439"url":"https:\/\/www.shelterlogic.com\/arrow-5-34-gauge-27-w-steel-panel-charcoal", 10440"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/arrow-5-34-gauge-27-w-steel-panel-charcoal", 10441"name":"Arrow 5' 34 Gauge Classic 27\" W Steel Panel- Charcoal", 10442"sku":"MTO34G275CC", 10443"description":"Arrow 5' 34 Gauge Classic 27\" W Steel Panel- Charcoal", 10444"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/6\/6\/66ff1417dba83d7b5d696872d8c098d92fcdf299_mvely7t5kbgkhpz8.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 10445"offers":{ 10446"@type":"Offer", 10447"@id":"https:\/\/www.shelterlogic.com\/arrow-5-34-gauge-27-w-steel-panel-charcoal#product.offer", 10448"name":"Arrow 5' 34 Gauge Classic 27\" W Steel Panel- Charcoal", 10449"priceCurrency":"USD", 10450"price":9.99, 10451"url":"https:\/\/www.shelterlogic.com\/arrow-5-34-gauge-27-w-steel-panel-charcoal", 10452"availability":"https:\/\/schema.org\/InStock" 10453} 10454 10455} 10456, 10457{ 10458"@type":"Product", 10459"@id":"https:\/\/www.shelterlogic.com\/arrow-5-34-gauge-27-w-steel-panel-eggshell#product", 10460"url":"https:\/\/www.shelterlogic.com\/arrow-5-34-gauge-27-w-steel-panel-eggshell", 10461"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/arrow-5-34-gauge-27-w-steel-panel-eggshell", 10462"name":"Arrow 5' 34 Gauge Classic 27\" W Steel Panel- Eggshell", 10463"sku":"MTO34G275EG", 10464"description":"Arrow 5' 34 Gauge Classic 27\" W Steel Panel- Eggshell", 10465"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/3\/c\/3c9c8045b728cbdd3abcbb9b3ffc92848a03b856_dwvyogvw15sfu8ha.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 10466"offers":{ 10467"@type":"Offer", 10468"@id":"https:\/\/www.shelterlogic.com\/arrow-5-34-gauge-27-w-steel-panel-eggshell#product.offer", 10469"name":"Arrow 5' 34 Gauge Classic 27\" W Steel Panel- Eggshell", 10470"priceCurrency":"USD", 10471"price":9.99, 10472"url":"https:\/\/www.shelterlogic.com\/arrow-5-34-gauge-27-w-steel-panel-eggshell", 10473"availability":"https:\/\/schema.org\/InStock" 10474} 10475 10476} 10477, 10478{ 10479"@type":"Product", 10480"@id":"https:\/\/www.shelterlogic.com\/arrow-6-34-gauge-27-w-steel-panel-blue-grey#product", 10481"url":"https:\/\/www.shelterlogic.com\/arrow-6-34-gauge-27-w-steel-panel-blue-grey", 10482"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/arrow-6-34-gauge-27-w-steel-panel-blue-grey", 10483"name":"Arrow 6' 34 Gauge Classic 27\" W Steel Panel- Blue Grey", 10484"sku":"MTO34G276BG", 10485"description":"Arrow 6' 34 Gauge Classic 27\" W Steel Panel- Blue Grey", 10486"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/4\/4\/44a5666bf07345245e0b2f48ee7b1f72ec8138a2_g0fjnlr1ofvoo2me.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 10487"offers":{ 10488"@type":"Offer", 10489"@id":"https:\/\/www.shelterlogic.com\/arrow-6-34-gauge-27-w-steel-panel-blue-grey#product.offer", 10490"name":"Arrow 6' 34 Gauge Classic 27\" W Steel Panel- Blue Grey", 10491"priceCurrency":"USD", 10492"price":12.99, 10493"url":"https:\/\/www.shelterlogic.com\/arrow-6-34-gauge-27-w-steel-panel-blue-grey", 10494"availability":"https:\/\/schema.org\/InStock" 10495} 10496 10497} 10498, 10499{ 10500"@type":"Product", 10501"@id":"https:\/\/www.shelterlogic.com\/arrow-6-34-gauge-27-w-steel-panel-charcoal#product", 10502"url":"https:\/\/www.shelterlogic.com\/arrow-6-34-gauge-27-w-steel-panel-charcoal", 10503"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/arrow-6-34-gauge-27-w-steel-panel-charcoal", 10504"name":"Arrow 6' 34 Gauge Classic 27\" W Steel Panel- Charcoal", 10505"sku":"MTO34G276CC", 10506"description":"Arrow 6' 34 Gauge Classic 27\" W Steel Panel- Charcoal", 10507"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/6\/6\/66ff1417dba83d7b5d696872d8c098d92fcdf299_rk3gnknvxc9xmkki.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 10508"offers":{ 10509"@type":"Offer", 10510"@id":"https:\/\/www.shelterlogic.com\/arrow-6-34-gauge-27-w-steel-panel-charcoal#product.offer", 10511"name":"Arrow 6' 34 Gauge Classic 27\" W Steel Panel- Charcoal", 10512"priceCurrency":"USD", 10513"price":12.99, 10514"url":"https:\/\/www.shelterlogic.com\/arrow-6-34-gauge-27-w-steel-panel-charcoal", 10515"availability":"https:\/\/schema.org\/InStock" 10516} 10517 10518} 10519, 10520{ 10521"@type":"Product", 10522"@id":"https:\/\/www.shelterlogic.com\/arrow-6-34-gauge-27-w-steel-panel-coffee#product", 10523"url":"https:\/\/www.shelterlogic.com\/arrow-6-34-gauge-27-w-steel-panel-coffee", 10524"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/arrow-6-34-gauge-27-w-steel-panel-coffee", 10525"name":"Arrow 6' 34 Gauge Classic 27\" W Steel Panel- Coffee", 10526"sku":"MTO34G276CO", 10527"description":"Arrow 6' 34 Gauge Classic 27\" W Steel Panel- Coffee", 10528"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/9\/1\/918b126c79d5b4771ebc482622c42aab93505b0b_0qgw0serapxjtmup.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 10529"offers":{ 10530"@type":"Offer", 10531"@id":"https:\/\/www.shelterlogic.com\/arrow-6-34-gauge-27-w-steel-panel-coffee#product.offer", 10532"name":"Arrow 6' 34 Gauge Classic 27\" W Steel Panel- Coffee", 10533"priceCurrency":"USD", 10534"price":12.99, 10535"url":"https:\/\/www.shelterlogic.com\/arrow-6-34-gauge-27-w-steel-panel-coffee", 10536"availability":"https:\/\/schema.org\/InStock" 10537} 10538 10539} 10540, 10541{ 10542"@type":"Product", 10543"@id":"https:\/\/www.shelterlogic.com\/arrow-6-34-gauge-27-w-steel-panel-eggshell#product", 10544"url":"https:\/\/www.shelterlogic.com\/arrow-6-34-gauge-27-w-steel-panel-eggshell", 10545"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/arrow-6-34-gauge-27-w-steel-panel-eggshell", 10546"name":"Arrow 6' 34 Gauge Classic 27\" W Steel Panel- Eggshell", 10547"sku":"MTO34G276EG", 10548"description":"Arrow 6' 34 Gauge Classic 27\" W Steel Panel- Eggshell", 10549"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/3\/c\/3c9c8045b728cbdd3abcbb9b3ffc92848a03b856_1oej6xgjz2h1u9eh.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 10550"offers":{ 10551"@type":"Offer", 10552"@id":"https:\/\/www.shelterlogic.com\/arrow-6-34-gauge-27-w-steel-panel-eggshell#product.offer", 10553"name":"Arrow 6' 34 Gauge Classic 27\" W Steel Panel- Eggshell", 10554"priceCurrency":"USD", 10555"price":12.99, 10556"url":"https:\/\/www.shelterlogic.com\/arrow-6-34-gauge-27-w-steel-panel-eggshell", 10557"availability":"https:\/\/schema.org\/InStock" 10558} 10559 10560} 10561, 10562{ 10563"@type":"Product", 10564"@id":"https:\/\/www.shelterlogic.com\/arrow-8-34-gauge-27-w-steel-panel-blue-grey#product", 10565"url":"https:\/\/www.shelterlogic.com\/arrow-8-34-gauge-27-w-steel-panel-blue-grey", 10566"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/arrow-8-34-gauge-27-w-steel-panel-blue-grey", 10567"name":"Arrow 8' 34 Gauge Classic 27\" W Steel Panel- Blue Grey", 10568"sku":"MTO34G278BG", 10569"description":"Arrow 8' 34 Gauge Classic 27\" W Steel Panel- Blue Grey", 10570"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/4\/4\/44a5666bf07345245e0b2f48ee7b1f72ec8138a2_j6wyqnoylxoe0wh4.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 10571"offers":{ 10572"@type":"Offer", 10573"@id":"https:\/\/www.shelterlogic.com\/arrow-8-34-gauge-27-w-steel-panel-blue-grey#product.offer", 10574"name":"Arrow 8' 34 Gauge Classic 27\" W Steel Panel- Blue Grey", 10575"priceCurrency":"USD", 10576"price":16.99, 10577"url":"https:\/\/www.shelterlogic.com\/arrow-8-34-gauge-27-w-steel-panel-blue-grey", 10578"availability":"https:\/\/schema.org\/InStock" 10579} 10580 10581} 10582, 10583{ 10584"@type":"Product", 10585"@id":"https:\/\/www.shelterlogic.com\/arrow-8-34-gauge-27-w-steel-panel-charcoal#product", 10586"url":"https:\/\/www.shelterlogic.com\/arrow-8-34-gauge-27-w-steel-panel-charcoal", 10587"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/arrow-8-34-gauge-27-w-steel-panel-charcoal", 10588"name":"Arrow 8' 34 Gauge Classic 27\" W Steel Panel- Charcoal", 10589"sku":"MTO34G278CC", 10590"description":"Arrow 8' 34 Gauge Classic 27\" W Steel Panel- Charcoal", 10591"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/6\/6\/66ff1417dba83d7b5d696872d8c098d92fcdf299_6mgae5poanq1ezvf.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 10592"offers":{ 10593"@type":"Offer", 10594"@id":"https:\/\/www.shelterlogic.com\/arrow-8-34-gauge-27-w-steel-panel-charcoal#product.offer", 10595"name":"Arrow 8' 34 Gauge Classic 27\" W Steel Panel- Charcoal", 10596"priceCurrency":"USD", 10597"price":16.99, 10598"url":"https:\/\/www.shelterlogic.com\/arrow-8-34-gauge-27-w-steel-panel-charcoal", 10599"availability":"https:\/\/schema.org\/InStock" 10600} 10601 10602} 10603, 10604{ 10605"@type":"Product", 10606"@id":"https:\/\/www.shelterlogic.com\/arrow-8-34-gauge-27-w-steel-panel-coffee#product", 10607"url":"https:\/\/www.shelterlogic.com\/arrow-8-34-gauge-27-w-steel-panel-coffee", 10608"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/arrow-8-34-gauge-27-w-steel-panel-coffee", 10609"name":"Arrow 8' 34 Gauge Classic 27\" W Steel Panel- Coffee", 10610"sku":"MTO34G278CO", 10611"description":"Arrow 8' 34 Gauge Classic 27\" W Steel Panel- Coffee", 10612"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/9\/1\/918b126c79d5b4771ebc482622c42aab93505b0b_naevazg8m1ajo2w2.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 10613"offers":{ 10614"@type":"Offer", 10615"@id":"https:\/\/www.shelterlogic.com\/arrow-8-34-gauge-27-w-steel-panel-coffee#product.offer", 10616"name":"Arrow 8' 34 Gauge Classic 27\" W Steel Panel- Coffee", 10617"priceCurrency":"USD", 10618"price":16.99, 10619"url":"https:\/\/www.shelterlogic.com\/arrow-8-34-gauge-27-w-steel-panel-coffee", 10620"availability":"https:\/\/schema.org\/InStock" 10621} 10622 10623} 10624, 10625{ 10626"@type":"Product", 10627"@id":"https:\/\/www.shelterlogic.com\/arrow-8-34-gauge-27-w-steel-panel-eggshell#product", 10628"url":"https:\/\/www.shelterlogic.com\/arrow-8-34-gauge-27-w-steel-panel-eggshell", 10629"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/arrow-8-34-gauge-27-w-steel-panel-eggshell", 10630"name":"Arrow 8' 34 Gauge Classic 27\" W Steel Panel- Eggshell", 10631"sku":"MTO34G278EG", 10632"description":"Arrow 8' 34 Gauge Classic 27\" W Steel Panel- Eggshell", 10633"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/3\/c\/3c9c8045b728cbdd3abcbb9b3ffc92848a03b856_zmbxlana4ewy9hcz.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 10634"offers":{ 10635"@type":"Offer", 10636"@id":"https:\/\/www.shelterlogic.com\/arrow-8-34-gauge-27-w-steel-panel-eggshell#product.offer", 10637"name":"Arrow 8' 34 Gauge Classic 27\" W Steel Panel- Eggshell", 10638"priceCurrency":"USD", 10639"price":16.99, 10640"url":"https:\/\/www.shelterlogic.com\/arrow-8-34-gauge-27-w-steel-panel-eggshell", 10641"availability":"https:\/\/schema.org\/InStock" 10642} 10643 10644} 10645 10646] 10647, 10648"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/arrow-steel-panels-34-gauge", 10649"name":"Arrow 34 Gauge Galvanized Steel Panels", 10650"sku":"ArrowSteelPanels34", 10651"description":"Constructed from 34-gauge galvanized steel, these versatile corrugated panels are engineered for rust and corrosion resistance, providing premium protection against rain and snow. Measuring 27 inches wide by 5, 6, or 8 feet long, they are ideal for repairing or replacing roofs and walls on garages, sheds, carports, mobile homes, and various other structures.", 10652"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/3\/4\/34gauge_steel_panel_allcolors_silo_image_02_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265" 10653} 10654 10655} 10656, 10657{ 10658"@type":"ListItem", 10659"position":2, 10660"item":{ 10661"productGroupID":"Arrow Steel Panels", 10662"@type":"ProductGroup", 10663"@id":"https:\/\/www.shelterlogic.com\/arrow-steel-panels-28-gauge#product_group", 10664"url":"https:\/\/www.shelterlogic.com\/arrow-steel-panels-28-gauge", 10665"offers":{ 10666"@type":"AggregateOffer", 10667"@id":"https:\/\/www.shelterlogic.com\/arrow-steel-panels-28-gauge#product.aggregate_offer", 10668"priceCurrency":"USD", 10669"highPrice":14.99, 10670"lowPrice":14.99, 10671"offerCount":10, 10672"availability":"https:\/\/schema.org\/InStock" 10673} 10674, 10675"hasVariant":[ 10676{ 10677"@type":"Product", 10678"@id":"https:\/\/www.shelterlogic.com\/arrow-5-28-gauge-28-w-steel-panel-blue-grey#product", 10679"url":"https:\/\/www.shelterlogic.com\/arrow-5-28-gauge-28-w-steel-panel-blue-grey", 10680"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/arrow-5-28-gauge-28-w-steel-panel-blue-grey", 10681"name":"Arrow 5' 28 Gauge Ag 28\" W Steel Panel- Blue Grey", 10682"sku":"MTO28G285BG", 10683"description":"Arrow 5' 28 Gauge Ag 28\" W Steel Panel- Blue Grey", 10684"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/7\/0\/700cdc56111197ac8923c509f8c024a66ba48f89_t4ltb73grvrlvwgo.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 10685"offers":{ 10686"@type":"Offer", 10687"@id":"https:\/\/www.shelterlogic.com\/arrow-5-28-gauge-28-w-steel-panel-blue-grey#product.offer", 10688"name":"Arrow 5' 28 Gauge Ag 28\" W Steel Panel- Blue Grey", 10689"priceCurrency":"USD", 10690"price":14.99, 10691"url":"https:\/\/www.shelterlogic.com\/arrow-5-28-gauge-28-w-steel-panel-blue-grey", 10692"availability":"https:\/\/schema.org\/OutOfStock" 10693} 10694 10695} 10696, 10697{ 10698"@type":"Product", 10699"@id":"https:\/\/www.shelterlogic.com\/arrow-5-28-gauge-28-w-steel-panel-charcoal#product", 10700"url":"https:\/\/www.shelterlogic.com\/arrow-5-28-gauge-28-w-steel-panel-charcoal", 10701"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/arrow-5-28-gauge-28-w-steel-panel-charcoal", 10702"name":"Arrow 5' 28 Gauge Ag 28\" W Steel Panel- Charcoal", 10703"sku":"MTO28G285CC", 10704"description":"Arrow 5' 28 Gauge Ag 28\" W Steel Panel- Charcoal", 10705"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/6\/b\/6b2630f1b424a2bfa2eaa9c479181187ff820812_5pdrb3qehdl83ige.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 10706"offers":{ 10707"@type":"Offer", 10708"@id":"https:\/\/www.shelterlogic.com\/arrow-5-28-gauge-28-w-steel-panel-charcoal#product.offer", 10709"name":"Arrow 5' 28 Gauge Ag 28\" W Steel Panel- Charcoal", 10710"priceCurrency":"USD", 10711"price":14.99, 10712"url":"https:\/\/www.shelterlogic.com\/arrow-5-28-gauge-28-w-steel-panel-charcoal", 10713"availability":"https:\/\/schema.org\/InStock" 10714} 10715 10716} 10717, 10718{ 10719"@type":"Product", 10720"@id":"https:\/\/www.shelterlogic.com\/arrow-5-28-gauge-28-w-steel-panel-eggshell#product", 10721"url":"https:\/\/www.shelterlogic.com\/arrow-5-28-gauge-28-w-steel-panel-eggshell", 10722"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/arrow-5-28-gauge-28-w-steel-panel-eggshell", 10723"name":"Arrow 5' 28 Gauge Ag 28\" W Steel Panel- Eggshell", 10724"sku":"MTO28G285EG", 10725"description":"Arrow 5' 28 Gauge Ag 28\" W Steel Panel- Eggshell", 10726"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/5\/f\/5fded38c1b56eb9ddc47c7e170f82ebffa3378fa_absqnahrccvpfblh.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 10727"offers":{ 10728"@type":"Offer", 10729"@id":"https:\/\/www.shelterlogic.com\/arrow-5-28-gauge-28-w-steel-panel-eggshell#product.offer", 10730"name":"Arrow 5' 28 Gauge Ag 28\" W Steel Panel- Eggshell", 10731"priceCurrency":"USD", 10732"price":14.99, 10733"url":"https:\/\/www.shelterlogic.com\/arrow-5-28-gauge-28-w-steel-panel-eggshell", 10734"availability":"https:\/\/schema.org\/InStock" 10735} 10736 10737} 10738, 10739{ 10740"@type":"Product", 10741"@id":"https:\/\/www.shelterlogic.com\/arrow-6-28-gauge-28-w-steel-panel-blue-grey#product", 10742"url":"https:\/\/www.shelterlogic.com\/arrow-6-28-gaug
10742e-28-w-steel-panel-blue-grey", 10743"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/arrow-6-28-gauge-28-w-steel-panel-blue-grey", 10744"name":"Arrow 6' 28 Gauge Ag 28\" W Steel Panel- Blue Grey", 10745"sku":"MTO28G286BG", 10746"description":"Arrow 6' 28 Gauge Ag 28\" W Steel Panel- Blue Grey", 10747"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/7\/0\/700cdc56111197ac8923c509f8c024a66ba48f89_ikcnud1fjblrsht1.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 10748"offers":{ 10749"@type":"Offer", 10750"@id":"https:\/\/www.shelterlogic.com\/arrow-6-28-gauge-28-w-steel-panel-blue-grey#product.offer", 10751"name":"Arrow 6' 28 Gauge Ag 28\" W Steel Panel- Blue Grey", 10752"priceCurrency":"USD", 10753"price":17.99, 10754"url":"https:\/\/www.shelterlogic.com\/arrow-6-28-gauge-28-w-steel-panel-blue-grey", 10755"availability":"https:\/\/schema.org\/OutOfStock" 10756} 10757 10758} 10759, 10760{ 10761"@type":"Product", 10762"@id":"https:\/\/www.shelterlogic.com\/arrow-6-28-gauge-28-w-steel-panel-charcoal#product", 10763"url":"https:\/\/www.shelterlogic.com\/arrow-6-28-gauge-28-w-steel-panel-charcoal", 10764"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/arrow-6-28-gauge-28-w-steel-panel-charcoal", 10765"name":"Arrow 6' 28 Gauge Ag 28\" W Steel Panel- Charcoal", 10766"sku":"MTO28G286CC", 10767"description":"Arrow 6' 28 Gauge Ag 28\" W Steel Panel- Charcoal", 10768"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/6\/b\/6b2630f1b424a2bfa2eaa9c479181187ff820812_6zduqqh3jsi1uj77.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 10769"offers":{ 10770"@type":"Offer", 10771"@id":"https:\/\/www.shelterlogic.com\/arrow-6-28-gauge-28-w-steel-panel-charcoal#product.offer", 10772"name":"Arrow 6' 28 Gauge Ag 28\" W Steel Panel- Charcoal", 10773"priceCurrency":"USD", 10774"price":17.99, 10775"url":"https:\/\/www.shelterlogic.com\/arrow-6-28-gauge-28-w-steel-panel-charcoal", 10776"availability":"https:\/\/schema.org\/InStock" 10777} 10778 10779} 10780, 10781{ 10782"@type":"Product", 10783"@id":"https:\/\/www.shelterlogic.com\/arrow-6-28-gauge-28-w-steel-panel-eggshell#product", 10784"url":"https:\/\/www.shelterlogic.com\/arrow-6-28-gauge-28-w-steel-panel-eggshell", 10785"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/arrow-6-28-gauge-28-w-steel-panel-eggshell", 10786"name":"Arrow 6' 28 Gauge Ag 28\" W Steel Panel- Eggshell", 10787"sku":"MTO28G286EG", 10788"description":"Arrow 6' 28 Gauge Ag 28\" W Steel Panel- Eggshell", 10789"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/5\/f\/5fded38c1b56eb9ddc47c7e170f82ebffa3378fa_6u2phbciwe2jbdz3.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 10790"offers":{ 10791"@type":"Offer", 10792"@id":"https:\/\/www.shelterlogic.com\/arrow-6-28-gauge-28-w-steel-panel-eggshell#product.offer", 10793"name":"Arrow 6' 28 Gauge Ag 28\" W Steel Panel- Eggshell", 10794"priceCurrency":"USD", 10795"price":17.99, 10796"url":"https:\/\/www.shelterlogic.com\/arrow-6-28-gauge-28-w-steel-panel-eggshell", 10797"availability":"https:\/\/schema.org\/InStock" 10798} 10799 10800} 10801, 10802{ 10803"@type":"Product", 10804"@id":"https:\/\/www.shelterlogic.com\/arrow-8-28-gauge-28-w-steel-panel-blue-grey#product", 10805"url":"https:\/\/www.shelterlogic.com\/arrow-8-28-gauge-28-w-steel-panel-blue-grey", 10806"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/arrow-8-28-gauge-28-w-steel-panel-blue-grey", 10807"name":"Arrow 8' 28 Gauge Ag 28\" W Steel Panel- Blue Grey", 10808"sku":"MTO28G288BG", 10809"description":"Arrow 8' 28 Gauge Ag 28\" W Steel Panel- Blue Grey", 10810"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/7\/0\/700cdc56111197ac8923c509f8c024a66ba48f89_oukdf4yj3ffgaoix.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 10811"offers":{ 10812"@type":"Offer", 10813"@id":"https:\/\/www.shelterlogic.com\/arrow-8-28-gauge-28-w-steel-panel-blue-grey#product.offer", 10814"name":"Arrow 8' 28 Gauge Ag 28\" W Steel Panel- Blue Grey", 10815"priceCurrency":"USD", 10816"price":23.99, 10817"url":"https:\/\/www.shelterlogic.com\/arrow-8-28-gauge-28-w-steel-panel-blue-grey", 10818"availability":"https:\/\/schema.org\/OutOfStock" 10819} 10820 10821} 10822, 10823{ 10824"@type":"Product", 10825"@id":"https:\/\/www.shelterlogic.com\/arrow-8-28-gauge-28-w-steel-panel-charcoal#product", 10826"url":"https:\/\/www.shelterlogic.com\/arrow-8-28-gauge-28-w-steel-panel-charcoal", 10827"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/arrow-8-28-gauge-28-w-steel-panel-charcoal", 10828"name":"Arrow 8' 28 Gauge Ag 28\" W Steel Panel- Charcoal", 10829"sku":"MTO28G288CC", 10830"description":"Arrow 8' 28 Gauge Ag 28\" W Steel Panel- Charcoal", 10831"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/6\/b\/6b2630f1b424a2bfa2eaa9c479181187ff820812_0somlwf3bt5tk0dt.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 10832"offers":{ 10833"@type":"Offer", 10834"@id":"https:\/\/www.shelterlogic.com\/arrow-8-28-gauge-28-w-steel-panel-charcoal#product.offer", 10835"name":"Arrow 8' 28 Gauge Ag 28\" W Steel Panel- Charcoal", 10836"priceCurrency":"USD", 10837"price":23.99, 10838"url":"https:\/\/www.shelterlogic.com\/arrow-8-28-gauge-28-w-steel-panel-charcoal", 10839"availability":"https:\/\/schema.org\/InStock" 10840} 10841 10842} 10843, 10844{ 10845"@type":"Product", 10846"@id":"https:\/\/www.shelterlogic.com\/arrow-8-28-gauge-28-w-steel-panel-eggshell#product", 10847"url":"https:\/\/www.shelterlogic.com\/arrow-8-28-gauge-28-w-steel-panel-eggshell", 10848"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/arrow-8-28-gauge-28-w-steel-panel-eggshell", 10849"name":"Arrow 8' 28 Gauge Ag 28\" W Steel Panel- Eggshell", 10850"sku":"MTO28G288EG", 10851"description":"Arrow 8' 28 Gauge Ag 28\" W Steel Panel- Eggshell", 10852"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/5\/f\/5fded38c1b56eb9ddc47c7e170f82ebffa3378fa_p6egydiw8vfzsncv.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 10853"offers":{ 10854"@type":"Offer", 10855"@id":"https:\/\/www.shelterlogic.com\/arrow-8-28-gauge-28-w-steel-panel-eggshell#product.offer", 10856"name":"Arrow 8' 28 Gauge Ag 28\" W Steel Panel- Eggshell", 10857"priceCurrency":"USD", 10858"price":23.99, 10859"url":"https:\/\/www.shelterlogic.com\/arrow-8-28-gauge-28-w-steel-panel-eggshell", 10860"availability":"https:\/\/schema.org\/InStock" 10861} 10862 10863} 10864, 10865{ 10866"@type":"Product", 10867"@id":"https:\/\/www.shelterlogic.com\/arrow-8-28-gauge-28-w-steel-panel-sage-green#product", 10868"url":"https:\/\/www.shelterlogic.com\/arrow-8-28-gauge-28-w-steel-panel-sage-green", 10869"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/arrow-8-28-gauge-28-w-steel-panel-sage-green", 10870"name":"Arrow 8' 28 Gauge Ag 28\" W Steel Panel- Sage Green", 10871"sku":"MTO28G288SG", 10872"description":"Arrow 8' 28 Gauge Ag 28\" W Steel Panel- Sage Green", 10873"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/7\/4\/74607cd41031da0758af55d66d3ab539749d2895_w6xy9xq39u9udqqt.jpg?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 10874"offers":{ 10875"@type":"Offer", 10876"@id":"https:\/\/www.shelterlogic.com\/arrow-8-28-gauge-28-w-steel-panel-sage-green#product.offer", 10877"name":"Arrow 8' 28 Gauge Ag 28\" W Steel Panel- Sage Green", 10878"priceCurrency":"USD", 10879"price":23.99, 10880"url":"https:\/\/www.shelterlogic.com\/arrow-8-28-gauge-28-w-steel-panel-sage-green", 10881"availability":"https:\/\/schema.org\/InStock" 10882} 10883 10884} 10885 10886] 10887, 10888"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/arrow-steel-panels-28-gauge", 10889"name":"Arrow 28 Gauge Galvanized Steel Panels", 10890"sku":"ArrowSteelPanels", 10891"description":"Constructed from 28-gauge galvanized steel, these versatile corrugated panels are engineered for rust and corrosion resistance, providing premium protection against rain and snow. Measuring 28 inches wide by 5, 6, or 8 feet long, they are ideal for repairing or replacing roofs and walls on garages, sheds, carports, mobile homes, and various other structures.", 10892"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/2\/8\/28gauge_steel_panel_allcolors_silo_image_02_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265" 10893} 10894 10895} 10896, 10897{ 10898"@type":"ListItem", 10899"position":3, 10900"item":{ 10901"productGroupID":"ShelterTube40UDKit", 10902"@type":"ProductGroup", 10903"@id":"https:\/\/www.shelterlogic.com\/sheltertube-wind-and-snow-rated-garage-utra-duty-cover-15-year-warranty#product_group", 10904"url":"https:\/\/www.shelterlogic.com\/sheltertube-wind-and-snow-rated-garage-utra-duty-cover-15-year-warranty", 10905"offers":{ 10906"@type":"AggregateOffer", 10907"@id":"https:\/\/www.shelterlogic.com\/sheltertube-wind-and-snow-rated-garage-utra-duty-cover-15-year-warranty#product.aggregate_offer", 10908"priceCurrency":"USD", 10909"highPrice":2599.99, 10910"lowPrice":2599.99, 10911"offerCount":86, 10912"availability":"https:\/\/schema.org\/InStock" 10913} 10914, 10915"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/sheltertube-wind-and-snow-rated-garage-utra-duty-cover-15-year-warranty", 10916"name":"ShelterTube® Wind and Snow Rated Garage, Utra Duty Cover (15-year warranty)", 10917"sku":"ShelterTube40UDKit", 10918"description":"Our ShelterTube® Garage is the ultimate square tube steel framed fabric covered shelter that can withstand the elements in all different types of environments. These robust shelters boast a wind and snow rating that surpasses the durability of most basic fabric storage structures on the market today. The 12 ft. wide shelters can be ordered up to 100 ft. long.", 10919"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/n\/e\/new_ultra_1_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265" 10920} 10921 10922} 10923, 10924{ 10925"@type":"ListItem", 10926"position":4, 10927"item":{ 10928"productGroupID":"ShelterTube40HDKit", 10929"@type":"ProductGroup", 10930"@id":"https:\/\/www.shelterlogic.com\/sheltertube-wind-and-snow-rated-garage-heavy-duty-cover-10-year-warranty#product_group", 10931"url":"https:\/\/www.shelterlogic.com\/sheltertube-wind-and-snow-rated-garage-heavy-duty-cover-10-year-warranty", 10932"offers":{ 10933"@type":"AggregateOffer", 10934"@id":"https:\/\/www.shelterlogic.com\/sheltertube-wind-and-snow-rated-garage-heavy-duty-cover-10-year-warranty#product.aggregate_offer", 10935"priceCurrency":"USD", 10936"highPrice":2199.99, 10937"lowPrice":2199.99,
10938"offerCount":173, 10939"availability":"https:\/\/schema.org\/InStock" 10940} 10941, 10942"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/sheltertube-wind-and-snow-rated-garage-heavy-duty-cover-10-year-warranty", 10943"name":"ShelterTube® Wind and Snow Rated Garage, Heavy Duty Cover (10-year warranty)", 10944"sku":"ShelterTube40HDKit", 10945"description":"Our ShelterTube® Garage is the ultimate square tube steel framed fabric covered shelter that can withstand the elements in all different types of environments. These robust shelters boast a wind and snow rating that surpasses the durability of most basic fabric storage structures on the market today. The 12 ft. wide shelters can be ordered up to 100 ft. long.", 10946"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/n\/e\/new_heavy_1_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265" 10947} 10948 10949} 10950, 10951{ 10952"@type":"ListItem", 10953"position":5, 10954"item":{ 10955"productGroupID":"ShelterTube40STKit", 10956"@type":"ProductGroup", 10957"@id":"https:\/\/www.shelterlogic.com\/sheltertube-wind-and-snow-rated-garage-starter-cover-1-year-warranty#product_group", 10958"url":"https:\/\/www.shelterlogic.com\/sheltertube-wind-and-snow-rated-garage-starter-cover-1-year-warranty", 10959"offers":{ 10960"@type":"AggregateOffer", 10961"@id":"https:\/\/www.shelterlogic.com\/sheltertube-wind-and-snow-rated-garage-starter-cover-1-year-warranty#product.aggregate_offer", 10962"priceCurrency":"USD", 10963"highPrice":1699.99, 10964"lowPrice":1699.99, 10965"offerCount":131, 10966"availability":"https:\/\/schema.org\/InStock" 10967} 10968, 10969"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/sheltertube-wind-and-snow-rated-garage-starter-cover-1-year-warranty", 10970"name":"ShelterTube® Wind and Snow Rated Garage, Starter Cover (1-year warranty)", 10971"sku":"ShelterTube40STKit", 10972"description":"Our ShelterTube® Garage is the ultimate square tube steel framed fabric covered shelter that can withstand the elements in all different types of environments. These robust shelters boast a wind and snow rating that surpasses the durability of most basic fabric storage structures on the market today. The 12 ft. wide shelters can be ordered up to 100 ft. long.", 10973"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/n\/e\/new_standard_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265" 10974} 10975 10976} 10977, 10978{ 10979"@type":"ListItem", 10980"position":6, 10981"item":{ 10982"productGroupID":"ACW", 10983"@type":"ProductGroup", 10984"@id":"https:\/\/www.shelterlogic.com\/arrow-carport-with-enclosure#product_group", 10985"url":"https:\/\/www.shelterlogic.com\/arrow-carport-with-enclosure", 10986"offers":{ 10987"@type":"AggregateOffer", 10988"@id":"https:\/\/www.shelterlogic.com\/arrow-carport-with-enclosure#product.aggregate_offer", 10989"priceCurrency":"USD", 10990"highPrice":1327.99, 10991"lowPrice":1327.99, 10992"offerCount":504, 10993"availability":"https:\/\/schema.org\/InStock" 10994} 10995, 10996"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/arrow-carport-with-enclosure", 10997"name":"Arrow Carport With Sides - Configure Your Own", 10998"sku":"ACW", 10999"description":"The all-steel Arrow Metal Carport Kit with sides is a convenient, versatile, and practical all-weather shade and shelter solution that can be used anywhere you need protection from the elements.", 11000"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/c\/a\/carport-enclosure.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265" 11001} 11002 11003} 11004, 11005{ 11006"@type":"ListItem", 11007"position":7, 11008"item":{ 11009"productGroupID":"BaseballFieldSpotCover", 11010"@type":"ProductGroup", 11011"@id":"https:\/\/www.shelterlogic.com\/baseball-field-spot-cover#product_group", 11012"url":"https:\/\/www.shelterlogic.com\/baseball-field-spot-cover", 11013"offers":{ 11014"@type":"AggregateOffer", 11015"@id":"https:\/\/www.shelterlogic.com\/baseball-field-spot-cover#product.aggregate_offer", 11016"priceCurrency":"USD", 11017"highPrice":29.99, 11018"lowPrice":29.99, 11019"offerCount":105, 11020"availability":"https:\/\/schema.org\/InStock" 11021} 11022, 11023"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/baseball-field-spot-cover", 11024"name":"Baseball Field Spot Cover", 11025"sku":"BaseballFieldSpotCover", 11026"description":"When a baseball field spot cover is used to cover the pitching mound, on-deck circle, or home plate circle during a rain delay, your field will be playable when the rain stops, cut down on maintenance time and costs, and reduce the chance that players suffer an injury. ShelterLogic home plate tarps and pitching mound tarps are Made in the USA, they are designed to extend just beyond the infield skin area of the pitching mound, on-deck circle, and home plate circle.", 11027"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/c\/t\/ct17yo9rxe5ufc0moxxg.jpeg?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265" 11028} 11029 11030} 11031, 11032{ 11033"@type":"ListItem", 11034"position":8, 11035"item":{ 11036"productGroupID":"SoftballFieldTarps", 11037"@type":"ProductGroup", 11038"@id":"https:\/\/www.shelterlogic.com\/softball-field-tarps-53124#product_group", 11039"url":"https:\/\/www.shelterlogic.com\/softball-field-tarps-53124", 11040"offers":{ 11041"@type":"AggregateOffer", 11042"@id":"https:\/\/www.shelterlogic.com\/softball-field-tarps-53124#product.aggregate_offer", 11043"priceCurrency":"USD", 11044"highPrice":3319.99, 11045"lowPrice":3319.99, 11046"offerCount":20, 11047"availability":"https:\/\/schema.org\/InStock" 11048} 11049, 11050"hasVariant":[ 11051{ 11052"@type":"Product", 11053"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-110x110-5-5-oz-sandstone#product", 11054"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-110x110-5-5-oz-sandstone", 11055"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-110x110-5-5-oz-sandstone", 11056"name":"Baseball Field Tarp 110X110 5.5 oz. Sandstone", 11057"sku":"FCSA000605011011000", 11058"description":"When a baseball field tarp is used to cover the infield during a rain delay, it will make your field playable as soon as the precipitation stops, cut down on maintenance time and costs, and reduce the chance that players suffer an injury. ShelterLogic baseball field tarps are Made in the USA of durable polyethylene. These
11058covers are designed to extend just beyond the infield skin and cover the coach's boxes and on-deck circles. They have pull-handles and grommets every 10 ft.", 11059"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/m\/p\/mp29uv9n43xfh8rhdus8.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 11060"offers":{ 11061"@type":"Offer", 11062"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-110x110-5-5-oz-sandstone#product.offer", 11063"name":"Baseball Field Tarp 110X110 5.5 oz. Sandstone", 11064"priceCurrency":"USD", 11065"price":3319.99, 11066"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-110x110-5-5-oz-sandstone", 11067"availability":"https:\/\/schema.org\/InStock" 11068} 11069 11070} 11071, 11072{ 11073"@type":"Product", 11074"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-110x110-7-5-oz-green-and-white#product", 11075"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-110x110-7-5-oz-green-and-white", 11076"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-110x110-7-5-oz-green-and-white", 11077"name":"Baseball Field Tarp 110X110 7.5 oz. Green and White", 11078"sku":"FCSA000104011011000", 11079"description":"When a baseball field tarp is used to cover the infield during a rain delay, it will make your field playable as soon as the precipitation stops, cut down on maintenance time and costs, and reduce the chance that players suffer an injury. ShelterLogic baseball field tarps are Made in the USA of durable polyethylene. These covers are designed to extend just beyond the infield skin and cover the coach's boxes and on-deck circles. They have pull-handles and grommets every 10 ft.", 11080"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/p\/c\/pcskkdygevn4e2tbosvm.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 11081"offers":{ 11082"@type":"Offer", 11083"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-110x110-7-5-oz-green-and-white#product.offer", 11084"name":"Baseball Field Tarp 110X110 7.5 oz. Green and White", 11085"priceCurrency":"USD", 11086"price":3549.99, 11087"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-110x110-7-5-oz-green-and-white", 11088"availability":"https:\/\/schema.org\/InStock" 11089} 11090 11091} 11092, 11093{ 11094"@type":"Product", 11095"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-110x110-7-5-oz-tan-and-white#product", 11096"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-110x110-7-5-oz-tan-and-white", 11097"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-110x110-7-5-oz-tan-and-white", 11098"name":"Baseball Field Tarp 110X110 7.5 oz. Tan and White", 11099"sku":"FCSA000105011011000", 11100"description":"When a baseball field tarp is used to cover the infield during a rain delay, it will make your field playable as soon as the precipitation stops, cut down on maintenance time and costs, and reduce the chance that players suffer an injury. ShelterLogic baseball field tarps are Made in the USA of durable polyethylene. These covers are designed to extend just beyond the infield skin and cover the coach's boxes and on-deck circles. They have pull-handles and grommets every 10 ft.", 11101"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/w\/e\/wemyqaetwjwqphj3gfw4.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 11102"offers":{ 11103"@type":"Offer", 11104"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-110x110-7-5-oz-tan-and-white#product.offer", 11105"name":"Baseball Field Tarp 110X110 7.5 oz. Tan and White", 11106"priceCurrency":"USD", 11107"price":3549.99, 11108"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-110x110-7-5-oz-tan-and-white", 11109"availability":"https:\/\/schema.org\/InStock" 11110} 11111 11112} 11113, 11114{ 11115"@type":"Product", 11116"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-110x110-7-5-oz-white-and-white#product", 11117"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-110x110-7-5-oz-white-and-white", 11118"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-110x110-7-5-oz-white-and-white", 11119"name":"Baseball Field Tarp 110X110 7.5 oz. White and White", 11120"sku":"FCSA000101011011000", 11121"description":"When a baseball field tarp is used to cover the infield during a rain delay, it will make your field playable as soon as the precipitation stops, cut down on maintenance time and costs, and reduce the chance that players suffer an injury. ShelterLogic baseball field tarps are Made in the USA of durable polyethylene. These
11121covers are designed to extend just beyond the infield skin and cover the coach's boxes and on-deck circles. They have pull-handles and grommets every 10 ft.", 11122"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/m\/r\/mrben2x21180weifxngl.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 11123"offers":{ 11124"@type":"Offer", 11125"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-110x110-7-5-oz-white-and-white#product.offer", 11126"name":"Baseball Field Tarp 110X110 7.5 oz. White and White", 11127"priceCurrency":"USD", 11128"price":3549.99, 11129"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-110x110-7-5-oz-white-and-white", 11130"availability":"https:\/\/schema.org\/InStock" 11131} 11132 11133} 11134, 11135{ 11136"@type":"Product", 11137"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-110x110-7-5-oz-gray-and-white#product", 11138"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-110x110-7-5-oz-gray-and-white", 11139"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-110x110-7-5-oz-gray-and-white", 11140"name":"Baseball Field Tarp 110X110 7.5 oz. Gray and White", 11141"sku":"FCSA000103011011000", 11142"description":"When a baseball field tarp is used to cover the infield during a rain delay, it will make your field playable as soon as the precipitation stops, cut down on maintenance time and costs, and reduce the chance that players suffer an injury. ShelterLogic baseball field tarps are Made in the USA of durable polyethylene. These covers are designed to extend just beyond the infield skin and cover the coach's boxes and on-deck circles. They have pull-handles and grommets every 10 ft.", 11143"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/h\/9\/h9hnx5uin5jy48yrjhta.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 11144"offers":{ 11145"@type":"Offer", 11146"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-110x110-7-5-oz-gray-and-white#product.offer", 11147"name":"Baseball Field Tarp 110X110 7.5 oz. Gray and White", 11148"priceCurrency":"USD", 11149"price":3549.99, 11150"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-110x110-7-5-oz-gray-and-white", 11151"availability":"https:\/\/schema.org\/InStock" 11152} 11153 11154} 11155, 11156{ 11157"@type":"Product", 11158"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-120x120-5-5-oz-sandstone#product", 11159"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-120x120-5-5-oz-sandstone", 11160"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-120x120-5-5-oz-sandstone", 11161"name":"Baseball Field Tarp 120X120 5.5 oz. Sandstone", 11162"sku":"FCSA000605012012000", 11163"description":"When a baseball field tarp is used to cover the infield during a rain delay, it will make your field playable as soon as the precipitation stops, cut down on maintenance time and costs, and reduce the chance that players suffer an injury. ShelterLogic baseball field tarps are Made in the USA of durable polyethylene. These covers are designed to extend just beyond the infield skin and cover the coach's boxes and on-deck circles. They have pull-handles and grommets every 10 ft.", 11164"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/q\/c\/qco99krqranweyxvsvn4.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 11165"offers":{ 11166"@type":"Offer", 11167"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-120x120-5-5-oz-sandstone#product.offer", 11168"name":"Baseball Field Tarp 120X120 5.5 oz. Sandstone", 11169"priceCurrency":"USD", 11170"price":3999.99, 11171"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-120x120-5-5-oz-sandstone", 11172"availability":"https:\/\/schema.org\/InStock" 11173} 11174 11175} 11176, 11177{ 11178"@type":"Product", 11179"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-120x120-7-5-oz-green-and-white#product", 11180"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-120x120-7-5-oz-green-and-white", 11181"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-120x120-7-5-oz-green-and-white", 11182"name":"Baseball Field Tarp 120X120 7.5 oz. Green and White", 11183"sku":"FCSA000104012012000", 11184"description":"When a baseball field tarp is used to cover the infield during a rain delay, it will make your field playable as soon as the precipitation stops, cut down on maintenance time and costs, and reduce the chance that players suffer an injury. ShelterLogic baseball field tarps are Made in the USA of durable polyethylene. These
11184covers are designed to extend just beyond the infield skin and cover the coach's boxes and on-deck circles. They have pull-handles and grommets every 10 ft.", 11185"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/i\/t\/it1lx3w0ed2sbgj0jzbe.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 11186"offers":{ 11187"@type":"Offer", 11188"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-120x120-7-5-oz-green-and-white#product.offer", 11189"name":"Baseball Field Tarp 120X120 7.5 oz. Green and White", 11190"priceCurrency":"USD", 11191"price":4299.99, 11192"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-120x120-7-5-oz-green-and-white", 11193"availability":"https:\/\/schema.org\/InStock" 11194} 11195 11196} 11197, 11198{ 11199"@type":"Product", 11200"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-120x120-7-5-oz-tan-and-white#product", 11201"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-120x120-7-5-oz-tan-and-white", 11202"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-120x120-7-5-oz-tan-and-white", 11203"name":"Baseball Field Tarp 120X120 7.5 oz. Tan and White", 11204"sku":"FCSA000105012012000", 11205"description":"When a baseball field tarp is used to cover the infield during a rain delay, it will make your field playable as soon as the precipitation stops, cut down on maintenance time and costs, and reduce the chance that players suffer an injury. ShelterLogic baseball field tarps are Made in the USA of durable polyethylene. These covers are designed to extend just beyond the infield skin and cover the coach's boxes and on-deck circles. They have pull-handles and grommets every 10 ft.", 11206"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/d\/t\/dtcsozm1ja4ils3dn3if.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 11207"offers":{ 11208"@type":"Offer", 11209"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-120x120-7-5-oz-tan-and-white#product.offer", 11210"name":"Baseball Field Tarp 120X120 7.5 oz. Tan and White", 11211"priceCurrency":"USD", 11212"price":4299.99, 11213"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-120x120-7-5-oz-tan-and-white", 11214"availability":"https:\/\/schema.org\/InStock" 11215} 11216 11217} 11218, 11219{ 11220"@type":"Product", 11221"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-120x120-7-5-oz-white-and-white#product", 11222"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-120x120-7-5-oz-white-and-white", 11223"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-120x120-7-5-oz-white-and-white", 11224"name":"Baseball Field Tarp 120X120 7.5 oz. White and White", 11225"sku":"FCSA000101012012000", 11226"description":"When a baseball field tarp is used to cover the infield during a rain delay, it will make your field playable as soon as the precipitation stops, cut down on maintenance time and costs, and reduce the chance that players suffer an injury. ShelterLogic baseball field tarps are Made in the USA of durable polyethylene. These covers are designed to extend just beyond the infield skin and cover the coach's boxes and on-deck circles. They have pull-handles and grommets every 10 ft.", 11227"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/i\/x\/ixommphvfix0f8rwkzqr.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 11228"offers":{ 11229"@type":"Offer", 11230"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-120x120-7-5-oz-white-and-white#product.offer", 11231"name":"Baseball Field Tarp 120X120 7.5 oz. White and White", 11232"priceCurrency":"USD", 11233"price":4299.99, 11234"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-120x120-7-5-oz-white-and-white", 11235"availability":"https:\/\/schema.org\/InStock" 11236} 11237 11238} 11239, 11240{ 11241"@type":"Product", 11242"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-120x120-7-5-oz-gray-and-white#product", 11243"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-120x120-7-5-oz-gray-and-white", 11244"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-120x120-7-5-oz-gray-and-white", 11245"name":"Baseball Field Tarp 120X120 7.5 oz. Gray and White", 11246"sku":"FCSA000103012012000", 11247"description":"When a baseball field tarp is used to cover the infield during a rain delay, it will make your field playable as soon as the precipitation stops, cut down on maintenance time and costs, and reduce the chance that players suffer an injury. ShelterLogic baseball field tarps are Made in the USA of durable polyethylene. These
11247covers are designed to extend just beyond the infield skin and cover the coach's boxes and on-deck circles. They have pull-handles and grommets every 10 ft.", 11248"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/k\/k\/kkmtmatvnfu2baxvxhs6.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 11249"offers":{ 11250"@type":"Offer", 11251"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-120x120-7-5-oz-gray-and-white#product.offer", 11252"name":"Baseball Field Tarp 120X120 7.5 oz. Gray and White", 11253"priceCurrency":"USD", 11254"price":4299.99, 11255"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-120x120-7-5-oz-gray-and-white", 11256"availability":"https:\/\/schema.org\/InStock" 11257} 11258 11259} 11260, 11261{ 11262"@type":"Product", 11263"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-130x130-5-5-oz-sandstone#product", 11264"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-130x130-5-5-oz-sandstone", 11265"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-130x130-5-5-oz-sandstone", 11266"name":"Baseball Field Tarp 130X130 5.5 oz. Sandstone", 11267"sku":"FCSA000605013013000", 11268"description":"When a baseball field tarp is used to cover the infield during a rain delay, it will make your field playable as soon as the precipitation stops, cut down on maintenance time and costs, and reduce the chance that players suffer an injury. ShelterLogic baseball field tarps are Made in the USA of durable polyethylene. These covers are designed to extend just beyond the infield skin and cover the coach's boxes and on-deck circles. They have pull-handles and grommets every 10 ft.", 11269"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/u\/h\/uh2sxed4ktichz7uh0p4.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 11270"offers":{ 11271"@type":"Offer", 11272"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-130x130-5-5-oz-sandstone#product.offer", 11273"name":"Baseball Field Tarp 130X130 5.5 oz. Sandstone", 11274"priceCurrency":"USD", 11275"price":4599.99, 11276"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-130x130-5-5-oz-sandstone", 11277"availability":"https:\/\/schema.org\/OutOfStock" 11278} 11279 11280} 11281, 11282{ 11283"@type":"Product", 11284"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-130x130-7-5-oz-green-and-white#product", 11285"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-130x130-7-5-oz-green-and-white", 11286"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-130x130-7-5-oz-green-and-white", 11287"name":"Baseball Field Tarp 130X130 7.5 oz. Green and White", 11288"sku":"FCSA000104013013000", 11289"description":"When a baseball field tarp is used to cover the infield during a rain delay, it will make your field playable as soon as the precipitation stops, cut down on maintenance time and costs, and reduce the chance that players suffer an injury. ShelterLogic baseball field tarps are Made in the USA of durable polyethylene. These covers are designed to extend just beyond the infield skin and cover the coach's boxes and on-deck circles. They have pull-handles and grommets every 10 ft.", 11290"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/h\/a\/ha8g8czumh4wxmhdyrvd.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 11291"offers":{ 11292"@type":"Offer", 11293"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-130x130-7-5-oz-green-and-white#product.offer", 11294"name":"Baseball Field Tarp 130X130 7.5 oz. Green and White", 11295"priceCurrency":"USD", 11296"price":4949.99, 11297"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-130x130-7-5-oz-green-and-white", 11298"availability":"https:\/\/schema.org\/OutOfStock" 11299} 11300 11301} 11302, 11303{ 11304"@type":"Product", 11305"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-130x130-7-5-oz-tan-and-white#product", 11306"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-130x130-7-5-oz-tan-and-white", 11307"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-130x130-7-5-oz-tan-and-white", 11308"name":"Baseball Field Tarp 130X130 7.5 oz. Tan and White", 11309"sku":"FCSA000105013013000", 11310"description":"When a baseball field tarp is used to cover the infield during a rain delay, it will make your field playable as soon as the precipitation stops, cut down on maintenance time and costs, and reduce the chance that players suffer an injury. ShelterLogic baseball field tarps are Made in the USA of durable polyethylene. These
11310covers are designed to extend just beyond the infield skin and cover the coach's boxes and on-deck circles. They have pull-handles and grommets every 10 ft.", 11311"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/c\/d\/cdzmsif9dht9izccoahy.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 11312"offers":{ 11313"@type":"Offer", 11314"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-130x130-7-5-oz-tan-and-white#product.offer", 11315"name":"Baseball Field Tarp 130X130 7.5 oz. Tan and White", 11316"priceCurrency":"USD", 11317"price":4949.99, 11318"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-130x130-7-5-oz-tan-and-white", 11319"availability":"https:\/\/schema.org\/OutOfStock" 11320} 11321 11322} 11323, 11324{ 11325"@type":"Product", 11326"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-130x130-7-5-oz-white-and-white#product", 11327"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-130x130-7-5-oz-white-and-white", 11328"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-130x130-7-5-oz-white-and-white", 11329"name":"Baseball Field Tarp 130X130 7.5 oz. White and White", 11330"sku":"FCSA000101013013000", 11331"description":"When a baseball field tarp is used to cover the infield during a rain delay, it will make your field playable as soon as the precipitation stops, cut down on maintenance time and costs, and reduce the chance that players suffer an injury. ShelterLogic baseball field tarps are Made in the USA of durable polyethylene. These covers are designed to extend just beyond the infield skin and cover the coach's boxes and on-deck circles. They have pull-handles and grommets every 10 ft.", 11332"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/h\/a\/harswgsixnbooavuzqbf.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 11333"offers":{ 11334"@type":"Offer", 11335"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-130x130-7-5-oz-white-and-white#product.offer", 11336"name":"Baseball Field Tarp 130X130 7.5 oz. White and White", 11337"priceCurrency":"USD", 11338"price":4949.99, 11339"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-130x130-7-5-oz-white-and-white", 11340"availability":"https:\/\/schema.org\/OutOfStock" 11341} 11342 11343} 11344, 11345{ 11346"@type":"Product", 11347"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-130x130-7-5-oz-gray-and-white#product", 11348"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-130x130-7-5-oz-gray-and-white", 11349"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-130x130-7-5-oz-gray-and-white", 11350"name":"Baseball Field Tarp 130X130 7.5 oz. Gray and White", 11351"sku":"FCSA000103013013000", 11352"description":"When a baseball field tarp is used to cover the infield during a rain delay, it will make your field playable as soon as the precipitation stops, cut down on maintenance time and costs, and reduce the chance that players suffer an injury. ShelterLogic baseball field tarps are Made in the USA of durable polyethylene. These covers are designed to extend just beyond the infield skin and cover the coach's boxes and on-deck circles. They have pull-handles and grommets every 10 ft.", 11353"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/s\/d\/sdzcbmgjp8fn7knxcgwj.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 11354"offers":{ 11355"@type":"Offer", 11356"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-130x130-7-5-oz-gray-and-white#product.offer", 11357"name":"Baseball Field Tarp 130X130 7.5 oz. Gray and White", 11358"priceCurrency":"USD", 11359"price":4949.99, 11360"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-130x130-7-5-oz-gray-and-white", 11361"availability":"https:\/\/schema.org\/OutOfStock" 11362} 11363 11364} 11365, 11366{ 11367"@type":"Product", 11368"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-140x140-5-5-oz-sandstone#product", 11369"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-140x140-5-5-oz-sandstone", 11370"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-140x140-5-5-oz-sandstone", 11371"name":"Baseball Field Tarp 140X140 5.5 oz. Sandstone", 11372"sku":"FCSA000605014014000", 11373"description":"When a baseball field tarp is used to cover the infield during a rain delay, it will make your field playable as soon as the precipitation stops, cut down on maintenance time and costs, and reduce the chance that players suffer an injury. ShelterLogic baseball field tarps are Made in the USA of durable polyethylene. These
11373covers are designed to extend just beyond the infield skin and cover the coach's boxes and on-deck circles. They have pull-handles and grommets every 10 ft.", 11374"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/g\/g\/gghn7togv0z0o9dygciz.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 11375"offers":{ 11376"@type":"Offer", 11377"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-140x140-5-5-oz-sandstone#product.offer", 11378"name":"Baseball Field Tarp 140X140 5.5 oz. Sandstone", 11379"priceCurrency":"USD", 11380"price":5349.99, 11381"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-140x140-5-5-oz-sandstone", 11382"availability":"https:\/\/schema.org\/OutOfStock" 11383} 11384 11385} 11386, 11387{ 11388"@type":"Product", 11389"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-140x140-7-5-oz-green-and-white#product", 11390"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-140x140-7-5-oz-green-and-white", 11391"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-140x140-7-5-oz-green-and-white", 11392"name":"Baseball Field Tarp 140X140 7.5 oz. Green and White", 11393"sku":"FCSA000104014014000", 11394"description":"When a baseball field tarp is used to cover the infield during a rain delay, it will make your field playable as soon as the precipitation stops, cut down on maintenance time and costs, and reduce the chance that players suffer an injury. ShelterLogic baseball field tarps are Made in the USA of durable polyethylene. These covers are designed to extend just beyond the infield skin and cover the coach's boxes and on-deck circles. They have pull-handles and grommets every 10 ft.", 11395"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/z\/z\/zzisramqt1ukuqv9yduk.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 11396"offers":{ 11397"@type":"Offer", 11398"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-140x140-7-5-oz-green-and-white#product.offer", 11399"name":"Baseball Field Tarp 140X140 7.5 oz. Green and White", 11400"priceCurrency":"USD", 11401"price":5729.99, 11402"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-140x140-7-5-oz-green-and-white", 11403"availability":"https:\/\/schema.org\/OutOfStock" 11404} 11405 11406} 11407, 11408{ 11409"@type":"Product", 11410"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-140x140-7-5-oz-tan-and-white#product", 11411"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-140x140-7-5-oz-tan-and-white", 11412"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-140x140-7-5-oz-tan-and-white", 11413"name":"Baseball Field Tarp 140X140 7.5 oz. Tan and White", 11414"sku":"FCSA000105014014000", 11415"description":"When a baseball field tarp is used to cover the infield during a rain delay, it will make your field playable as soon as the precipitation stops, cut down on maintenance time and costs, and reduce the chance that players suffer an injury. ShelterLogic baseball field tarps are Made in the USA of durable polyethylene. These covers are designed to extend just beyond the infield skin and cover the coach's boxes and on-deck circles. They have pull-handles and grommets every 10 ft.", 11416"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/q\/s\/qsnxtz5d2hrjzajmb7n0.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 11417"offers":{ 11418"@type":"Offer", 11419"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-140x140-7-5-oz-tan-and-white#product.offer", 11420"name":"Baseball Field Tarp 140X140 7.5 oz. Tan and White", 11421"priceCurrency":"USD", 11422"price":5729.99, 11423"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-140x140-7-5-oz-tan-and-white", 11424"availability":"https:\/\/schema.org\/OutOfStock" 11425} 11426 11427} 11428, 11429{ 11430"@type":"Product", 11431"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-140x140-7-5-oz-white-and-white#product", 11432"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-140x140-7-5-oz-white-and-white", 11433"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-140x140-7-5-oz-white-and-white", 11434"name":"Baseball Field Tarp 140X140 7.5 oz. White and White", 11435"sku":"FCSA000101014014000", 11436"description":"When a baseball field tarp is used to cover the infield during a rain delay, it will make your field playable as soon as the precipitation stops, cut down on maintenance time and costs, and reduce the chance that players suffer an injury. ShelterLogic baseball field tarps are Made in the USA of durable polyethylene. These
11436covers are designed to extend just beyond the infield skin and cover the coach's boxes and on-deck circles. They have pull-handles and grommets every 10 ft.", 11437"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/i\/l\/ilxjryy63hkzpm387cpb.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 11438"offers":{ 11439"@type":"Offer", 11440"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-140x140-7-5-oz-white-and-white#product.offer", 11441"name":"Baseball Field Tarp 140X140 7.5 oz. White and White", 11442"priceCurrency":"USD", 11443"price":5729.99, 11444"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-140x140-7-5-oz-white-and-white", 11445"availability":"https:\/\/schema.org\/OutOfStock" 11446} 11447 11448} 11449, 11450{ 11451"@type":"Product", 11452"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-140x140-7-5-oz-gray-and-white#product", 11453"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-140x140-7-5-oz-gray-and-white", 11454"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-140x140-7-5-oz-gray-and-white", 11455"name":"Baseball Field Tarp 140X140 7.5 oz. Gray and White", 11456"sku":"FCSA000103014014000", 11457"description":"When a baseball field tarp is used to cover the infield during a rain delay, it will make your field playable as soon as the precipitation stops, cut down on maintenance time and costs, and reduce the chance that players suffer an injury. ShelterLogic baseball field tarps are Made in the USA of durable polyethylene. These covers are designed to extend just beyond the infield skin and cover the coach's boxes and on-deck circles. They have pull-handles and grommets every 10 ft.", 11458"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/s\/i\/sivbs4cda86pkljblftg.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265", 11459"offers":{ 11460"@type":"Offer", 11461"@id":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-140x140-7-5-oz-gray-and-white#product.offer", 11462"name":"Baseball Field Tarp 140X140 7.5 oz. Gray and White", 11463"priceCurrency":"USD", 11464"price":5729.99, 11465"url":"https:\/\/www.shelterlogic.com\/baseball-field-tarp-140x140-7-5-oz-gray-and-white", 11466"availability":"https:\/\/schema.org\/OutOfStock" 11467} 11468 11469} 11470 11471] 11472, 11473"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/softball-field-tarps-53124", 11474"name":"Softball Field Tarps", 11475"sku":"SoftballFieldTarps", 11476"description":"A baseball field tarp a vital part of your baseball or softball program's strategy. When a baseball field tarp is used to cover the infield during a rain delay, it will make your softball field playable as soon as the precipitation stops, cut down on maintenance time and costs, and reduce the chance that players suffer an injury. ShelterLogic baseball field tarps are Made in the USA of durable polyethylene. Please measure your field before you place an order: These covers are designed to extend just beyond the infield skin and cover the coach's boxes and on-deck circles. They have pull-handles and grommets every 10 ft., which makes getting the tarp unrolled and on the field quick and easy. ", 11477"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/p\/y\/pyojdoqalxi7mlmg45i8_1_1.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265" 11478} 11479 11480} 11481, 11482{ 11483"@type":"ListItem", 11484"position":9, 11485"item":{ 11486"productGroupID":"baseballFCSA", 11487"@type":"ProductGroup", 11488"@id":"https:\/\/www.shelterlogic.com\/athletic-field-cover-baseball-tarp#product_group", 11489"url":"https:\/\/www.shelterlogic.com\/athletic-field-cover-baseball-tarp", 11490"offers":{ 11491"@type":"AggregateOffer", 11492"@id":"https:\/\/www.shelterlogic.com\/athletic-field-cover-baseball-tarp#product.aggregate_offer", 11493"priceCurrency":"USD", 11494"highPrice":2179.99, 11495"lowPrice":2179.99, 11496"offerCount":60, 11497"availability":"https:\/\/schema.org\/InStock" 11498} 11499, 11500"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/athletic-field-cover-baseball-tarp", 11501"name":"Athletic Field Covers", 11502"sku":"baseballFCSA", 11503"description":"A baseball field tarp a vital part of your baseball or softball program's strategy. When a baseball field tarp is used to cover the infield during a rain delay, it will make your field playable as soon as the precipitation stops, cut down on maintenance time and costs, and reduce the chance that players suffer an injury. ShelterLogic baseball field tarps are Made in the USA of durable polyethylene. Please measure your field before you place an order: These covers are designed to extend just beyond the infield skin and cover the coach's boxes and on-deck circles. They have pull-handles and grommets every 10 ft., which makes getting the tarp unrolled and on the field quick and easy. ", 11504"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/p\/y\/pyojdoqalxi7mlmg45i8_1_3.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265" 11505} 11506 11507} 11508, 11509{ 11510"@type":"ListItem", 11511"position":10, 11512"item":{ 11513"productGroupID":"AASC", 11514"@type":"ProductGroup", 11515"@id":"https:\/\/www.shelterlogic.com\/arrow-carport#product_group", 11516"url":"https:\/\/www.shelterlogic.com\/arrow-carport", 11517"offers":{ 11518"@type":"AggregateOffer", 11519"@id":"https:\/\/www.shelterlogic.com\/arrow-carport#product.aggregate_offer", 11520"priceCurrency":"USD", 11521"highPrice":959.99, 11522"lowPrice":959.99, 11523"offerCount":240, 11524"availability":"https:\/\/schema.org\/InStock" 11525} 11526, 11527"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/arrow-carport", 11528"name":"Arrow Carport Kit - Build your Own", 11529"sku":"AASC", 11530"description":"The all-steel Metal Carport Kit from Arrow is a convenient, all-weather shade and shelter solution that's versatile and practical. Use the Carport Kit to shade your vehicle, truck, ATV, outdoor equipment, rest areas or picnic areas. Great for storing boats, picnic and outdoor furniture and summer toys in the off-season. Each Arrow Steel Carport Kit is wind and snow load rated Carport, meaning they are designed to take on tough weather conditions and able to stand up to accumulated snow fall. Its galvanized steel roof is made to protect against corrosion, rust and the elements and features an attractive Eggshell or Charcoal roof. The Carport is assembled on our tough all-steel, powder coated 2 in. tube frame, made to reinforce stability and strength in the structure. The premium powder coating provides corrosion and rust resistance. Easy to install, the Carport comes with slip-fit connections with pilot holes and self-drilling screws making this unit easy to build straight out of the box.\r\n\r\n\r\nAbout Our Arrow Metal Carport Kits\r\n", 11531"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/c\/p\/cph202007_silo_image_01_5.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265" 11532} 11533 11534} 11535, 11536{ 11537"@type":"ListItem", 11538"position":11, 11539"item":{ 11540"productGroupID":"STHTGH-FE", 11541"@type":"ProductGroup", 11542"@id":"https:\/\/www.shelterlogic.com\/sheltertech-high-tunnel-greenhouse-frame-and-end-panel-frame#product_group", 11543"url":"https:\/\/www.shelterlogic.com\/sheltertech-high-tunnel-greenhouse-frame-and-end-panel-frame", 11544"offers":{ 11545"@type":"AggregateOffer", 11546"@id":"https:\/\/www.shelterlogic.com\/sheltertech-high-tunnel-greenhouse-frame-and-end-panel-frame#product.aggregate_offer", 11547"priceCurrency":"USD", 11548"highPrice":919.5, 11549"lowPrice":919.5, 11550"offerCount":325, 11551"availability":"https:\/\/schema.org\/InStock" 11552} 11553, 11554"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/sheltertech-high-tunnel-greenhouse-frame-and-end-panel-frame", 11555"name":"High Tunnel Greenhouse, Frame and End Panel Frame", 11556"sku":"STHTGH-FE", 11557"description":"The High Tunnel Greenhouse Frame and End Panel Frame make the perfect starter kit for anyone from a novice to expert grower or gardener looking to customize their own greenhouse unit. As part of our ShelterTech series, this High Tunnel Greenhouse Frame and End Panel Frame offer a unique value because combined, they create the perfect outline for a high tunnel greenhouse. Made from only our highest quality materials, our High Tunnel Greenhouse Frame and End Panel Frame are strong, sturdy and built to last. Simply choose the length and width of your structure, and we'll custom build your High Tunnel Greenhouse Frame and End Panel Frame. You can then go on to convert your high tunnel frame and end panel frame into a cool weather Coldframe Greenhouse, or use it as a traditional High Tunnel Greenhouse structure. Round and Gothic shape available. UNIT INCLUDES HIGH TUNNEL GREENHOUSE FRAME AND END PANEL FRAME.", 11558"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/s\/t\/sthtgh-fe.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265" 11559} 11560 11561} 11562, 11563{ 11564"@type":"ListItem", 11565"position":12, 11566"item":{ 11567"productGroupID":"STHTGH-FK", 11568"@type":"ProductGroup", 11569"@id":"https:\/\/www.shelterlogic.com\/sheltertech-high-tunnel-greenhouse-full-kit#product_group", 11570"url":"https:\/\/www.shelterlogic.com\/sheltertech-high-tunnel-greenhouse-full-kit", 11571"offers":{ 11572"@type":"AggregateOffer", 11573"@id":"https:\/\/www.shelterlogic.com\/sheltertech-high-tunnel-greenhouse-full-kit#product.aggregate_offer", 11574"priceCurrency":"USD", 11575"highPrice":1133.22, 11576"lowPrice":1133.22, 11577"offerCount":325, 11578"availability":"https:\/\/schema.org\/InStock" 11579} 11580, 11581"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/sheltertech-high-tunnel-greenhouse-full-kit", 11582"name":"High Tunnel Greenhouse, Full Kit", 11583"sku":"STHTGH-FK", 11584"description":"Grow bigger plants, faster with our High Tunnel Greenhouse Kit: the perfect all-in-one greenhouse kit for anyone from novice gardeners to expert growers. Proven to grow plants faster than the competition, our High Tunnel Greenhouse Kit comes with everything you need to start growing. Includes a galvanized steel High Tunnel Greenhouse Frame, the galvanized steel High Tunnel Greenhouse End Panel Frames and our 5.5 oz polyethylene greenhouse cover kit proven to grow plants more efficiently. As part of our ShelterTech series, this High Tunnel Greenhouse Kit is a unique value because it allows the customer to custom configure it to their specifications and is made from only our highest quality materials. Simply choose the length and width of your structure, and we'll custom build you a high quality high tunnel greenhouse, end panel frames and accompanying cover. Use it as a cool weather Coldframe Greenhouse, or as a traditional High Tunnel Greenhouse structure. Round and Gothic shape available. UNIT INCLUDES HIGH TUNNEL GREENHOUSE FRAME, COVER KIT, AND END PANEL FRAME.", 11585"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/s\/t\/sthtgh-fk.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265" 11586} 11587 11588} 11589, 11590{ 11591"@type":"ListItem", 11592"position":13, 11593"item":{ 11594"productGroupID":"STHTGH-FC", 11595"@type":"ProductGroup", 11596"@id":"https:\/\/www.shelterlogic.com\/sheltertech-high-tunnel-greenhouse-frame-and-cover#product_group", 11597"url":"https:\/\/www.shelterlogic.com\/sheltertech-high-tunnel-greenhouse-frame-and-cover", 11598"offers":{ 11599"@type":"AggregateOffer", 11600"@id":"https:\/\/www.shelterlogic.com\/sheltertech-high-tunnel-greenhouse-frame-and-cover#product.aggregate_offer", 11601"priceCurrency":"USD", 11602"highPrice":487.17, 11603"lowPrice":487.17, 11604"offerCount":325, 11605"availability":"https:\/\/schema.org\/InStock" 11606} 11607, 11608"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/sheltertech-high-tunnel-greenhouse-frame-and-cover", 11609"name":"High Tunnel Greenhouse, Frame and Cover", 11610"sku":"STHTGH-FC", 11611"description":"Grow bigger plants, faster with our High Tunnel Greenhouse Frame and Cover Kit. This is the perfect greenhouse starter kit for anyone from novice gardeners to expert growers. Our greenhouse covers have been proven to grow plants faster than the leading competition in the market. So if you're looking to customize your own greenhouse unit, this could be the kit for you. Includes a high quality galvanized steel frame and a 5.5 oz. polyethylene cover that has been tested to grow bigger plants. As part of our ShelterTech series, this High Tunnel Greenhouse Frame and Cover is a unique value because it allows the customer to custom configure it to their exact specifications and is made from only our highest quality materials. Simply choose the length, width and height of your structure, and we'll custom build you a high quality high tunnel greenhouse and accompanying cover. Our High Tunnel Frame and Cover Kit is ver
11611satile, too! Build yours into a cool weather Coldframe Greenhouse, or use it as a traditional High Tunnel Greenhouse structure. Round and Gothic shape available. UNIT INCLUDES HIGH TUNNEL GREENHOUSE FRAME AND COVER KIT ONLY.", 11612"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/s\/t\/sthtgh-fc.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265" 11613} 11614 11615} 11616, 11617{ 11618"@type":"ListItem", 11619"position":14, 11620"item":{ 11621"productGroupID":"STHTGH-FO", 11622"@type":"ProductGroup", 11623"@id":"https:\/\/www.shelterlogic.com\/sheltertech-high-tunnel-greenhouse-frame-only#product_group", 11624"url":"https:\/\/www.shelterlogic.com\/sheltertech-high-tunnel-greenhouse-frame-only", 11625"offers":{ 11626"@type":"AggregateOffer", 11627"@id":"https:\/\/www.shelterlogic.com\/sheltertech-high-tunnel-greenhouse-frame-only#product.aggregate_offer", 11628"priceCurrency":"USD", 11629"highPrice":273.45, 11630"lowPrice":273.45, 11631"offerCount":325, 11632"availability":"https:\/\/schema.org\/InStock" 11633} 11634, 11635"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/sheltertech-high-tunnel-greenhouse-frame-only", 11636"name":"High Tunnel Greenhouse, Frame Only", 11637"sku":"STHTGH-FO", 11638"description":"The High Tunnel Greenhouse Frame is the perfect starter for anyone from a novice to expert grower or gardener looking to customize their own greenhouse unit. As part of our ShelterTech series, this Greenhouse frame is a unique value because it allows the customer to customize it to their exact specifications and is made from only our highest quality materials. Simply choose the length and width of your structure, and we'll custom build you a high quality high tunnel greenhouse frame. You can then go on to convert your high tunnel frame into a cool weather Coldframe Greenhouse, or use it as a traditional High Tunnel Greenhouse structure. Round and Gothic shapes available. UNIT INCLUDES HIGH TUNNEL GREENHOUSE FRAME ONLY. ", 11639"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/s\/t\/sthtgh-fo.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265" 11640} 11641 11642} 11643, 11644{ 11645"@type":"ListItem", 11646"position":15, 11647"item":{ 11648"productGroupID":"ShelterCoat Barn", 11649"@type":"ProductGroup", 11650"@id":"https:\/\/www.shelterlogic.com\/sheltercoat-custom-shelters-barn#product_group", 11651"url":"https:\/\/www.shelterlogic.com\/sheltercoat-custom-shelters-barn", 11652"offers":{ 11653"@type":"AggregateOffer", 11654"@id":"https:\/\/www.shelterlogic.com\/sheltercoat-custom-shelters-barn#product.aggregate_offer", 11655"priceCurrency":"USD", 11656"highPrice":1070.99, 11657"lowPrice":1070.99, 11658"offerCount":376, 11659"availability":"https:\/\/schema.org\/InStock" 11660} 11661, 11662"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/sheltercoat-custom-shelters-barn", 11663"name":"ShelterCoat® Custom Shelter, Barn", 11664"sku":"ShelterCoatBarn", 11665"description":"ShelterCoat® shelters and garages are the ideal compact storage solution for ATV's, lawn and garden equipment, small tractors, patio furniture, pool supplies, tools and equipment and bulk storage. Choose from the largest selection of premium powdercoated steel frame, fabric shelters in the industry! With THOUSANDS of choices we have a shelter to custom fit any storage need at an affordable price.", 11666"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/s\/h\/sheltercoat_gray_barn.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265" 11667} 11668 11669} 11670, 11671{ 11672"@type":"ListItem", 11673"position":16, 11674"item":{ 11675"productGroupID":"ShelterCoat Round", 11676"@type":"ProductGroup", 11677"@id":"https:\/\/www.shelterlogic.com\/sheltercoat-custom-shelters-round#product_group", 11678"url":"https:\/\/www.shelterlogic.com\/sheltercoat-custom-shelters-round", 11679"offers":{ 11680"@type":"AggregateOffer", 11681"@id":"https:\/\/www.shelterlogic.com\/sheltercoat-custom-shelters-round#product.aggregate_offer", 11682"priceCurrency":"USD", 11683"highPrice":433.99, 11684"lowPrice":433.99, 11685"offerCount":960, 11686"availability":"https:\/\/schema.org\/InStock" 11687} 11688, 11689"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/sheltercoat-custom-shelters-round", 11690"name":"ShelterCoat® Custom Wind and Snow Rated Shelter, Round", 11691"sku":"ShelterCoatRound", 11692"description":"ShelterCoat® Round shelters and garages are the ideal compact storage solution for ATV's, lawn and garden equipment, small tractors, patio furniture, pool supplies, tools and equipment and bulk storage. Choose from the largest selection of premium powdercoated steel frame, fabric shelters in the industry! With THOUSANDS of choices we have a shelter to custom fit any storage need at an affordable price.", 11693"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/s\/h\/sheltercoat_gray_round.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265" 11694} 11695 11696} 11697, 11698{ 11699"@type":"ListItem", 11700"position":17, 11701"item":{ 11702"productGroupID":"ShelterCoat Peak", 11703"@type":"ProductGroup", 11704"@id":"https:\/\/www.shelterlogic.com\/sheltercoat-custom-shelters-peak#product_group", 11705"url":"https:\/\/www.shelterlogic.com\/sheltercoat-custom-shelters-peak", 11706"offers":{ 11707"@type":"AggregateOffer", 11708"@id":"https:\/\/www.shelterlogic.com\/sheltercoat-custom-shelters-peak#product.aggregate_offer", 11709"priceCurrency":"USD", 11710"highPrice":454.99, 11711"lowPrice":454.99, 11712"offerCount":2863, 11713"availability":"https:\/\/schema.org\/InStock" 11714} 11715, 11716"mainEntityOfPage":"https:\/\/www.shelterlogic.com\/sheltercoat-custom-shelters-peak", 11717"name":"ShelterCoat® Custom Shelter, Peak", 11718"sku":"ShelterCoatPeak", 11719"description":"ShelterCoat® shelters and garages are the ideal compact storage solution for ATV's, lawn and garden equipment, small tractors, patio furniture, pool supplies, tools and equipment and bulk storage. Choose from the largest selection of premium powdercoated steel frame, fabric shelters in the industry! With THOUSANDS of choices we have a shelter to custom fit any storage need at an affordable price.", 11720"image":"https:\/\/www.shelterlogic.com\/media\/catalog\/product\/s\/h\/sheltercoat_gray_peak.png?quality=80&bg-color=255,255,255&fit=bounds&height=265&width=265" 11721} 11722 11723} 11724 11725] 11726, 11727"numberOfItems":17, 11728"@type":"ItemList", 11729"@id":"https:\/\/www.shelterlogic.com\/commercial-grade-products#item_list" 11730} 11731, 11732"@type":"CollectionPage", 11733"@id":"https:\/\/www.shelterlogic.com\/commercial-grade-products#collection_page", 11734"url":"https:\/\/www.shelterlogic.com\/commercial-grade-products" }</script>
11734<script> 11735 (function () { 11736 if (window.web200ElasticsuiteAjax && window.web200ElasticsuiteAjax.initialized) { 11737 return; 11738 } 11739 11740 const config = {"items":{"pageSize":20,"size":17,"curPage":1},"slider":{"directMode":false},"infinite":{"active":false,"buttonLabel":"Next","buttonSentence":"%current \/ %size","buttonClassName":""}}; 11741 11742 window.web200ElasticsuiteAjax = Object.assign({ 11743 selectors: { 11744 filterContainer: '#layered-filter-block', 11745 productListContainer: '.category-list-view', 11746 productItems: '#product-list ul[role="list"], .products.wrapper ul', 11747 productWrapper: '.products.wrapper', 11748 filterLinks: '.filter-current a.remove, .filter-actions a[href], .filter-options-content a[href], .swatch-option-link-layered', 11749 pagerLinks: '.pages-items a[href]', 11750 infiniteButton: '.web200-infinite a[href], .shelterlogic-elasticsuite-infinite a[href]' 11751 }, 11752 currentUrl: window.location.href, 11753 loading: false, 11754 items: config.items || {}, 11755 slider: config.slider || {}, 11756 infinite: config.infinite || {}, 11757 initialized: false, 11758 11759 init() { 11760 this.initialized = true; 11761 window.shelterlogicElasticsuiteAjax = this; 11762 this.bind(); 11763 this.prepareSliders(); 11764 this.renderInfinite(); 11765 }, 11766 11767 setConfig(config) { 11768 this.items = config.items || {}; 11769 this.slider = config.slider || {}; 11770 this.infinite = config.infinite || {}; 11771 this.currentUrl = window.location.href; 11772 this.prepareSliders(); 11773 this.renderInfinite(); 11774 }, 11775 11776 bind() { 11777 if (this.bound) { 11778 return; 11779 } 11780 11781 this.bound = true; 11782 11783 document.addEventListener('click', event => { 11784 if (event.defaultPrevented || event.button !== 0 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) { 11785 return; 11786 } 11787 11788 const link = event.target.closest([ 11789 this.selectors.filterLinks, 11790 this.selectors.pagerLinks, 11791 this.selectors.infiniteButton, 11792 '.smile-es-range-slider a[href]' 11793 ].join(',')); 11794 11795 if (!link || !this.shouldHandle(link) || link.target || link.hasAttribute('download')) { 11796 return; 11797 } 11798 11799 event.preventDefault(); 11800 11801 if (this.loading) { 11802 return; 11803 } 11804 11805 if (link.closest('.web200-infinite') || link.closest('.shelterlogic-elasticsuite-infinite')) { 11806 this.loadPage(link.href); 11807 } else { 11808 this.updateLayer(this.getLinkUrl(link)); 11809 } 11810 }); 11811 11812 window.addEventListener('popstate', () => this.updateLayer(window.location.href, null, null, false)); 11813 window.addEventListener('shelterlogic-elasticsuite-ajax:navigate', event => { 11814 if (event.detail && event.detail.url) { 11815 this.updateLayer(event.detail.url); 11816 } 11817 }); 11818 window.addEventListener('web200-elasticsuite-ajax:slider-change', event => { 11819 if (!this.slider.directMode || !event.detail || !event.detail.url) { 11820 return; 11821 } 11822 11823 clearTimeout(this.sliderTimer); 11824 this.sliderTimer = setTimeout(() => this.updateLayer(this.resetPageParam(event.detail.url)), 350); 11825 }); 11826 }, 11827 11828 shouldHandle(link) { 11829 const linkUrl = this.normalizeUrl(link.href); 11830 const currentUrl = new URL(window.location.href); 11831 11832 if (linkUrl.host !== currentUrl.host) { 11833 return false;
11834 } 11835 11836 return !( 11837 linkUrl.pathname === currentUrl.pathname 11838 && linkUrl.search === currentUrl.search 11839 && linkUrl.hash 11840 ); 11841 }, 11842 11843 getLinkUrl(link) { 11844 if (link.matches(this.selectors.pagerLinks)) { 11845 const nextUrl = this.normalizeUrl(link.href); 11846 nextUrl.searchParams.delete('_web200_ajax'); 11847 11848 return nextUrl.toString(); 11849 } 11850 11851 if (link.dataset.filterName && link.dataset.filterValue) { 11852 const href = this.normalizeUrl(link.href); 11853 const current = new URL(window.location.href); 11854 11855 if (href.pathname === current.pathname && !href.search) { 11856 return this.buildFilterUrl(current.href, link.dataset.filterName, link.dataset.filterValue); 11857 } 11858 } 11859 11860 return this.resetPageParam(link.href); 11861 }, 11862 11863 resetPageParam(url) { 11864 const nextUrl = this.normalizeUrl(url); 11865 nextUrl.searchParams.delete('p'); 11866 nextUrl.searchParams.delete('_web200_ajax'); 11867 nextUrl.hash = ''; 11868 11869 return nextUrl.toString(); 11870 }, 11871 11872 normalizeUrl(url) { 11873 const nextUrl = new URL(url, window.location.href); 11874 11875 if (nextUrl.host === window.location.host) { 11876 nextUrl.protocol = window.location.protocol; 11877 } 11878 11879 return nextUrl; 11880 }, 11881 11882 changeUrl(paramName, paramValue, defaultValue) { 11883 const url = new URL(window.location.href); 11884 11885 if (String(paramValue) === String(defaultValue)) { 11886 url.searchParams.delete(paramName); 11887 } else { 11888 url.searchParams.set(paramName, paramValue); 11889 } 11890 11891 if (paramName !== 'p') { 11892 url.searchParams.delete('p'); 11893 } 11894 11895 this.updateLayer(url.toString()); 11896 }, 11897 11898 async updateLayer(url, replaceParam, replaceValue, pushState = true) { 11899 const nextUrl = this.buildUrl(url, replaceParam, replaceValue); 11900 const response = await this.fetchJson(nextUrl); 11901 11902 if (!response) { 11903 return; 11904 } 11905 11906 if (pushState) { 11907 history.pushState({}, document.title, nextUrl); 11908 } 11909 11910 this.currentUrl = nextUrl; 11911 this.items = { 11912 size: Number(response.size || 0), 11913 pageSize: Number(response.pageSize || 0), 11914 curPage: Number(response.curPage || 0) 11915 }; 11916 11917 const updatedElements = [ 11918 this.replaceHtml(this.selectors.filterContainer, response.listFilterOptions), 11919 this.replaceHtml(this.selectors.productListContainer, response.productList) 11920 ].filter(Boolean); 11921 11922 this.afterRender(updatedElements); 11923 }, 11924 11925 async loadPage(url) { 11926 const response = await this.fetchJson(url); 11927 11928 if (!response) { 11929 return; 11930 } 11931 11932 history.pushState({}, document.title, url); 11933 this.currentUrl = url; 11934 this.items = { 11935 size: Number(response.size || 0), 11936 pageSize: Number(response.pageSize || 0), 11937 curPage: Number(response.curPage || 0) 11938 }; 11939 11940 const doc = new DOMParser().parseFromString(response.productList, 'text/html'); 11941 const newItems = doc.querySelector(this.selectors.productItems); 11942 const currentItems = document.querySelector(this.selectors.productItems); 11943 11944 if (newItems && currentItems) { 11945 const insertedElements = this.appendHtml(currentItems, newItems.innerHTML); 11946 this.afterRender(insertedElements); 11947 } else { 11948 const updatedElement = this.replaceHtml(this.selectors.productListContainer, response.productList); 11949 this.afterRender(updatedElement ? [updatedElement] : []); 11950 } 11951 }, 11952 11953 async fetchJson(url) { 11954 this.setLoading(true); 11955 11956 try { 11957 const ajaxUrl = this.getAjaxUrl(url); 11958 const response = await fetch(ajaxUrl, { 11959 method: 'POST', 11960 cache: 'no-store', 11961 headers: { 11962 'Accept': 'application/json', 11963 'Cache-Control': 'no-cache', 11964 'Pragma': 'no-cache', 11965 'X-Requested-With': 'XMLHttpRequest' 11966 }, 11967 credentials: 'same-origin' 11968 }); 11969 11970 if (!response.ok) { 11971 throw new Error(`Web200 Elasticsuite AJAX request failed with ${response.status}`); 11972 } 11973 11974 const contentType = response.headers.get('content-type') || ''; 11975 11976 if (!contentType.includes('application/json')) { 11977 throw new Error(`Web200 Elasticsuite AJAX expected JSON, received ${contentType || 'unknown content type'}`); 11978 } 11979 11980 return await response.json(); 11981 } catch (error) { 11982 console.error('Web200 Elasticsuite AJAX request failed', {url, error}); 11983 window.location.href = url; 11984 return null; 11985 } finally { 11986 this.setLoading(false); 11987 } 11988 }, 11989
11990 setLoading(isLoading) { 11991 this.loading = isLoading; 11992 document.body.classList.toggle('web200-elasticsuite-ajax-loading', isLoading); 11993 document.body.classList.toggle('shelterlogic-elasticsuite-ajax-loading', isLoading); 11994 this.togglePageLoader(isLoading); 11995 this.dispatchLoaderEvent(isLoading); 11996 }, 11997 11998 togglePageLoader(isLoading) { 11999 const loader = document.getElementById('web200-elasticsuite-ajax-loader'); 12000 12001 if (!loader) { 12002 return; 12003 } 12004 12005 loader.classList.toggle('hidden', !isLoading); 12006 loader.classList.toggle('flex', isLoading); 12007 loader.setAttribute('aria-hidden', isLoading ? 'false' : 'true'); 12008 }, 12009 12010 dispatchLoaderEvent(isLoading) { 12011 const eventName = isLoading ? 'processStart' : 'processStop'; 12012 12013 if (window.jQuery) { 12014 window.jQuery(document.body).trigger(eventName); 12015 return; 12016 } 12017 12018 document.body.dispatchEvent(new Event(eventName)); 12019 }, 12020 12021 replaceHtml(selector, html) { 12022 const current = document.querySelector(selector); 12023 12024 if (!current || !html) { 12025 return null; 12026 } 12027 12028 const doc = new DOMParser().parseFromString(html, 'text/html'); 12029 const next = doc.querySelector(selector) || doc.body.firstElementChild; 12030 12031 if (next) { 12032 this.mutateAlpineDom(() => { 12033 if (window.Alpine && typeof window.Alpine.destroyTree === 'function') { 12034 window.Alpine.destroyTree(current); 12035 } 12036 12037 current.replaceWith(next); 12038 }); 12039 this.activateScripts(next); 12040 return next; 12041 } 12042 12043 return null; 12044 }, 12045 12046 appendHtml(parent, html) { 12047 const template = document.createElement('template'); 12048 template.innerHTML = html; 12049 const scripts = Array.from(template.content.querySelectorAll('script')); 12050 scripts.forEach(script => script.remove()); 12051 const insertedElements = Array.from(template.content.children); 12052 12053 this.mutateAlpineDom(() => parent.append(template.content)); 12054 scripts.forEach(script => this.activateScript(script)); 12055 12056 return insertedElements; 12057 }, 12058 12059 mutateAlpineDom(callback) { 12060 if (window.Alpine && typeof window.Alpine.mutateDom === 'function') { 12061 return window.Alpine.mutateDom(callback); 12062 } 12063 12064 return callback(); 12065 }, 12066 12067 activateScripts(element) { 12068 element.querySelectorAll('script').forEach(script => this.activateScript(script)); 12069 }, 12070 12071 activateScript(script) { 12072 const type = script.getAttribute('type'); 12073 12074 if (type && !['text/javascript', 'application/javascript', 'module'].includes(type)) { 12075 return; 12076 } 12077 12078 const executable = document.createElement('script'); 12079 12080 Array.from(script.attributes).forEach(attribute => { 12081 executable.setAttribute(attribute.name, attribute.value); 12082 }); 12083 12084 executable.textContent = script.textContent; 12085 document.head.appendChild(executable); 12086 executable.remove(); 12087 }, 12088 12089 buildUrl(url, replaceParam, replaceValue) { 12090 const nextUrl = new URL(url, window.location.origin); 12091 nextUrl.searchParams.delete('_web200_ajax'); 12092 12093 if (replaceParam) { 12094 nextUrl.searchParams.set(replaceParam, replaceValue); 12095 } 12096 12097 return nextUrl.toString(); 12098 }, 12099 12100 getAjaxUrl(url) { 12101 const ajaxUrl = this.normalizeUrl(url); 12102 ajaxUrl.searchParams.set('_web200_ajax', '1'); 12103 ajaxUrl.hash = ''; 12104 12105 return ajaxUrl.toString(); 12106 }, 12107 12108 buildFilterUrl(url, filterName, filterValue) { 12109 const nextUrl = new URL(url, window.location.origin); 12110 const groupedParams = []; 12111 let filterIndex = 0; 12112 let currentValueFound = false;
12113 12114 nextUrl.searchParams.forEach((value, key) => { 12115 const normalizedKey = this.normalizeFilterName(key); 12116 12117 if (normalizedKey === 'p') { 12118 return; 12119 } 12120 12121 if (normalizedKey === filterName) { 12122 if (value === filterValue) { 12123 currentValueFound = true; 12124 } else { 12125 groupedParams.push([filterName + '[' + filterIndex + ']', value]); 12126 filterIndex++; 12127 } 12128 12129 return; 12130 } 12131 12132 groupedParams.push([key, value]); 12133 }); 12134 12135 if (!currentValueFound) { 12136 groupedParams.push([filterName + '[' + filterIndex + ']', filterValue]); 12137 } 12138 12139 nextUrl.search = ''; 12140 groupedParams.forEach(param => nextUrl.searchParams.append(param[0], param[1])); 12141 12142 return nextUrl.toString(); 12143 }, 12144 12145 normalizeFilterName(key) { 12146 return key.replace(/\[\d*]$/, ''); 12147 }, 12148 12149 afterRender(elements = []) { 12150 if (window.Alpine) { 12151 elements.forEach(element => window.Alpine.initTree(element)); 12152 } 12153 12154 if (typeof hyva !== 'undefined' && typeof hyva.initFormKey === 'function') { 12155 hyva.initFormKey(); 12156 } 12157 12158 document.dispatchEvent(new CustomEvent('contentUpdated')); 12159 window.dispatchEvent(new CustomEvent('web200-elasticsuite-ajax:updated')); 12160 window.dispatchEvent(new CustomEvent('shelterlogic-elasticsuite-ajax:updated')); 12161 this.prepareSliders(); 12162 this.renderInfinite(); 12163 }, 12164 12165 prepareSliders() { 12166 if (!this.slider.directMode) { 12167 return; 12168 } 12169 12170 document.querySelectorAll('.smile-es-range-slider .actions-toolbar, .smile-es-range-slider .actions') 12171 .forEach(element => element.classList.add('hidden')); 12172 }, 12173 12174 renderInfinite() { 12175 document.querySelectorAll('.web200-infinite, .shelterlogic-elasticsuite-infinite').forEach(element => element.remove()); 12176 12177 if (!this.infinite.active || !this.items.pageSize || this.items.size <= this.items.curPage * this.items.pageSize) { 12178 return; 12179 } 12180 12181 const wrapper = document.querySelector(this.selectors.productWrapper); 12182 12183 if (!wrapper) { 12184 return; 12185 } 12186 12187 const url = new URL(this.currentUrl, window.location.origin); 12188 const shown = Math.min(this.items.pageSize * this.items.curPage, this.items.size); 12189 const sentence = (this.infinite.buttonSentence || '') 12190 .replace(/%current/g, shown) 12191 .replace(/%size/g, this.items.size); 12192 12193 url.searchParams.set('p', String(this.items.curPage + 1)); 12194 wrapper.insertAdjacentHTML('beforeend', ` 12195 <div class="web200-infinite shelterlogic-elasticsuite-infinite flex flex-col items-center gap-4 my-8"> 12196 ${sentence ? `<div class="sentence text-sm text-gray-600">${this.escapeHtml(sentence)}</div>` : ''} 12197 <a class="${this.escapeHtml(this.infinite.buttonClassName || 'btn btn-primary')}" href="${url.toString()}"> 12198 ${this.escapeHtml(this.infinite.buttonLabel || 'Next')} 12199 </a> 12200 </div> 12201 `); 12202 }, 12203 12204 escapeHtml(value) { 12205 const element = document.createElement('div'); 12206 element.textContent = value; 12207 return element.innerHTML; 12208 } 12209 }, window.web200ElasticsuiteAjax || {}); 12210 12211 window.web200ElasticsuiteAjax.init(); 12212 }()); 12213</script>
12213 12214</div></div><div class="container"> <div class="category-description" role="article"> 12215 <style>#html-body [data-pb-style=TQHET9E]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}</style><div data-content-type="row" data-appearance="full-bleed" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="TQHET9E"><div class="p-standart" data-content-type="text" data-appearance="default" data-element="main"><h2>Frequently Asked Questions: Commercial & Industrial Solutions</h2> 12216<h3>Engineering & Compliance</h3> 12217<h4>Are ShelterLogic commercial structures wind and snow-load certified?</h4> 12218<p>Yes. Our commercial-grade lines, including ShelterTech® SP, Truss Buildings, and Arrow STEELPEAK™ Carports, are engineered to meet specific wind and snow-load requirements. We provide certification data to ensure your structure meets the safety standards required for your specific geographic location and local building codes.</p> 12219<p> </p> 12220<h4>Do you provide stamped engineering drawings for permitting?</h4> 12221<p>We understand that commercial and municipal projects often require a formal permitting process. Stamped engineering drawings are available for our Truss, ShelterTech, and Arrow STEELPEAK lines to assist you in securing approval from local building departments.</p> 12222<p> </p> 12223<h4>What are the fire ratings for your fabric-covered buildings?</h4> 12224<p>Our heavy-duty PVC and polyethylene covers used on Truss and ShelterTech structures are available in flame-retardant options that meet NFPA 701 and CPAI-84 standards, which are critical for industrial warehousing, hangars, and public-use spaces.</p> 12225<p> </p> 12226<h3>Customization & Scale</h3> 12227<h4>Can these buildings be configured to custom dimensions?</h4> 12228<p>Absolutely. Our Made to Order heritage allows us to offer thousands of configuration possibilities. Whether you need extra height for heavy machinery or a specific length for a narrow industrial lot, we can tailor the dimensions of our Truss and ShelterTech buildings to fit your site's footprint.</p> 12229<p> </p> 12230<h4>Are bulk pricing or volume discounts available?</h4> 12231<p>Yes. We frequently partner with government agencies, schools, and large-scale commercial operations. Please contact our Commercial Sales Team directly for quotes on multi-unit orders or municipal fleet protection projects.</p> 12232<h3> </h3> 12233<h3>Installation & Durability</h3> 12234<h4>What kind of foundation is required for a commercial building?</h4> 12235<p>Our structures are designed for versatility. Depending on the model, they can be installed on concrete pads, asphalt, or even packed gravel/dirt using our specialized anchoring systems. For large-scale Truss buildings, we provide foundation specifications to ensure long-term structural integrity.</p> 12236<p> </p> 12237<h4>What is the expected lifespan of a commercial structure?</h4> 12238<p>Our commercial products are built for longevity. Our 100% galvanized steel frames are designed to resist corrosion for decades. Depending on the material weight chosen, our heavy-duty covers typically offer a life expectancy of 10 to 15+ years and are easily replaceable to extend the life of the frame indefinitely.</p> 12239<h3> </h3> 12240<h3>Logistics & Procurement</h3> 12241<h4>What is the lead time for custom Made to Order products?</h4> 12242<p>Lead times vary based on the complexity and scale of the structure. Standard commercial kits typically ship in 7 days, while large-scale custom Truss buildings may require additional time for engineering and fabrication. Contact us for a current production timeline based on your project scope.</p> 12243<p> </p> 12244<h4>Do you accept Purchase Orders (POs) or offer net terms?</h4> 12245<p>We work with many institutional and corporate buyers. We accept Purchase Orders from qualified organizations and can discuss net-payment terms for established commercial accounts and government entities. Contact us for more information</p> 12246<p> </p> 12247<h4>Do you offer professional installation services?</h4> 12248<p>While our structures are designed as comprehensive kits for efficient assembly, we can provide guidance or recommend professional third-party installation partners for large-scale industrial projects.</p> 12249<p> </p> 12250<h3>Specialized Products</h3> 12251<h4>Are your High Tunnel Greenhouses eligible for NRCS grants?</h4> 12252<p>Many of our High Tunnel Greenhouse systems are designed to meet the technical requirements for the NRCS (Natural Resources Conservation Service) Environmental Quality Incentives Program (EQIP). We can provide the necessary specifications to help you complete your grant application</p></div></div> </div> 12253</div> <div class="snapengage-wrap fixed z-20 bottom-0 right-4 text-sm leading-5 text-stone-900 shadow transition-transform translate-y-full" :class="getCssClasse
12253s" x-data="initSnapEngage" ><button type="button" class="btn btn-primary bg-tertiary text-white text-20 overflow-hidden normal-case cursor-pointer rounded-t-xl rounded-b-none pt-3.5 px-4 pb-2.5" @click.prevent="onBtnClick" aria-label="Chat with an Expert" tabindex="0" >Chat with an Expert</button></div>
12253<script type="text/javascript"> 12254 function initSnapEngage() { 12255 return { 12256 isButtonVisible: true, 12257 scriptUrl: 'https://storage.googleapis.com/code.snapengage.com/js/80007474-fb82-4549-895b-b5158f024200.js', 12258 snapengageLoaded: false, 12259 snapengageThreshold: 200, 12260 onBtnClick() { 12261 if (typeof SnapEngage !== 'undefined') { 12262 this.initSnapEngage(); 12263 } else { 12264 this.loadScript(this.scriptUrl) 12265 .then(() => { 12266 this.snapengageLoaded = true; 12267 this.initSnapEngage(); 12268 }) 12269 .catch((error) => { 12270 console.error('Failed to load SnapEngage script', error); 12271 }); 12272 } 12273 }, 12274 initSnapEngage() { 12275 if (typeof SnapEngage !== 'undefined') { 12276 this.isButtonVisible = false; 12277 SnapEngage.hideButton(); 12278 SnapEngage.startLink(); 12279 SnapEngage.setCallback('Close', () => { 12280 SnapEngage.hideButton(); 12281 this.isButtonVisible = true; 12282 }); 12283 } else { 12284 console.error('SnapEngage not loaded'); 12285 } 12286 }, 12287 loadScript(url) { 12288 return new Promise(function(resolve, reject) { 12289 let script = document.createElement('script'); 12290 script.type = 'text/javascript'; 12291 script.src = url; 12292 script.async = true; 12293 script.onload = resolve; 12294 script.onerror = reject; 12295 document.head.appendChild(script); 12296 }); 12297 }, 12298 getCssClasses() { 12299 return { 12300 'translate-y-0': this.isButtonVisible, 12301 'translate-y-full': !this.isButtonVisible 12302 } 12303 } 12304 } 12305 } 12306 window.addEventListener('alpine:init', () => Alpine.data('initSnapEngage', initSnapEngage))</script>
12306<div class="be-ix-link-block leading-0"> </div></main>
12306<script src="//cdn.bc0a.com/autopilot/f00000000316724/autopilot_sdk.js"></script>
12306
12306<script> 12307 let SnapSlider = class { 12308 constructor(el, { 12309 labelSepparator = 'of', 12310 autoPager, 12311 groupPager, 12312 loop, 12313 forcePager 12314 } = {}) { 12315 this.el = el; 12316 this.track = this.el.querySelector("[data-track]"); 12317 if (!this.track) { 12318 console.warn( 12319 "No Slider track defined, reverting back to CSS slider.\nPlease create a wrapper for your slides with the attribute data-track", 12320 this.el 12321 ); 12322 return; 12323 } 12324 this.initialLoad = true; 12325 this.slides = []; 12326 this.inViewObserver; 12327 this.mutationObserver; 12328 this.resizeObserver; 12329 this.pager = this.el.querySelector("[data-pager]"); 12330 this.navBtns = Array.from( 12331 this.el.querySelectorAll("[data-next], [data-prev]") 12332 ); 12333 this.slideLabelSepparator = this.el.dataset.slideLabelSepparator || labelSepparator; 12334 this.useAutoPager = autoPager || this.el.hasAttribute("data-auto-pager") || false; 12335 this.useGroupPager = groupPager || this.el.hasAttribute("data-group-pager") || false; 12336 this.useLoop = loop || this.el.hasAttribute("data-loop") || false; 12337 this.forcePager = forcePager || this.el.hasAttribute("data-force-pager") || false; 12338 this.sliderLabel = this.el.hasAttribute("aria-label") && this.el.getAttribute("aria-label").toLowerCase().trim().replace(/[^a-z0-9_-]+/g, "-").replace(/^-+|-+$/g, ""); 12339 this.sliderId = this.el.id || this.sliderLabel || "slider"; 12340 this.markerIdName = "data-target-id"; 12341 this.pagerClasses = this.el.dataset.pagerClass || "snap-pager"; 12342 this.markerClasses = this.el.dataset.markerClass || "snap-marker"; 12343 this.init(); 12344 } 12345 init() { 12346 this.setupSlides(); 12347 this.setupNav(); 12348 if (this.useAutoPager) { 12349 this.createPager(); 12350 } else { 12351 this.setupPager(); 12352 } 12353 this.setupObservers(); 12354 this.setupMutationObserver(); 12355 this.setupResizeObserver(); 12356 this.el.addEventListener("click", this.eventHandler.bind(this)); 12357 this.el.addEventListener("keydown", this.eventHandler.bind(this)); 12358 if ("onscrollend" in window) { 12359 this.track.addEventListener("scrollend", () => { 12360 this.isNavigating = false; 12361 }); 12362 } else { 12363 this.track.addEventListener("scroll", () => { 12364 clearTimeout(this.scrollEndTimer); 12365 this.scrollEndTimer = setTimeout(() => { 12366 this.isNavigating = false; 12367 }, 100); 12368 }); 12369 } 12370 } 12371 destroy() { 12372 this.inViewObserver?.disconnect(); 12373 this.mutationObserver?.disconnect(); 12374 this.resizeObserver?.disconnect(); 12375 this.el.removeEventListener("click", this.eventHandler.bind(this)); 12376 this.el.removeEventListener("keydown", this.eventHandler.bind(this)); 12377 } 12378 roundUpIfGreaterThan(number, min = 8) { 12379 const decimalPart = number - Math.floor(number); 12380 return decimalPart >= min ? Math.ceil(number) : Math.floor(number); 12381 } 12382 getInViewItems() { 12383 const inViewSlides = Array.from(this.track.querySelectorAll("[data-in-view]")).filter((el) => this.slides.includes(el)); 12384 const firstInViewSlide = inViewSlides[0] || null; 12385 const lastInViewSlide = inViewSlides[inViewSlides.length - 1] || null; 12386 const isAtStart = firstInViewSlide === this.slides[0]; 12387 const isAtEnd = lastInViewSlide === this.slides[this.slides.length - 1]; 12388 return { 12389 inViewSlides, 12390 totalInViewSlides: inViewSlides.length, 12391 firstInViewSlide, 12392 lastInViewSlide, 12393 isAtStart, 12394 isAtEnd, 12395 hasNoOverflow: isAtStart && isAtEnd 12396 }; 12397 } 12398 groupPagerMarkers() { 12399 if (this.slides.length === 0 || !this.pager || !this.useGroupPager) return; 12400 const totalVisibleSlides = this.roundUpIfGreaterThan( 12401 this.track.offsetWidth / this.slides[0].offsetWidth 12402 ); 12403 const markers = Array.from(this.pager.querySelectorAll("a, button"));
12404 markers.forEach((marker, index) => { 12405 marker.style.display = index % totalVisibleSlides === 0 ? null : "none"; 12406 }); 12407 } 12408 handleInView(entries) { 12409 entries.forEach((entry) => { 12410 const marker = this.pager && (this.pager.querySelector(`[href="#${entry.target.id}"]`) || this.pager.querySelector( 12411 `[${this.markerIdName}="${entry.target.id}"]` 12412 )); 12413 entry.target.toggleAttribute("data-in-view", entry.isIntersecting); 12414 entry.target.toggleAttribute("inert", !entry.isIntersecting); 12415 marker?.setAttribute("aria-current", entry.isIntersecting); 12416 marker?.setAttribute("tabindex", entry.isIntersecting ? "0" : "-1"); 12417 }); 12418 const { isAtStart, isAtEnd, hasNoOverflow } = this.getInViewItems(); 12419 this.navBtns.forEach((btn) => { 12420 if (btn.hasAttribute("data-next")) { 12421 btn.style.visibility = hasNoOverflow ? "hidden" : null; 12422 isAtEnd && !this.useLoop ? btn.setAttribute("disabled", "") : btn.removeAttribute("disabled"); 12423 } 12424 if (btn.hasAttribute("data-prev")) { 12425 btn.style.visibility = hasNoOverflow ? "hidden" : null; 12426 isAtStart && !this.useLoop ? btn.setAttribute("disabled", "") : btn.removeAttribute("disabled"); 12427 } 12428 }); 12429 if (this.pager) { 12430 const hidePager = hasNoOverflow && !this.forcePager; 12431 this.pager.style.visibility = hidePager ? "hidden" : null; 12432 this.pager.toggleAttribute("inert", hidePager); 12433 } 12434 if (!this.initialLoad) { 12435 this.el.dispatchEvent( 12436 new CustomEvent("slideChange", { 12437 detail: this.getInViewItems() 12438 }) 12439 ); 12440 } else { 12441 this.initialLoad = false; 12442 } 12443 if (document.activeElement.parentElement.hasAttribute("data-pager")) { 12444 const activeItems = this.pager.querySelectorAll('[tabindex="0"]'); 12445 if (activeItems.length) { 12446 activeItems[0].focus({ preventScroll: true }); 12447 } 12448 } 12449 } 12450 getSlides() { 12451 if (!this.track) return []; 12452 return Array.from(this.track.children).filter( 12453 (child) => child.tagName.toLowerCase() !== "template" && child.tagName.toLowerCase() !== "style" && child.tagName.toLowerCase() !== "script" && child.style.display !== "none" 12454 ); 12455 } 12456 refreshSlides() { 12457 this.initialLoad = true; 12458 this.slides = this.getSlides(); 12459 this.setupSlides(); 12460 if (this.useAutoPager) { 12461 this.createPager(); 12462 } else { 12463 this.setupPager(); 12464 } 12465 this.groupPagerMarkers(); 12466 this.setupObservers(); 12467 } 12468 setupSlides() { 12469 this.slides = this.getSlides(); 12470 this.slides.forEach((slide, index) => { 12471 const totalSlides = this.slides.length; 12472 const currentSlide = index + 1; 12473 const existingLabel = slide.getAttribute("aria-label") || ""; 12474 const isImage = slide.tagName.toLowerCase() === "img" || slide.tagName.toLowerCase() === "picture"; 12475 const slideLabelTag = isImage ? "alt" : "aria-label"; 12476 const hasAutoLabel = existingLabel.startsWith( 12477 `${currentSlide} ${this.slideLabelSepparator} ` 12478 ); 12479 if (!slide.hasAttribute("id")) { 12480 slide.setAttribute( 12481 "id", 12482 `${this.sliderId}-item-${currentSlide}` 12483 ); 12484 } 12485 if (!slide.hasAttribute(slideLabelTag) || slide.getAttribute(slideLabelTag) === "" || hasAutoLabel) { 12486 slide.setAttribute( 12487 slideLabelTag, 12488 `${currentSlide} ${this.slideLabelSepparator} ${totalSlides}` 12489 ); 12490 } 12491 if (slide.tagName.toLowerCase() === "div" && !slide.hasAttribute("role")) { 12492 slide.setAttribute("role", "group"); 12493 } 12494 if (this.pager && !isImage) { 12495 slide.setAttribute("role", "tabpanel"); 12496 } 12497 if (slide.getAttribute("role") === "group") { 12498 slide.setAttribute("aria-roledescription", "item"); 12499 } 12500 }); 12501 if (!this.el.hasAttribute("role") && this.el.tagName !== "SECTION") { 12502 this.el.setAttribute("role", "region"); 12503 } 12504 if (!this.el.hasAttribute("aria-roledescription")) { 12505 this.el.setAttribute("aria-roledescription", "carousel"); 12506 } 12507 if (!this.track.hasAttribute("tabindex")) { 12508 this.track.setAttribute("tabindex", 0); 12509 } 12510 this.track.setAttribute("aria-live", "polite"); 12511 } 12512 setupNav() { 12513 this.navBtns.forEach((btn) => { 12514 btn.setAttribute("disabled", ""); 12515 btn.removeAttribute("hidden"); 12516 btn.classList.remove("invisible"); 12517 btn.style.visibility = null; 12518 }); 12519 } 12520 createPager() { 12521 const newPager = document.createElement("nav"); 12522 newPager.setAttribute("data-pager", ""); 12523 newPager.setAttribute("role", "tablist"); 12524 newPager.classList.add(...this.pagerClasses.split(" "));
12525 this.slides.forEach((slide, index) => { 12526 const marker = document.createElement("button"); 12527 const slideId = slide.id || `${this.sliderId}-item-${index + 1}`; 12528 marker.setAttribute(this.markerIdName, slideId); 12529 marker.classList.add(...this.markerClasses.split(" ")); 12530 this.setupPagerMarker(marker, index); 12531 newPager.appendChild(marker); 12532 if (slide.tagName.toLowerCase() !== "img" && slide.tagName.toLowerCase() !== "picture") { 12533 slide.removeAttribute("aria-roledescription"); 12534 slide.setAttribute("role", "tabpanel"); 12535 } 12536 }); 12537 if (this.pager) { 12538 this.pager.setAttribute("role", "tablist"); 12539 this.pager.replaceChildren(...newPager.children); 12540 } else { 12541 this.track.after(newPager); 12542 this.pager = this.el.querySelector("[data-pager]"); 12543 } 12544 } 12545 setupPager() { 12546 if (!this.pager) return; 12547 this.pager.setAttribute("role", "tablist"); 12548 const items = Array.from(this.pager.querySelectorAll("a, button")); 12549 items.forEach((marker, index) => this.setupPagerMarker(marker, index)); 12550 } 12551 setupPagerMarker(marker, index) { 12552 const markerId = marker.getAttribute("href")?.slice(1) || marker.getAttribute(this.markerIdName); 12553 const slideId = markerId || `${this.sliderId}-item-${index + 1}`; 12554 if (!markerId) { 12555 marker.setAttribute(this.markerIdName, slideId); 12556 } 12557 marker.setAttribute("role", "tab"); 12558 marker.setAttribute("aria-controls", slideId); 12559 marker.setAttribute("aria-posinset", index + 1); 12560 marker.setAttribute("aria-setsize", this.slides.length); 12561 marker.setAttribute("tabindex", "-1"); 12562 if (!marker.hasAttribute("aria-label")) { 12563 marker.setAttribute("aria-label", `Slide ${index + 1}`); 12564 } 12565 } 12566 setupObservers() { 12567 if (this.inViewObserver) { 12568 this.inViewObserver.disconnect(); 12569 } 12570 this.inViewObserver = new IntersectionObserver( 12571 this.handleInView.bind(this), { 12572 root: this.track, 12573 threshold: 0.8 12574 } 12575 ); 12576 this.slides.forEach((slide) => this.inViewObserver.observe(slide)); 12577 } 12578 setupMutationObserver() { 12579 this.mutationObserver = new MutationObserver((mutations) => { 12580 if (mutations.some((m) => m.type === "childList" || m.target.parentElement === this.track)) { 12581 this.refreshSlides(); 12582 } 12583 }); 12584 this.mutationObserver.observe(this.track, { 12585 childList: true, 12586 subtree: true, 12587 attributeFilter: ["style"] 12588 }); 12589 } 12590 setupResizeObserver() { 12591 this.resizeObserver = new ResizeObserver( 12592 this.groupPagerMarkers.bind(this) 12593 ); 12594 this.resizeObserver.observe(this.el); 12595 } 12596 goToSlideDir(dir = "next") { 12597 if (this.isNavigating) return; 12598 const { firstInViewSlide, lastInViewSlide } = this.getInViewItems(); 12599 const isPrev = dir === "prev"; 12600 const referenceSlide = isPrev ? firstInViewSlide : lastInViewSlide; 12601 const currentIndex = this.slides.indexOf(referenceSlide); 12602 let targetIndex = isPrev ? currentIndex - 1 : currentIndex + 1; 12603 if (targetIndex < 0 || targetIndex >= this.slides.length) { 12604 if (!this.useLoop) return; 12605 targetIndex = isPrev ? this.slides.length - 1 : 0; 12606 } 12607 const targetSlide = this.slides[targetIndex]; 12608 if (!targetSlide) return; 12609 this.isNavigating = true; 12610 targetSlide.scrollIntoView({ 12611 block: "nearest", 12612 inline: isPrev ? "end" : "start" 12613 }); 12614 } 12615 pagerToSlide(event) { 12616 if (!event.target.closest("[data-pager]")) return; 12617 const marker = event.target.closest("a, button"); 12618 if (!marker) return; 12619 event.preventDefault(); 12620 const slideId = marker.getAttribute("href")?.slice(1) || marker.getAttribute(this.markerIdName); 12621 const targetSlide = this.track.querySelector(`#${slideId}`);
12622 targetSlide?.scrollIntoView({ block: "nearest", inline: "start" }); 12623 } 12624 eventHandler(event) { 12625 const target = event.target.closest( 12626 "[data-next], [data-prev], [data-pager]" 12627 ); 12628 if (!target) return; 12629 if (event.type === "click") { 12630 if (target.hasAttribute("data-next")) { 12631 this.goToSlideDir("next"); 12632 } else if (target.hasAttribute("data-prev")) { 12633 this.goToSlideDir("prev"); 12634 } else if (target.closest("[data-pager]")) { 12635 this.pagerToSlide(event); 12636 } 12637 } 12638 if (event.type === "keydown" && target.closest("[data-pager]")) { 12639 if (event.key === "ArrowRight" || event.key === "ArrowDown") { 12640 event.preventDefault(); 12641 this.goToSlideDir("next"); 12642 } else if (event.key === "ArrowLeft" || event.key === "ArrowUp") { 12643 event.preventDefault(); 12644 this.goToSlideDir("prev"); 12645 } 12646 } 12647 } 12648 }; 12649 12650 (() => { 12651 function alpineSnapSlider(Alpine) { 12652 Alpine.directive("snap-slider", (el, { 12653 modifiers 12654 }, { 12655 cleanup 12656 }) => { 12657 const slider = new SnapSlider(el, { 12658 autoPager: modifiers.includes("auto-pager"), 12659 groupPager: modifiers.includes("group-pager"), 12660 loop: modifiers.includes("loop"), 12661 forcePager: modifiers.includes("force-pager") 12662 }); 12663 cleanup(() => { 12664 slider.destroy(); 12665 }); 12666 }); 12667 } 12668 12669 document.addEventListener("alpine:init", () => { 12670 window.Alpine.plugin(alpineSnapSlider); 12671 }); 12672 })();</script>
12672
12672<script> 12673 (() => { 12674 12675 function dialog_default(Alpine) { 12676 Alpine.directive("htmldialog", fylgjaAlpineDialog); 12677 function fylgjaAlpineDialog(el, { expression, modifiers }, { evaluateLater, cleanup }) { 12678 const evaluate = expression.length ? evaluateLater(expression) : () => {}; 12679 const lockPageScroll = modifiers.includes("noscroll"); 12680 const isModeless = modifiers.includes("modeless"); 12681 const closeBy = el.getAttribute("closeby") || modifierValue(modifiers, "closeby", "closerequest"); 12682 el.style.display = null; 12683 el.style.length === 0 && el.removeAttribute("style"); 12684 if (el._x_isShown) { 12685 open(); 12686 } 12687 const closeBySupported = (() => { 12688 return "closedBy" in HTMLDialogElement.prototype; 12689 })(); 12690 function scrollLock(use = true) { 12691 document.body.style.overflow = use ? "hidden" : ""; 12692 } 12693 function dialogSubmit(event) { 12694 if (event.target.getAttribute("method") === "dialog" || event.submitter?.getAttribute("formmethod") === "dialog") { 12695 event.preventDefault(); 12696 evaluate(); 12697 } 12698 } 12699 function escapeDialog(event) { 12700 if (event.key !== "Escape") return; 12701 event.preventDefault(); 12702 if (closeBy === "none") return; 12703 evaluate(); 12704 } 12705 function handleCloseByEvent(event) { 12706 if (event.target !== el) return; 12707 const rect = el.getBoundingClientRect(); 12708 const isInDialog = rect.top <= event.clientY && event.clientY <= rect.top + rect.height && rect.left <= event.clientX && event.clientX <= rect.left + rect.width; 12709 if (!isInDialog) { 12710 if (closeBy === "any") { 12711 if (closeBySupported) { 12712 event.preventDefault(); 12713 } 12714 evaluate(); 12715 } 12716 } 12717 } 12718 function handleCloseEvent() { 12719 evaluate(); 12720 } 12721 function open() { 12722 if (el.hasAttribute("open")) return; 12723 isModeless ? el.show() : el.showModal(); 12724 scrollLock(lockPageScroll); 12725 } 12726 function close() { 12727 if (!el.hasAttribute("open")) return; 12728 el.close(); 12729 scrollLock(false); 12730 } 12731 el._x_doShow = () => open(); 12732 el._x_doHide = () => close(); 12733 el.addEventListener("keydown", escapeDialog); 12734 el.addEventListener("submit", dialogSubmit); 12735 el.addEventListener("click", handleCloseByEvent); 12736 el.addEventListener("cancel", handleCloseEvent); 12737 cleanup(() => { 12738 el.removeEventListener("keydown", escapeDialog); 12739 el.removeEventListener("submit", dialogSubmit); 12740 el.removeEventListener("click", handleCloseByEvent); 12741 el.removeEventListener("cancel", handleCloseEvent); 12742 scrollLock(false); 12743 }); 12744 } 12745 } 12746 function modifierValue(modifiers, key, fallback) { 12747 if (modifiers.indexOf(key) === -1) return fallback; 12748 const rawValue = modifiers[modifiers.indexOf(key) + 1]; 12749 if (!rawValue) return fallback; 12750 if (key === "closeby") { 12751 const allowedValues = ["auto", "none", "closerequest", "any"]; 12752 const options = allowedValues.join(", "); 12753 if (!allowedValues.includes(rawValue)) { 12754 console.warn( 12755 `"${rawValue}" is not one of the allowed values for closeby: ${options}` 12756 ); 12757 return fallback; 12758 } 12759 } 12760 return rawValue; 12761 } 12762 12763 12764 document.addEventListener("alpine:init", () => { 12765 window.Alpine.plugin(dialog_default); 12766 }); 12767 })();</script>
12767
12767<script> 12768 (() => { 12769 function src_default(Alpine) { 12770 Alpine.directive("intersect", Alpine.skipDuringClone((el, { value, expression, modifiers }, { evaluateLater, cleanup }) => { 12771 let evaluate = evaluateLater(expression); 12772 let options = { 12773 rootMargin: getRootMargin(modifiers), 12774 threshold: getThreshold(modifiers) 12775 }; 12776 let observer = new IntersectionObserver((entries) => { 12777 entries.forEach((entry) => { 12778 if (entry.isIntersecting === (value === "leave")) 12779 return; 12780 evaluate(); 12781 modifiers.includes("once") && observer.disconnect(); 12782 }); 12783 }, options); 12784 observer.observe(el); 12785 cleanup(() => { 12786 observer.disconnect(); 12787 }); 12788 })); 12789 } 12790 function getThreshold(modifiers) { 12791 if (modifiers.includes("full")) 12792 return 0.99; 12793 if (modifiers.includes("half")) 12794 return 0.5; 12795 if (!modifiers.includes("threshold")) 12796 return 0; 12797 let threshold = modifiers[modifiers.indexOf("threshold") + 1]; 12798 if (threshold === "100") 12799 return 1; 12800 if (threshold === "0") 12801 return 0; 12802 return Number(`.${threshold}`); 12803 } 12804 function getLengthValue(rawValue) { 12805 let match = rawValue.match(/^(-?[0-9]+)(px|%)?$/); 12806 return match ? match[1] + (match[2] || "px") : void 0; 12807 } 12808 function getRootMargin(modifiers) { 12809 const key = "margin"; 12810 const fallback = "0px 0px 0px 0px"; 12811 const index = modifiers.indexOf(key); 12812 if (index === -1) 12813 return fallback; 12814 let values = []; 12815 for (let i = 1; i < 5; i++) { 12816 values.push(getLengthValue(modifiers[index + i] || "")); 12817 } 12818 values = values.filter((v) => v !== void 0); 12819 return values.length ? values.join(" ").trim() : fallback; 12820 } 12821 12822 document.addEventListener("alpine:init", () => { 12823 window.Alpine.plugin(src_default); 12824 }); 12825 })();</script>
12825
12825<script> 12826 for (const [selector, deferUntil] of Object.entries({".product-slider section[x-data]:not([x-data] [x-data])":"intersect",".product-info [x-data]:not([x-data] [x-data])":"intersect","#filters-content [x-data]:not([x-data] [x-data])":"intersect","#review_form":"intersect","section[x-data^=initRecentlyViewedProductsComponent]":"intersect","div[x-data^=initBundleOptions]":"intersect","#product_addtocart_form [x-data]:not([x-data] [x-data])":"intersect","#notice-cookie-block":"idle"})) { 12827 document.querySelectorAll(selector).forEach(el => el.setAttribute('x-defer', `${deferUntil}`)); 12828 }</script>
12828
12828<script> 12829 (() => { 12830 const hasAlpine = new Promise(resolve => { 12831 window.addEventListener('alpine:initialized', resolve, {once: true, passive: true}); 12832 }); 12833 12834 const hasInteract = new Promise(resolve => { 12835 (events => { 12836 const onInteract = () => { 12837 resolve(); 12838 events.forEach(type => window.removeEventListener(type, onInteract)); 12839 } 12840 events.forEach(type => window.addEventListener(type, onInteract, {once: true, passive: true})) 12841 })(['touchstart', 'mouseover', 'wheel', 'scroll', 'keydown']) 12842 }); 12843 12844 const onIntersect = (el) => { 12845 return new Promise(resolve => { 12846 const observer = new IntersectionObserver(entries => { 12847 for (const entry of entries) { 12848 if (entry.isIntersecting) { 12849 observer.disconnect() 12850 resolve(); 12851 } 12852 } 12853 }, {}); 12854 observer.observe(el); 12855 }); 12856 } 12857 12858 function runComponent(el) { 12859 hasAlpine.then(() => { 12860 el.removeAttribute('x-ignore'); 12861 queueMicrotask(() => Alpine.initTree(el)); 12862 }); 12863 } 12864 12865 function initDeferredComponents() { 12866 document.querySelectorAll('[x-data][x-defer]').forEach(el => { 12867 el.setAttribute('x-ignore', ''); 12868 const deferUntil = (el.getAttribute('x-defer') || '').trim(); 12869 switch (deferUntil) { 12870 case 'interact': 12871 hasInteract.then(() => runComponent(el)); 12872 break; 12873 case 'intersect': 12874 onIntersect(el).then(() => runComponent(el)) 12875 break; 12876 case 'idle': 12877 window.requestIdleCallback 12878 ? window.requestIdleCallback(() => runComponent(el), {timeout: 4000}) 12879 : setTimeout(() => runComponent(el), 4000); 12880 break; 12881 case 'eager': 12882 runComponent(el); 12883 break; 12884 default: 12885 if (deferUntil.startsWith('event:') && deferUntil.length > 6) { 12886 window.addEventListener(deferUntil.substring(6), () => runComponent(el), {once: true, passive: true}); 12887 } 12888 12889 if (deferUntil.startsWith('events:') && (deferUntil.match(/:/g) || []).length) { 12890 let componentInitialised = false; 12891 const runComponentOnce = el => { 12892 if (componentInitialised) { 12893 return; 12894 } 12895 runComponent(el); 12896 componentInitialised = true; 12897 } 12898 12899 const events = deferUntil.substring(7).split(':') || []; 12900 const interactIndex = events.indexOf('interact'); 12901 const intersectIndex = events.indexOf('intersect'); 12902 12903 if (!!~interactIndex) { 12904 hasInteract.then(() => runComponentOnce(el, 'interact')); 12905 delete events[interactIndex] 12906 } 12907 12908 if (!!~intersectIndex) { 12909 onIntersect(el).then(() => runComponentOnce(el, 'intersect')); 12910 delete events[intersectIndex] 12911 } 12912 12913 12914 events.forEach(event => { 12915 window.addEventListener(event, () => runComponentOnce(el, event), {once: true, passive: true}) 12916 }) 12917 } 12918 } 12919 }); 12920 } 12921 12922 window.addEventListener('alpine:init', initDeferredComponents, {once: true, passive: true}); 12923 })();</script>
12923
12923<script type="module" 12924 src="https://www.shelterlogic.com/static/version1790844868/frontend/Shelterlogic/hyva/en_US/Hyva_Theme/js/alpine3.min.js" 12925 defer 12926 crossorigin 12927></script>
12927
12927<script> 12928 document.addEventListener("alpine:init", () => { 12929 Alpine.data('hyvaCmsToggle', () => ({ 12930 open: false, 12931 notOpen() { 12932 return !this.open; 12933 }, 12934 show() { 12935 this.open = true 12936 }, 12937 hide() { 12938 this.open = false 12939 }, 12940 toggle() { 12941 this.open = !this.open 12942 } 12943 })) 12944 });</script>
12944 <!-- Pinterest Page Visit Tag Code -->
12944<script> 12945 require([ 12946 "jquery", 12947 "jquery/jquery.cookie" 12948 ], function ($) { 12949 var conversionEventUrl = "https://www.shelterlogic.com/pin/Tag/ConversionEvent"; 12950 $(document).ready(function () { 12951 let ajaxData = {storeId: "7"}; 12952 let pintrkData = {}; 12953 $.ajax({ 12954 url: conversionEventUrl, 12955 data: { 12956 event_name: 'page_visit', 12957 data: ajaxData 12958 }, 12959 type: "post", 12960 dataType: "json", 12961 success: function (res) { 12962 if (res.event_id) { 12963 pintrk('track', 'pagevisit', { 12964 event_id: res.event_id, 12965 ...pintrkData 12966 }); 12967 } 12968 } 12969 }); 12970 }); 12971 });</script>
12971<!-- End of Pinterest Page Visit Tag Code -->
12971<script> 12972 function dispatchMessages(messages, hideAfter) { 12973 const messagesEvent = new CustomEvent("messages-loaded", { 12974 detail: { 12975 messages: messages, 12976 hideAfter: hideAfter 12977 } 12978 }); 12979 window.dispatchEvent(messagesEvent); 12980 } 12981 12982 if (typeof hyva === 'undefined' || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) { 12983 console.warn("Hyvä helpers are not loaded yet. Make sure they are included before this script"); 12984 } 12985 12986 (function( hyva, undefined ) { 12987 12988 hyva.initFormKey = () => { 12989 if (typeof hyva.getFormKey !== 'function') return; 12990 12991 const formKey = hyva.getFormKey(); 12992 if (!formKey) return; 12993 12994 document.querySelectorAll('input[name="form_key"]').forEach((input) => { 12995 input.value = formKey; 12996 }); 12997 } 12998 12999 hyva.initMessages = () => { 13000 try { 13001 const messages = hyva.getCookie('mage-messages'); 13002 window.mageMessages = messages ? JSON.parse(decodeURIComponent(messages).replace(/\+/g, ' ')) : []; 13003 13004 dispatchMessages(window.mageMessages); 13005 13006 const skipSetDomain = true; 13007 hyva.setCookie('mage-messages','', -1, skipSetDomain); 13008 13009 } catch (error) { 13010 console.warn('Error parsing Cookie Messages:', error); 13011 } 13012 } 13013 13014 window.addEventListener('DOMContentLoaded', hyva.initFormKey); 13015 13016 window.addEventListener('pageshow', (event) => { 13017 if (event.persisted) { 13018 hyva.initFormKey(); 13019 } 13020 }); 13021 13022 hyva.alpineInitialized(hyva.initMessages) 13023 }( window.hyva = window.hyva || {} ));</script>
13023
13023<script> 13024 (() => { 13025 const private_content_key = 'mage-cache-storage'; 13026 const private_content_expire_key = 'mage-cache-timeout'; 13027 const private_content_version_key = 'private_content_version'; 13028 const section_data_ids_key = 'section_data_ids'; 13029 const mage_cache_session_id_key = 'mage-cache-sessid'; 13030 const last_visited_store_key = 'last_visited_store'; 13031 13032 const ttl = 3600; 13033 13034 if (typeof hyva === 'undefined' || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) { 13035 console.warn("Hyvä helpers are not loaded yet. Make sure they are included before this script"); 13036 } 13037 13038 function loadSectionData () { 13039 const browserStorage = hyva.getBrowserStorage(); 13040 if (!browserStorage) { 13041 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( 13042 [{ 13043 type: "warning", 13044 text: "Please enable LocalStorage in your browser." 13045 }] 13046 ); 13047 return; 13048 } 13049 try { 13050 let isInvalid = false; 13051 13052 if (hyva.getCookie(last_visited_store_key) !== CURRENT_STORE_CODE) { 13053 isInvalid = true; 13054 } 13055 hyva.setCookie(last_visited_store_key, CURRENT_STORE_CODE, false, false); 13056 13057 if (!hyva.getCookie(mage_cache_session_id_key)) { 13058 isInvalid = true; 13059 browserStorage.removeItem(private_content_key); 13060 const skipSetDomain = true; 13061 const days = false; 13062 hyva.setCookie(mage_cache_session_id_key, true, days, skipSetDomain) 13063 } 13064 13065 const cookieVersion = hyva.getCookie(private_content_version_key); 13066 const storageVersion = browserStorage.getItem(private_content_version_key); 13067 13068 if (cookieVersion && !storageVersion || cookieVersion !== storageVersion) { 13069 isInvalid = true; 13070 } 13071 13072 const privateContentExpires = browserStorage.getItem(private_content_expire_key); 13073 if (privateContentExpires && new Date(privateContentExpires) < new Date()) { 13074 browserStorage.removeItem(private_content_key); 13075 } 13076 13077 if (isInvalid && cookieVersion) { 13078 fetchPrivateContent([]); 13079 } else if (cookieVersion && storageVersion && cookieVersion === storageVersion) { 13080 const privateContent = JSON.parse(browserStorage.getItem(private_content_key)); 13081 if ( 13082 privateContent && 13083 privateContentExpires && 13084 privateContent.cart && 13085 privateContent.customer 13086 ) { 13087 dispatchPrivateContent(privateContent); 13088 } else { 13089 fetchPrivateContent([]); 13090 } 13091 } else { 13092 if (document.getElementById('default-section-data')) { 13093 const privateContent = JSON.parse(document.getElementById('default-section-data').textContent.trim()); 13094 dispatchPrivateContent(privateContent); 13095 } else { 13096 dispatchPrivateContent({}); 13097 } 13098 } 13099 13100 } catch (error) { 13101 console.warn('Error retrieving Private Content:', error); 13102 } 13103 } 13104 13105 hyva.alpineInitialized(loadSectionData) 13106 window.addEventListener('reload-customer-section-data', loadSectionData); 13107 13108 window.processSectionDataBeforeDispatch = window.processSectionDataBeforeDispatch || (data => data); 13109 13110 function dispatchPrivateContent(data) { 13111 13112 const privateContentEvent = new CustomEvent("private-content-loaded", { 13113 detail: { 13114 data: window.processSectionDataBeforeDispatch(data) 13115 } 13116 }); 13117 window.dispatchEvent(privateContentEvent); 13118 } 13119 13120 function fetchPrivateContent(sections) { 13121 fetch(`${BASE_URL}customer/section/load/?sections=${encodeURIComponent(sections.join(','))}`, { 13122 method: 'GET', 13123 headers: { 13124 'Content-Type': 'application/json', 13125 'X-Requested-With': 'XMLHttpRequest' 13126 } 13127 }) 13128 .then(response => response.ok && response.json()) 13129 .then( 13130 data => { 13131 if (data) { 13132 try { 13133 const browserStorage = hyva.getBrowserStorage(); 13134 13135 13136 const oldSectionData = JSON.parse(browserStorage.getItem(private_content_key) || '{}') || {}; 13137 13138 if ((! data.cart || ! data.cart.cartId) && oldSectionData['checkout-data']) { 13139 delete oldSectionData['checkout-data']; 13140 } 13141 const newSectionData = Object.assign(oldSectionData, data); 13142 13143 dispatchPrivateContent(newSectionData); 13144 13145 13146 if (newSectionData.messages && newSectionData.messages.messages ) { 13147 newSectionData.messages.messages = []; 13148 } 13149 13150 browserStorage.setItem(private_content_key, JSON.stringify(newSectionData)); 13151 13152 const expiresAt = new Date(Date.now() + (ttl * 1000)).toISOString(); 13153 browserStorage.setItem(private_content_expire_key, expiresAt); 13154 13155 const newCookieVersion = hyva.getCookie(private_content_version_key); 13156 browserStorage.setItem(private_content_version_key, newCookieVersion); 13157 13158 13159 13160 hyva.setCookie( 13161 section_data_ids_key, 13162 JSON.stringify( 13163 Object.keys(data).reduce((sectionDataIds, sectionKey) => { 13164 sectionDataIds[sectionKey] = data[sectionKey]['data_id']; 13165 return sectionDataIds; 13166 }, {}) 13167 ), 13168 false, 13169 true 13170 ); 13171 } catch (error) { 13172 console.warn("Couldn't store privateContent", error); 13173 } 13174 } 13175 } 13176 ) 13177 .catch(error => { 13178 console.warn("Couldn't fetch privateContent", error); 13179 }); 13180 } 13181 })();</script>
13181
13181<script> 13182 (() => { 13183 document.addEventListener('submit', event => event.target.action = event.target.action.replace('%25uenc%25', hyva.getUenc())); 13184 })()</script>
13184
13184<script x-data="impactUniversalTracking" 13185 @private-content-loaded.window="reloadCustomerData" 13186 @init-external-scripts.window="loadImpact" 13187 @impact-loaded.window="onImpactLoad" 13188 > 13189 'use strict'; 13190 13191 const loadImpact = () => { 13192 console.log('Impact - Will Load'); 13193 let path = `${'https://utt.impactcdn.com/A5051570-0692-48f7-8362-15a1cd9ec6f81.js'}`, 13194 tag = 'script', 13195 ire = 'ire', 13196 doc = document, 13197 win = window, 13198 script = null; 13199 13200 win['ire_o'] = ire; 13201 win[ire] = win[ire] || function () { 13202 (win[ire].path = win[ire].path || []).push(arguments) 13203 }; 13204 script = doc.createElement(tag); 13205 script.async = true; 13206 script.src = path; 13207 13208 script.onload = () => { 13209 console.log('Impact - Loaded'); 13210 window.dispatchEvent(new CustomEvent('impact-loaded')); 13211 } 13212 script.onerror = () => console.error('Impact - not loaded'); 13213 document.head.append(script); 13214 } 13215 13216 window.addEventListener('init-external-scripts', () => loadImpact(), {once: true, passive: true}) 13217 13218 function impactUniversalTracking() { 13219 return { 13220 customer: null, 13221 impactLoaded: false, 13222 afterImpactLoaded: [], 13223 init() { 13224 this.afterImpactLoaded.push(() => this.identify()) 13225 }, 13226 reloadCustomerData($event) { 13227 this.customer = $event.detail.data?.customer; 13228 this.identify(); 13229 }, 13230 onImpactLoad() { 13231 this.impactLoaded = true; 13232 this.afterImpactLoaded.forEach(callback => callback()); 13233 }, 13234 identify() { 13235 if (!this.impactLoaded) { 13236 return this.afterImpactLoaded.push(() => this.identify()) 13237 } 13238 13239 console.log('Impact - Identify'); 13240 13241 ire('identify', { 13242 customerId: this.customer?.gtm?.customerId || '', 13243 customerEmail: this.customer?.gtm?.customerEmail || '' 13244 }); 13245 }, 13246 loadImpact() { 13247 loadImpact(); 13248 } 13249 } 13250 } 13251 window.addEventListener('alpine:init', () => Alpine.data('impactUniversalTracking', impactUniversalTracking))</script>
13251 <!-- EqualWeb Accessibility (deferred until user interaction via init-external-scripts) -->
13251<script> 13252(function() { 13253 const sitekey = "d9b4c959cf5498270c3595951e6b0418", 13254 position = "right", 13255 menulang = "EN", 13256 btnStyle = JSON.parse('\u007B\u0022vPosition\u0022\u003A\u005B\u002297\u0025\u0022,\u002297\u0025\u0022\u005D,\u0022margin\u0022\u003A\u005B\u00220\u0022,\u00220\u0022\u005D,\u0022scale\u0022\u003A\u005B\u00220.5\u0022,\u00220.5\u0022\u005D,\u0022color\u0022\u003A\u007B\u0022main\u0022\u003A\u0022\u0023114f60\u0022,\u0022second\u0022\u003A\u0022\u0023ffffff\u0022\u007D,\u0022icon\u0022\u003A\u007B\u0022outline\u0022\u003Atrue,\u0022outlineColor\u0022\u003A\u0022\u0023ffffff\u0022,\u0022type\u0022\u003A11,\u0022shape\u0022\u003A\u0022circle\u0022\u007D\u007D'), 13257 nonceEl = document.querySelector('[nonce]'), 13258 nonce = nonceEl.nonce || nonceEl.getAttribute('nonce'); 13259 13260 function loadEqualWeb() { 13261 window.interdeal = { 13262 get sitekey (){ return sitekey }, 13263 get domains(){ 13264 return { 13265 "js": "https://cdn.equalweb.com/", 13266 "acc": "https://access.equalweb.com/" 13267 } 13268 }, 13269 "nonce": nonce, 13270 "Position": position, 13271 "Menulang": menulang, 13272 "draggable": true, 13273 "btnStyle": btnStyle 13274 }; 13275 13276 var doc = document, head = doc.head, body = doc.body; 13277 var coreCall = doc.createElement('script'); 13278 coreCall.src = interdeal.domains.js + 'core/5.2.5/accessibility.js'; 13279 coreCall.defer = true; 13280 coreCall.integrity = 'sha512\u002DZamp30ps601kXvZTcIYv1sytUc090mrEJD9rLuoWzEGqmB6t0XdLRgC\u002Fg5TznUleEBIMm6T3c6Baf\u002FExIYh\u002FHw\u003D\u003D'; 13281 coreCall.crossOrigin = 'anonymous'; 13282 coreCall.setAttribute('data-cfasync', true); 13283 (body ? body : head).appendChild(coreCall); 13284 } 13285 13286 function init() { 13287 loadEqualWeb(); 13288 } 13289 13290 init(); 13291 })();</script>
13291
13291<script type="text/javascript"> 13292 const loadScripts = () => { 13293 const script = document.createElement('script') 13294 script.src = 'https://pieeyegpc.pii.ai/1/dsrp/ce72119b-6850-4cd2-87ad-30c4b301f92f/gpc.min.js'; 13295 script.type = 'text/javascript'; 13296 script.nonce = document.querySelector('[nonce]'); 13297 script.onload = () => { 13298 window.dispatchEvent(new Event('pieeye-privacy-link-script-loaded')); 13299 } 13300 document.head.append(script); 13301 }; 13302 const loadStyles = () => { 13303 const style = document.createElement('link') 13304 style.href = 'https://pieeyegpc.pii.ai/1/dsrp/ce72119b-6850-4cd2-87ad-30c4b301f92f/gpc.css'; 13305 style.rel = 'stylesheet'; 13306 document.head.append(style); 13307 }; 13308 13309 window.addEventListener('init-external-scripts', () => { 13310 loadScripts(); 13311 loadStyles(); 13312 }, { 13313 once: true, 13314 passive: true 13315 }); 13316 13317 document.addEventListener('DOMContentLoaded', () => { 13318 const privacyLink = document.querySelector('[data-pieeye-privacy-link]'); 13319 privacyLink?.addEventListener?.('click', () => { 13320 window.showPopup(); 13321 }); 13322 });</script>
13322
13322<script> 13323 (events => { 13324 const dispatchUserInteractionEvent = () => { 13325 events.forEach(type => window.removeEventListener(type, dispatchUserInteractionEvent)) 13326 window.dispatchEvent(new Event('init-external-scripts')) 13327 }; 13328 events.forEach(type => window.addEventListener(type, dispatchUserInteractionEvent, {once: true, passive: true})) 13329 })(['touchstart', 'mousemove', 'wheel', 'scroll', 'keydown']);</script>
13329<script> 13330 function initWishlist() { 13331 return { 13332 addToWishlist(productId) { 13333 const formKey = hyva.getFormKey(); 13334 const postUrl = BASE_URL + 'wishlist/index/add/'; 13335 13336 fetch(postUrl, { 13337 "headers": { 13338 "content-type": "application/x-www-form-urlencoded; charset=UTF-8", 13339 }, 13340 "body": "form_key=" + formKey + "&product=" + productId + "&uenc=" + hyva.getUenc(), 13341 "method": "POST", 13342 "mode": "cors", 13343 "credentials": "include" 13344 }).then(function (response) { 13345 if (response.redirected) { 13346 window.location.href = response.url; 13347 } else if (response.ok) { 13348 return response.json(); 13349 } else { 13350 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( 13351 [{ 13352 type: "warning", 13353 text: "Could\u0020not\u0020add\u0020item\u0020to\u0020wishlist." 13354 }], 5000 13355 ); 13356 } 13357 }).then(function (response) { 13358 if (!response) { return } 13359 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( 13360 [{ 13361 type: (response.success) ? "success" : "error", 13362 text: (response.success) 13363 ? "Product\u0020has\u0020been\u0020added\u0020to\u0020your\u0020Wish\u0020List." 13364 : response.error_message 13365 }], 5000 13366 ); 13367 const reloadCustomerDataEvent = new CustomEvent("reload-customer-section-data"); 13368 window.dispatchEvent(reloadCustomerDataEvent); 13369 }).catch(function (error) { 13370 typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( 13371 [{ 13372 type: "error", 13373 text: error 13374 }], 5000 13375 ); 13376 }); 13377 } 13378 } 13379 } 13380</script>
vendor: 1 bytes, line 13380
13380
13381<script> 13382 function initPriceBox() 13383 { 13384 return { 13385 updatePrice(priceData) { 13386 const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); 13387 const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); 13388 const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); 13389 if (priceData.finalPrice.amount < priceData.oldPrice.amount) { 13390 regularPriceLabel && regularPriceLabel.classList.add('hidden'); 13391 } else { 13392 regularPriceLabel && regularPriceLabel.classList.remove('hidden'); 13393 } 13394 regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount)); 13395 basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); 13396 } 13397 } 13398 } 13399</script>
13399<style>body>.block-static-block.widget{margin-bottom:0;}</style><!--header extra empty line fix--><!--cct3ZXbGbKMnATzrTFQbzsNYjOv573jx-->
13399<script> 13400 function initConfigurableOptions(productId, optionConfig) { 13401 13402 function findPathParam(key) { 13403 const baseUrl = (BASE_URL.substring(0, 2) === '//' ? 'http:' : '') + BASE_URL; 13404 const baseUrlParts = (new URL(baseUrl)).pathname.replace(/\/$/, '').split('/'); 13405 const pathParts = window.location.pathname.split('/').slice(baseUrlParts.length + 3); 13406 for (let i = 0; i < pathParts.length; i += 2) { 13407 if (pathParts[i] === key && pathParts.length > i) { 13408 return pathParts[i + 1]; 13409 } 13410 } 13411 } 13412 13413 return { 13414 optionConfig, 13415 productId, 13416 itemId: (new URLSearchParams(window.location.search)).get('id') || findPathParam('id'), 13417 allowedAttributeOptions: [], 13418 selectedValues: [], 13419 init() { 13420 this.findAllowedAttributeOptions(); 13421 this.$nextTick(() => { 13422 if (typeof this.optionConfig.defaultValues === 'object') { 13423 for (const [attributeId, value] of Object.entries(this.optionConfig.defaultValues)) { 13424 this.changeOption(attributeId, value + ''); 13425 } 13426 } 13427 this.preselectQuerystringItems(); 13428 this.preselectLocationHashItems(); 13429 }); 13430 }, 13431 productIndex: 0, 13432 productIndexForPrice: 0, 13433 optionIsActive(attributeId, optionId) { 13434 return !!this.getAllowedAttributeOptions(attributeId).find( 13435 option => option.id === optionId 13436 ) 13437 }, 13438 optionIsEnabled(attributeId, optionId) { 13439 for (const productId in this.optionConfig.index) { 13440 if (this.optionConfig.index[productId][attributeId] === optionId) { 13441 return true; 13442 } 13443 } 13444 return false; 13445 }, 13446 findSimpleIndex() { 13447 this.productIndex = this.calculateSimpleIndexForPartialSelection(this.selectedValues); 13448 this.productIndexForPrice = this.findCheapestProductForPartialSelection(this.selectedValues); 13449 }, 13450 calculateSimpleIndexForPartialSelection(selectedValues) { 13451 if (selectedValues.length === 0) return 0; 13452 return this.findProductIdsForPartialSelection(selectedValues)[0]; 13453 }, 13454 calculateSimpleIndexForFullSelection(selectedValues) { 13455 if (! this.isFullSelection(selectedValues)) return false; 13456 13457 const productIndexes = this.optionConfig.index; 13458 return Object.keys(productIndexes).find(productIndex => { 13459 const productCandidateOptions = productIndexes[productIndex]; 13460 13461 for (const productOption in productCandidateOptions) { 13462 if ( 13463 !selectedValues[productOption] || 13464 selectedValues[productOption] !== productCandidateOptions[productOption] 13465 ) { 13466 return false; 13467 } 13468 } 13469 return productIndex; 13470 }); 13471 }, 13472 findAllowedAttributeOptions() { 13473 this.allowedAttributeOptions = this.calculateAllowedAttributeOptions(this.selectedValues); 13474 }, 13475 calculateAllowedAttributeOptions(selectedValues) { 13476 const allAttributes = this.optionConfig.attributes; 13477 const allAttributesSorted = Object.values(allAttributes).sort((a,b) => { 13478 return a.position - b.position 13479 }); 13480 13481 const newAllowedAttributeOptions = []; 13482 13483 allAttributesSorted.forEach(attribute => { 13484 const selectionWithoutAttr = Object.assign({}, this.removeAttrFromSelection(selectedValues, attribute.id)); 13485 const availableIndexes = this.calculateAvailableProductIndexes(selectionWithoutAttr); 13486 newAllowedAttributeOptions[attribute.id] = allAttributes[attribute.id].options.filter(option => { 13487 return !!option.products.find(product => { 13488 return availableIndexes.includes(product); 13489 }) 13490 }); 13491 }); 13492 return newAllowedAttributeOptions; 13493 }, 13494 calculateAvailableProductIndexes(selectedOptions) { 13495 if (Object.keys(selectedOptions).length === 0) { 13496 if (Object.values(this.optionConfig.salable || {}).length) { 13497 return [].concat.apply([], [].concat.apply([], Object.values(this.optionConfig.salable).map(Object.values))).filter((x, i, a) => a.indexOf(x) === i) 13498 } 13499 return Object.keys(this.optionConfig.index); 13500 } 13501 13502 const selectedIds = Object.keys(selectedOptions); 13503 if (Object.values(this.optionConfig.salable || {}).length) { 13504 const selectedOptionIndexes = selectedIds.map(attrId => { 13505 const optionValue = selectedOptions[attrId]; 13506 return this.optionConfig.salable[attrId] && this.optionConfig.salable[attrId][optionValue] || [] 13507 }) 13508 return selectedOptionIndexes.reduce((acc, optionIndexes) => { 13509 return acc.filter(index => optionIndexes.includes(index)); 13510 }); 13511 } else { 13512 const productIndexes = this.optionConfig.index; 13513 return Object.keys(productIndexes).filter(index => { 13514 for (const attrId of selectedIds) { 13515 if (productIndexes[index][attrId] !== `${selectedOptions[attrId]}`) return false 13516 } 13517 return true 13518 }); 13519 } 13520 }, 13521 findAttributeByOptionId(optionId) { 13522 for (const attributeId in this.optionConfig.attributes) { 13523 const attributeOptions = this.optionConfig.attributes[attributeId].options || []; 13524 if (attributeOptions.find(option => option.id === optionId)) { 13525 return attributeId; 13526 } 13527 } 13528 }, 13529 getAllowedAttributeOptions(attributeId) { 13530 return this.allowedAttributeOptions[attributeId] || [] 13531 }, 13532 getAllAttributeOptions(attributeId) { 13533 return ( 13534 this.optionConfig.attributes[attributeId] && 13535 this.optionConfig.attributes[attributeId].options 13536 ) || [] 13537 }, 13538 getProductIdsForOption(option) { 13539 const attributeId = this.findAttributeByOptionId(option.id); 13540 const allOptions = this.optionConfig.attributes[attributeId]; 13541 const opt = (allOptions && allOptions.options || []).find(o => o.id === option.id); 13542 return opt && opt.products 13543 ? opt.products 13544 : []; 13545 }, 13546 findProductIdsForPartialSelection(optionSelection) { 13547 const candidateProducts = Object.values(optionSelection).reduce((candidates, optionId) => { 13548 const newCandidates = this.getProductIdsForOption({id: optionId}); 13549 return candidates === null 13550 ? newCandidates 13551 : candidates.filter(productId => newCandidates.includes(productId)); 13552 }, null); 13553 return candidateProducts || []; 13554 },
13555 findCheapestProductForPartialSelection(optionSelection) { 13556 const candidateProducts = this.findProductIdsForPartialSelection(optionSelection); 13557 return candidateProducts.reduce((cheapest, simpleIdx) => { 13558 // in the first iteration we start with simpleIdx as the currently cheapest product 13559 if (! this.optionConfig.optionPrices[cheapest]) return simpleIdx; 13560 const knownCheapestPrice = this.optionConfig.optionPrices[cheapest].finalPrice.amount; 13561 return knownCheapestPrice > this.optionConfig.optionPrices[simpleIdx].finalPrice.amount 13562 ? simpleIdx 13563 : cheapest; 13564 }, 0) 13565 }, 13566 findProductIdToUseForOptionPrice(option) { 13567 // try to find a product for a complete selection 13568 const attributeId = this.findAttributeByOptionId(option.id); 13569 const optionSelection = Object.assign({}, this.selectedValues, {[attributeId]: option.id}); 13570 const matchingSimpleIndex = this.calculateSimpleIndexForFullSelection(optionSelection); 13571 // if there is no complete selection, use the cheapest product for the option 13572 return matchingSimpleIndex || this.findCheapestProductForPartialSelection(optionSelection); 13573 }, 13574 getAttributeOptionLabel(option) { 13575 const optionProduct = this.findProductIdToUseForOptionPrice(option); 13576 13577 if ((! optionProduct) || (optionProduct === this.productIndexForPrice)) { 13578 return option.label; 13579 } 13580 13581 const currentPrice = this.getOptionPriceAdjustmentBasePrice(); 13582 13583 if (this.optionConfig.optionPrices[optionProduct]) { 13584 const optionPrice = this.optionConfig.optionPrices[optionProduct].finalPrice.amount; 13585 if (optionPrice !== currentPrice){ 13586 return option.label + ' ' + hyva.formatPrice(optionPrice - currentPrice, true); 13587 } 13588 } 13589 return option.label; 13590 }, 13591 getOptionPriceAdjustmentBasePrice() { 13592 if (this.optionConfig.optionPrices[this.productIndexForPrice]) { 13593 return this.optionConfig.optionPrices[this.productIndexForPrice].finalPrice.amount 13594 } 13595 return this.optionConfig.prices.finalPrice.amount; // default price if no option selection 13596 }, 13597 clearOptionIfActive(optionId, value) { 13598 if (this.selectedValues[optionId] === value) { 13599 this.blurLabel() 13600 this.changeOption(optionId, '') 13601 } 13602 }, 13603 removeAttrFromSelection(selectedValues, attributeId) { 13604 attributeId = parseInt(attributeId); 13605 return selectedValues.reduce((newSelection, val, attr) => { 13606 if (attr !== attributeId) { 13607 newSelection[attr] = val; 13608 } 13609 return newSelection; 13610 }, []); 13611 }, 13612 changeOption(attributeId, value) { 13613 if (value === '') { 13614 this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId) 13615 } else if (value && this.getAllowedAttributeOptions(attributeId).find(option => option.id === value)) { 13616 this.selectedValues[attributeId] = value; 13617 } 13618 this.findSimpleIndex(); 13619 this.findAllowedAttributeOptions(); 13620 this.updatePrices(); 13621 this.updateGallery(); 13622 13623 const candidates = this.findProductIdsForPartialSelection(this.selectedValues); 13624 13625 window.dispatchEvent( 13626 new CustomEvent( 13627 'configurable-selection-changed', 13628 { 13629 detail: { 13630 productId: this.productId, 13631 optionId: attributeId, 13632 value: value, 13633 productIndex: this.productIndex, 13634 selectedValues: this.selectedValues, 13635 candidates: candidates, 13636 skuCandidates: Object.values(candidates).map(id =>
13636 this.optionConfig.sku?.[id] ?? null).filter(Boolean), 13637 } 13638 } 13639 ) 13640 ); 13641 }, 13642 calculateIsMinimalPrice() { 13643 return ! this.isFullSelection(this.selectedValues); 13644 }, 13645 isFullSelection(selectedValues) { 13646 return Object.values(selectedValues).length === Object.keys(this.optionConfig.attributes).length; 13647 }, 13648 updatePrices() { 13649 const value = this.optionConfig.optionPrices[this.productIndexForPrice] || this.optionConfig.prices; 13650 window.dispatchEvent( 13651 new CustomEvent( 13652 "update-prices-" + this.productId, 13653 { 13654 detail: Object.assign( 13655 value, 13656 { isMinimalPrice: this.calculateIsMinimalPrice() } 13657 ) 13658 } 13659 ) 13660 ); 13661 }, 13662 updateGallery () { 13663 if (this.productIndex) { 13664 const images = this.optionConfig.images[this.productIndex]; 13665 images && window.dispatchEvent(new CustomEvent( 13666 "update-gallery", 13667 { detail: this.sortImagesByPosition(images) } 13668 )); 13669 } else { 13670 window.dispatchEvent(new Event("reset-gallery")); 13671 } 13672 }, 13673 sortImagesByPosition(images) { 13674 return images.sort((x, y) => { 13675 return x.position === y.position ? 0 : (parseInt(x.position) > parseInt(y.position) ? 1 : -1) 13676 }); 13677 }, 13678 onGetCartData(data) { 13679 }, 13680 preselectCartItems(data) { 13681 // pre-select options based on cart data for current (quote) itemId 13682 const cart = data && data.cart; 13683 if (cart && cart.items) { 13684 const cartItem = cart.items.find((item) => { 13685 return ( 13686 item.item_id === this.itemId 13687 && item.product_id === this.productId 13688 ) 13689 }); 13690 if (cartItem && cartItem.options && cartItem.options.length) { 13691 cartItem.options.map(option => { 13692 this.changeOption(option.option_id, option.option_value); 13693 }) 13694 } 13695 } 13696 }, 13697 preselectQuerystringItems() { 13698 // pre-select option like ?size=167 13699 const urlQueryParams = new URLSearchParams(window.location.search.replace('?','')); 13700 this.preselectItemsBasedOnLocation(attribute => urlQueryParams.get(attribute.code)); 13701 }, 13702 preselectLocationHashItems() { 13703 // pre-select option like #144=167 13704 const urlHashParams = new URLSearchParams(window.location.hash.replace('#','')); 13705 this.preselectItemsBasedOnLocation(attribute => urlHashParams.get(attribute.id)); 13706 }, 13707 preselectItemsBasedOnLocation(getLocationValue) { 13708 Object.values(this.optionConfig.attributes).map(attribute => { 13709 const v = getLocationValue(attribute); 13710 v && this.changeOption(attribute.id, v) 13711 }); 13712 } 13713 } 13714 } 13715</script>
vendor: 1 bytes, line 13715
13715
13716<script> 13717 function initSwatchOptions(swatchConfig) { 13718 return { 13719 swatchConfig, 13720 getAttributeSwatchData(attributeId) { 13721 const swatchConfig = Object.assign({}, this.swatchConfig[attributeId]); 13722 swatchConfig['details'] = JSON.parse(swatchConfig['additional_data']); 13723 13724 return swatchConfig; 13725 }, 13726 mapSwatchTypeNumberToTypeCode(typeNumber) { 13727 switch ("" + typeNumber) { 13728 case "1": 13729 return "color" 13730 case "2": 13731 return "image" 13732 case "3": 13733 return "empty" 13734 case "0": 13735 default: 13736 return "text" 13737 } 13738 }, 13739 getTypeOfFirstOption(attributeId) { 13740 for (const optionId in this.swatchConfig[attributeId]) { 13741 const option = this.swatchConfig[attributeId][optionId]; 13742 if (typeof option.type !== 'undefined') { 13743 return this.mapSwatchTypeNumberToTypeCode(option.type); 13744 } 13745 } 13746 }, 13747 getVisualSwatchType(attributeId, targetOptionId) { 13748 // If a type configuration is present for the given option id, use it 13749 const config = this.swatchConfig[attributeId]; 13750 if (config[targetOptionId] && typeof config[targetOptionId].type !== 'undefined') { 13751 return this.mapSwatchTypeNumberToTypeCode(config[targetOptionId].type); 13752 } 13753 13754 // Otherwise - if no config is present for the target option - use the type of the first option 13755 // with a type property from the attribute, thus assuming its the same type as the target option. 13756 // (This edge case condition can occur on single swatch products if some options are not salable) 13757 return this.getTypeOfFirstOption(attributeId); 13758 }, 13759 getSwatchType(attributeId, optionId) { 13760 // Deserialize the attribute details the first time they are used 13761 if (this.swatchConfig[attributeId] && ! this.swatchConfig[attributeId].details) { 13762 this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); 13763 } 13764 const type = this.swatchConfig[attributeId] && 13765 this.swatchConfig[attributeId].details && 13766 this.swatchConfig[attributeId].details.swatch_input_type || 13767 "empty"; 13768 return type === 'visual' ? this.getVisualSwatchType(attributeId, optionId) : type; 13769 }, 13770 isTextSwatch(attributeId, optionId) { 13771 return this.getSwatchType(attributeId, optionId) === 'text'; 13772 }, 13773 isVisualSwatch(attributeId, optionId) { 13774 const type = this.getSwatchType(attributeId, optionId); 13775 13776 return ['image', 'color'].includes(type); 13777 }, 13778 getSwatchBackgroundStyle(attributeId, optionId) { 13779 const config = this.getSwatchConfig(attributeId, optionId); 13780 const type = this.getSwatchType(attributeId, optionId); 13781 13782 if (type === "color") { 13783 return 'background-color:' + config.value; 13784 } else if (type === "image") { 13785 return "background: #fff url('" + config.value + "') no-repeat center"; 13786 } else { 13787 return ''; 13788 } 13789 }, 13790 getSwatchText(attributeId, optionId) { 13791 const config = this.getSwatchConfig(attributeId, optionId); 13792 return config.label || config.value || this.getOptionLabelFromOptionConfig(attributeId, optionId); 13793 }, 13794 getOptionLabelFromOptionConfig(attributeId, optionId) { 13795 // Fallback if no value is present in swatchConfig data 13796 // Reference issue https://gitlab.hyva.io/hyva-themes/magento2-default-theme/-/issues/190 13797 const option = this.getAllAttributeOptions(attributeId).filter(option => option.id === optionId); 13798 return option && option[0] && option[0].label ||''; 13799 }, 13800 getSwatchConfig(attributeId, optionId) { 13801 return this.swatchConfig[attributeId] && this.swatchConfig[attributeId][optionId] 13802 ? this.swatchConfig[attributeId][optionId] 13803 : false;
13804 }, 13805 activeTooltipItem: false, 13806 tooltipPositionElement: false, 13807 isTooltipVisible() { 13808 return this.activeTooltipItem && 13809 this.getSwatchConfig( 13810 this.activeTooltipItem.attribute, 13811 this.activeTooltipItem.item 13812 ); 13813 }, 13814 isFirstItemCol() { 13815 return this.activeTooltipItem.index === 0; 13816 }, 13817 getTooltipImageStyle(attributeId, optionId) { 13818 const config = this.getSwatchConfig(attributeId, optionId); 13819 const type = this.getSwatchType(attributeId, optionId); 13820 13821 if (type === "color") { 13822 return 'background-color:' + config.value + '; width: 110px; height: 90px;'; 13823 } else if (type === "image") { 13824 return "background: #ffffff url('" + config.thumb + 13825 "') center center no-repeat; width: 110px; height: 90px;"; 13826 } else { 13827 return 'display:none'; 13828 } 13829 }, 13830 getTooltipPosition() { 13831 return this.tooltipPositionElement ? 13832 `top: ${this.tooltipPositionElement.offsetTop}px;` + 13833 `left: ${ 13834 this.tooltipPositionElement.offsetLeft - ( 13835 this.tooltipPositionElement.closest('.snap') && 13836 this.tooltipPositionElement.closest('.snap').scrollLeft || 13837 0 13838 ) 13839 }px;` : '' 13840 }, 13841 getTooltipLabel() { 13842 return this.getSwatchConfig(this.activeTooltipItem.attribute, this.activeTooltipItem.item).label 13843 }, 13844 focusedLabel: false, 13845 focusLabel(optionId) { 13846 this.focusedLabel = optionId; 13847 }, 13848 blurLabel() { 13849 this.focusedLabel = false; 13850 } 13851 } 13852 } 13853</script>
13853 13854
13854<script> 13855 (function () { 13856 const modals = []; 13857 let lastHide = 0; 13858 13859 function resolveElement($refs, value) { 13860 if (!value) return null; 13861 if (value instanceof Element) return value; 13862 if (typeof value === 'string') { 13863 try { 13864 return ($refs && $refs[value]) || document.querySelector(value) || null; 13865 } catch (e) {} 13866 } 13867 return null; 13868 } 13869 13870 function determineTrigger($refs, dialog, trigger) { 13871 if (!trigger && dialog?.target instanceof HTMLElement) { 13872 return dialog.target; 13873 } 13874 13875 if (typeof dialog === 'string' && trigger?.target instanceof HTMLElement) { 13876 return trigger.target; 13877 } 13878 13879 return resolveElement($refs, trigger); 13880 } 13881 13882 function setFocusFirstElement(dialogElement) { 13883 if (!dialogElement) return; 13884 13885 window.setTimeout(() => { 13886 const candidates = dialogElement.querySelectorAll('[x-focus-first]'); 13887 for (const candidate of candidates) { 13888 if (candidate.closest('dialog') === dialogElement) { 13889 candidate.focus(); 13890 return; 13891 } 13892 } 13893 }, 50); 13894 } 13895 13896 window.hyva.modal = function(options = {}) { 13897 if (this.$el && this.$el.dataset && this.$el.dataset.options) { 13898 try { 13899 options = Object.assign(options, JSON.parse(this.$el.dataset.options || '{}')); 13900 } catch (e) { 13901 throw new Error('Cannot read the dialog options from the data-options attribute: not valid JSON'); 13902 } 13903 } 13904 13905 const config = Object.assign({ 13906 dialog: 'dialog', duration: 300, transitionEnter: 'transition ease-out duration-300', 13907 transitionEnterStart: 'opacity-0', 13908 transitionEnterEnd: 'opacity-100', 13909 transitionLeave: 'transition ease-in duration-300', 13910 transitionLeaveStart: 'opacity-100', 13911 transitionLeaveEnd: 'opacity-0', 13912 }, options); 13913 13914 return { 13915 opened: {}, 13916 show(dialog, trigger) { 13917 const name = typeof dialog === 'string' ? dialog : config.dialog; 13918 if (!name || this.opened[name]) return; 13919 13920 this.opened[name] = true; 13921 const focusTarget = determineTrigger(this.$refs, dialog, trigger); 13922 const dialogEl = this.$refs && this.$refs[name]; 13923 const frame = { name, instance: this, focusTarget, time: Date.now() }; 13924 modals.push(frame); 13925 setFocusFirstElement(dialogEl); 13926 return new Promise(resolve => { frame.resolve = resolve; }); 13927 }, 13928 cancel() { 13929 this.hide(false); 13930 }, 13931 ok() { 13932 this.hide(true); 13933 }, 13934 hide(value) { 13935 if (Date.now() - lastHide < config.duration) return; 13936 lastHide = Date.now(); 13937 13938 const modal = modals.pop(); 13939 if (!modal) return; 13940 13941 modal.instance.opened[modal.name] = false; 13942 13943 const focusTarget = modal.focusTarget; 13944 focusTarget && window.setTimeout(() => focusTarget.focus(), config.duration + 50); 13945 modal.resolve && modal.resolve(value); 13946 }, 13947 /** 13948 * @deprecated Use dialogConfig() instead, which is used by the default modal-container.phtml template. 13949 * This method is kept for backwards compatibility with custom container templates. 13950 */ 13951 overlay(dialog) { 13952 dialog = this.$el.dataset.dialogRefName || dialog; 13953 const name = typeof dialog === 'string' ? dialog : config.dialog; 13954 if (this.$el.tagName !== 'DIALOG' && ! window.hyva.modal.legacyModalCompatibility) { 13955 console.warn( 13956 '[hyva] Deprecated modal markup detected (x-bind="overlay" on a non-dialog element' + 13957 (name ? ` for "${name}"` : '') + ').\n' + 13958 'Escape and click-outside closing are not available for such dialogs anymore.\n' + 13959 'Install hyva-themes/magento2-legacy-modal-compatibility or migrate to the native <dialog> markup.' 13960 ); 13961 } 13962 return Object.assign({}, this.dialogConfig(name), { 13963 ['@hyva-modal-show.window'](event) { 13964 event.detail && event.detail.dialog === name && this.show(name, event.detail.focusAfterHide) 13965 } 13966 }); 13967 }, 13968 dialogConfig(name) { 13969 name = name || this.$el.dataset.dialogRefName || config.dialog; 13970 return { 13971 ['x-show']: () => name ? this.opened[name] : false, 13972 ['x-transition:enter']: config.transitionEnter, 13973 ['x-transition:enter-start']: config.transitionEnterStart, 13974 ['x-transition:enter-end']: config.transitionEnterEnd, 13975 ['x-transition:leave']: config.transitionLeave, 13976 ['x-transition:leave-start']: config.transitionLeaveStart, 13977 ['x-transition:leave-end']: config.transitionLeaveEnd, 13978 ['@hyva-modal-show.window'](event) { 13979 event.detail && event.detail.dialog === name && this.show(name, event.detail.focusAfterHide); 13980 }, 13981 }; 13982 },
13983 showDialogOnInit() { 13984 const name = this.$el.dataset.dialogRefName; 13985 if (name) { 13986 this.show(name); 13987 } 13988 } 13989 }; 13990 } 13991 13992 window.hyva.modal.peek = () => modals.length > 0 && modals[modals.length - 1] 13993 13994 window.hyva.modal.pop = function () { 13995 if (modals.length > 0) { 13996 modals[modals.length - 1].instance.hide(); 13997 } 13998 } 13999 14000 /** 14001 * @deprecated Native <dialog> handles focus trapping automatically. 14002 * Calling this function has no effect. Kept for backwards compatibility. 14003 */ 14004 window.hyva.modal.excludeSelectorsFromFocusTrap = function (selectors) {} 14005 14006 /** 14007 * @deprecated Native <dialog> with x-htmldialog handles ESC key and click-outside events. 14008 * These functions have no effect. Kept for backwards compatibility. 14009 */ 14010 window.hyva.modal.eventListeners = { 14011 keydown: event => {}, 14012 click: event => {} 14013 }; 14014 })(); 14015 14016 window.addEventListener('alpine:init', () => { 14017 Alpine.data('hyvaModal', window.hyva.modal); 14018 }, {once: true});</script>
14018<script> 14019 'use strict'; 14020 14021 const grecaptchaV2LoadCallbacks = []; 14022 14023 function executeRecaptchaLoadCallbacks () { 14024 while (window.grecaptcha && grecaptchaV2LoadCallbacks.length > 0) { 14025 const callback = grecaptchaV2LoadCallbacks.pop(); 14026 typeof callback === 'string' ? window[callback]() : callback(); 14027 } 14028 } 14029 14030 (function() { 14031 const loadRecaptchaScript = (event) => { 14032 14033 if (window.grecaptcha || !event.target.form) { 14034 return; 14035 } 14036 14037 const url = 'https://www.google.com/recaptcha/api.js?onload=executeRecaptchaLoadCallbacks'; 14038 const siteKey = '6Ld7TjssAAAAAEISy7Zejr4a6l76\u002DFkBM89gLGGS'; 14039 const script = document.createElement('script'); 14040 script.type = 'text/javascript'; 14041 script.src = siteKey ? `${url}&render=${siteKey}` : `${url}&render=explicit`; 14042 script.async = true; 14043 document.head.appendChild(script); 14044 14045 script.addEventListener('load', () => { 14046 Array.from(document.querySelectorAll('button[data-recaptcha-btn]:disabled')).forEach(btn => btn.removeAttribute('disabled')); 14047 }); 14048 } 14049 14050 window.forceLoadRecaptchaScript = (form) => { 14051 loadRecaptchaScript({target: {form: form || 'dummy'}}); 14052 executeRecaptchaLoadCallbacks(); 14053 }; 14054 14055 document.body.addEventListener('input', loadRecaptchaScript, { once: true }); 14056 document.body.addEventListener('focus', loadRecaptchaScript, { once: true }); 14057 14058 }()); 14059 14060</script>
14060 14061 14062 <!-- Pinterest Add to Cart Tag Code -->
14062<script> 14063 require([ 14064 "jquery", 14065 "jquery/jquery.cookie" 14066 ], function ($) { 14067 $(document).ready(function () { 14068 function trackAddToCart(eventId, value, currency, line_items) { 14069 pintrk("track", "AddToCart", { 14070 event_id: eventId, 14071 value: value, 14072 currency: currency, 14073 line_items: line_items 14074 }); 14075 } 14076 var product_info_url = "https://www.shelterlogic.com/pin/Tag/ProductInfoForAddToCart"; 14077 $(document).on("ajax:addToCart", function (event, data) { 14078 if (product_info_url) { 14079 $.ajax({ 14080 url: product_info_url, 14081 type: "post", 14082 data: { 14083 store_id: "7" 14084 }, 14085 dataType: "json", 14086 success: function (res) { 14087 if (res.event_id) { 14088 14089 14090 14091 pintrk('setconsent', true); 14092 trackAddToCart( 14093 res.event_id, 14094 res.value, 14095 res.currency, 14096 res.line_items, 14097 ); 14098 } 14099 } 14100 }); 14101 } 14102 }); 14103 }); 14104 });</script>
14104<!-- End of Pinterest Add to Cart Tag Code --> <!-- Pinterest Pinterest View Category Tag Code -->
14104<script> 14105 require([ 14106 "jquery" 14107 ], function ($) { 14108 var conversionEventUrl = "https://www.shelterlogic.com/pin/Tag/ConversionEvent"; 14109 $(document).ready(function () { 14110 let ajaxData = {storeId: "7"}; 14111 let pintrkData = {}; 14112 ajaxData = { 14113 productDetails: {"content_ids":["48041","48043","48044","48216","48217","48218","48219","49888","53122","53124","53126","57164","57778","57784","57790","59989","60007"],"contents":[{"item_price":"9.99"},{"item_price":"14.99"},{"item_price":"2599.99"},{"item_price":"2199.99"},{"item_price":"1699.99"},{"item_price":"1659.99"},{"item_price":"29.99"},{"item_price":"3319.99"},{"item_price":"2179.99"},{"item_price":"1199.99"},{"item_price":"919.5"},{"item_price":"1133.22"},{"item_price":"487.17"},{"item_price":"273.45"},{"item_price":"1070.99"},{"item_price":"433.99"},{"item_price":"454.99"}],"line_tems":[{"product_id":"60007_Arrow Steel Panels 34","product_price":9.99,"product_name":"Arrow 34 Gauge Galvanized Steel Panels","product_category":"Custom Commercial Grade Buildings & Shelters"},{"product_id":"59989_Arrow Steel Panels","product_price":14.99,"product_name":"Arrow 28 Gauge Galvanized Steel Panels","product_category":"Custom Commercial Grade Buildings & Shelters"},{"product_id":"57790_ShelterTube40UDKit","product_price":2599.99,"product_name":"ShelterTube\u00ae Wind and Snow Rated Garage, Utra Duty Cover (15-year warranty)","product_category":"Custom Commercial Grade Buildings & Shelters"},{"product_id":"57784_ShelterTube40HDKit","product_price":2199.99,"product_name":"ShelterTube\u00ae Wind and Snow Rated Garage, Heavy Duty Cover (10-year warranty)","product_category":"Custom Commercial Grade Buildings & Shelters"},{"product_id":"57778_ShelterTube40STKit","product_price":1699.99,"product_name":"ShelterTube\u00ae Wind and Snow Rated Garage, Starter Cover (1-year warranty)","product_category":"Custom Commercial Grade Buildings & Shelters"},{"product_id":"57164_ACW","product_price":1659.99,"product_name":"Arrow Carport With Sides - Configure Your Own","product_category":"Custom Commercial Grade Buildings & Shelters"},{"product_id":"53126_BaseballFieldSpotCover","product_price":29.99,"product_name":"Baseball Field Spot Cover","product_category":"Custom Commercial Grade Buildings & Shelters"},{"product_id":"53124_SoftballFieldTarps","product_price":3319.99,"product_name":"Softball Field Tarps","product_category":"Custom Commercial Grade Buildings & Shelters"},{"product_id":"53122_baseballFCSA","product_price":2179.99,"product_name":"Athletic Field Covers","product_category":"Custom Commercial Grade Buildings & Shelters"},{"product_id":"49888_AASC","product_price":1199.99,"product_name":"Arrow Carport Kit - Build your Own","product_category":"Custom Commercial Grade Buildings & Shelters"},{"product_id":"48219_STHTGH-FE","product_price":919.5,"product_name":"High Tunnel Greenhouse, Frame and End Panel Frame","product_category":"Custom Commercial Grade Buildings & Shelters"},{"product_id":"48218_STHTGH-FK","product_price":1133.22,"product_name":"High Tunnel Greenhouse, Full Kit","product_category":"Custom Commercial Grade Buildings & Shelters"},{"product_id":"48217_STHTGH-FC","product_price":487.17,"product_name":"High Tunnel Greenhouse, Frame and Cover","product_category":"Custom Commercial Grade Buildings & Shelters"},{"product_id":"48216_STHTGH-FO","product_price":273.45,"product_name":"High Tunnel Greenhouse, Frame Only","product_category":"Custom Commercial Grade Buildings & Shelters"},{"product_id":"48044_ShelterCoat Barn","product_price":1070.99,"product_name":"ShelterCoat\u00ae Custom Shelter, Barn","product_category":"Custom Commercial Grade Buildings & Shelters"},{"product_id":"48043_ShelterCoat Round","product_price":433.99,"product_name":"ShelterCoat\u00ae Custom Wind and Snow Rated Shelter, Round","product_category":"Custom Commercial Grade Buildings & Shelters"},{"product_id":"48041_ShelterCoat Peak","product_price":454.99,"product_name":"ShelterCoat\u00ae Custom Shelter, Peak","product_category":"Custom Commercial Grade Buildings & Shelters"}],"category":"Custom Commercial Grade Buildings & Shelters"}, 14114 currency: "USD", 14115 storeId: "7" 14116 } 14117 pintrkData = { 14118 line_items: [{"product_id":"60007_Arrow Steel Panels 34","product_price":9.99,"product_name":"Arrow 34 Gauge Galvanized Steel Panels","product_category":"Custom Commercial Grade Buildings & Shelters"},{"product_id":"59989_Arrow Steel Panels","product_price":14.99,"product_name":"Arrow 28 Gauge Galvanized Steel Panels","product_category":"Custom Commercial Grade Buildings & Shelters"},{"product_id":"57790_ShelterTube40UDKit","product_price":2599.99,"product_name":"ShelterTube\u00ae Wind and Snow Rated Garage, Utra Duty Cover (15-year warranty)","product_category":"Custom Commercial Grade Buildings & Shelters"},{"product_id":"57784_ShelterTube40HDKit","product_price":2199.99,"product_name":"ShelterTube\u00ae Wind and Snow Rated Garage, Heavy Duty Cover (10-year warranty)","product_category":"Custom Commercial Grade Buildings & Shelters"},{"product_id":"57778_ShelterTube40STKit","product_price":1699.99,"product_name":"ShelterTube\u00ae Wind and Snow Rated Garage, Starter Cover (1-year warranty)","product_category":"Custom Commercial Grade Buildings & Shelters"},{"product_id":"57164_ACW","product_price":1659.99,"product_name":"Arrow Carport With Sides - Configure Your Own","product_category":"Custom Commercial Grade Buildings & Shelters"},{"product_id":"53126_BaseballFieldSpotCover","product_price":29.99,"product_name":"Baseball Field Spot Cover","product_category":"Custom Commercial Grade Buildings & Shelters"}
14118,{"product_id":"53124_SoftballFieldTarps","product_price":3319.99,"product_name":"Softball Field Tarps","product_category":"Custom Commercial Grade Buildings & Shelters"},{"product_id":"53122_baseballFCSA","product_price":2179.99,"product_name":"Athletic Field Covers","product_category":"Custom Commercial Grade Buildings & Shelters"},{"product_id":"49888_AASC","product_price":1199.99,"product_name":"Arrow Carport Kit - Build your Own","product_category":"Custom Commercial Grade Buildings & Shelters"},{"product_id":"48219_STHTGH-FE","product_price":919.5,"product_name":"High Tunnel Greenhouse, Frame and End Panel Frame","product_category":"Custom Commercial Grade Buildings & Shelters"},{"product_id":"48218_STHTGH-FK","product_price":1133.22,"product_name":"High Tunnel Greenhouse, Full Kit","product_category":"Custom Commercial Grade Buildings & Shelters"},{"product_id":"48217_STHTGH-FC","product_price":487.17,"product_name":"High Tunnel Greenhouse, Frame and Cover","product_category":"Custom Commercial Grade Buildings & Shelters"},{"product_id":"48216_STHTGH-FO","product_price":273.45,"product_name":"High Tunnel Greenhouse, Frame Only","product_category":"Custom Commercial Grade Buildings & Shelters"},{"product_id":"48044_ShelterCoat Barn","product_price":1070.99,"product_name":"ShelterCoat\u00ae Custom Shelter, Barn","product_category":"Custom Commercial Grade Buildings & Shelters"},{"product_id":"48043_ShelterCoat Round","product_price":433.99,"product_name":"ShelterCoat\u00ae Custom Wind and Snow Rated Shelter, Round","product_category":"Custom Commercial Grade Buildings & Shelters"},{"product_id":"48041_ShelterCoat Peak","product_price":454.99,"product_name":"ShelterCoat\u00ae Custom Shelter, Peak","product_category":"Custom Commercial Grade Buildings & Shelters"}], 14119 currency: "USD" 14120 } 14121 $.ajax({ 14122 url: conversionEventUrl, 14123 data: { 14124 event_name: 'view_category', 14125 data: ajaxData 14126 }, 14127 type: "post", 14128 dataType: "json", 14129 success: function (res) { 14130 if (res.event_id) { 14131 pintrk('track', 'viewcategory', { 14132 event_id: res.event_id, 14133 ...pintrkData 14134 }); 14135 } 14136 } 14137 }); 14138 }); 14139 });</script>
14139<!-- End of Pinterest View Category Tag Code -->
14139<script> 14140 'use strict'; 14141 14142 (() => { 14143 const browserStorage = hyva.getBrowserStorage(); 14144 const storageKey = 'mage-banners-cache-storage'; 14145 const cacheTimeoutKey = 'mage-banners-cache-timeout'; 14146 const storeIdKey = 'mage-banners-storeId'; 14147 const cartIdKey = 'mage-banners-cartDataId'; 14148 const options = { 14149 cacheTtl: 30000, 14150 sectionLoadUrl: 'https://www.shelterlogic.com/banner/ajax/load' 14151 }; 14152 14153 if (browserStorage && browserStorage.getItem(storageKey) === null) { 14154 browserStorage.setItem(storageKey, "{}"); 14155 } 14156 14157 async function initBanners(elements) { 14158 invalidateCacheBySessionTimeOut(); 14159 14160 const storageData = JSON.parse(browserStorage.getItem(storageKey)); 14161 let items = []; 14162 14163 if (storageData.data) { 14164 items = getFromStorage(); 14165 } else { 14166 items = await getFromServer(); 14167 } 14168 14169 populateDynamicBlocks(elements, items); 14170 } 14171 14172
14173 function invalidateCacheBySessionTimeOut() { 14174 const cacheEol = new Date(browserStorage.getItem(cacheTimeoutKey)) 14175 const dateTo = new Date(Date.now() + options.cacheTtl); 14176 const globalStoreId = hyva.getCookie('store') || 'default'; 14177 const mageCacheStorage = JSON.parse(browserStorage.getItem('mage-cache-storage')); 14178 let cartDataId = null; 14179 14180 if (browserStorage.getItem(storeIdKey) === null) { 14181 browserStorage.setItem(storeIdKey, globalStoreId); 14182 } 14183 14184 if (mageCacheStorage !== null && 14185 mageCacheStorage.hasOwnProperty('cart')) { 14186 cartDataId = mageCacheStorage.cart['data_id']; 14187 } 14188 14189 if (cacheEol < new Date() || 14190 browserStorage.getItem(storeIdKey) !== globalStoreId || 14191 Number(browserStorage.getItem(cartIdKey)) !== cartDataId) 14192 { 14193 browserStorage.setItem(storageKey, "{}"); 14194 browserStorage.setItem(cacheTimeoutKey, dateTo); 14195 browserStorage.setItem(storeIdKey, globalStoreId); 14196 14197 if (cartDataId) { 14198 browserStorage.setItem(cartIdKey, cartDataId); 14199 } 14200 } 14201 } 14202 14203 async function getFromServer() { 14204 try { 14205 const url = new URL(options.sectionLoadUrl); 14206 url.searchParams.append('requesting_page_url', url.origin); 14207 url.searchParams.append('_', Date.now()); 14208 14209 const response = await fetch(url.href, { 14210 headers: { 14211 'Content-Type': 'application/json', 14212 'X-Requested-With': 'XMLHttpRequest' 14213 } 14214 }); 14215 const storageData = await response.json(); 14216 14217 browserStorage.setItem(storageKey, JSON.stringify(storageData)); 14218 14219 if (storageData.data && storageData.data.items) { 14220 return storageData.data.items.fixed ? storageData.data.items.fixed : []; 14221 } 14222 } catch (error) { 14223 console.warn(error); 14224 14225 return []; 14226 } 14227 } 14228 14229 function getFromStorage() { 14230 const storageData = JSON.parse(browserStorage.getItem(storageKey)); 14231 if (storageData.data && storageData.data.items) { 14232 return storageData.data.items.fixed || []; 14233 } 14234 } 14235 14236 function populateDynamicBlocks(elements, items) { 14237 if (!items || items.length === 0) { 14238 console.log(`No\u0020banners\u0020found`); 14239 14240 return; 14241 } 14242 14243 for (const element of elements) { 14244 14245 const ids = element.getAttribute('data-ids').split(',').filter((id) => items.hasOwnProperty(id)); 14246 const config = { 14247 type: element.getAttribute('data-rotate'), 14248 dynamicBlockId: element.getAttribute('data-banner-id'), 14249 }; 14250 14251 getByType(config, element, items, ids); 14252 } 14253 } 14254 14255 function getByType(config = null, element, items, ids) { 14256 if (!config) return; 14257 14258 if (config.type === 'random') { 14259 ids = [ids[Math.floor(Math.random() * ids.length)]]; 14260 } 14261 14262 if (config.type === 'series' || config.type === 'shuffle') { 14263 ids = [getNextInOrder(config, ids)]; 14264 } 14265 14266 for (const id of ids) { 14267 if (items[id]) { 14268 element.insertAdjacentHTML('beforeend', items[id].content); 14269 } 14270 } 14271 } 14272 14273 function getNextInOrder(config, ids) { 14274 const dynamicBlockId = config.dynamicBlockId; 14275 const localStorageKey = 'dynamic-block-banner-rotator'; 14276 let localStorageData = JSON.parse(localStorage.getItem(localStorageKey)) || {}; 14277 let nextId; 14278 14279 if (localStorageData[dynamicBlockId] && localStorageData[dynamicBlockId].length > 0) { 14280 nextId = localStorageData[dynamicBlockId].shift(0); 14281 } else { 14282 if (config.type === 'shuffle') { 14283 ids.sort(() => Math.random() - 0.5); 14284 } 14285 nextId = ids.shift(0); 14286 localStorageData[dynamicBlockId] = ids; 14287 } 14288 14289 localStorage.setItem( 14290 localStorageKey, 14291 JSON.stringify(localStorageData) 14292 ); 14293 14294 return nextId; 14295 } 14296 14297 const elements = document.querySelectorAll('[data-banner-id][data-ids]'); 14298 if (elements.length > 0) { 14299 initBanners(elements); 14300 } 14301 })();</script>
14301
14301<script> 14302 function initBraintreeApplePayExpress() 14303 { 14304 return { 14305 buttonApi: {}, 14306 14307 /** 14308 * Initialise Apple Pay. 14309 */ 14310 init() 14311 { 14312 if (!this.deviceSupported()) { 14313 return; 14314 } 14315 14316 this.loadScript('https://js.braintreegateway.com/web/3.92.2/js/client.min.js', function() { 14317 this.setupButton(this.$root); 14318 }.bind(this)); 14319 }, 14320 14321 /** 14322 * Dynamically load a script from a given url. 14323 * 14324 * @param {String} url 14325 * @param callback 14326 * @return void 14327 */ 14328 loadScript(url, callback) 14329 { 14330 const script = document.createElement('script'); 14331 14332 script.type = 'text/javascript'; 14333 script.src = url; 14334 script.addEventListener('load', callback); 14335 14336 document.head.appendChild(script); 14337 }, 14338 14339 /** 14340 * Fetch the countries via the Magento API. 14341 * 14342 * @return void 14343 */ 14344 setupCountryDirectory() 14345 { 14346 if (!this.countryDirectory) { 14347 fetch( 14348 BASE_URL + 'rest/V1/directory/countries', 14349 { 14350 method: 'GET', 14351 } 14352 ).then(function (response) { 14353 return response.json(); 14354 }).then(function (response) { 14355 this.countryDirectory = {}; 14356 14357 for (let i = 0; i < response.length; i++) { 14358 let data = response[i]; 14359 this.countryDirectory[data.two_letter_abbreviation] = {}; 14360 14361 if (typeof data.available_regions !== 'undefined') { 14362 for (let x = 0; x < data.available_regions.length; x++) { 14363 let region = data.available_regions[x]; 14364 let regionName = region.name.toLowerCase().replace(/[^A-Z0-9]/ig, ''); 14365 14366 this.countryDirectory[data.two_letter_abbreviation][regionName] = region.id; 14367 } 14368 } 14369 } 14370 }.bind(this)); 14371 } 14372 }, 14373 14374 /** 14375 * Get the API URL based on whether the customer is logged in or not. 14376 * 14377 * @param {String} uri 14378 * @return {String} 14379 */ 14380 getApiUrl(uri) 14381 { 14382 const baseUrl = BASE_URL + 'rest/' + this.storeCode + '/V1/'; 14383 14384 if (this.isLoggedIn) { 14385 return baseUrl + 'carts/mine/' + uri; 14386 } else { 14387 return baseUrl + 'guest-carts/' + this.quoteId + '/' + uri; 14388 } 14389 }, 14390 14391 /** 14392 * Get the region ID given a country code and region name combination. 14393 * 14394 * @param {String} countryCode 14395 * @param {String} regionName 14396 * @return {String|Number} 14397 */ 14398 getRegionId(countryCode, regionName) 14399 { 14400 if (typeof regionName !== 'string') { 14401 return null; 14402 } 14403 14404 regionName = regionName.toLowerCase().replace(/[^A-Z0-9]/ig, ''); 14405 14406 if (typeof this.countryDirectory[countryCode] !== 'undefined' 14407 && typeof this.countryDirectory[countryCode][regionName] !== 'undefined' 14408 ) { 14409 return this.countryDirectory[countryCode][regionName]; 14410 } 14411 14412 return 0; 14413 }, 14414 14415 /** 14416 * Check the site is using HTTPS & Apple Pay is supported on the device. 14417 * 14418 * @return boolean 14419 */ 14420 deviceSupported() 14421 { 14422 if (location.protocol !== 'https:') { 14423 console.warn('Braintree\u0020Apple\u0020Pay\u0020requires\u0020your\u0020checkout\u0020be\u0020served\u0020over\u0020HTTPS'); 14424 14425 return false;
14426 } 14427 14428 if (!(window.ApplePaySession && ApplePaySession.canMakePayments())) { 14429 console.warn('Braintree\u0020Apple\u0020Pay\u0020is\u0020not\u0020supported\u0020on\u0020this\u0020device\u002Fbrowser'); 14430 14431 return false; 14432 } 14433 14434 return true; 14435 }, 14436 14437 /** 14438 * Retrieve shipping methods based on address. 14439 * 14440 * @param {Object} event 14441 * @param {Object} session 14442 * @return false on error 14443 */ 14444 onShippingContactSelect(event, session) 14445 { 14446 14447 let address = event.shippingContact; 14448 14449 14450 let payload = { 14451 address: { 14452 city: address.locality, 14453 region: address.administrativeArea, 14454 country_id: address.countryCode.toUpperCase(), 14455 postcode: address.postalCode, 14456 save_in_address_book: 0, 14457 }, 14458 }; 14459 14460 this.shippingAddress = payload.address; 14461 14462 14463 fetch( 14464 this.getApiUrl('estimate-shipping-methods'), 14465 { 14466 method: 'POST', 14467 body: JSON.stringify(payload), 14468 headers: { 14469 'Content-Type': 'application/json', 14470 'X-Requested-With': 'XMLHttpRequest' 14471 }, 14472 } 14473 ).then(function (response) { 14474 return response.json(); 14475 }).then(function (response) { 14476 14477 if (response.length === 0) { 14478 let virtualFlag = false; 14479 let productItems = customerData.get('cart')().items; 14480 14481 productItems.forEach((item) => { 14482 virtualFlag = item.product_type === 'virtual'; 14483 }); 14484 14485 if (virtualFlag) { 14486 session.completeShippingContactSelection( 14487 ApplePaySession.STATUS_SUCCESS, 14488 [], 14489 { 14490 label: this.displayName, 14491 amount: this.grandTotalAmount, 14492 }, 14493 [ 14494 { 14495 type: 'final', 14496 label: 'Shipping', 14497 amount: 0, 14498 }, 14499 ] 14500 ); 14501 } else { 14502 session.abort(); 14503 alert('There\u0020are\u0020no\u0020shipping\u0020methods\u0020available\u0020for\u0020you\u0020right\u0020now.\u0020Please\u0020try\u0020again\u0020or\u0020use\u0020an\u0020alternative\u0020payment\u0020method.'); 14504 14505 return false; 14506 } 14507 } 14508 14509 let shippingMethods = []; 14510 this.shippingMethods = {}; 14511 14512 14513 for (let i = 0; i < response.length; i++) { 14514 if (typeof response[i].method_code !== 'string') { 14515 continue; 14516 } 14517 14518 let method = { 14519 identifier: response[i].method_code, 14520 label: response[i].method_title, 14521 detail: response[i].carrier_title ? response[i].carrier_title : '', 14522 amount: parseFloat(response[i].amount).toFixed(2), 14523 }; 14524 14525 14526 shippingMethods.push(method); 14527 14528 this.shippingMethods[response[i].method_code] = response[i]; 14529 14530 if (!this.shippingMethod) { 14531 this.shippingMethod = response[i].method_code; 14532 } 14533 } 14534 14535 14536 let totalsPayload = { 14537 'addressInformation': { 14538 'address': { 14539 'countryId': this.shippingAddress.country_id, 14540 'region': this.shippingAddress.region, 14541 'regionId': this.getRegionId( 14542 this.shippingAddress.country_id, 14543 this.shippingAddress.region 14544 ), 14545 'postcode': this.shippingAddress.postcode 14546 }, 14547 'shipping_method_code': this.shippingMethods[shippingMethods[0].identifier].method_code, 14548 'shipping_carrier_code': this.shippingMethods[shippingMethods[0].identifier].carrier_code, 14549 }, 14550 }; 14551 14552 14553 fetch( 14554 this.getApiUrl('totals-information'), 14555 { 14556 method: 'POST', 14557 body: JSON.stringify(totalsPayload), 14558 headers: { 14559 'Content-Type': 'application/json', 14560 'X-Requested-With': 'XMLHttpRequest' 14561 }, 14562 } 14563 ).then(function (response) { 14564 return response.json(); 14565 }).then(function (response) { 14566 14567 this.grandTotalAmount = response.base_grand_total; 14568 14569 14570 session.completeShippingContactSelection( 14571 ApplePaySession.STATUS_SUCCESS, 14572 shippingMethods, 14573 { 14574 label: this.displayName, 14575 amount: this.grandTotalAmount, 14576 }, 14577 [ 14578 { 14579 type: 'final', 14580 label: 'Shipping', 14581 amount: shippingMethods[0].amount, 14582 }, 14583 ] 14584 ); 14585 }.bind(this)).catch(function (response) { 14586 session.abort(); 14587 alert('We\u0020are\u0020unable\u0020to\u0020fetch\u0020the\u0020cart\u0020totals\u0020for\u0020you.\u0020Please\u0020try\u0020an\u0020alternative\u0020payment\u0020method.'); 14588 console.error( 14589 'Braintree\u0020ApplePay\u003A\u0020Unable\u0020to\u0020get\u0020totals', 14590 response 14591 ); 14592 14593 return false;
14594 }); 14595 }.bind(this)).catch(function (response) { 14596 session.abort(); 14597 alert('We\u0020are\u0020unable\u0020to\u0020find\u0020any\u0020shipping\u0020methods\u0020for\u0020you.\u0020Please\u0020try\u0020an\u0020alternative\u0020payment\u0020method.'); 14598 console.error( 14599 'Braintree\u0020ApplePay\u003A\u0020Unable\u0020to\u0020find\u0020shipping\u0020methods\u0020for\u0020estimate\u002Dshipping\u002Dmethods', 14600 response 14601 ); 14602 14603 return false; 14604 }); 14605 }, 14606 14607 /** 14608 * Record which shipping method has been selected and update totals. 14609 * 14610 * @param {Object} event 14611 * @param {Object} session 14612 * @return void 14613 */ 14614 onShippingMethodSelect(event, session) 14615 { 14616 let shippingMethod = event.shippingMethod; 14617 this.shippingMethod = shippingMethod.identifier; 14618 14619 let payload = { 14620 'addressInformation': { 14621 'address': { 14622 'countryId': this.shippingAddress.country_id, 14623 'region': this.shippingAddress.region, 14624 'regionId': this.getRegionId(this.shippingAddress.country_id, this.shippingAddress.region), 14625 'postcode': this.shippingAddress.postcode, 14626 }, 14627 'shipping_method_code': this.shippingMethods[this.shippingMethod].method_code, 14628 'shipping_carrier_code': this.shippingMethods[this.shippingMethod].carrier_code, 14629 }, 14630 }; 14631 14632 fetch( 14633 this.getApiUrl('totals-information'), 14634 { 14635 method: 'POST', 14636 body: JSON.stringify(payload), 14637 headers: { 14638 'Content-Type': 'application/json', 14639 'X-Requested-With': 'XMLHttpRequest' 14640 }, 14641 } 14642 ).then(function (response) { 14643 return response.json(); 14644 }).then(function (response) { 14645 this.grandTotalAmount = response.base_grand_total; 14646 14647 session.completeShippingMethodSelection( 14648 ApplePaySession.STATUS_SUCCESS, 14649 { 14650 label: this.displayName, 14651 amount: this.grandTotalAmount, 14652 }, 14653 [ 14654 { 14655 type: 'final', 14656 label: 'Shipping', 14657 amount: shippingMethod.amount, 14658 }, 14659 ] 14660 ); 14661 }.bind(this)); 14662 }, 14663 14664 /** 14665 * Get the payment request. 14666 * 14667 * @return {Object} 14668 */ 14669 getPaymentRequest() 14670 { 14671 return { 14672 total: { 14673 label: this.displayName, 14674 amount: this.grandTotalAmount, 14675 }, 14676 requiredShippingContactFields: ['postalAddress', 'name', 'email', 'phone'], 14677 requiredBillingContactFields: ['postalAddress', 'name'], 14678 }; 14679 }, 14680 14681 /** 14682 * Initiate the order placement process. 14683 * 14684 * @param {String} nonce 14685 * @param {Object} event 14686 * @param {Object} session 14687 */ 14688 startPlaceOrder(nonce, event, session) 14689 { 14690 let shippingContact = event.payment.shippingContact; 14691 let billingContact = event.payment.billingContact; 14692 let payload = { 14693 'addressInformation': { 14694 'shipping_address': { 14695 'email': shippingContact.emailAddress, 14696 'telephone': shippingContact.phoneNumber, 14697 'firstname': shippingContact.givenName, 14698 'lastname': shippingContact.familyName, 14699 'street': shippingContact.addressLines, 14700 'city': shippingContact.locality, 14701 'region': shippingContact.administrativeArea, 14702 'region_id': this.getRegionId( 14703 shippingContact.countryCode.toUpperCase(), 14704 shippingContact.administrativeArea 14705 ), 14706 'region_code': null, 14707 'country_id': shippingContact.countryCode.toUpperCase(), 14708 'postcode': shippingContact.postalCode,
14709 'same_as_billing': 0, 14710 'customer_address_id': 0, 14711 'save_in_address_book': 0, 14712 }, 14713 'billing_address': { 14714 'email': shippingContact.emailAddress, 14715 'telephone': '0000000000', 14716 'firstname': billingContact.givenName, 14717 'lastname': billingContact.familyName, 14718 'street': billingContact.addressLines, 14719 'city': billingContact.locality, 14720 'region': billingContact.administrativeArea, 14721 'region_id': this.getRegionId( 14722 billingContact.countryCode.toUpperCase(), 14723 billingContact.administrativeArea 14724 ), 14725 'region_code': null, 14726 'country_id': billingContact.countryCode.toUpperCase(), 14727 'postcode': billingContact.postalCode, 14728 'same_as_billing': 0, 14729 'customer_address_id': 0, 14730 'save_in_address_book': 0, 14731 }, 14732 'shipping_method_code': this.shippingMethod 14733 ? this.shippingMethods[this.shippingMethod].method_code 14734 : '' , 14735 'shipping_carrier_code': this.shippingMethod 14736 ? this.shippingMethods[this.shippingMethod].carrier_code 14737 : '', 14738 } 14739 }; 14740 14741 14742 fetch( 14743 this.getApiUrl('shipping-information'), 14744 { 14745 method: 'POST', 14746 body: JSON.stringify(payload), 14747 headers: { 14748 'Content-Type': 'application/json', 14749 'X-Requested-With': 'XMLHttpRequest' 14750 }, 14751 } 14752 ).then(function () { 14753 14754 fetch( 14755 this.getApiUrl('payment-information'), 14756 { 14757 method: 'POST', 14758 body: JSON.stringify( 14759 { 14760 'email': shippingContact.emailAddress, 14761 'paymentMethod': { 14762 'method': 'braintree_applepay', 14763 'additional_data': { 14764 'payment_method_nonce': nonce, 14765 }, 14766 'extension_attributes': { 14767 'agreement_ids': [1], 14768 }, 14769 }, 14770 } 14771 ), 14772 headers: { 14773 'Content-Type': 'application/json', 14774 'X-Requested-With': 'XMLHttpRequest' 14775 }, 14776 } 14777 ).then(function (response) { 14778 document.location = this.actionSuccess; 14779 session.completePayment(ApplePaySession.STATUS_SUCCESS); 14780 }.bind(this)).catch(function (response) { 14781 session.completePayment(ApplePaySession.STATUS_FAILURE); 14782 session.abort(); 14783 alert('We\u0020are\u0020unable\u0020to\u0020take\u0020your\u0020payment\u0020through\u0020Apple\u0020Pay.\u0020Please\u0020try\u0020an\u0020again\u0020or\u0020use\u0020an\u0020alternative\u0020payment\u0020method.'); 14784 console.error( 14785 'Braintree\u0020ApplePay\u003A\u0020Unable\u0020to\u0020take\u0020payment', 14786 response 14787 ); 14788 14789 return false;
14790 }); 14791 }.bind(this)).catch(function (response) { 14792 console.error( 14793 'Braintree\u0020ApplePay\u0020Unable\u0020to\u0020set\u0020shipping\u0020information', 14794 response 14795 ); 14796 session.completePayment(ApplePaySession.STATUS_INVALID_BILLING_POSTAL_ADDRESS); 14797 }); 14798 }, 14799 14800 /** 14801 * Initialise the Apple Pay button. 14802 * 14803 * @param {HTMLElement} button 14804 * @param {Object} context = this.buttonApi 14805 */ 14806 initButton(button, context) 14807 { 14808 14809 if (!button || !context) { 14810 return; 14811 } 14812 14813 14814 if (!context.clientToken) { 14815 console.error( 14816 'Braintree\u0020ApplePay\u0020Context\u0020passed\u0020does\u0020not\u0020provide\u0020a\u0020client\u0020token', 14817 context 14818 ); 14819 14820 return; 14821 } 14822 14823 if (typeof context.getPaymentRequest !== 'function') { 14824 console.error( 14825 'Braintree\u0020ApplePay\u0020Context\u0020passed\u0020does\u0020not\u0020provide\u0020a\u0020getPaymentRequest\u0020method', 14826 context 14827 ); 14828 14829 return; 14830 } 14831 14832 if (typeof context.startPlaceOrder !== 'function') { 14833 console.error( 14834 'Braintree\u0020ApplePay\u0020Context\u0020passed\u0020does\u0020not\u0020provide\u0020a\u0020startPlaceOrder\u0020method', 14835 context 14836 ); 14837 14838 return; 14839 } 14840 14841 if (this.deviceSupported() === false) { 14842 return; 14843 } 14844 14845 this.loadScript('https://js.braintreegateway.com/web/3.92.2/js/apple-pay.min.js', () => { 14846 14847 braintree.client.create({authorization: context.clientToken}, function (clientErr, clientInstance) { 14848 if (clientErr) { 14849 console.error('Error\u0020creating\u0020client\u003A', clientErr); 14850 14851 return; 14852 } 14853 14854 braintree.applePay.create({client: clientInstance}, function (applePayErr, applePayInstance) { 14855 14856 if (applePayErr) { 14857 console.error( 14858 'Braintree\u0020ApplePay\u0020Error\u0020creating\u0020applePayInstance\u003A', 14859 applePayErr 14860 ); 14861 14862 return; 14863 } 14864 14865 var el = document.createElement('div'); 14866 14867 el.className = 'braintree-apple-pay-button'; 14868 el.title = 'Pay\u0020with\u0020Apple\u0020Pay'; 14869 el.alt = 'Pay\u0020with\u0020Apple\u0020Pay'; 14870 14871 el.addEventListener('click', function (e) { 14872 e.preventDefault(); 14873 14874 14875 var paymentRequest = applePayInstance.createPaymentRequest(context.getPaymentRequest()); 14876 14877 if (!paymentRequest) { 14878 alert('We\u0020are\u0020unable\u0020to\u0020take\u0020payments\u0020through\u0020Apple\u0020Pay\u0020at\u0020the\u0020moment.\u0020Please\u0020try\u0020an\u0020alternative\u0020payment\u0020method.'); 14879 console.error( 14880 'Braintree\u0020ApplePay\u0020Unable\u0020to\u0020create\u0020paymentRequest', 14881 paymentRequest 14882 ); 14883 14884 return; 14885 } 14886 14887 14888 try { 14889 var session = new ApplePaySession(1, paymentRequest); 14890 } catch (err) { 14891 console.error( 14892 'Braintree\u0020ApplePay\u0020Unable\u0020to\u0020create\u0020ApplePaySession', 14893 err 14894 ); 14895 alert('We\u0020are\u0020unable\u0020to\u0020take\u0020payments\u0020through\u0020Apple\u0020Pay\u0020at\u0020the\u0020moment.\u0020Please\u0020try\u0020an\u0020alternative\u0020payment\u0020method.'); 14896 14897 return false;
14898 } 14899 14900 14901 session.onvalidatemerchant = function (event) { 14902 applePayInstance.performValidation({ 14903 validationURL: event.validationURL, 14904 displayName: context.displayName, 14905 }, function (validationErr, merchantSession) { 14906 if (validationErr) { 14907 session.abort(); 14908 console.error( 14909 'Braintree\u0020ApplePay\u0020Error\u0020validating\u0020merchant\u003A', 14910 validationErr 14911 ); 14912 alert('We\u0020are\u0020unable\u0020to\u0020take\u0020payments\u0020through\u0020Apple\u0020Pay\u0020at\u0020the\u0020moment.\u0020Please\u0020try\u0020an\u0020alternative\u0020payment\u0020method.'); 14913 14914 return; 14915 } 14916 14917 session.completeMerchantValidation(merchantSession); 14918 }); 14919 }; 14920 14921 14922 session.onpaymentauthorized = function (event) { 14923 applePayInstance.tokenize({ 14924 token: event.payment.token 14925 }, function (tokenizeErr, payload) { 14926 if (tokenizeErr) { 14927 console.error( 14928 'Error\u0020tokenizing\u0020Apple\u0020Pay\u003A', 14929 tokenizeErr 14930 ); 14931 session.completePayment(ApplePaySession.STATUS_FAILURE); 14932 14933 return; 14934 } 14935 14936 14937 context.startPlaceOrder(payload.nonce, event, session); 14938 }); 14939 }; 14940 14941 14942 if (typeof context.onShippingContactSelect === 'function') { 14943 session.onshippingcontactselected = function (event) { 14944 return context.onShippingContactSelect(event, session); 14945 }; 14946 } 14947 14948 14949 if (typeof context.onShippingMethodSelect === 'function') { 14950 session.onshippingmethodselected = function (event) { 14951 return context.onShippingMethodSelect(event, session); 14952 }; 14953 } 14954 14955 14956 if (typeof context.onButtonClick === 'function') { 14957 context.onButtonClick(session, this, e); 14958 } else { 14959 session.begin(); 14960 } 14961 }); 14962 14963 button.appendChild(el); 14964 }); 14965 }); 14966 }); 14967 }, 14968 14969 /** 14970 * Perform Apple Pay button setup. 14971 * 14972 * @param {HTMLElement} button 14973 * @returns {*} 14974 */ 14975 setupButton(button) 14976 { 14977 this.buttonApi = { 14978 actionSuccess: button.getAttribute('data-success'), 14979 clientToken: button.getAttribute('data-client-token'), 14980 countryDirectory: this.setupCountryDirectory, 14981 displayName: button.getAttribute('data-display-name'), 14982 getApiUrl: this.getApiUrl, 14983 getPaymentRequest: this.getPaymentRequest, 14984 getRegionId: this.getRegionId, 14985 grandTotalAmount: parseFloat(button.getAttribute('data-amount')), 14986 isLoggedIn: (button.getAttribute('data-is-logged-in') === 'true'), 14987 onShippingContactSelect: this.onShippingContactSelect, 14988 onShippingMethodSelect: this.onShippingMethodSelect, 14989 quoteId: button.getAttribute('data-quote-id'), 14990 shippingAddress: {}, 14991 shippingMethods: {}, 14992 startPlaceOrder: this.startPlaceOrder, 14993 storeCode: button.getAttribute('data-store-code'), 14994 }; 14995 14996 14997 this.initButton( 14998 button, 14999 this.buttonApi 15000 ); 15001 15002 return this; 15003 }, 15004 } 15005 }</script>
15005
15005<script> 15006 15007 function initBraintreeGooglePayExpress(merchantId, clientToken) 15008 { 15009 return { 15010 merchantId: merchantId, 15011 clientToken: clientToken, 15012 buttonApi: {}, 15013 init() 15014 { 15015 if (!this.deviceSupported()) { 15016 return; 15017 } 15018 15019 this.loadScript('https://pay.google.com/gp/p/js/pay.js', function() { 15020 this.setupButton(this.$root); 15021 }.bind(this)); 15022 }, 15023 loadScript(url, callback) 15024 { 15025 const script = document.createElement('script'); 15026 15027 script.type = 'text/javascript'; 15028 script.src = url; 15029 script.addEventListener('load', callback); 15030 document.head.appendChild(script); 15031 }, 15032 buildForm(actionUrl, fields) 15033 { 15034 const form = document.createElement('form'); 15035 form.action = actionUrl; 15036 form.method = 'POST'; 15037 form.hidden = true; 15038 form.enctype = 'application/x-www-form-urlencoded'; 15039 15040 Object.entries(fields).forEach(field => { 15041 const [key, value] = field; 15042 let fieldElement; 15043 15044 fieldElement = document.createElement('input'); 15045 fieldElement.type = 'hidden'; 15046 fieldElement.name = key; 15047 fieldElement.value = value; 15048 form.appendChild(fieldElement); 15049 }); 15050 15051 document.body.appendChild(form); 15052 form.submit(); 15053 }, 15054 getMerchantId() 15055 { 15056 return this.merchantId; 15057 }, 15058 getClientToken() 15059 { 15060 return this.clientToken; 15061 }, 15062 deviceSupported() 15063 { 15064 return !!(window.PaymentRequest); 15065 }, 15066 getPaymentRequest() 15067 { 15068 var buttonApi = this.buttonApi, 15069 result = { 15070 transactionInfo: { 15071 totalPriceStatus: 'ESTIMATED', 15072 totalPrice: buttonApi.amount, 15073 currencyCode: buttonApi.currencyCode, 15074 }, 15075 allowedPaymentMethods: ['CARD'], 15076 phoneNumberRequired: true, 15077 emailRequired: true, 15078 shippingAddressRequired: true, 15079 cardRequirements: { 15080 billingAddressRequired: true, 15081 billingAddressFormat: 'FULL', 15082 allowedCardNetworks: Object.values({...buttonApi.cardTypes}), 15083 }, 15084 }; 15085 15086 if (buttonApi.environment !== "TEST") { 15087 result['merchantId'] = this.getMerchantId(); 15088 } 15089 15090 return result; 15091 }, 15092 startPlaceOrder(nonce, paymentData) 15093 { 15094 var payload = { 15095 details: { 15096 shippingAddress: { 15097 streetAddress: paymentData.shippingAddress.address1 15098 + "\n" 15099 + paymentData.shippingAddress.address2, 15100 locality: paymentData.shippingAddress.locality, 15101 postalCode: paymentData.shippingAddress.postalCode, 15102 countryCodeAlpha2: paymentData.shippingAddress.countryCode, 15103 email: paymentData.email, 15104 name: paymentData.shippingAddress.name, 15105 telephone: typeof paymentData.shippingAddress.phoneNumber !== 'undefined' 15106 ? paymentData.shippingAddress.phoneNumber 15107 : '', 15108 region: typeof paymentData.shippingAddress.administrativeArea !== 'undefined' 15109 ? paymentData.shippingAddress.administrativeArea 15110 : '', 15111 }, 15112 billingAddress: { 15113 streetAddress: paymentData.cardInfo.billingAddress.address1 15114 + "\n" 15115 + paymentData.cardInfo.billingAddress.address2, 15116 locality: paymentData.cardInfo.billingAddress.locality, 15117 postalCode: paymentData.cardInfo.billingAddress.postalCode, 15118 countryCodeAlpha2: paymentData.cardInfo.billingAddress.countryCode, 15119 email: paymentData.email, 15120 name: paymentData.cardInfo.billingAddress.name, 15121 telephone: typeof paymentData.cardInfo.billingAddress.phoneNumber !== 'undefined' 15122 ? paymentData.cardInfo.billingAddress.phoneNumber 15123 : '', 15124 region: typeof paymentData.cardInfo.billingAddress.administrativeArea !== 'undefined' 15125 ? paymentData.cardInfo.billingAddress.administrativeArea 15126 : '', 15127 }, 15128 }, 15129 nonce: nonce, 15130 }; 15131 15132 this.buildForm( 15133 this.buttonApi.actionSuccess, 15134 { 15135 result: JSON.stringify(payload), 15136 form_key: hyva.getFormKey(), 15137 } 15138 ); 15139 }, 15140 initButton(element, context) 15141 { 15142 15143 if (!element || !context || !this.deviceSupported()) { 15144 return; 15145 } 15146 15147 15148 if (!context.clientToken) { 15149 console.error( 15150 'Braintree\u0020GooglePay\u0020Context\u0020passed\u0020does\u0020not\u0020provide\u0020a\u0020clientToken', 15151 context 15152 ); 15153 15154 return; 15155 } 15156 if (typeof context.getPaymentRequest !== 'function') { 15157 console.error( 15158 'Braintree\u0020GooglePay\u0020Context\u0020passed\u0020does\u0020not\u0020provide\u0020a\u0020getPaymentRequest\u0020method', 15159 context 15160 ); 15161 15162 return; 15163 } 15164 if (typeof context.startPlaceOrder !== 'function') { 15165 console.error( 15166 'Braintree\u0020GooglePay\u0020Context\u0020passed\u0020does\u0020not\u0020provide\u0020a\u0020startPlaceOrder\u0020method', 15167 context 15168 ); 15169 15170 return; 15171 } 15172 15173 15174 let paymentsClient = new google.payments.api.PaymentsClient({ 15175 environment: context.environment 15176 }); 15177 15178 15179 15180 var button = document.createElement('button'); 15181 var self = this; 15182 button.className = `braintree-googlepay-button long ${context.btnColor ? 'black' : 'white'}`; 15183 button.title = 'Buy with Google Pay'; 15184 15185 self.loadScript('https://js.braintreegateway.com/web/3.67.0/js/client.min.js',
15185() => { 15186 15187 braintree.client.create({ 15188 authorization: context.clientToken 15189 }, function (clientErr, clientInstance) { 15190 if (clientErr) { 15191 console.error('Error\u0020creating\u0020client\u003A', clientErr); 15192 return; 15193 } 15194 15195 self.loadScript('https://js.braintreegateway.com/web/3.67.0/js/google-payment.min.js', () => { 15196 braintree.googlePayment.create({ 15197 client: clientInstance 15198 }, function (googlePayErr, googlePaymentInstance) { 15199 15200 if (googlePayErr) { 15201 console.error( 15202 'Braintree\u0020GooglePay\u0020Error\u0020creating\u0020googlePayInstance\u003A', 15203 googlePayErr 15204 ); 15205 15206 return; 15207 } 15208 15209 paymentsClient.isReadyToPay({ 15210 allowedPaymentMethods: googlePaymentInstance.createPaymentDataRequest().allowedPaymentMethods 15211 }).then(function(response) { 15212 if (response.result) { 15213 button.addEventListener('click', function (event) { 15214 event.preventDefault(); 15215 15216 var responseData; 15217 var paymentDataRequest = googlePaymentInstance.createPaymentDataRequest( 15218 context.getPaymentRequest.call(self) 15219 ); 15220 15221 paymentsClient.loadPaymentData( 15222 paymentDataRequest 15223 ).then(function (paymentData) { 15224 15225 responseData = paymentData; 15226 15227 15228 return googlePaymentInstance.parseResponse(paymentData); 15229 }).then(function (result) { 15230 context.startPlaceOrder.call(self, result.nonce, responseData); 15231 }).catch(function (err) { 15232 15233 15234 console.error(err); 15235 }); 15236 }); 15237 15238 element.appendChild(button); 15239 } 15240 }).catch(function (err) { 15241 console.error(err); 15242 }); 15243 }); 15244 }); 15245 }); 15246 }); 15247 }, 15248 setupButton(button) 15249 { 15250 this.buttonApi = { 15251 environment: button.getAttribute('data-environment'), 15252 currencyCode: button.getAttribute('data-currency'), 15253 clientToken: this.getClientToken(), 15254 merchantId: this.getMerchantId(), 15255 actionSuccess: button.getAttribute('data-success'), 15256 amount: parseFloat(button.getAttribute('data-amount')), 15257 cardTypes: button.getAttribute('data-card-types').split(','), 15258 btnColor: button.getAttribute('data-color'), 15259 getPaymentRequest: this.getPaymentRequest, 15260 startPlaceOrder: this.startPlaceOrder, 15261 }; 15262 15263 15264 this.initButton( 15265 button, 15266 this.buttonApi 15267 ); 15268 15269 return this; 15270 }, 15271 } 15272 }</script>
15272
15272<script> 15273 function initSmileAttribute(options) { 15274 "use strict"; 15275 15276 return { 15277 options : options, 15278 searchLabel : 'Search (%s)', 15279 showMoreLabel : 'Show more', 15280 showLessLabel : 'Show less', 15281 noSearchResultLabel : 'No value matching the search <b>%s</b>.', 15282 expanded: false, 15283 items: [], 15284 lastSelectIndex: 0, 15285 maxSize: 0, 15286 displaySearch: false, 15287 displayedItems: [], 15288 fulltextSearch: null, 15289 searchPlaceholder: '', 15290 result: 0, 15291 15292 /** 15293 * Component initialization 15294 */ 15295 initialize: function () { 15296 15297 this.items = this.options.items.map(this.addItemId.bind(this)); 15298 15299 var lastSelectedIndex = Math.max.apply(null, (this.items.map( 15300 function (v, k) {return v['is_selected'] ? k : 0;})) 15301 ); 15302 this.maxSize = Math.max(this.options.maxSize, lastSelectedIndex + 1); 15303 15304 this.$nextTick(() => { 15305 this.initSearchPlaceholder(); 15306 this.onShowLess(); 15307 this.displaySearch = this.displayShowMore(); 15308 this.displayedItems = this.getDisplayedItems(); 15309 }); 15310 }, 15311 15312 /** 15313 * Init the place holder 15314 */ 15315 initSearchPlaceholder: function () { 15316 var examples = this.items.slice(0, 2).map(function (item) {return item.label}); 15317 15318 if (this.items.length > 2) { 15319 examples.push('...'); 15320 } 15321 15322 15323 let placeholder = document.createElement('div'); 15324 placeholder.innerHTML = this.searchLabel.replace('%s', examples.join(', ')); 15325 15326 this.searchPlaceholder = placeholder.textContent; 15327 }, 15328 15329 /** 15330 * Triggered when typing on the search input 15331 */ 15332 onSearchChange: function (event) { 15333 var text = event.target.value; 15334 if (text.trim() === "") { 15335 this.fulltextSearch = null; 15336 this.onShowLess(); 15337 } else { 15338 this.fulltextSearch = text; 15339 this.onShowMore(); 15340 } 15341 15342 return true; 15343 }, 15344 15345 /** 15346 * Triggered when leaving the search field. 15347 */ 15348 onSearchFocusOut: function(event) { 15349 var text = event.target.value; 15350 if (text.trim() === "") { 15351 this.fulltextSearch = null; 15352 } 15353 }, 15354 15355 /** 15356 * Retrieve additional Results 15357 * 15358 * @param callback 15359 */ 15360 loadAdditionalItems: function (callback) { 15361 fetch(this.options.ajaxLoadUrl, { 15362 method: 'GET', 15363 headers: { 15364 'X-Requested-With': 'XMLHttpRequest', 15365 }, 15366 }) 15367 .then((response) => response.json()) 15368 .then((data) => { 15369 this.items = data.map(this.addItemId.bind(this)); 15370 this.options.hasMoreItems = false; 15371 15372 if (callback) { 15373 return callback(); 15374 } 15375 } 15376 ); 15377 }, 15378 15379 /** 15380 * Retrieve items to display 15381 * 15382 * @returns {*} 15383 */ 15384 getDisplayedItems: function () { 15385 var items = this.items; 15386 15387 if (this.expanded === false) { 15388 items = this.items.slice(0, this.maxSize); 15389 } 15390 15391 if (this.getFulltextSearch()) { 15392 var searchTokens = this.slugify(this.getFulltextSearch()).split('-'); 15393 var lastSearchToken = searchTokens.splice(-1, 1)[0]; 15394 15395 items = items.filter(function(item) { 15396 var isValidItem = true; 15397 var itemTokens = this.slugify(item.label).split('-'); 15398 searchTokens.forEach(function(currentToken) { 15399 if (itemTokens.indexOf(currentToken) === -1) { 15400 isValidItem = false;
15401 } 15402 }) 15403 if (isValidItem && lastSearchToken) { 15404 var ngrams = itemTokens.map(function(token) {return token.substring(0, lastSearchToken.length)}); 15405 isValidItem = ngrams.indexOf(lastSearchToken) !== -1; 15406 } 15407 return isValidItem; 15408 }.bind(this)) 15409 } 15410 this.result = items.length; 15411 return items; 15412 }, 15413 15414 /** 15415 * Does the search have a result 15416 */ 15417 hasSearchResult: function () { 15418 return this.getDisplayedItems().length > 0 15419 }, 15420 15421 /** 15422 * Search result message 15423 */ 15424 getSearchResultMessage : function() { 15425 return this.noSearchResultLabel.replace("%s", '"' + this.getFulltextSearch() + '"') 15426 }, 15427 15428 getFulltextSearch : function() { 15429 return this.fulltextSearch; 15430 }, 15431 15432 /** 15433 * Callback for the "Show more" button 15434 */ 15435 onShowMore: function () { 15436 if (this.options.hasMoreItems) { 15437 this.loadAdditionalItems(this.onShowMore.bind(this)); 15438 } else { 15439 this.expanded = true; 15440 } 15441 15442 this.displayedItems = this.getDisplayedItems(); 15443 }, 15444 15445 /** 15446 * Index the text to be searched. 15447 */ 15448 slugify: function(text) { 15449 return text.toString().toLowerCase() 15450 .replace(/\s+/g, '-') 15451 .replace(/[^\w\u0400-\u052F\u2DE0-\u2DFF\uA640-\uA69F'\-]+/g, '') 15452 .replace(/\-\-+/g, '-') 15453 .replace(/^-+/, '') 15454 }, 15455 15456 /** 15457 * Callback for the "Show less" button 15458 */ 15459 onShowLess: function () { 15460 this.expanded = false; 15461 this.displayedItems = this.getDisplayedItems(); 15462 }, 15463 15464 /** 15465 * Check if the filter can be expanded 15466 * 15467 * @returns {boolean} 15468 */ 15469 enableExpansion : function () { 15470 return this.options.hasMoreItems || this.items.length > this.maxSize; 15471 }, 15472 15473 /** 15474 * Displays the "Show More" link 15475 * 15476 * @returns {*|boolean} 15477 */ 15478 displayShowMore: function () { 15479 return this.enableExpansion() && this.expanded === false && !this.getFulltextSearch(); 15480 }, 15481 15482 /** 15483 * Displays the "Show Less" link 15484 * 15485 * @returns {*|boolean} 15486 */ 15487 displayShowLess: function () { 15488 return this.enableExpansion() && this.expanded === true && !this.getFulltextSearch(); 15489 }, 15490 15491 /** 15492 * Add an id to items. 15493 */ 15494 addItemId: function (item) { 15495 item.id = Math.floor(Math.random() * 1000000) + "_option_"; 15496 item.displayProductCount = this.options.displayProductCount && (item.count >= 1); 15497 15498 return item; 15499 }, 15500 }; 15501 };</script>
15501
15501<script> 15502 function rangeSlider(options, isPriceSlider) { 15503 "use strict"; 15504 15505 return { 15506 options: options, 15507 priceSlider: isPriceSlider, 15508 lastThumbUpdatedMax: true, 15509 minfocused: false, 15510 maxfocused: false, 15511 sliderZindex: 20, 15512 messageTemplates: { 15513 "displayOne": '<span class="msg">1 item</span>', 15514 "displayCount": '<span class="msg"><%- count %>items</span>', 15515 "displayEmpty": '<span class="msg-error">No items in the current range.</span>' 15516 }, 15517 minprice: 0, 15518 maxprice: 0, 15519 fromLabel: '', 15520 toLabel: '', 15521 min: 0, 15522 max: 0, 15523 minZindex: 0, 15524 maxZindex: 0, 15525 minthumb: 0, 15526 maxthumb: 0, 15527 message: '', 15528 url: '', 15529 showAdaptiveSlider: false, 15530 intervals: [], 15531 15532 initialize: function () { 15533 this.options = Object.assign({}, this.options, options); 15534 this.url = this.options.urlTemplate; 15535 15536 if (this.options.sliderZindex !== undefined) { 15537 this.sliderZindex = this.options.sliderZindex; 15538 } 15539 15540 this.showAdaptiveSlider = false; 15541 if (this.options.showAdaptiveSlider !== undefined) { 15542 this.showAdaptiveSlider = this.options.showAdaptiveSlider; 15543 } 15544 15545 if (this.options.maxLabelOffset === undefined) { 15546 this.options.maxLabelOffset = 0.01; 15547 } 15548 15549 if (this.options.rate === undefined) { 15550 this.options.rate = 1.0000; 15551 } 15552 15553 if (this.showAdaptiveSlider) { 15554 this._initAdaptiveSliderValues(); 15555 } else { 15556 this._initSliderValues(); 15557 } 15558 15559 this.mintrigger(); 15560 this.maxtrigger(); 15561 }, 15562 _initSliderValues: function () { 15563 this.rate = parseFloat(this.options.rate); 15564 this.minprice = Math.floor(this.options.currentValue.from * this.rate); 15565 this.maxprice = Math.round(this.options.currentValue.to * this.rate); 15566 this.intervals = this.options.intervals.map( 15567 function(item) { item.value = Math.round(item.value * this.rate); return item}.bind(this) 15568 ); 15569 this.min = Math.floor(this.options.minValue * this.rate); 15570 this.max = Math.round(this.options.maxValue * this.rate); 15571 }, 15572 15573 _initAdaptiveSliderValues: function () { 15574 this.intervals = this.options.adaptiveIntervals; 15575 this.options.adaptiveIntervals[0].value = Math.floor(this.options.adaptiveIntervals[0].value); 15576 this.minprice = this._getAdaptiveValue(Number(this.options.currentValue.from)); 15577 this.maxprice = this._getAdaptiveValue(Number(this.options.currentValue.to)); 15578 this.rate = parseFloat(this.options.rate); 15579 this.intervals = this.intervals.map( 15580 function(item) { item.originalValue = Math.ceil(item.originalValue * this.rate); return item}.bind(this) 15581 ); 15582 this.min = this.intervals[0].value; 15583 this.max = this.intervals[this.intervals.length - 1].value; 15584 }, 15585 mintrigger: function () { 15586 this.lastThumbUpdatedMax = false; 15587 this.validation(); 15588 this.minprice = this._getClosestAdaptiveValue(Math.min(this.minprice, this.maxprice)); 15589 this.minthumb = ((this.minprice - this.min) / (this.max - this.min)) * 100; 15590 this._onChangeAfter(); 15591 }, 15592 maxtrigger: function () { 15593 this.lastThumbUpdatedMax = true; 15594 this.validation(); 15595 this.maxprice = this._getClosestAdaptiveValue(Math.max(this.maxprice, this.minprice)); 15596 this.maxthumb = ((this.maxprice - this.min) / (this.max - this.min)) * 100; 15597 this._onChangeAfter(); 15598 }, 15599 updateFocusState: function (targetName, stateValue) { 15600 this[`${targetName}focused`] = stateValue 15601 }, 15602 _onChangeAfter: function () {
15603 this._updateSliderZindexes(); 15604 this._applyRange(); 15605 this._refreshDisplay(); 15606 }, 15607 validation: function () { 15608 if (/^[\d.]*$/.test(this.minprice)) { 15609 if (this.minprice > this.max) { 15610 this.minprice = this._getAdaptiveValue(Number(this.options.currentValue.from)); 15611 } 15612 if (this.minprice < this.min) { 15613 this.minprice = this.min; 15614 } 15615 } else { 15616 this.minprice = this._getAdaptiveValue(Number(this.options.currentValue.from)); 15617 } 15618 if (/^[\d.]*$/.test(this.maxprice)) { 15619 if (this.maxprice > this.max) { 15620 this.maxprice = this.max; 15621 } 15622 if (this.maxprice < this.min) { 15623 this.maxprice = this._getAdaptiveValue(Number(this.options.currentValue.to)); 15624 } 15625 } else { 15626 this.maxprice = this._getAdaptiveValue(Number(this.options.currentValue.to)) 15627 } 15628 }, 15629 getItemCount: function () { 15630 var from = this.minprice, to = this.maxprice, intervals = this.intervals; 15631 return intervals.map(function (item) { 15632 return item.value >= from && item.value < to ? item.count : 0; 15633 }) 15634 .reduce(function (a, b) { 15635 return a + b; 15636 }); 15637 }, 15638 _refreshDisplay: function () { 15639 this.count = this.getItemCount(); 15640 let minprice = this._getOriginalValue(this.minprice); 15641 if (minprice >= this._getOriginalValue(this.max) ) { 15642 minprice = this._getOriginalValue(this.max) - this.options.maxLabelOffset; 15643 } 15644 this.fromLabel = this._formatLabel(minprice); 15645 15646 let maxprice = this._getOriginalValue(this.maxprice) - this.options.maxLabelOffset; 15647 if (maxprice < this._getOriginalValue(this.min)) { 15648 maxprice = this._getOriginalValue(this.maxprice); 15649 } 15650 this.toLabel = this._formatLabel(maxprice); 15651 15652 var messageTemplate = this.messageTemplates[this.count > 0 ? (this.count > 1 ? 'displayCount' : 'displayOne') : 'displayEmpty']; 15653 this.message = this._unescape(messageTemplate.replace('<%- count %>', this.count)); 15654 }, 15655 _formatLabel: function (value) { 15656 var formattedValue = value; 15657 15658 if (this.priceSlider && this.options.fieldFormat) { 15659 formattedValue = this._formatPrice(value); 15660 } else if (this.options.fieldFormat) { 15661 var pattern = this.options.fieldFormat.pattern || '%s'; 15662 formattedValue = pattern.replace( 15663 '%s', 15664 Number.parseFloat(formattedValue).toFixed(this.options.fieldFormat.precision) 15665 ); 15666 } 15667 15668 return formattedValue; 15669 }, 15670 _formatPrice: function (value) { 15671 var formatter = new Intl.NumberFormat( 15672 document.documentElement.lang, 15673 { 15674 style: 'currency', 15675 currency: 'USD', 15676 } 15677 ); 15678 15679 return formatter.format(value); 15680 }, 15681 _applyRange: function () { 15682 var range = { 15683 from : this._getOriginalValue(this.minprice) * (1 / this.rate), 15684 to : this._getOriginalValue(this.maxprice) * (1 / this.rate), 15685 }; 15686 15687 this.url = this._unescape(this.options.urlTemplate.replace('<%- from %>', range.from).replace('<%- to %>', range.to)); 15688 }, 15689 _updateSliderZindexes: function () { 15690 this.minZindex = this.sliderZindex; 15691 this.maxZindex = this.sliderZindex; 15692 if (this.minprice == this.maxprice) { 15693 if (this.minprice === this.min || (this.minprice !== this.min && this.lastThumbUpdatedMax)) { 15694 this.maxZindex = this.sliderZindex + 1; 15695 } 15696 15697 if (this.maxprice === this.max || (this.maxprice !== this.max && !this.lastThumbUpdatedMax)) { 15698 this.minZindex = this.sliderZindex + 1; 15699 } 15700 15701 } 15702 }, 15703 _getAdaptiveValue : function (value) { 15704 if (!this.showAdaptiveSlider) { 15705 return value; 15706 } 15707 15708 var adaptiveValue = this.intervals[0].value; 15709 var found = false;
15710 this.intervals.forEach(function (item) { 15711 if (found === false && item.originalValue === value) { 15712 adaptiveValue = item.value; 15713 found = true; 15714 } 15715 15716 if (found === false && item.originalValue < value) { 15717 adaptiveValue = item.value; 15718 } 15719 }); 15720 15721 return adaptiveValue; 15722 }, 15723 15724 _getClosestAdaptiveValue : function (value) { 15725 if (!this.showAdaptiveSlider) { 15726 return value; 15727 } 15728 15729 var closestValue = this.intervals[0].value; 15730 var found = false; 15731 this.intervals.forEach(function (item) { 15732 if (item.value === value) { 15733 closestValue = value; 15734 found = true; 15735 } 15736 15737 if (found === false && item.value < value) { 15738 closestValue = item.value; 15739 } 15740 }); 15741 15742 return closestValue; 15743 }, 15744 15745 _getOriginalValue : function (value) { 15746 if (!this.showAdaptiveSlider) { 15747 return value; 15748 } 15749 15750 var originalValue = null; 15751 this.intervals.forEach(function (item) { 15752 if (item.value === value) { 15753 originalValue = item.originalValue; 15754 } 15755 }); 15756 15757 return originalValue; 15758 }, 15759 15760 _unescape: function (str) { 15761 return str.replace(/<%|%3C%/g, '<%').replace(/%>|%%3E/g, '%>'); 15762 }, 15763 } 15764 }</script>
15764<!-- Reviews.co.uk Rich Snippet -->
15764<script> 15765(() => { 15766 window.addEventListener('init-external-scripts', () => { 15767 const script = document.createElement('script'); 15768 script.src = 'https://widget.reviews.co.uk/rich-snippet/dist.js'; 15769 script.type = 'text/javascript'; 15770 script.onload = () => window.dispatchEvent(new Event('reviews-co-uk-loaded')); 15771 document.head.append(script); 15772 }, {once: true, passive: true}); 15773})(); 15774</script>
15774<script> 15775 window.addEventListener("reviews-co-uk-loaded", () => { 15776 richSnippet({ 15777 store: "shelterlogic.com", 15778 sku:"", 15779 "mergeMicroData": false, 15780 data:{ 15781 "id": "#product", 15782 "url": "", 15783 "description": ``, 15784 "mpn": "", 15785 "offers" :[{ 15786 "@type":"Offer", 15787 "availability": "", 15788 "price": "", 15789 "priceCurrency": "", 15790 "url": "", 15791 "priceValidUntil": "2026-11-02", 15792 }], 15793 "brand": { 15794 "@type": "Brand", 15795 "name": "", 15796 } 15797 } 15798 }); 15799 }, {once: true, passive: true}); 15800 </script>
15800<!-- Reviews.co.uk Rating Snippet -->
15800<script type="text/json" id="default-section-data"> 15801 {"messages":[],"customer":[],"compare-products":[],"last-ordered-items":[],"requisition":[],"cart":[],"directory-data":{"US":{"name":"United States","regions":{"1":{"code":"AL","name":"Alabama"},"2":{"code":"AK","name":"Alaska"},"3":{"code":"AS","name":"American Samoa"},"4":{"code":"AZ","name":"Arizona"},"5":{"code":"AR","name":"Arkansas"},"6":{"code":"AF","name":"Armed Forces Africa"},"7":{"code":"AA","name":"Armed Forces Americas"},"8":{"code":"AC","name":"Armed Forces Canada"},"9":{"code":"AE","name":"Armed Forces Europe"},"10":{"code":"AM","name":"Armed Forces Middle East"},"11":{"code":"AP","name":"Armed Forces Pacific"},"12":{"code":"CA","name":"California"},"13":{"code":"CO","name":"Colorado"},"14":{"code":"CT","name":"Connecticut"},"15":{"code":"DE","name":"Delaware"},"16":{"code":"DC","name":"District of Columbia"},"17":{"code":"FM","name":"Federated States Of Micronesia"},"18":{"code":"FL","name":"Florida"},"19":{"code":"GA","name":"Georgia"},"20":{"code":"GU","name":"Guam"},"21":{"code":"HI","name":"Hawaii"},"22":{"code":"ID","name":"Idaho"},"23":{"code":"IL","name":"Illinois"},"24":{"code":"IN","name":"Indiana"},"25":{"code":"IA","name":"Iowa"},"26":{"code":"KS","name":"Kansas"},"27":{"code":"KY","name":"Kentucky"},"28":{"code":"LA","name":"Louisiana"},"29":{"code":"ME","name":"Maine"},"30":{"code":"MH","name":"Marshall Islands"},"31":{"code":"MD","name":"Maryland"},"32":{"code":"MA","name":"Massachusetts"},"33":{"code":"MI","name":"Michigan"},"34":{"code":"MN","name":"Minnesota"},"35":{"code":"MS","name":"Mississippi"},"36":{"code":"MO","name":"Missouri"},"37":{"code":"MT","name":"Montana"},"38":{"code":"NE","name":"Nebraska"},"39":{"code":"NV","name":"Nevada"},"40":{"code":"NH","name":"New Hampshire"},"41":{"code":"NJ","name":"New Jersey"},"42":{"code":"NM","name":"New Mexico"},"43":{"code":"NY","name":"New York"},"44":{"code":"NC","name":"North Carolina"},"45":{"code":"ND","name":"North Dakota"},"46":{"code":"MP","name":"Northern Mariana Islands"},"47":{"code":"OH","name":"Ohio"},"48":{"code":"OK","name":"Oklahoma"},"49":{"code":"OR","name":"Oregon"},"50":{"code":"PW","name":"Palau"},"51":{"code":"PA","name":"Pennsylvania"},"52":{"code":"PR","name":"Puerto Rico"},"53":{"code":"RI","name":"Rhode Island"},"54":{"code":"SC","name":"South Carolina"},"55":{"code":"SD","name":"South Dakota"},"56":{"code":"TN","name":"Tennessee"},"57":{"code":"TX","name":"Texas"},"58":{"code":"UT","name":"Utah"},"59":{"code":"VT","name":"Vermont"},"60":{"code":"VI","name":"Virgin Islands"},"61":{"code":"VA","name":"Virginia"},"62":{"code":"WA","name":"Washington"},"63":{"code":"WV","name":"West Virginia"},"64":{"code":"WI","name":"Wisconsin"},"65":{"code":"WY","name":"Wyoming"}}},"data_id":1790936195},"captcha":[],"wishlist":{"items":[]},"company":[],"company_authorization":[],"customer-companies":[],"negotiable_quote":[],"instant-purchase":[],"loggedAsCustomer":[],"multiplewishlist":[],"purchase_order":[],"persistent":[],"review":[],"payments":[],"apptrian_facebook_pixel_matching_section":[],"hyva_commerce_messages":[],"hyva_checkout":[],"hyva_enterprise":[],"gtm-checkout":[],"recently_viewed_product":[],"recently_compared_product":[],"product_data_storage":[],"paypal-billing-agreement":[],"paypal-buyer-country":[]}</script>
15801
15801<script> 15802 window.processSectionDataBeforeDispatch && (window.processSectionDataBeforeDispatch = new Proxy(window.processSectionDataBeforeDispatch, { 15803 apply(target, thisArg, [data]) { 15804 data.hyva_commerce_messages = data.hyva_commerce_messages || {}; 15805 return target.call(thisArg, data); 15806 } 15807 }));</script>
15807</div> <footer class="footer content text-white bg-container-darker"><div class="container lg:flex pt-6 pb-2 lg:pb-8 lg:pt-16 lg:gap-14"> 15808<div class="footer-col-left content-none mb-10 lg:mb-0 lg:shrink-0 w-full lg:w-1/5" role="form" aria-label="Newsletter subscription"> 15809 15810<div class="content-none footer-logo"> 15811 <a class="content-none logo flex text-xl font-medium tracking-wide text-gray-800 15812 no-underline hover:no-underline font-title md:min-h-[63px]" 15813 href="https://www.shelterlogic.com/" 15814 aria-label="SHELTERLOGIC DIRECT" 15815 tabindex="0" 15816> 15817 <img src="https://www.shelterlogic.com/static/version1790844868/frontend/Shelterlogic/hyva/en_US/images/logo-footer.svg" 15818 class="object-cover" 15819 alt="SHELTERLOGIC DIRECT" 15820 loading="eager" 15821 width="184" height="63" style="height: 63px" 15822 /> 15823 </a> <a class="my-4 inline-block text-lg md:text-2xl font-base font-semibold hover:text-orange" href="tel:1-800-560-8383">1-800-560-8383</a> 15824</div><div class="subscribe-wrap"> 15825 <div class="flex py-2.5 content-none md:py-0 md:text-left mb-2 md:mt-5 md:mb-8"> 15826 <a href="https://www.facebook.com/shelterlogic/" 15827 class="w-6 h-6 flex items-end justify-center mr-4 rounded-full bg-gray-200 text-black relative group" 15828 aria-label="Facebook" 15829 tabindex="0" 15830 > 15831 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 218.08 420.19" class="fill-current" width="20" height="20" role="img"><path id="f" d="M141.6,420.19V228.58h64.29l9.67-74.51h-74v-47.9c0-21.57,6-36.42,37-36.42h39.5V2.94A532.17,532.17,0,0,0,160.51,0c-57,0-95.94,34.88-95.94,98.05v56H0v74.65H64.57V420.19Z"/><title>facebook</title></svg> 15832 <span class="sr-only">Facebook</span> 15833 </a> 15834 <a href="https://www.instagram.com/shelterlogicdirect/" 15835 class="w-6 h-6 flex items-end justify-center mr-4 rounded-full text-black relative group" 15836 aria-label="Instagram" 15837 tabindex="0" 15838 > 15839 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0,0,256,256" width="42" height="22" fill-rule="nonzero" role="img"><g transform="translate(-32,-32) scale(1.25,1.25)"><g fill="#ffffff" fill-rule="nonzero" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" font-family="none" font-weight="none" font-size="none" text-anchor="none" style="mix-blend-mode: normal"><g transform="scale(5.33333,5.33333)"><path d="M16.5,5c-6.33361,0 -11.5,5.16639 -11.5,11.5v15c0,6.33276 5.16621,11.5 11.5,11.5h15c6.33294,0 11.5,-5.16706 11.5,-11.5v-15c0,-6.33379 -5.16724,-11.5 -11.5,-11.5zM16.5,8h15c4.71124,0 8.5,3.78779 8.5,8.5v15c0,4.71106 -3.78894,8.5 -8.5,8.5h-15c-4.71221,0 -8.5,-3.78876 -8.5,-8.5v-15c0,-4.71239 3.78761,-8.5 8.5,-8.5zM34,12c-1.105,0 -2,0.895 -2,2c0,1.105 0.895,2 2,2c1.105,0 2,-0.895 2,-2c0,-1.105 -0.895,-2 -2,-2zM24,14c-5.50482,0 -10,4.49518 -10,10c0,5.50482 4.49518,10 10,10c5.50482,0 10,-4.49518 10,-10c0,-5.50482 -4.49518,-10 -10,-10zM24,17c3.88318,0 7,3.11682 7,7c0,3.88318 -3.11682,7 -7,7c-3.88318,0 -7,-3.11682 -7,-7c0,-3.88318 3.11682,-7 7,-7z"/></g></g></g><title>instagram</title></svg> 15840 <span class="sr-only">Instagram</span> 15841 </a> 15842 <a href="https://www.youtube.com/user/ShelterLogic" 15843 class="inline-block text-gray-200 mr-4 relative group" 15844 aria-label="Youtube" 15845 tabindex="0" 15846 > 15847 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" class="text-gray-200 fill-current" width="28" height="28" role="img"><path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"/><title>youtube</title></svg>
15848 <span class="sr-only">Youtube</span> 15849 </a> 15850 <a href="https://www.tiktok.com/@shelterlogicdirect" 15851 class="inline-block text-gray-200 mr-4 relative group" 15852 aria-label="Tiktok" 15853 tabindex="0" 15854 > 15855 <svg xmlns="http://www.w3.org/2000/svg" shape-rendering="geometricPrecision" text-rendering="geometricPrecision" image-rendering="optimizeQuality" fill-rule="evenodd" clip-rule="evenodd" viewBox="0 0 512 512" class="text-gray-200 fill-current" width="24" height="24" role="img"><path fill="#fff" d="M256 0c141.384 0 256 114.616 256 256 0 141.384-114.616 256-256 256C114.616 512 0 397.384 0 256 0 114.616 114.616 0 256 0zm82.937 174.75c-14.614-9.524-25.152-24.771-28.445-42.535a65.235 65.235 0 01-1.102-11.831h-46.631l-.075 186.877c-.783 20.928-18.009 37.724-39.119 37.724a38.912 38.912 0 01-18.186-4.503c-12.478-6.565-21.016-19.641-21.016-34.691 0-21.614 17.588-39.201 39.194-39.201 4.035 0 7.907.667 11.566 1.809v-47.603c-3.789-.517-7.64-.836-11.566-.836-47.323-.001-85.824 38.499-85.824 85.831 0 29.037 14.504 54.733 36.643 70.272 13.94 9.791 30.901 15.553 49.189 15.553 47.324 0 85.825-38.5 85.825-85.825v-94.765c18.288 13.124 40.698 20.859 64.877 20.859v-46.631c-13.022 0-25.152-3.87-35.33-10.504z"/><title>tiktok</title></svg> 15856 <span class="sr-only">Tiktok</span> 15857 </a> 15858 <a href="https://www.pinterest.com/ShelterLogic/" 15859 class="inline-block text-gray-200 relative group" 15860 aria-label="Pinterest" 15861 tabindex="0" 15862 > 15863 <svg xmlns="http://www.w3.org/2000/svg" shape-rendering="geometricPrecision" text-rendering="geometricPrecision" image-rendering="optimizeQuality" fill-rule="evenodd" clip-rule="evenodd" viewBox="0 0 512 512" class="text-gray-200 fill-current" width="24" height="24" role="img"><path fill="#fff" fill-rule="nonzero" d="M0 256c0 109.29 68.5 202.6 164.91 239.32-2.35-19.99-4.84-52.95.53-76.07 4.63-19.89 29.89-126.68 29.89-126.68s-7.62-15.25-7.62-37.85c0-35.41 20.53-61.87 46.11-61.87 21.76 0 32.25 16.33 32.25 35.89 0 21.87-13.93 54.55-21.12 84.87-5.99 25.37 12.74 46.05 37.74 46.05 45.29 0 80.13-47.77 80.13-116.71 0-61.04-43.86-103.68-106.48-103.68-72.48 0-115.05 54.38-115.05 110.59 0 21.91 8.43 45.38 18.97 58.16a7.568 7.568 0 012.07 5.21c0 .7-.1 1.41-.29 2.09-1.94 8.07-6.26 25.37-7.08 28.9-1.14 4.66-3.69 5.66-8.54 3.4-31.82-14.81-51.71-61.34-51.71-98.71 0-80.41 58.4-154.22 168.36-154.22 88.41 0 157.13 63 157.13 147.18 0 87.83-55.37 158.53-132.25 158.53-25.84 0-50.09-13.45-58.41-29.3 0 0-12.78 48.69-15.88 60.59-6.01 23.13-22.7 52.4-33.05 69.01 23.85 7.36 49.15 11.3 75.39 11.3 141.38 0 256-114.63 256-256S397.38 0 256 0 0 114.62 0 256z"/><title>pinterest</title></svg> 15864 <span class="sr-only">Pinterest</span> 15865 </a> 15866 </div> 15867 <form 15868 class="form subscribe max-w-[260px]" 15869 action="https://www.shelterlogic.com/newsletter/subscriber/new" 15870 method="post" 15871 x-data="initNewsletterForm" 15872 @submit.prevent="submitForm" 15873 id="newsletter-validate-detail" 15874 aria-label="Subscribe to Newsletter" 15875 > 15876 <h2 15877 class="mb-3 text-sm pb-2" 15878 id="footer-newsletter-heading" 15879 > 15880 Sign up for emails and get the latest product news, contest giveaways, and more delivered right to your inbox. </h2> 15881 <div class="flex flex-col flex-wrap justify-center gap-2 md:justify-start"> 15882 <div class="relative"> 15883 <input 15884 name="email" 15885 type="email" 15886 required="required" 15887 id="newsletter-subscribe" 15888 class="py-2.5 placeholder-transparent peer focus:ring-orange text-gray-500 w-full rounded-full border-white focus:outline-none focus:border-orange" 15889 placeholder="Email" 15890 autocomplete="email" 15891 aria-describedby="footer-newsletter-heading" 15892 /> 15893 <label for="newsletter-subscribe" class="font-normal capitalize text-base text-gray-500 absolute top-0 left-0 h-full px-3 py-2.5 transition-all duration-100 ease-in-out origin-left transform scale-75 translate-x-1 -translate-y-3 op
15893acity-75 pointer-events-none peer-placeholder-shown:opacity-100 peer-focus:opacity-75 peer-placeholder-shown:scale-100 peer-focus:scale-75 peer-placeholder-shown:translate-y-0 peer-focus:-translate-y-3 peer-placeholder-shown:translate-x-0 peer-focus:translate-x-1"> 15894 Email </label> 15895 </div> 15896 <input name="form_key" type="hidden" value="t9xtKlgZHli8JmLf" tabindex="-1"/> <button type="submit" 15897 class="font-bold mr-auto mt-1.5 border-2 border-white btn min-w-32 justify-center 15898 text-white bg-transparent hover:bg-white hover:text-gray-600 rounded-full" 15899 aria-label="Sign Up" 15900 > 15901 Sign Up </button> 15902 </div> 15903 <template x-if="displayErrorMessage"> 15904 <div> 15905 <p class="flex items-center text-red"> 15906 <span class="inline-block w-8 h-8 mr-3"> 15907 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" aria-hidden="true"> 15908 <path stroke-linecap="round" stroke-linejoin="round" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/> 15909</svg> 15910 </span> 15911 <template x-for="errorMessage in errorMessages"> 15912 <span x-html="errorMessage"></span> 15913 </template> 15914 </p> 15915 </div> 15916 </template> 15917 </form> 15918 <div class="w-full"> 15919 </div> 15920 </div> 15921
15922<script> 15923 function initNewsletterForm() { 15924 return { 15925 errors: 0, 15926 hasCaptchaToken: 0, 15927 displayErrorMessage: false, 15928 errorMessages: [], 15929 setErrorMessages(messages) { 15930 this.errorMessages = [messages] 15931 this.displayErrorMessage = this.errorMessages.length 15932 }, 15933 submitForm() { 15934 // Do not rename $form, the variable is expected to be declared in the recaptcha output 15935 const $form = document.querySelector('#newsletter-validate-detail'); 15936 15937 if (this.errors === 0) { 15938 $form.submit(); 15939 } 15940 } 15941 } 15942 } 15943 window.addEventListener('alpine:init', () => Alpine.data('initNewsletterForm', initNewsletterForm), {once: true}) 15944</script>
15944 15945</div> 15946<div class="footer-col-right border-container-light border-t border-b content-none w-full py-7 md:py-0 md:border-0 md:flex 15947 lg:w-4/5 gap-5" 15948> 15949 <div class="w-full last:mb-0 mb-6 md:mb-0" x-data="collapsibleHiddenByDefault"> 15950 <h3 class="hidden md:block text-white leading-5 font-bold tracking-wider 15951 uppercase text-left" 15952 > 15953 Customer Support </h3> 15954 <button type="button" 15955 id="CustomerSupport" 15956 class="flex justify-between w-full text-white leading-5 font-bold tracking-wider 15957 uppercase text-left md:hidden" 15958 @click.prevent="open = !open" 15959 :aria-expanded="open" 15960 aria-label="Dropdown Customer Support" 15961 > 15962 Customer Support <template x-cloak x-if="open"> 15963 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-5 w-5 text-white my-auto md:hidden" width="24" height="24" role="img"> 15964 <path stroke-linecap="round" stroke-linejoin="round" d="M15 12H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"/> 15965<title>minus-circle</title></svg> 15966 </template> 15967 <template x-cloak x-if="notOpen"> 15968 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-5 w-5 text-white my-auto md:hidden" width="24" height="24" role="img"> 15969 <path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"/> 15970<title>plus-circle</title></svg> 15971 </template> 15972 </button> 15973 <div class="cms-block-content mt-2 md:mt-3" 15974 x-show="open" 15975 aria-labelledby="CustomerSupport" 15976 > 15977 <style>.cmsb610-img-cover { 15978height: 100%; 15979width: 100%; 15980img { 15981margin-top: 0px; 15982margin-bottom: 0px 15983} 15984img { 15985margin-left: auto; 15986margin-right: auto 15987} 15988img { 15989height: 100% !important 15990} 15991img { 15992width: 100% !important 15993} 15994img { 15995object-fit: cover 15996} 15997} 15998.cmsb610-img-contain { 15999img { 16000margin-top: 0px; 16001margin-bottom: 0px 16002} 16003img { 16004margin-left: auto; 16005margin-right: auto 16006} 16007img { 16008height: 100% !important 16009} 16010img { 16011width: 100% !important 16012} 16013img { 16014object-fit: contain 16015} 16016} 16017.cmsb610-box-checkmark { 16018position: relative; 16019padding-left: 3rem; 16020&:before { 16021position: absolute 16022} 16023&:before { 16024left: 0px 16025} 16026&:before { 16027top: 0px 16028} 16029&:before { 16030height: 2rem 16031} 16032&:before { 16033width: 2rem 16034} 16035&:before { 16036border-width: 4px 16037} 16038&:before { 16039--tw-border-opacity: 1; 16040border-color: rgb(225 171 46 / var(--tw-border-opacity)) 16041} 16042&:before { 16043--tw-bg-opacity: 1; 16044background-color: rgb(255 255 255 / var(--tw-bg-opacity)) 16045} 16046&:before { 16047--tw-content: ''; 16048content: var(--tw-content) 16049} 16050} 16051.cmsb610-mt-1 { 16052margin-top: 0.25rem 16053} 16054.cmsb610-inline-block { 16055display: inline-block 16056} 16057.cmsb610-py-3 { 16058padding-top: 0.75rem; 16059padding-bottom: 0.75rem 16060} 16061.cmsb610-text-base { 16062font-size: 1rem; 16063line-height: 1.5rem 16064} 16065.cmsb610-leading-7 { 16066line-height: 1.75rem 16067} 16068.cmsb610-hover\:text-orange:hover { 16069--tw-text-opacity: 1; 16070color: rgb(225 171 46 / var(--tw-text-opacity)) 16071} 16072@media (min-width: 768px) { 16073.cmsb610-md\:py-0 { 16074padding-top: 0px; 16075padding-bottom: 0px 16076} 16077}</style> 16078<style>#html-body [data-pb-style=QPGNOVX]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;padding-left:0;padding-right:0}#html-body [data-pb-style=YUV25EU]{margin-top:0;margin-bottom:0;padding:0}</style><div data-content-type="row" data-appearance="full-bleed" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="QPGNOVX"><div data-content-type="html" data-appearance="default" data-element="main" data-pb-style="YUV25EU" data-decoded="true"><ul> 16079 <li class="cmsb610-mt-1"> 16080 <a href="/contact-us" 16081 class="cmsb610-inline-block cmsb610-py-3 cmsb610-md:py-0 cmsb610-text-base cmsb610-leading-7 cmsb610-hover:text-orange" tabindex="0"> 16082 Contact Us 16083 </a> 16084 </li> 16085 <li class="cmsb610-mt-1"> 16086 <a href="/support" 16087 class="cmsb610-inline-block cmsb610-py-3 cmsb610-md:py-0 cmsb610-text-base cmsb610-leading-7 cmsb610-hover:text-orange" tabindex="0"> 16088 Customer Service 16089 </a> 16090 </li> 16091 <li class="cmsb610-mt-1"> 16092 <a href="/customer/account" 16093 class="cmsb610-inline-block cmsb610-py-3 cmsb610-md:py-0 cmsb610-text-base cmsb610-leading-7 cmsb610-hover:text-orange" tabindex="0"> 16094 My Account 16095 </a> 16096 </li> 16097 <li class="cmsb610-mt-1"> 16098 <a href="/shipping-and-returns" 16099 class="cmsb610-inline-block cmsb610-py-3 cmsb610-md:py-0 cmsb610-text-base cmsb610-leading-7 cmsb610-hover:text-orange" tabindex="0"> 16100 Shipping and Returns 16101 </a> 16102 </li> 16103 <li class="cmsb610-mt-1"> 16104 <a href="/sales/guest/form"
16105 class="cmsb610-inline-block cmsb610-py-3 cmsb610-md:py-0 cmsb610-text-base cmsb610-leading-7 cmsb610-hover:text-orange" tabindex="0"> 16106 Track Orders 16107 </a> 16108 </li> 16109 <li class="cmsb610-mt-1"> 16110 <a href="/parts-requests" 16111 class="cmsb610-inline-block cmsb610-py-3 cmsb610-md:py-0 cmsb610-text-base cmsb610-leading-7 cmsb610-hover:text-orange" tabindex="0"> 16112 Parts Request 16113 </a> 16114 </li> 16115 <li class="cmsb610-mt-1"> 16116 <a href="/sage-ppai-inquiries" 16117 class="cmsb610-inline-block cmsb610-py-3 cmsb610-md:py-0 cmsb610-text-base cmsb610-leading-7 cmsb610-hover:text-orange" tabindex="0"> 16118 SAGE / PPAI Inquiries 16119 </a> 16120 </li> 16121 <li class="cmsb610-mt-1"> 16122 <a href="/swinging-hammock-chair-safety" 16123 class="cmsb610-inline-block cmsb610-py-3 cmsb610-md:py-0 cmsb610-text-base cmsb610-leading-7 cmsb610-hover:text-orange" tabindex="0"> 16124 Product Recall 16125 </a> 16126 </li> 16127 <li class="cmsb610-mt-1"> 16128 <a href="/registration-and-warranties#submit-a-warranty-claim" 16129 class="cmsb610-inline-block cmsb610-py-3 cmsb610-md:py-0 cmsb610-text-base cmsb610-leading-7 cmsb610-hover:text-orange" tabindex="0"> 16130 Warranty Claim 16131 </a> 16132 </li> 16133 <li class="cmsb610-mt-1"> 16134 <a href="/registration-and-warranties#register-my-product" 16135 class="cmsb610-inline-block cmsb610-py-3 cmsb610-md:py-0 cmsb610-text-base cmsb610-leading-7 cmsb610-hover:text-orange" tabindex="0"> 16136 Product Registration 16137 </a> 16138 <li class="cmsb610-mt-1"> 16139 <a href="/support#Dealer" 16140 class="cmsb610-inline-block cmsb610-py-3 cmsb610-md:py-0 cmsb610-text-base cmsb610-leading-7 cmsb610-hover:text-orange" tabindex="0"> 16141 Become a Dealer 16142 </a> 16143</ul></div></div> </div> 16144 </div> 16145 <div class="w-full last:mb-0 mb-6 md:mb-0" x-data="collapsibleHiddenByDefault"> 16146 <h3 class="hidden md:block text-white leading-5 font-bold tracking-wider 16147 uppercase text-left" 16148 > 16149 Knowledge Center </h3> 16150 <button type="button" 16151 id="KnowledgeCenter" 16152 class="flex justify-between w-full text-white leading-5 font-bold tracking-wider 16153 uppercase text-left md:hidden" 16154 @click.prevent="open = !open" 16155 :aria-expanded="open" 16156 aria-label="Dropdown Knowledge Center" 16157 > 16158 Knowledge Center <template x-cloak x-if="open"> 16159 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-5 w-5 text-white my-auto md:hidden" width="24" height="24" role="img"> 16160 <path stroke-linecap="round" stroke-linejoin="round" d="M15 12H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"/> 16161<title>minus-circle</title></svg> 16162 </template> 16163 <template x-cloak x-if="notOpen"> 16164 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-5 w-5 text-white my-auto md:hidden" width="24" height="24" role="img"> 16165 <path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"/> 16166<title>plus-circle</title></svg> 16167 </template> 16168 </button> 16169 <div class="cms-block-content mt-2 md:mt-3" 16170 x-show="open" 16171 aria-labelledby="KnowledgeCenter" 16172 > 16173 <style>.cmsb605-img-cover { 16174height: 100%; 16175width: 100%; 16176img { 16177margin-top: 0px; 16178margin-bottom: 0px 16179} 16180img { 16181margin-left: auto; 16182margin-right: auto 16183} 16184img { 16185height: 100% !important 16186} 16187img { 16188width: 100% !important 16189} 16190img { 16191object-fit: cover 16192} 16193} 16194.cmsb605-img-contain { 16195img { 16196margin-top: 0px; 16197margin-bottom: 0px 16198} 16199img { 16200margin-left: auto; 16201margin-right: auto 16202} 16203img { 16204height: 100% !important 16205} 16206img { 16207width: 100% !important 16208} 16209img { 16210object-fit: contain 16211} 16212} 16213.cmsb605-box-checkmark { 16214position: relative; 16215padding-left: 3rem; 16216&:before { 16217position: absolute 16218} 16219&:before { 16220left: 0px 16221} 16222&:before { 16223top: 0px 16224} 16225&:before { 16226height: 2rem 16227} 16228&:before { 16229width: 2rem 16230} 16231&:before { 16232border-width: 4px 16233} 16234&:before { 16235--tw-border-opacity: 1; 16236border-color: rgb(225 171 46 / var(--tw-border-opacity)) 16237} 16238&:before { 16239--tw-bg-opacity: 1; 16240background-color: rgb(255 255 255 / var(--tw-bg-opacity)) 16241} 16242&:before { 16243--tw-content: ''; 16244content: var(--tw-content) 16245} 16246} 16247.cmsb605-mt-1 { 16248margin-top: 0.25rem 16249}
16250.cmsb605-inline-block { 16251display: inline-block 16252} 16253.cmsb605-py-3 { 16254padding-top: 0.75rem; 16255padding-bottom: 0.75rem 16256} 16257.cmsb605-text-base { 16258font-size: 1rem; 16259line-height: 1.5rem 16260} 16261.cmsb605-leading-7 { 16262line-height: 1.75rem 16263} 16264.cmsb605-hover\:text-orange:hover { 16265--tw-text-opacity: 1; 16266color: rgb(225 171 46 / var(--tw-text-opacity)) 16267} 16268@media (min-width: 768px) { 16269.cmsb605-md\:py-0 { 16270padding-top: 0px; 16271padding-bottom: 0px 16272} 16273}</style> 16274<style>#html-body [data-pb-style=GW19YCF]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;padding-left:0;padding-right:0}#html-body [data-pb-style=NTOGYWB]{margin-top:0;margin-bottom:0;padding:0}</style><div data-content-type="row" data-appearance="full-bleed" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="GW19YCF"><div data-content-type="html" data-appearance="default" data-element="main" data-pb-style="NTOGYWB" data-decoded="true"><ul> 16275 <li class="cmsb605-mt-1"> 16276 <a href="https://www.youtube.com/@ShelterLogicDirect" 16277 class="cmsb605-inline-block cmsb605-py-3 cmsb605-md:py-0 cmsb605-text-base cmsb605-leading-7 cmsb605-hover:text-orange" tabindex="0"> 16278 How-To Videos 16279 </a> 16280 </li> 16281<li class="cmsb605-mt-1"> 16282 <a href="/anchor-guide" 16283 class="cmsb605-inline-block cmsb605-py-3 cmsb605-md:py-0 cmsb605-text-base cmsb605-leading-7 cmsb605-hover:text-orange" tabindex="0"> 16284 Anchor Guide 16285 </a> 16286 </li> 16287<li class="cmsb605-mt-1"> 16288 <a href="/cover-maintenance-guide" 16289 class="cmsb605-inline-block cmsb605-py-3 cmsb605-md:py-0 cmsb605-text-base cmsb605-leading-7 cmsb605-hover:text-orange" tabindex="0"> 16290 Cover Maintenance Guide 16291 </a> 16292 </li> 16293 <li class="cmsb605-mt-1"> 16294 <a href="/manuals" 16295 class="cmsb605-inline-block cmsb605-py-3 cmsb605-md:py-0 cmsb605-text-base cmsb605-leading-7 cmsb605-hover:text-orange" tabindex="0"> 16296 Manuals 16297 </a> 16298 </li> 16299 <li class="cmsb605-mt-1"> 16300 <a href="/knowledge" 16301 class="cmsb605-inline-block cmsb605-py-3 cmsb605-md:py-0 cmsb605-text-base cmsb605-leading-7 cmsb605-hover:text-orange" tabindex="0"> 16302 Our Blog 16303 </a> 16304 </li> 16305<li class="cmsb605-mt-1"> 16306 <a href="/accessibility-statement" 16307 class="cmsb605-inline-block cmsb605-py-3 cmsb605-md:py-0 cmsb605-text-base cmsb605-leading-7 cmsb605-hover:text-orange" tabindex="0"> 16308 Accessibility Statement 16309 </a> 16310 </li> 16311 <li class="cmsb605-mt-1"> 16312 <a href="/shelterlogic-official-coupons-offers" 16313 class="cmsb605-inline-block cmsb605-py-3 cmsb605-md:py-0 cmsb605-text-base cmsb605-leading-7 cmsb605-hover:text-orange" tabindex="0"> 16314 Current Promotions and Coupons 16315 </a> 16316 </li> 16317 </ul></div></div> </div> 16318 </div> 16319 <div class="w-full last:mb-0 mb-6 md:mb-0" x-data="collapsibleHiddenByDefault"> 16320 <h3 class="hidden md:block text-white leading-5 font-bold tracking-wider 16321 uppercase text-left" 16322 > 16323 Brands </h3> 16324 <button type="button" 16325 id="Brands" 16326 class="flex justify-between w-full text-white leading-5 font-bold tracking-wider 16327 uppercase text-left md:hidden" 16328 @click.prevent="open = !open" 16329 :aria-expanded="open" 16330 aria-label="Dropdown Brands" 16331 > 16332 Brands <template x-cloak x-if="open"> 16333 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-5 w-5 text-white my-auto md:hidden" width="24" height="24" role="img"> 16334 <path stroke-linecap="round" stroke-linejoin="round" d="M15 12H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"/> 16335<title>minus-circle</title></svg> 16336 </template> 16337 <template x-cloak x-if="notOpen"> 16338 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-5 w-5 text-white my-auto md:hidden" width="24" height="24" role="img"> 16339 <path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"/> 16340<title>plus-circle</title></svg> 16341 </template> 16342 </button> 16343 <div class="cms-block-content mt-2 md:mt-3" 16344 x-show="open" 16345 aria-labelledby="Brands" 16346 > 16347 <style>#html-body [data-pb-style=SMVQDVS]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;padding-left:0;padding-right:0}#html-body [data-pb-style=OKHJRUX]{margin-top:0;margin-bottom:0;padding:0}</style><div data-content-type="row" data-appearance="full-bleed" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="SMVQDVS"><div data-content-type="html" data-appearance="default" data-element="main" data-pb-style="OKHJRUX" data-decoded="true"><div class="findcanary-category-children-widget fc-none-name"> 16348 16349 <div class="subcategories-listing"> 16350 16351 <ol class="category-items"> 16352 <li class="category-item"> 16353 <div class="category-item-inner"> 16354 16355 <div class="category-item-text"> 16356 <a href="https://www.shelterlogic.com/shop-by-brand/shelterlogic" title="ShelterLogic®">ShelterLogic®</a> 16357 </div> 16358 16359 </div> 16360 </li> 16361 <li class="category-item"> 16362 <div class="category-item-inner"> 16363 16364 <div class="category-item-text"> 16365 <a href="https://www.shelterlogic.com/shop-by-brand/sojag" title="SOJAG®">SOJAG®</a> 16366 </div> 16367 16368 </div> 16369 </li> 16370 <li class="category-item"> 16371 <div class="category-item-inner"> 16372 16373 <div class="category-item-text"> 16374 <a href="https://www.shelterlogic.com/shop-by-brand/arrow-storage" title="Arrow Storage Products®">Arrow Storage Products®</a> 16375 </div> 16376 16377 </div> 16378 </li> 16379 <li class="category-item"> 16380 <div class="category-item-inner"> 16381 16382 <div class="category-item-text"> 16383 <a href="https://www.shelterlogic.com/shop-by-brand/quik-shade" title="Quik Shade®">Quik Shade®</a> 16384 </div> 16385 16386 </div> 16387 </li> 16388 <li class="category-item"> 16389 <div class="category-item-inner"> 16390 16391 <div class="category-item-text"> 16392 <a href="https://www.shelterlogic.com/shop-by-brand/camp-go" title="CAMP&GO™">CAMP&GO™</a> 16393 </div> 16394 16395 </div> 16396 </li> 16397 <li class="category-item"> 16398 <div class="category-item-inner"> 16399 16400 <div class="category-item-text"> 16401 <a href="https://www.shelterlogic.com/shop-by-brand/rio-beach" title="RIO Beach®">RIO Beach®</a> 16402 </div> 16403 16404 </div> 16405 </li> 16406 <li class="category-item"> 16407 <div class="category-item-inner"> 16408 16409 <div class="category-item-text"> 16410 <a href="https://www.shelterlogic.com/shop-by-brand/tommy-bahama" title="Tommy Bahama®">Tommy Bahama®</a> 16411 </div> 16412 16413 </div> 16414 </li> 16415 <li class="category-item"> 16416 <div class="category-item-inner"> 16417 16418 <div class="category-item-text"> 16419 <a href="https://www.shelterlogic.com/shop-by-brand/margaritaville" title="Margaritaville®">Margaritaville®</a> 16420 </div> 16421 16422 </div> 16423 </li> 16424 <li class="category-item"> 16425 <div class="category-item-inner"> 16426 16427 <div class="category-item-text"> 16428 <a href="https://www.shelterlogic.com/shop-by-brand/life-is-good" title="Life is Good®">Life is Good®</a> 16429 </div> 16430 16431 </div> 16432 </li> 16433 <li class="category-item"> 16434 <div class="category-item-inner"> 16435 16436 <div class="category-item-text"> 16437 <a href="https://www.shelterlogic.com/shop-by-brand/scottsmiracle-gro" title="Scotts Miracle-Gro">Scotts Miracle-Gro</a> 16438 </div> 16439 16440 </div> 16441 </li> 16442 </ol> 16443 16444 </div> 16445</div> 16446</div></div> </div> 16447 </div> 16448 <div class="w-full last:mb-0 mb-6 md:mb-0" x-data="collapsibleHiddenByDefault"> 16449 <h3 class="hidden md:block text-white leading-5 font-bold tracking-wider 16450 uppercase text-left" 16451 > 16452 ShelterLogic Group </h3> 16453 <button type="button" 16454 id="ShelterLogicGroup" 16455 class="flex justify-between w-full text-white leading-5 font-bold tracking-wider 16456 uppercase text-left md:hidden" 16457 @click.prevent="open = !open" 16458 :aria-expanded="open" 16459 aria-label="Dropdown ShelterLogic Group" 16460 > 16461 ShelterLogic Group <template x-cloak x-if="open"> 16462 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-5 w-5 text-white my-auto md:hidden" width="24" height="24" role="img"> 16463 <path stroke-linecap="round" stroke-linejoin="round" d="M15 12H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"/> 16464<title>minus-circle</title></svg> 16465 </template> 16466 <template x-cloak x-if="notOpen"> 16467 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-5 w-5 text-white my-auto md:hidden" width="24" height="24" role="img"> 16468 <path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"/> 16469<title>plus-circle</title></svg> 16470 </template> 16471 </button> 16472 <div class="cms-block-content mt-2 md:mt-3" 16473 x-show="open" 16474 aria-labelledby="ShelterLogicGroup" 16475 > 16476 <style>.cmsb607-img-cover { 16477height: 100%; 16478width: 100%; 16479img { 16480margin-top: 0px; 16481margin-bottom: 0px 16482} 16483img { 16484margin-left: auto; 16485margin-right: auto 16486} 16487img { 16488height: 100% !important 16489} 16490img { 16491width: 100% !important 16492} 16493img { 16494object-fit: cover 16495} 16496} 16497.cmsb607-img-contain { 16498img { 16499margin-top: 0px; 16500margin-bottom: 0px 16501} 16502img { 16503margin-left: auto; 16504margin-right: auto 16505} 16506img { 16507height: 100% !important 16508} 16509img { 16510width: 100% !important 16511} 16512img { 16513object-fit: contain 16514} 16515} 16516.cmsb607-box-checkmark { 16517position: relative; 16518padding-left: 3rem; 16519&:before { 16520position: absolute 16521} 16522&:before { 16523left: 0px 16524} 16525&:before { 16526top: 0px 16527} 16528&:before { 16529height: 2rem 16530} 16531&:before { 16532width: 2rem 16533} 16534&:before { 16535border-width: 4px 16536} 16537&:before { 16538--tw-border-opacity: 1; 16539border-color: rgb(225 171 46 / var(--tw-border-opacity)) 16540} 16541&:before { 16542--tw-bg-opacity: 1; 16543background-color: rgb(255 255 255 / var(--tw-bg-opacity)) 16544} 16545&:before { 16546--tw-content: ''; 16547content: var(--tw-content) 16548} 16549} 16550.cmsb607-relative { 16551position: relative 16552} 16553.cmsb607-mt-1 { 16554margin-top: 0.25rem 16555}
16556.cmsb607-inline-block { 16557display: inline-block 16558} 16559.cmsb607-py-3 { 16560padding-top: 0.75rem; 16561padding-bottom: 0.75rem 16562} 16563.cmsb607-text-base { 16564font-size: 1rem; 16565line-height: 1.5rem 16566} 16567.cmsb607-leading-7 { 16568line-height: 1.75rem 16569} 16570.cmsb607-hover\:text-orange:hover { 16571--tw-text-opacity: 1; 16572color: rgb(225 171 46 / var(--tw-text-opacity)) 16573} 16574@media (min-width: 768px) { 16575.cmsb607-md\:py-0 { 16576padding-top: 0px; 16577padding-bottom: 0px 16578} 16579}</style> 16580<style>#html-body [data-pb-style=NVXH33K]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;padding-left:0;padding-right:0}#html-body [data-pb-style=XLAD31W]{margin-top:0;margin-bottom:0;padding:0}</style><div data-content-type="row" data-appearance="full-bleed" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="NVXH33K"><div data-content-type="html" data-appearance="default" data-element="main" data-pb-style="XLAD31W" data-decoded="true"><ul> 16581<li class="cmsb607-mt-1"> 16582 <a href="/about" 16583 class="cmsb607-inline-block cmsb607-py-3 cmsb607-md:py-0 cmsb607-text-base cmsb607-leading-7 cmsb607-hover:text-orange cmsb607-relative group" tabindex="0"> 16584 About Us 16585 </a> 16586 </li> 16587 <li class="cmsb607-mt-1"> 16588 <a href="/our-story" 16589 class="cmsb607-inline-block cmsb607-py-3 cmsb607-md:py-0 cmsb607-text-base cmsb607-leading-7 cmsb607-hover:text-orange cmsb607-relative group" tabindex="0"> 16590 Our Story 16591 </a> 16592 </li> 16593 <li class="cmsb607-mt-1"> 16594 <a href="/our-brands" 16595 class="cmsb607-inline-block cmsb607-py-3 cmsb607-md:py-0 cmsb607-text-base cmsb607-leading-7 cmsb607-hover:text-orange cmsb607-relative group" tabindex="0"> 16596 Our Brands 16597 </a> 16598 </li> 16599 <li class="cmsb607-mt-1"> 16600 <a href="/community-environment" 16601 class="cmsb607-inline-block cmsb607-py-3 cmsb607-md:py-0 cmsb607-text-base cmsb607-leading-7 cmsb607-hover:text-orange cmsb607-relative group" tabindex="0"> 16602 Community + Environment 16603 </a> 16604 </li> 16605 <li class="cmsb607-mt-1"> 16606 <a href="/careers" 16607 class="cmsb607-inline-block cmsb607-py-3 cmsb607-md:py-0 cmsb607-text-base cmsb607-leading-7 cmsb607-hover:text-orange cmsb607-relative group" tabindex="0"> 16608 Careers 16609 </a> 16610 </li> 16611 <li class="cmsb607-mt-1"> 16612 <a href="/in-the-news" 16613 class="cmsb607-inline-block cmsb607-py-3 cmsb607-md:py-0 cmsb607-text-base cmsb607-leading-7 cmsb607-hover:text-orange cmsb607-relative group" tabindex="0"> 16614 Press 16615 </a> 16616 </li> 16617 <li class="cmsb607-mt-1"> 16618 <a href="/international-product-inquiry" 16619 class="cmsb607-inline-block cmsb607-py-3 cmsb607-md:py-0 cmsb607-text-base cmsb607-leading-7 cmsb607-hover:text-orange" tabindex="0"> 16620 Int'l Product Inquiry 16621 </a> 16622 </li> 16623 <li class="cmsb607-mt-1"> 16624 <a href="https://app.impact.com/campaign-promo-signup/Shelterlogic-Direct.brand?execution=e1s1&io=%2B%2Fb8MHInAaqTk96GQYkvHPQdXmeLOU0X6n9kjuGL%2BBs3S6IwciocDYCzy402p%2FhH#/?viewkey=signUpPreStart" 16625 class="cmsb607-inline-block cmsb607-py-3 cmsb607-md:py-0 cmsb607-text-base cmsb607-leading-7 cmsb607-hover:text-orange" tabindex="0"> 16626 Join Our Affiliate Program 16627 </a> 16628 </li> 16629<li class="cmsb607-mt-1"> 16630 <a href="/influencer-program" 16631 class="cmsb607-inline-block cmsb607-py-3 cmsb607-md:py-0 cmsb607-text-base cmsb607-leading-7 cmsb607-hover:text-orange" tabindex="0"> 16632 Join Our Influencer Program 16633 </a> 16634 </li> 16635 </ul></div></div> </div> 16636 </div> 16637
16637<script> 16638 window.addEventListener('alpine:init', () => Alpine.data('collapsibleHiddenByDefault', () => { 16639 return { 16640 open: false, 16641 notOpen() { 16642 return !this.open; 16643 } 16644 } 16645 })); 16646 </script>
16646 16647 </div></div>
16647<script> 16648 function setZoomLevelGlobally() { 16649 const browserZoomLevel = Math.round(window.devicePixelRatio * 100); 16650 document.body.setAttribute('data-zoom-level', browserZoomLevel.toString()); 16651 } 16652 window.addEventListener('resize', setZoomLevelGlobally); 16653 setZoomLevelGlobally(); 16654</script>
16654 16655 16656 16657<div class="container"> 16658 <div class="flex flex-wrap justify-center flex-col items-center md:flex-row md:items-center md:justify-between footer-network-social pb-5 md:pb-6 gap-y-5 md:border-container-light md:border-t pt-6"> 16659 <div class="flex flex-wrap lg:flex-nowrap items-center justify-center py-2.5 content-none md:py-0 md:text-left gap-3"> 16660 <svg xmlns="http://www.w3.org/2000/svg" width="48" height="32" fill="none" viewBox="0 0 48 32" aria-label="Pay with Visa" role="img"><g clip-path="url(#a)"><path fill="#fff" d="M0 4a4 4 0 0 1 4-4h40a4 4 0 0 1 4 4v24a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4z"/><path fill="#1434CB" d="M19.108 10.212 14.243 21.82H11.07l-2.393-9.263c-.146-.57-.272-.78-.714-1.02-.722-.391-1.913-.759-2.962-.987l.071-.337h5.109c.651 0 1.237.434 1.385 1.184l1.264 6.715 3.124-7.9zm12.435 7.817c.013-3.063-4.236-3.232-4.206-4.6.009-.417.405-.86 1.273-.973.43-.056 1.616-.099 2.96.52l.527-2.461A8.1 8.1 0 0 0 29.29 10c-2.968 0-5.056 1.578-5.074 3.837-.019 1.67 1.491 2.603 2.629 3.158 1.17.569 1.563.934 1.558 1.443-.008.778-.933 1.122-1.798 1.135-1.509.024-2.385-.408-3.083-.733l-.544 2.543c.702.322 1.997.603 3.339.617 3.154 0 5.218-1.558 5.227-3.97m7.837 3.79h2.777l-2.424-11.607H37.17c-.577 0-1.063.336-1.278.852L31.387 21.82h3.152l.626-1.734h3.852zm-3.35-4.113 1.58-4.358.91 4.358zm-12.632-7.494L20.915 21.82h-3.002l2.483-11.607z"/></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h48v32H0z"/></clipPath></defs><title>visa</title></svg> 16661 <svg xmlns="http://www.w3.org/2000/svg" width="48" height="32" fill="none" viewBox="0 0 48 32" aria-label="Pay with American Express" role="img"><g clip-path="url(#a_2)"><path fill="#fff" d="M0 4a4 4 0 0 1 4-4h40a4 4 0 0 1 4 4v24a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4z"/><path fill="#006FCF" d="M42.12 14.555h3.635V6.11H41.8v1.176l-.75-1.176h-3.42v1.497l-.642-1.497h-6.307c-.214 0-.428.107-.642.107s-.32.107-.534.214-.321.107-.535.214V6.11H10.904L10.37 7.5l-.535-1.39H5.56v1.497L4.918 6.11H1.497L0 9.745v4.81h2.459l.427-1.175h.856l.427 1.175h18.815v-1.069l.749 1.07h5.238v-.642c.107.107.32.107.428.214s.32.107.427.214c.214.106.428.106.642.106h3.848l.428-1.175h.855l.428 1.175h5.238V13.38zM48 25.245v-7.91H18.601l-.748 1.069-.748-1.07H8.552v8.446h8.553l.748-1.069.748 1.07h5.346v-1.818h-.214q1.123 0 1.924-.32v2.244h3.849v-1.069l.748 1.07h15.929c.641-.215 1.282-.321 1.817-.642"/><path fill="#fff" d="M46.183 23.215h-2.887v1.176h2.78c1.176 0 1.924-.749 1.924-1.818s-.641-1.603-1.71-1.603h-1.283c-.321 0-.535-.214-.535-.535 0-.32.214-.534.535-.534h2.459L48 18.725h-2.886c-1.176 0-1.925.748-1.925 1.71 0 1.07.642 1.604 1.71 1.604h1.284c.32 0 .534.213.534.534.107.428-.107.642-.534.642m-5.239 0h-2.886v1.176h2.78c1.175 0 1.924-.749 1.924-1.818s-.642-1.603-1.71-1.603h-1.284c-.32 0-.534-.214-.534-.535 0-.32.214-.534.534-.534h2.46l.534-1.176h-2.887c-1.176 0-1.924.748-1.924 1.71 0 1.07.641 1.604 1.71 1.604h1.283c.321 0 .535.213.535.534.107.428-.214.642-.535.642m-3.741-3.421v-1.176h-4.49v5.666h4.49v-1.176h-3.208v-1.176h3.1v-1.176h-3.1v-1.07h3.208zm-7.27 0c.535 0 .749.32.749.641 0 .32-.214.642-.749.642H28.33v-1.39zm-1.603 2.459h.641l1.71 2.03h1.604l-1.924-2.137c.962-.214 1.497-.856 1.497-1.71 0-1.07-.749-1.818-1.925-1.818H26.94v5.666h1.283zm-3.421-1.71c0 .427-.214.747-.749.747h-1.71v-1.496h1.604c.534 0 .855.32.855.748m-3.742-1.925v5.666h1.283v-1.925h1.71c1.176 0 2.032-.748 2.032-1.924 0-1.069-.749-1.924-1.925-1.924zm-1.924 5.666h1.603l-2.245-2.887 2.245-2.78h-1.603l-1.39 1.818-1.39-1.817H14.86l2.245 2.78-2.245 2.779h1.603l1.39-1.818zm-4.81-4.49v-1.176h-4.49v5.666h4.49v-1.176h-3.208v-1.176h3.1v-1.176h-3.1v-1.07h3.207zM40.41 9.744l2.245 3.422h1.603V7.5h-1.283v3.741l-.32-.534L40.624 7.5h-1.71v5.666h1.282V9.317zm-5.56-.106.428-1.176.428 1.176.534 1.283h-1.924zm2.246 3.528h1.39L36.026 7.5h-1.71l-2.459 5.666h1.39l.535-1.176h2.78zm-5.987 0 .535-1.176h-.321c-.962 0-1.497-.642-1.497-1.604v-.107c0-.962.535-1.603 1.497-1.603h1.39V7.5h-1.497c-1.71 0-2.673 1.176-2.673 2.78v.106c0 1.71.963 2.78 2.566 2.78m-4.81 0h1.282v-5.56h-1.283zm-2.78-4.49c.535 0 .748.32.748.641 0 .32-.213.642-.748.642h-1.604v-1.39zm-1.604 2.458h.642l
166611.71 2.032h1.604l-1.924-2.138c.962-.214 1.496-.856 1.496-1.71 0-1.07-.748-1.818-1.924-1.818h-2.993v5.666h1.282zm-2.351-2.458V7.5h-4.49v5.666h4.49V11.99h-3.208v-1.176h3.1V9.638h-3.1v-1.07h3.207zm-9.729 4.49h1.176l1.604-4.597v4.597h1.283V7.5h-2.139l-1.282 3.848L9.194 7.5H7.056v5.666h1.283V8.569zM2.886 9.638l.428-1.176.428 1.176.534 1.283H2.352zm2.245 3.528h1.39L4.062 7.5H2.46L0 13.166h1.39l.534-1.176h2.78z"/></g><defs><clipPath id="a_2"><path fill="#fff" d="M0 0h48v32H0z"/></clipPath></defs><title>american-express</title></svg> 16662 <svg xmlns="http://www.w3.org/2000/svg" width="48" height="32" fill="none" viewBox="0 0 48 32" aria-label="Pay with Master Card" role="img"><g clip-path="url(#a_3)"><path fill="#fff" d="M0 4a4 4 0 0 1 4-4h40a4 4 0 0 1 4 4v24a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4z"/><path fill="#FF5F00" d="M28.376 8.139h-8.75v15.725h8.75z"/><path fill="#EB001B" d="M20.181 16a9.98 9.98 0 0 1 3.82-7.861A9.96 9.96 0 0 0 17.82 6c-5.522 0-10 4.478-10 10s4.478 10 10 10A9.96 9.96 0 0 0 24 23.861 9.98 9.98 0 0 1 20.182 16"/><path fill="#F79E1B" d="M40.178 16c0 5.522-4.477 10-10 10-2.333 0-4.477-.8-6.18-2.139A9.98 9.98 0 0 0 27.818 16a9.98 9.98 0 0 0-3.82-7.861A9.96 9.96 0 0 1 30.178 6c5.522 0 10 4.478 10 10"/></g><defs><clipPath id="a_3"><path fill="#fff" d="M0 0h48v32H0z"/></clipPath></defs><title>mastercard</title></svg> 16663 <svg xmlns="http://www.w3.org/2000/svg" width="48" height="32" fill="none" viewBox="0 0 48 32" aria-label="Pay with PayPal" role="img"><g clip-path="url(#a_4)"><path fill="#fff" d="M0 4a4 4 0 0 1 4-4h40a4 4 0 0 1 4 4v24a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4z"/><path fill="#000" d="M43 10.5v9.523h-2.167V10.5zm-2.965 3.214v6.327H38.11v-.546a2.6 2.6 0 0 1-.83.546q-.465.201-1.006.203-.679 0-1.259-.253a3.2 3.2 0 0 1-1.006-.72 3.5 3.5 0 0 1-.682-1.06 3.7 3.7 0 0 1-.238-1.33q-.001-.708.238-1.313.252-.619.682-1.076a3 3 0 0 1 1.006-.708 3 3 0 0 1 1.26-.267q.539 0 1.006.203.466.19.83.545v-.545h1.925zm-3.414 4.604q.592.001.97-.407.39-.404.39-1.035c0-.42-.13-.769-.39-1.036a1.27 1.27 0 0 0-.97-.406c-.391 0-.722.134-.983.406q-.377.405-.377 1.036c0 .42.127.769.377 1.035q.391.406.983.407M29.996 10.5q.857 0 1.462.24.604.24 1.02.67.428.444.668 1.013.239.57.238 1.227.001.657-.238 1.227c-.157.377-.383.72-.667 1.013q-.415.43-1.021.67-.604.24-1.462.24h-1.044v3.238h-2.205V10.5zm-.316 4.34c.296 0 .519-.03.681-.09q.254-.103.415-.253.34-.316.34-.847t-.34-.847a1.2 1.2 0 0 0-.415-.24q-.239-.101-.681-.102h-.731v2.378zm-11.055-1.126h2.393l1.624 3.034h.027l1.447-3.034h2.216l-4.748 9.538h-2.205l2.167-4.363zm-.427 0v6.327h-1.926v-.546a2.6 2.6 0 0 1-.83.546q-.466.201-1.006.203-.679 0-1.259-.253a3.2 3.2 0 0 1-1.006-.72 3.6 3.6 0 0 1-.682-1.06 3.7 3.7 0 0 1-.238-1.33q0-.708.238-1.313.251-.619.682-1.076a3 3 0 0 1 1.006-.708 3 3 0 0 1 1.26-.267q.539 0 1.006.203.467.19.83.545v-.545h1.925zm-3.414 4.604q.591.001.972-.407.392-.404.392-1.035c0-.42-.13-.769-.392-1.036a1.27 1.27 0 0 0-.972-.406q-.591-.001-.983.406-.378.405-.377 1.036c0 .42.128.769.377 1.035q.392.406.983.407M8.25 10.5q.857 0 1.462.24.604.24 1.02.67.428.444.668 1.013.239.57.238 1.227.001.657-.238 1.227c-.156.377-.383.72-.667 1.013q-.415.43-1.021.67-.604.24-1.462.24H7.205v3.238H5V10.5zm-.313 4.34c.295 0 .519-.03.681-.09a1.3 1.3 0 0 0 .415-.253q.34-.316.34-.847t-.34-.847a1.2 1.2 0 0 0-.415-.24q-.24-.101-.681-.102h-.731v2.378z"/></g><defs><clipPath id="a_4"><path fill="#fff" d="M0 0h48v32H0z"/></clipPath></defs><title>paypal</title></svg> 16664 <svg xmlns="http://www.w3.org/2000/svg" width="48" height="32" fill="none" viewBox="0 0 48 32" aria-label="Pay with ApplePay" role="img"><g clip-path="url(#a_5)"><path fill="#fff" d="M0 4a4 4 0 0 1 4-4h40a4 4 0 0 1 4 4v24a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4z"/><path fill="#000" d="M13.422 11.356a2.62 2.62 0 0 0 .604-1.856 2.6 2.6 0 0 0-1.718.88 2.47 2.47 0 0 0-.615 1.793 2.12 2.12 0 0 0 1.729-.817m.605.944c-.955-.063-1.761.541-2.217.541s-1.157-.509-1.91-.498a2.81 2.81 0 0 0-2.397 1.453c-1.06 1.76-.265 4.38.732 5.823.488.71 1.06 1.496 1.835 1.464s1.008-.467 1.888-.467 1.146.467 1.91.456c.763-.01 1.293-.71 1.781-1.421a6.4 6.4 0 0 0 .796-1.644 2.57 2.57 0 0 1-1.549-2.344 2.61 2.61 0 0 1 1.252-2.207 2.73 2.73 0 0 0-2.121-1.156m8.305-1.983a3.34 3.34 0 0 1 3.51 3.51 3.393 3.393 0 0 1-3.563 3.48h-2.291v3.648h-1.666V10.317zm-2.344 5.643h1.92a2.005 2.005 0 0 0 2.259-2.122 1.983 1.983 0 0 0-2.249-2.121h-1.91zm6.29 2.821c0-1.358 1.06-2.196 2.895-2.302l2.122-.127v-.594c0-.87-.584-1.39-1.56-1.39a1.485 1.485 0 0 0-1.644 1.146h-1.506c.096-1.39 1.294-2.45 3.214-2.45s3.097 1.008 3.097 2.567v5.367H31.37v-1.283a2.76 2.76 0 0 1-2.46 1.41 2.364 2.364 0 0 1-2.631-2.344m5.027-.7v-.615l-1.92.116c-.954.064-1.495.488-1.495 1.157 0 .668.562 1.124 1.421 1.124a1.87 1.87 0 0 0 1.994-1.782m3.033 5.781V22.61q.26.024.52 0a1.305 1.305 0 0 0 1.39-1.06l.137-.478-2.81-7.86h1.728l1.973 6.365 1.962-6.365H41l
16664-2.917 8.189c-.657 1.888-1.432 2.493-3.044 2.493-.18 0-.573-.011-.7-.032"/></g><defs><clipPath id="a_5"><path fill="#fff" d="M0 0h48v32H0z"/></clipPath></defs><title>apple-pay</title></svg> 16665 <svg xmlns="http://www.w3.org/2000/svg" width="48" height="32" fill="none" viewBox="0 0 48 32" aria-label="Pay with GooglePay" role="img"><g clip-path="url(#a_6)"><path fill="#fff" d="M0 4a4 4 0 0 1 4-4h40a4 4 0 0 1 4 4v24a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4z"/><path fill="#3C4043" d="M22.869 16.488v3.933H21.62v-9.712h3.309q1.259 0 2.139.838.897.84.897 2.048c0 .826-.3 1.508-.898 2.06q-.869.828-2.138.827h-2.061zm0-4.583v3.387h2.087c.494 0 .91-.17 1.235-.5.331-.332.5-.735.5-1.19a1.62 1.62 0 0 0-.5-1.177q-.486-.516-1.235-.514h-2.087zm8.361 1.651q1.383 0 2.183.741.8.74.8 2.029v4.095h-1.19v-.923h-.052q-.771 1.139-2.06 1.138-1.1.001-1.84-.65-.741-.652-.741-1.626 0-1.033.78-1.638.781-.613 2.08-.611 1.113 0 1.827.41v-.287c0-.435-.17-.8-.514-1.105a1.76 1.76 0 0 0-1.209-.455c-.695 0-1.248.293-1.651.884l-1.099-.689q.909-1.314 2.685-1.313m-1.613 4.824c0 .325.136.598.416.812q.411.324.968.325.79 0 1.405-.585.616-.583.617-1.371-.584-.46-1.625-.462-.76.002-1.268.364-.515.381-.513.917M41 13.77l-4.16 9.57h-1.288l1.547-3.348-2.743-6.221h1.359l1.976 4.771h.026l1.924-4.771z"/><path fill="#4285F4" d="M17.904 15.695q-.001-.61-.104-1.171h-5.232v2.145l3.013.001a2.58 2.58 0 0 1-1.118 1.728v1.392h1.794c1.047-.97 1.647-2.402 1.647-4.095"/><path fill="#34A853" d="M14.464 18.398c-.5.337-1.142.534-1.895.534-1.453 0-2.685-.98-3.127-2.3h-1.85v1.436a5.57 5.57 0 0 0 4.977 3.067c1.505 0 2.768-.494 3.688-1.346z"/><path fill="#FABB05" d="M9.268 15.568c0-.37.062-.729.174-1.065v-1.436h-1.85A5.54 5.54 0 0 0 7 15.568c0 .9.214 1.749.592 2.501l1.85-1.435a3.4 3.4 0 0 1-.174-1.066"/><path fill="#E94235" d="M12.57 12.204c.82 0 1.556.283 2.136.835l1.59-1.588c-.966-.9-2.224-1.451-3.727-1.451a5.57 5.57 0 0 0-4.977 3.067l1.85 1.436c.442-1.32 1.674-2.3 3.127-2.3"/></g><defs><clipPath id="a_6"><path fill="#fff" d="M0 0h48v32H0z"/></clipPath></defs><title>google-pay</title></svg> 16666 <svg xmlns="http://www.w3.org/2000/svg" width="48" height="32" fill="none" viewBox="0 0 48 32" aria-label="Pay with Affirm" role="img"><g clip-path="url(#a_7)"><path fill="#fff" d="M0 4a4 4 0 0 1 4-4h40a4 4 0 0 1 4 4v24a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4z"/><path fill="#101820" fill-rule="evenodd" d="M8.114 16.544c-1.026 0-2.215.49-2.86 1l.59 1.234c.518-.472 1.353-.872 2.107-.872.717 0 1.108.236 1.108.718 0 .327-.264.49-.754.553-1.852.237-3.305.745-3.305 2.17 0 1.127.808 1.817 2.061 1.817.9 0 1.698-.5 2.08-1.154v.972h1.67v-4.077c0-1.68-1.171-2.36-2.697-2.36m-.626 5.312c-.472 0-.708-.227-.708-.608 0-.709.79-.945 2.233-1.099.01.944-.635 1.707-1.525 1.707m19.077-4.077v-1.053h-1.67v6.256h1.788v-3.014c0-1.435.863-1.853 1.471-1.853.236 0 .554.073.763.227l.327-1.652a2 2 0 0 0-.8-.146c-.916 0-1.497.409-1.879 1.235m10.978-1.235c-.944 0-1.653.563-2.025 1.099-.345-.7-1.062-1.099-1.934-1.099-.944 0-1.598.527-1.907 1.126v-.944h-1.725v6.256h1.789V19.76c0-1.154.608-1.707 1.171-1.707.508 0 .98.326.98 1.18v3.75h1.799V19.76c0-1.172.59-1.707 1.18-1.707.472 0 .971.345.971 1.17v3.76h1.79V18.66c0-1.407-.945-2.116-2.09-2.116m-20.412-.281v.463h-2.715v-.636c0-.826.472-1.062.88-1.062.237 0 .546.054.8.2l.554-1.262c-.327-.191-.863-.364-1.58-.364-1.144 0-2.443.645-2.443 2.67v.463h-1.035v1.38h1.035v4.867h1.789v-4.876h2.715v4.876h1.789v-4.876h1.625v-1.38H18.92v-.636c0-.826.472-1.062.88-1.062.454 0 .8.2.8.2l.553-1.262s-.563-.364-1.58-.364c-1.134-.009-2.442.636-2.442 2.66m4.476.463h1.79v6.256h-1.79z" clip-rule="evenodd"/><path fill="#4A4AF4" fill-rule="evenodd" d="M32.031 8c-4.83 0-9.134 3.35-10.35 7.664h1.752c1.017-3.215 4.476-6.03 8.598-6.03 5.013 0 9.335 3.814 9.335 9.752 0 1.335-.173 2.534-.5 3.596h1.698l.018-.054c.282-1.1.418-2.289.418-3.542C43 12.767 38.179 8 32.031 8" clip-rule="evenodd"/></g><defs><clipPath id="a_7"><path fill="#fff" d="M0 0h48v32H0z"/></clipPath></defs><title>affirm</title></svg> 16667 <svg xmlns="http://www.w3.org/2000/svg" width="48" height="32" fill="none" viewBox="0 0 48 32" aria-label="Pay with PayPal" role="img"><g clip-path="url(#a_8)"><path fill="#fff" d="M0 4a4 4 0 0 1 4-4h40a4 4 0 0 1 4 4v24a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4z"/><path fill="#008CFF" d="M11.246 12.5c.257.424.372.86.372 1.411 0 1.758-1.5 4.042-2.72 5.646H6.117L5 12.885l2.437-.231.59 4.747c.551-.898 1.231-2.309 1.231-3.271 0-.527-.09-.886-.23-1.18zm3.158 2.938c.448 0 1.577-.205 1.577-.846 0-.308-.218-.462-.474-.462-.45 0-1.039.539-1.
16667103 1.308m-.051 1.27c0 .784.435 1.091 1.013 1.091.629 0 1.23-.153 2.013-.551l-.294 2.001c-.552.27-1.411.45-2.245.45-2.116 0-2.873-1.283-2.873-2.887 0-2.079 1.231-4.286 3.77-4.286 1.4 0 2.18.783 2.18 1.873.001 1.758-2.256 2.297-3.564 2.31M24.95 14.04c0 .257-.04.629-.078.872l-.731 4.62h-2.373l.667-4.235c.013-.115.052-.346.052-.474 0-.308-.193-.385-.424-.385-.307 0-.615.14-.82.244l-.757 4.85H18.1l1.09-6.916h2.065l.026.552c.487-.321 1.129-.668 2.039-.668 1.206 0 1.63.616 1.63 1.54m7.043-.757c.68-.487 1.322-.757 2.206-.757 1.218 0 1.642.616 1.642 1.54 0 .257-.039.629-.077.872l-.73 4.62H32.66l.68-4.325c.012-.115.039-.256.039-.346 0-.346-.193-.423-.424-.423-.295 0-.59.128-.808.244l-.756 4.85h-2.373l.68-4.324c.012-.116.038-.257.038-.347 0-.346-.193-.423-.424-.423-.308 0-.615.14-.82.244l-.757 4.85h-2.386l1.09-6.916h2.04l.064.577c.475-.346 1.116-.693 1.975-.693.744 0 1.231.32 1.475.757m8.57 2.014c0-.564-.142-.95-.565-.95-.936 0-1.128 1.656-1.128 2.502 0 .643.18 1.04.602 1.04.885 0 1.09-1.745 1.09-2.592m-4.105 1.45c0-2.18 1.155-4.222 3.81-4.222 2 0 2.732 1.181 2.732 2.811 0 2.156-1.142 4.388-3.861 4.388-2.014 0-2.68-1.322-2.68-2.977"/></g><defs><clipPath id="a_8"><path fill="#fff" d="M0 0h48v32H0z"/></clipPath></defs><title>venmo</title></svg> 16668 </div> 16669 <div class="flex content-none md:text-right mt-3 lg:mt-0 flex-wrap gap-3 justify-center"> 16670 <a href="https://www.braintreepayments.com/" 16671 class="max-w-[174px] relative group" 16672 aria-label="Braintree A PayPal service" 16673 tabindex="0" 16674 rel="nofollow" 16675 > 16676 <img src="https://www.shelterlogic.com/static/version1790844868/frontend/Shelterlogic/hyva/en_US/images/braintree-badge-light.png" 16677 alt="Braintree Badge Logo" 16678 class="w-full" 16679 width="174" 16680 height="48" 16681 loading="lazy" 16682 /> 16683 <span class="sr-only">Braintree A PayPal service</span> 16684 </a> 16685 <a href="https://www.bbb.org/connecticut/business-reviews/buildings-portable/shelterlogic-in-watertown-ct-25002861#sealclick" 16686 class="cursor-pointer inline-block text-center text-xs font-bold text-white relative group" 16687 aria-label="BBB® Accredited Business Accredited Business Click for profile" 16688 tabindex="0" 16689 rel="nofollow" 16690 > 16691 <img src="https://www.shelterlogic.com/static/version1790844868/frontend/Shelterlogic/hyva/en_US/images/bbb-accredited.svg" 16692 width="96" 16693 height="50" 16694 alt="BBB® Accredited Business" 16695 loading="lazy" 16696 /> 16697 <span class="sr-only">Accredited Business </span>Click for Profile </a> 16698 </div> 16699</div> <div class="md:border-container-light md:border-t text-white text-sm pb-12 pt-5 md:mb-0 flex items-center justify-center flex-col lg:flex-row lg:justify-start flex-wrap gap-1 lg:gap-0"> 16700 <div class="copyright text-center md:text-left"> 16701 16702<div class="text-sm text-white"> 16703 Copyright © 2026 ShelterLogic Corp. All rights reserved.</div> </div> 16704 <style>.cmsb609-img-cover { 16705height: 100%; 16706width: 100%; 16707img { 16708margin-top: 0px; 16709margin-bottom: 0px 16710} 16711img { 16712margin-left: auto; 16713margin-right: auto 16714} 16715img { 16716height: 100% !important 16717} 16718img { 16719width: 100% !important 16720} 16721img { 16722object-fit: cover 16723} 16724} 16725.cmsb609-img-contain { 16726img { 16727margin-top: 0px; 16728margin-bottom: 0px 16729} 16730img { 16731margin-left: auto; 16732margin-right: auto 16733} 16734img { 16735height: 100% !important 16736} 16737img { 16738width: 100% !important 16739} 16740img { 16741object-fit: contain 16742} 16743} 16744.cmsb609-box-checkmark { 16745position: relative; 16746padding-left: 3rem; 16747&:before { 16748position: absolute 16749} 16750&:before { 16751left: 0px 16752} 16753&:before { 16754top: 0px 16755} 16756&:before { 16757height: 2rem 16758} 16759&:before { 16760width: 2rem 16761} 16762&:before { 16763border-width: 4px 16764} 16765&:before { 16766--tw-border-opacity: 1; 16767border-color: rgb(225 171 46 / var(--tw-border-opacity)) 16768} 16769&:before { 16770--tw-bg-opacity: 1; 16771background-color: rgb(255 255 255 / var(--tw-bg-opacity)) 16772} 16773&:before { 16774--tw-content: ''; 16775content: var(--tw-content) 16776} 16777} 16778.cmsb609-mt-2 { 16779margin-top: 0.5rem 16780}
16781.cmsb609-block { 16782display: block 16783} 16784.cmsb609-flex { 16785display: flex 16786} 16787.cmsb609-flex-col { 16788flex-direction: column 16789} 16790.cmsb609-flex-wrap { 16791flex-wrap: wrap 16792} 16793.cmsb609-items-center { 16794align-items: center 16795} 16796.cmsb609-divide-gray-300 > :not([hidden]) ~ :not([hidden]) { 16797--tw-divide-opacity: 1; 16798border-color: rgb(209 213 219 / var(--tw-divide-opacity)) 16799} 16800.cmsb609-px-2 { 16801padding-left: 0.5rem; 16802padding-right: 0.5rem 16803} 16804.cmsb609-py-2 { 16805padding-top: 0.5rem; 16806padding-bottom: 0.5rem 16807} 16808.cmsb609-leading-3 { 16809line-height: .cmsb609-75rem 16810} 16811.underline { 16812text-decoration-line: underline 16813} 16814.cmsb609-hover\:text-orange:hover { 16815--tw-text-opacity: 1; 16816color: rgb(225 171 46 / var(--tw-text-opacity)) 16817} 16818@media (min-width: 768px) { 16819.cmsb609-md\:ml-1\.5 { 16820margin-left: 0.375rem 16821} 16822.cmsb609-md\:mt-0 { 16823margin-top: 0px 16824} 16825.cmsb609-md\:flex-row { 16826flex-direction: row 16827} 16828.cmsb609-md\:divide-x > :not([hidden]) ~ :not([hidden]) { 16829--tw-divide-x-reverse: 0; 16830border-right-width: calc(1px * var(--tw-divide-x-reverse)); 16831border-left-width: calc(1px * calc(1 - var(--tw-divide-x-reverse))) 16832} 16833.cmsb609-md\:py-0 { 16834padding-top: 0px; 16835padding-bottom: 0px 16836} 16837.cmsb609-md\:no-underline { 16838text-decoration-line: none 16839} 16840}</style> 16841<div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><ul class="cmsb609-flex cmsb609-flex-wrap cmsb609-mt-2 cmsb609-md:mt-0 cmsb609-md:ml-1.5 cmsb609-flex-col cmsb609-md:flex-row cmsb609-items-center cmsb609-md:divide-x cmsb609-divide-gray-300"> 16842 <li class="cmsb609-py-2 cmsb609-md:py-0 cmsb609-px-2"> 16843 <a class="cmsb609-block cmsb609-leading-3 underline cmsb609-md:no-underline cmsb609-hover:text-orange" href="/terms-and-conditions" tabindex="0"> 16844 Terms and Conditions 16845 </a> 16846 </li> 16847 <li class="cmsb609-py-2 cmsb609-md:py-0 cmsb609-px-2"> 16848 <a class="cmsb609-block cmsb609-leading-3 underline cmsb609-md:no-underline cmsb609-hover:text-orange" href="/privacy-policy" tabindex="0"> 16849 Privacy Policy 16850 </a> 16851 </li> 16852 <li class="cmsb609-py-2 cmsb609-md:py-0 cmsb609-px-2"> 16853 <button type="button" class="cmsb609-block cmsb609-leading-3 underline cmsb609-md:no-underline cmsb609-hover:text-orange ot-sdk-show-settings" onclick="return false;" tabindex="0"> 16854 Cookie Settings 16855 </a> 16856 </li> 16857 <li class="cmsb609-py-2 cmsb609-md:py-0 cmsb609-px-2"> 16858 <a class="cmsb609-block cmsb609-leading-3 underline cmsb609-md:no-underline cmsb609-hover:text-orange" href="https://dsrp.pii.ai/p/99de6492-fa2e-4dce-83e0-a107cd9f581d/submit.html" tabindex="0" target="_blank"> 16859 Data Subject Request 16860 </a> 16861 </li> 16862 <li class="cmsb609-py-2 cmsb609-md:py-0 cmsb609-px-2"> 16863 <button type="button" class="cmsb609-block cmsb609-leading-3 underline cmsb609-md:no-underline hover:text-orang" data-pieeye-privacy-link tabindex="0"> 16864 Do Not Sell or Share 16865 </a> 16866 </li> 16867</ul></div> </div> 16868</div></footer>
16868<script nonce="Y3dmaXNnM3hsMTFnd3d6bnA2Z3Zma2pjbWhsbmcweXI="> 16869 yireoGoogleTagManager2Pusher({"version":"3.10.7","page_type":"category","page_path":"https:\/\/www.shelterlogic.com\/commercial-grade-products","page_title":"Custom Commercial Grade Buildings & Shelters | ShelterLogic","virtual_page":"\/commercial-grade-products","breadcrumb":["Custom Commercial Grade Buildings & Shelters"],"user":{"has_transacted":false},"category_size":17,"products":[],"category_id":"1152","category_name":"Custom Commercial Grade Buildings & Shelters"}, 'push (initial page) [data-layer.phtml]'); 16870 yireoGoogleTagManager2Pusher({"event":"view_item_list","ecommerce":{"items":[]}}, 'push (page-based event) [data-layer.phtml]'); 16871 </script>
16871
16871<script nonce="Y3dmaXNnM3hsMTFnd3d6bnA2Z3Zma2pjbWhsbmcweXI="> 16872 function yireoGoogleTagManager2FindParentElementWithName(element, parentTagName) { 16873 if (!element.parentElement) { 16874 return null; 16875 } 16876 16877 if (element.parentElement.tagName.toLowerCase() === parentTagName) { 16878 return element.parentElement; 16879 } 16880 16881 return yireoGoogleTagManager2FindParentElementWithName(element.parentElement, parentTagName); 16882 } 16883 16884 const products = document.querySelectorAll('.products\u0020a.product,\u0020.products\u0020a.product\u002Ditem\u002Dlink,\u0020.card\u0020a.product\u002Ditem\u002Dlink,\u0020.card\u0020a.product\u002Ditem\u002Dphoto,\u0020.card\u0020a.btn\u002Dprimary'); 16885 if (products && products.length > 0) { 16886 products.forEach(function(product) { 16887 product.addEventListener('click', function(event, s) { 16888 let parentElement = yireoGoogleTagManager2FindParentElementWithName(event.target, 'form'); 16889 if (!parentElement) { 16890 return; 16891 } 16892 16893 const inputElement = parentElement.querySelector('input[name="product"]'); 16894 if (!inputElement) { 16895 return; 16896 } 16897 16898 const productId = inputElement.value; 16899 const productData = window['YIREO_GOOGLETAGMANAGER2_PRODUCT_DATA_ID_' + productId] || {}; 16900 productData.item_id = productId; 16901 16902 const eventData = { 16903 'event': 'select_item', 16904 'ecommerce': { 16905 'items': [productData] 16906 } 16907 } 16908 16909 yireoGoogleTagManager2Pusher(eventData, 'push (page event "select_item") [script-product-clicks.phtml]'); 16910 16911 if (window['YIREO_GOOGLETAGMANAGER2_DEBUG_CLICKS'] && confirm("Press to continue with redirect") === false) { 16912 event.preventDefault(); 16913 } 16914 }); 16915 }) 16916 }</script>
16916
16916<script nonce="Y3dmaXNnM3hsMTFnd3d6bnA2Z3Zma2pjbWhsbmcweXI="> 16917 window.addEventListener('private-content-loaded', function(event) { 16918 window.dataLayer = window.dataLayer || []; 16919 16920 var isEmpty = function (variable) { 16921 if (typeof variable === 'undefined') { 16922 return true; 16923 } 16924 16925 if (Array.isArray(variable) && variable.length === 0) { 16926 return true; 16927 } 16928 16929 return typeof variable === 'object' && Object.keys(variable).length === 0; 16930 } 16931 16932 var getSectionNames = function () { 16933 return ['cart', 'customer']; 16934 } 16935 16936 getSectionNames().forEach(function (sectionName) { 16937 if (!event.detail.data[sectionName].gtm) { 16938 return; 16939 } 16940 16941 const attributes = event.detail.data[sectionName].gtm; 16942 if (!Object.keys(attributes).length > 0) { 16943 return; 16944 } 16945 16946 yireoGoogleTagManager2Pusher(attributes, 'push (attributes) [script-additions.phtml]'); 16947 }); 16948 16949 let attributes = {}; 16950 getSectionNames().forEach(function (sectionName) { 16951 if (!event?.detail?.data[sectionName]?.gtm_events) { 16952 return; 16953 } 16954 16955 const gtmEvents = event.detail.data[sectionName].gtm_events; 16956 for (const [eventId, eventData] of Object.entries(gtmEvents)) { 16957 yireoGoogleTagManager2Logger('found event in section "' + sectionName + '"', eventData); 16958 16959 const metaData = eventData.meta; 16960 yireoGoogleTagManager2Pusher(eventData, 'push (customerData "' + sectionName + '" event "' + eventId + '")'); 16961 16962 if (!metaData || metaData.cacheable !== true) { 16963 yireoGoogleTagManager2Logger('removing event "' + eventId + '" from section "' + sectionName + '"') 16964 16965 let mageCacheStorage = event.detail.data; 16966 16967 if (mageCacheStorage !== null 16968 && typeof mageCacheStorage[sectionName] !== 'undefined' 16969 && typeof mageCacheStorage[sectionName].gtm_events !== 'undefined' 16970 && eventId in mageCacheStorage[sectionName].gtm_events) { 16971 delete mageCacheStorage[sectionName].gtm_events[eventId]; 16972 } 16973 16974 window.localStorage.setItem('mage-cache-storage', JSON.stringify(mageCacheStorage)); 16975 } 16976 } 16977 }); 16978 16979 if (false === isEmpty(attributes)) { 16980 yireoGoogleTagManager2Pusher(attributes, 'dataLayer (initial js) [script-additions.phtml]'); 16981 } 16982 }); 16983 16984 window.addEventListener('toggle-cart', (event) => { 16985 if (!event.detail || !event.detail.isOpen) { 16986 return; 16987 } 16988 16989 window.dispatchEvent(new CustomEvent('minicart_collapse')); 16990 });</script>
16990</body> 16991</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.