Veden- ja tuulenpitävä koiran sadehaalari suojaa koiraa tuulelta ja sateelta
Sadehaalarissa on 13 000 mm vesipilariarvo, joka pitää koiran tehokkaasti kuivana säässä kuin säässä. Kangas joustaa neljään suuntaan, eikä rajoita koiran liikeratoja, kun se juoksee, painii ja temmeltää metsikössä.
Koiran kurahaalari seitsemällä säätöpisteellä
Erittäin säädettävässä haalarissa on seitsemän säätöpistettä, joiden ansiosta haalari voidaan säätää juuri käyttäjälleen sopivaksi. Kainaloita, vyötäröä ja rintakehää voi säätää helposti haalarin sisään ommelluilla pehmeillä nyörilukoilla. Ulkoisilla kiristysnauhoilla voidaan säätää pään, kaulan ja hännän kohdilta. Joustavia lahkeita voi rullata jopa kolme kertaa koiran jalkojen pituuden mukaan.
Huomiovärinen koiran sadehaalari heijastimilla
Haalarin selän päällä oleva taskussa sijaitseva aukko mahdollistaa hihnan nopean kytkemisen valjaisiin. Taskun ansiosta koira pysyy kauttaaltaan kuivana, eikä sade tai tuuli pääse aukosta koiran selkään.
Heijastavat 3M-heijastinlogot ja heijastavat yksityiskohdat parantavat näkyvyyttä ja lisäävät turvallisuutta pimeällä liikuttaessa. Kirkas oranssi huomio väri näkyy tehokkaasti kaikissa ympäristöissä. Hengittävä 2,5-kerroksinen kalvo edistää haalarin ilmanvaihtoa ja vähentää kondensaatiota, mikä lisää käyttömukavuutta.
- Päällyskangas: Neulottua polyesteria 2.5-kertaisella kalvolla (bluesign® APPROVED, OEKO-TEX®)
- Vetoketju: YKK
- 3M™ heijastavat logot ja yksityiskohdat
- Soljet: Duraflex® (bluesign® APPROVED, OEKO-TEX®)
- Vesipilariarvo: 13.000 mm
- Hengittävyys: 15.000 g/m2/24hr
- Teipatut saumat
Hoito-ohjeet
Hellävarainen konepesu 30 °C:ssa, mielellään pesupussissa.Kiinnitä tarrakiinnitykset ja vetoketjut huolellisesti pesun ja kuivauksen ajaksi.
Haalari voidaan puhdistaa vedellä tarpeen mukaan. Syvempää puhdistusta varten suositellaan teknistä pesuainetta ja sen jälkeen kyllästyskäsittelyä.Kuivaa kuivausrummussa vain alhaisella lämmöllä.
Kokotaulukko
| Koko | Selän pituus |
|---|---|
| 30 | 28-32 cm |
| 33 | 33-39 cm |
| 36 | 33-39 cm |
| 40 | 37-43 cm |
| 45 | 42-48 cm |
| 50 | 47-53 cm |
| 55 | 52-58 cm |
| 60 | 57-63 cm |
| 65 | 62-68 cm |
| 70 | 64-76 cm |
`; function toggleWidget() { loadAppstleLoyaltyWidget(); if (_ALConfig?.widget_setting?.widgetType?.toUpperCase() === ’LAUNCHER’ && _ALConfig?.widget_setting?.forceRedirectDedicatedPage === true) { window.open(`/${_ALConfig?.proxy_path_prefix}`); } else { const isWidgetOpen = document.querySelector(’#appstle_loyalty_iframe’)?.classList?.toggle(’open’); if (isWidgetOpen === false) { clearLoyaltyDeepLinkHash(); } showAppstleLoyaltyWidget(); setTimeout(function() { document.querySelector(’#appstle_loyalty_iframe’)?.classList?.toggle(’show-close-icon’); }, 900); } } const loadAppstleLoyaltyWidget = () => { var iframe = document.querySelectorAll(’#appstle_loyalty_iframe’); iframe.forEach(function(item) { item.contentWindow._ALConfig = _ALConfig; item.contentWindow.document.open(’text/html’, ’replace’); item.contentWindow.document.write(alIframeSrc); item.contentWindow.document.close(); }); }; const launcherDataType = _ALConfig?.widget_setting?.launcherDataType || ’POINTS’; const loyaltyButtonTitle = document.getElementById(’loyalty-widget-title’); if (_ALConfig?.shop_labels?.widgetTitle) { loyaltyButtonTitle.innerHTML = parseHtmlStringContent(_ALConfig?.shop_labels?.widgetTitle); } (function() { const { customerLoyalty, widget_setting } = _ALConfig || {}; if (!customerLoyalty && !(launcherDataType === ’STORE_CREDITS’ && _ALConfig?.customerId)) return; const showTier = widget_setting?.showTierName; const launcherButtonElement = document.querySelector(’#appstle-loyalty-button’); const pointsEl = document.querySelector(’.loyalty_widget_available_points’); if (!pointsEl) return; const fmt = new Intl.NumberFormat(); const { storeCreditBalance = 0, availablePoints = 0, currentVipTier = ” } = customerLoyalty || {}; let displayValue; if (launcherDataType === ’STORE_CREDITS’) { displayValue = formatStoreCreditAmount(_ALConfig?.customerStoreCreditBalance || storeCreditBalance || 0); } else if ((launcherDataType === ’VIP_TIER’) && currentVipTier) { displayValue = String(currentVipTier); } else { const n = Number(availablePoints) || 0; displayValue = fmt.format(formatNumberByPointRoundType(n)); } pointsEl.textContent = displayValue; launcherButtonElement?.classList.add(’appstle_show_points’); })(); const loyaltyDeepLinks = [ ’#appstle-loyalty’, ’#appstle-refer’, ’#appstle-loyalty-earn-rewards’, ’#appstle-loyalty-redeem-rewards’, ’#appstle-loyalty-referrals’, ’#appstle-loyalty-vip-program’ ]; let lastLoyaltyWidgetUrl = location.href; function hasLoyaltyDeepLink() { return loyaltyDeepLinks.some(hash => location?.hash?.includes(hash)); } function clearLoyaltyDeepLinkHash() { if (!hasLoyaltyDeepLink()) { return; } window.history.replaceState({}, document.title, window.location.pathname + window.location.search); lastLoyaltyWidgetUrl = location.href; } function handleDeepLink() { if (!_ALConfig?.widget_setting?.showWidget || !hasLoyaltyDeepLink()) { return; } loadAppstleLoyaltyWidget(); enableWidget(); setTimeout(() => { document.querySelector(’#appstle_loyalty_iframe’)?.classList?.add(’show-close-icon’); }, 900); } handleDeepLink(); const widgetReferralUrl = new URL(window.location.href); if (_ALConfig?.referralEnabled && widgetReferralUrl?.searchParams.get(’appstle_referral’) && _ALConfig?.widget_setting?.widgetType === ’LAUNCHER’) { let referralRedirectUrl = _ALConfig?.widget_setting?.referralRedirectUrl; let redirectURL = referralRedirectUrl + window.location.search; if (referralRedirectUrl) { let referralUrlObj; try { referralUrlObj = new URL(referralRedirectUrl, window.location.origin); } catch { referralUrlObj = null; } let referralPath = referralUrlObj ? referralUrlObj.pathname.replace(//+$/, ”) : referralRedirectUrl.replace(//+$/, ”); let currentPath = window.location.pathname.replace(//+$/, ”); if (referralPath && currentPath !== referralPath) { window.open(redirectURL, ’_self’); } } setTimeout(() => { loadAppstleLoyaltyWidget(); enableWidget(); }, 200); } (function observeURLChanges() { const handleUrlChange = () => { if (location.href !== lastLoyaltyWidgetUrl) { lastLoyaltyWidgetUrl = location.href; handleDeepLink(); } }; new MutationObserver(handleUrlChange).observe(document.body, { subtree: true, childList: true }); window.addEventListener(’popstate’, handleUrlChange); window.addEventListener(’hashchange’, handleUrlChange); })(); const alDOMObserver = new MutationObserver(function(mutations_list) { mutations_list.forEach(function(mutation) { mutation.addedNodes.forEach(function(added_node) { if (added_node.id === ’appstle_loyalty_iframe’) { var iframe = document.querySelectorAll(’#appstle_loyalty_iframe’); iframe.forEach(function(item) { item.contentWindow._ALConfig = _ALConfig; item.contentWindow.document.open(’text/html’, ’replace’); item.contentWindow.document.write(alIframeSrc); item.contentWindow.document.close(); }); alDOMObserver.disconnect(); } }); }); }); alDOMObserver.observe(document.querySelector(’body’), { subtree: true, childList: true }); } try { const versionUrl = `${location.origin}/${_ALConfig?.proxy_path_prefix || ’apps/loyalty’}/app-loyalty-version`; fetch(versionUrl) .then(res => res.json()) .then(data => { if (data) { const widgetJsUrl = new URL(_ALConfig.widgetJsPath); const widgetCssUrl = new URL(_ALConfig.widgetCssPath); widgetJsUrl.searchParams.set(’v’, data); widgetCssUrl.searchParams.set(’v’, data); _ALConfig.widgetJsPath = widgetJsUrl.toString(); _ALConfig.widgetCssPath = widgetCssUrl.toString(); } }) .catch(() => { }) .finally(() => { executeLoyaltyWidget(); }); } catch (err) { executeLoyaltyWidget(); } const storeCreditMismatch = _ALConfig?.customerId && _ALConfig?.customerStoreCreditBalance >= 0 && _ALConfig?.customerLoyalty?.storeCreditBalance >= 0 && _ALConfig?.customerLoyalty?.storeCreditBalance !== _ALConfig?.customerStoreCreditBalance; if (storeCreditMismatch && _ALConfig.shop === ’olineloyalty27.myshopify.com’) { const updateCustomerUrl = `/${_ALConfig?.proxy_path_prefix || ’apps/loyalty’}/cp/api/update-customer`; try { fetch(updateCustomerUrl, { method: ’POST’ }) .then((response) => { if(response.ok) {} }) .catch(() => {}); } catch (err) {} } const dedicatedPageURL = new URL(window.location.href); const decodeUrl = (content) => { if (typeof content !== ’string’) return content; try { const htmlDecoded = content?.replace(///g, ’/’); return JSON.parse(`”${htmlDecoded}”`); } catch (error) { console.error(’Error parsing content:’, error); return content; } }; if (dedicatedPageURL?.searchParams?.get(’appstle_referral’) && _ALConfig?.widget_setting?.widgetType === ’DEDICATED_PAGE’) { const customUrl = decodeUrl(_ALConfig?.widget_setting?.referralCustomRedirectUrl); if (customUrl) { const normalizedCustomPath = customUrl.startsWith(’/’) ? customUrl : `/${customUrl}`; if (window.location.pathname !== normalizedCustomPath) { const redirectUrl = new URL(window.location.href); redirectUrl.pathname = normalizedCustomPath; window.open(redirectUrl.toString(), ’_self’); } } else if (dedicatedPageURL?.searchParams?.get(’appstle_referral’) && _ALConfig?.widget_setting?.widgetType === ’DEDICATED_PAGE’ && !window.location.href.includes(_ALConfig?.proxy_path_prefix)) { window.open(`${window.location.origin}/${_ALConfig?.proxy_path_prefix}${window.location.search}`, ’_self’); } } const dedicatedPageEventListener = (event) => { if (event?.data && typeof event?.data.indexOf === ’function’ && event?.data?.indexOf(’refresh_appstle_loyalty_page’) !== -1) { initiateAppstleLoyaltyPage(); console.log(’REFRESH PAGE’); } }; window.addEventListener(’message’, dedicatedPageEventListener, false); function initiateAppstleLoyaltyPage() { if (document.querySelector(’#appstleLoyaltyPage’)) { const appstleLoyaltyPageElement = document.getElementById(’appstleLoyaltyPage’); while (appstleLoyaltyPageElement.firstChild) { appstleLoyaltyPageElement.firstChild.remove(); } document.title = ””; setTimeout(() => { let metaDescription = document.querySelector(’meta[name=”description”]’); if (metaDescription) { metaDescription.content = ””; } else { metaDescription = document.createElement(’meta’); metaDescription.name = ’description’; metaDescription.content = ””; document.head.appendChild(metaDescription); } }, 500); if (appstleLoyaltyPageElement) { const loadDedicatedPageAsset = (createAsset, attempt, onSettle) => { const asset = createAsset(); let settled = false; const settle = () => { if (settled) return; settled = true; if (typeof onSettle === ’function’) { onSettle(); } }; asset.onload = settle; asset.onerror = () => { asset.remove(); if (attempt loadDedicatedPageAsset(createAsset, attempt + 1, onSettle), 1000 * Math.pow(2, attempt – 1)); } else { settle(); } }; } const appendDedicatedPageWidgetScript = () => { loadDedicatedPageAsset(() => { const s = document.createElement(’script’); s.setAttribute(’src’, _ALConfig?.widgetJsPath); s.async = false; document.body.appendChild(s); return s; }, 1); } const executeDedicatedPageScript = () => { let widgetScriptAppended = false; const appendWidgetScriptOnce = () => { if (widgetScriptAppended) return; widgetScriptAppended = true; appendDedicatedPageWidgetScript(); }; try { const preload = document.createElement(’link’); preload.rel = ’preload’; preload.as = ’script’; preload.href = _ALConfig?.widgetJsPath; document.head.appendChild(preload); } catch (e) {} loadDedicatedPageAsset(() => { const link = document.createElement(’link’); link.type = ’text/css’; link.rel = ’stylesheet’; link.href = _ALConfig?.widgetCssPath; document.head.appendChild(link); return link; }, 1, appendWidgetScriptOnce); setTimeout(appendWidgetScriptOnce, 8000); } try { const versionUrl = `${location.origin}/${_ALConfig?.proxy_path_prefix || ’apps/loyalty’}/app-loyalty-version`; fetch(versionUrl).then(res => res.json()).then(data => { if (data) { const widgetJsUrl = new URL(_ALConfig.widgetJsPath); const widgetCssUrl = new URL(_ALConfig.widgetCssPath); widgetJsUrl.searchParams.set(’v’, data); widgetCssUrl.searchParams.set(’v’, data); _ALConfig.widgetJsPath = widgetJsUrl.toString(); _ALConfig.widgetCssPath = widgetCssUrl.toString(); } }).catch(() => {}).finally(() => { executeDedicatedPageScript(); }); } catch (err) { executeDedicatedPageScript(); } } } else { setTimeout(() => { initiateAppstleLoyaltyPage(); }, 2000); } } const dedicatedPageReferralUrl = new URL(window.location.href)?.searchParams.get(’appstle_referral’); if (_ALConfig?.widget_setting?.showWidget === true) { initiateAppstleLoyaltyPage(); } (async function() { const isAvailableVisitShop = _ALConfig?.pointEarnRules?.length > 0 && _ALConfig?.pointEarnRules?.find((rule) => rule?.type === ’VISIT_SHOP’ && rule?.status === ’ACTIVE’); if (_ALConfig?.customerId && isAvailableVisitShop) { if (!sessionStorage.getItem(’syncVisitStore’) && ((_ALConfig?.customerId && isAvailableVisitShop && isAvailableVisitShop?.id) || (_ALConfig?.referralEnabled && _ALConfig?.referralLoyalty?.referralType === ’VISIT_SHOP’))) { try { const response = await fetch(`/${_ALConfig?.proxy_path_prefix || ’apps/loyalty’}/cp/api/customer-visit-store`, { method: ’POST’, headers: {’Content-Type’: ’application/json’}, }); if (response?.ok) { sessionStorage.setItem(’syncVisitStore’, ’true’); } } catch (error) { console.error(’Error:’, error); } } } })(); const loyaltyCustomStyles = ”; document.querySelector(’body’).insertAdjacentHTML(’beforeend’, loyaltyCustomStyles);
























Arviot
Tuotearvioita ei vielä ole.