Denne fjellskoen er spesielt utviklet for kvinner og har en stabiliserende, komfortabel mellomsåle i skum samt en Vibram TC5+-yttersåle – eksklusiv for Merrell – som gir trygghet uansett terreng. Siren Edge har en lett, pustende og slitesterk overdel i mesh og TPU som sikrer økt holdbarhet på turstien. Merrells Air Cushion-hæl absorberer støt og gir deg bedre stabilitet på stien. EGENSKAPER
• Overdel i pustende mesh og TPU
• Tradisjonell snøring
• Bellows-tunge holder smuss ute
• Pustende meshfôr
• Kinetic Fit™ BASE avtakbar, formet innleggssåle for fleksibel støtte
• Merrell Air Cushion i hælen absorberer støt og gir ekstra stabilitet
• Støpt nylon-svangstøtte
• Lett EVA-skum mellomsåle med soner av mykere skum kan redusere pronasjon
• Vibram® TC5+ yttersåle gir eksepsjonelt grep for utendørs multisportaktiviteter, utviklet eksklusivt for Merrell
• Hælhøyde: 11 mm
• Vegansk
• Vekt per sko: 0 lbs–9,87 oz, 280 g
Fullfør looken
/* projects/merrell-complete-the-look/template:scripts/script.js */»use strict»;(() => { // projects/merrell-complete-the-look/scripts/cross-sell-map.js var crossSellMap = { «60744M»: [«60746M», «60748M», «60760M», «17703M»], «60746M»: [«60744M», «60748M», «60760M», «17703M»], «60748M»: [«60746M», «60744M», «60760M», «17703M»], «60753M»: [«60758M», «60748M», «60812U»], «60745W»: [«60747W», «60749W», «60930W», «16256W»], «60747W»: [«60745W», «60749W», «60930W», «16256W»], «60749W»: [«60745W», «60747W», «60930W», «16256W»], «60628W»: [«60755W», «60700W», «60738U»], «17703M»: [«61113M», «61081M», «61085U»], «44491W»: [«61086W», «61087W», «61085U»], «60644M»: [«61092M», «61081M», «61084U»], «16256W»: [«61107W», «61111W», «60735U»] }; // projects/merrell-complete-the-look/scripts/pdp-utils.js function getCurrentProductId() { return window.dataLayer[2].product_id; } // projects/merrell-complete-the-look/scripts/api.js var API_URL = «https://fedapps.wolverineworldwide.com»; var PRODUCTS_ENDPOINT = «/api/products»; function getSiteParams() { const siteId = window.CQuotient?.siteId || «merrell_us»; const locale = window.CQuotient?.locale?.replace(«_», «-«) || «en-US»; return { siteId, locale }; } async function fetchProducts(styleCodes) { const { siteId, locale } = getSiteParams(); const url = new URL(`${API_URL}${PRODUCTS_ENDPOINT}`); url.searchParams.append(«ids», styleCodes.join(«,»)); url.searchParams.append(«siteId», siteId); url.searchParams.append(«locale», locale); const response = await fetch(url); if (!response.ok) { throw new Error(`Kunne ikke hente produkter: ${response.status}`); } return response.json(); } // projects/merrell-complete-the-look/scripts/script.js function renderSlide(product) { return `
${product.name}
`; } function initCarousel() { const root = document.querySelector(«#complete-the-look»); const viewportNode = root.querySelector(«.ctl-carousel-viewport»); const prevButton = root.querySelector(«.ctl-btn-prev»); const nextButton = root.querySelector(«.ctl-btn-next»); const scrollbarNode = root.querySelector(«.ctl-progress»); const carousel = EmblaCarousel(viewportNode, { align: «start», skipSnaps: true }); const hideClass = «carousel-hide»; const canNotScroll = () => !carousel.canScrollNext() && !carousel.canScrollPrev(); function handleInit(isReInit = false) { function updateButtons() { if (!prevButton || !nextButton) return; function setButtonStates() { prevButton.toggleAttribute(«disabled», !carousel.canScrollPrev()); nextButton.toggleAttribute(«disabled», !carousel.canScrollNext()); } if (canNotScroll()) { prevButton.classList.add(hideClass); nextButton.classList.add(hideClass); } ellers { prevButton.classList.remove(hideClass); nextButton.classList.remove(hideClass); } hvis (!isReInit) { prevButton.addEventListener(«click», () => carousel.scrollPrev()); nextButton.addEventListener(«click», () => carousel.scrollNext()); carousel.on(«select», setButtonStates); } setButtonStates(); } function updateScrollbar() { if (!scrollbarNode) return; function setScrollProgress() { const rootNode = carousel.rootNode(); const containerNode = carousel.containerNode(); const rootWidth = rootNode.clientWidth; const containerWidth = containerNode.scrollWidth; const visibleRatio = containerWidth ? Math.min(1, rootWidth / containerWidth) : 1; const progress = Math.max(0, Math.min(1, carousel.scrollProgress())); const viewportCoverageRatio = progress * (1 – visibleRatio) + visibleRatio; const progressPercent = Math.ceil(viewportCoverageRatio * 1e3) / 10; scrollbarNode.style.setProperty( «–scroll-progress», `${progressPercent}%` ); } if (canNotScroll()) { scrollbarNode.classList.add(hideClass); } else { scrollbarNode.classList.remove(hideClass); } carousel.on(«scroll», setScrollProgress); setScrollProgress(); } updateButtons(); updateScrollbar(); } function reInit() { carousel.reInit({ watchDrag: !canNotScroll() }); } window.addEventListener(«resize», () => { clearTimeout(window.__ctlResizeTimer); window.__ctlResizeTimer = setTimeout(reInit, 150); }); carousel.on(«init», () => { handleInit(); reInit(); }); carousel.on(«reInit», () => handleInit(true)); } function initToggle() { const root = document.querySelector(«#complete-the-look»); const toggle = root.querySelector(«.ctl-toggle»); const carousel = root.querySelector(«.ctl-carousel»); const controls = root.querySelector(«.ctl-controls»); toggle.addEventListener(«click», () => { const collapsed = toggle.classList.toggle(«is-collapsed»); carousel.style.display = collapsed ? «none» : «»; controls.style.display = collapsed ? «none» : «»; }); } fedlib.pollForDataLayer(async function() { const productId = getCurrentProductId(); console.log(«[CTL] productId:», productId); if (!productId) return; const recommendations = crossSellMap[productId]; console.log(«[CTL] recommendations:», recommendations); if (!recommendations) return; const productsData = await fetchProducts(recommendations); console.log(«[CTL] productsData:», productsData); const products = productsData.data || []; if (!products.length) return; let enrichedProducts; try { enrichedProducts = products.map((product) => { const slugUrl = new URL(product.slugUrl, location.origin); return { name: product.name, price: product.price, image: product.imageGroups[0].images[0].link, url: slugUrl.href }; }); } catch (e) { console.error(«[CTL] enrichedProducts-feil:», e, products); return; } const root = document.querySelector(«#complete-the-look»); console.log(«[CTL] root:», root); if (!root) return; try { const container = root.querySelector(«.ctl-carousel-container»); container.innerHTML = enrichedProducts.map(renderSlide).join(«»); const productDescCol = root.closest(«.bfx-product-desc»); if (productDescCol) { const row = productDescCol.closest(«.row»); const insertAfter = row || productDescCol; insertAfter.after(root); } initCarousel(); initToggle(); console.log(«[CTL] ferdig u2705»); } catch (e) { console.error(«[CTL] renderingsfeil:», e); } });})();/* projects/merrell-complete-the-look/template:styles/style.scss */#complete-the-look { –ctl-padding-x: 0; –ctl-card-min-width: 265px; –ctl-card-max-width: 640px; –ctl-gap: 1rem; –ctl-progress-max-width: 265px; display: none;}@media (min-width: 768px) { #complete-the-look { –ctl-progress-max-width: 384px; }}@media (min-width: 1024px) { #complete-the-look { –ctl-card-min-width: 249px; –ctl-progress-max-width: 800px; }}.ctl { font-size: 1rem; color: var(–color-base); background: #fff; text-align: left;}.ctl * { -webkit-font-smoothing: antialiased; box-sizing: border-box;}.ctl a { color: inherit; text-decoration: none;}.ctl img { display: block; width: 100%; height: auto;}.ctl-wrapper { padding: 0 var(–ctl-padding-x); margin: 0 auto; max-width: max-content; border-top: 1px solid black;}.ctl-header { display: flex; padding: 1.5rem 0; align-items: center; justify-content: space-between;}.ctl-title { font-size: 1.5rem; margin: 0; font-weight: 500; line-height: 1.75rem; letter-spacing: -0.48px;}.ctl-toggle { display: flex; height: auto; background: none; border: none; cursor: pointer; align-items: center; justify-content: center;}.ctl-toggle svg { width: 15px; transition: transform 0.3s ease; height: 15px;}.ctl-toggle.is-collapsed svg { transform: rotate(180deg);}.ctl-carousel { margin: 0 calc(var(–ctl-padding-x) * -1);}.ctl-carousel-viewport { overflow: hidden; padding-inline: var(–ctl-padding-x);}.ctl-carousel-container { display: flex; gap: var(–ctl-gap); touch-action: pan-y pinch-zoom;}.ctl-slide { max-width: var(–ctl-card-max-width); flex: 0 0 auto; min-width: var(–ctl-card-min-width); flex: 1 0 0;}.ctl-slide-link { display: flex; flex-direction: column; background: #f2f2f2; border-radius: 1rem; overflow: hidden; height: 100%;}.ctl-slide-img-wrapper { display: flex; aspect-ratio: 1/1; overflow: hidden; align-items: center; justify-content: center;}.ctl-slide-img { width: 100%; height: 100%; object-fit: cover; mix-blend-mode: multiply;}.ctl-slide-info { display: flex; padding: 1rem; align-items: center; gap: 0.5rem;}.ctl-slide-name { font-size: 1rem; margin: 0; flex: 1; font-weight: 500; line-height: 1.5rem;}.ctl-slide-arrow { display: flex; width: 26px; flex-shrink: 0; align-items: center; overflow: hidden;}.ctl-slide-arrow svg { width: 24px; height: auto; flex-shrink: 0;}.ctl-controls { display: flex; padding: 1rem 0; align-items: flex-start; justify-content: space-between; gap: 10.25rem;}@media (min-width: 1024px) { .ctl-controls { padding: 1.5rem 0; }}.ctl-btns { display: none; gap: 1rem;}@media (min-width: 1024px) { .ctl-btns { display: flex; }}.ctl-btn { display: flex; justify-content: center; align-items: center; width: 3rem; height: 3rem; background: #f2f2f2; border: none; border-radius: 9999px; cursor: pointer; padding: 0; transition: background 0.15s ease, opacity 0.15s ease;}.ctl-btn::after { content: «»; display: block; width: 1rem; height: 1rem; background-position: center; background-repeat: no-repeat; background-size: contain; transition: transform 0.3s ease;}.ctl-btn[disabled] { cursor: not-allowed; pointer-events: none; opacity: 0.5;}.ctl-btn.carousel-hide { visibility: hidden;}.ctl-btn-prev::after { background-image: url(«data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxNSIgdmlld0JveD0iMCAwIDE4IDE1IiBmaWxsPSJub25lIj4KICA8cGF0aCBkPSJNMTcgNi4zNjM5NUMxNy41NTIzIDYuMzYzOTUgMTggNi44MTE2NyAxOCA3LjM2Mzk1QzE4IDcuOTE2MjQgMTcuNTUyMyA4LjM2Mzk1IDE3IDguMzYzOTVWNy4zNjM5NVY2LjM2Mzk1Wk0wLjI5Mjg5MiA4LjA3MTA2Qy0wLjA5NzYzMTUgNy42ODA1NCAtMC4wOTc2MzE1IDcuMDQ3MzcgMC4yOTI4OTIgNi42NTY4NUw2LjY1Njg1IDAuMjkyODg1QzcuMDQ3MzggLTAuMDk3NjM5NiA3LjY4MDU0IC0wLjA5NzYzOTYgOC4wNzEwNyAwLjI5Mjg4NUM4LjQ2MTU5IDAuNjgzNDA5IDguNDYxNTkgMS4zMTY1NyA4LjA3MTA3IDEuNzA3MUwyLjQxNDIxIDcuMzYzOTVMOC4wNzEwNyAxMy4wMjA4QzguNDYxNTkgMTMuNDExMyA4LjQ2MTU5IDE0LjA0NDUgOC4wNzEwNyAxNC40MzVDNy42ODA1NCAxNC44MjU1IDcuMDQ3MzggMTQuODI1NSA2LjY1Njg1IDE0LjQzNUwwLjI5Mjg5MiA4LjA3MTA2Wk0xNyA3LjM2Mzk1VjguMzYzOTVIMVY3LjM2Mzk1VjYuMzYzOTVIMTdWNy4zNjM5NVoiIGZpbGw9IiMxOTE5MTkiLz4KPC9zdmc+»);}@media (hover: hover) { .ctl-btn-prev:hover::after { transform: translateX(-30%); }}.ctl-btn-next::after { background-image: url(«data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxNSIgdmlld0JveD0iMCAwIDE4IDE1IiBmaWxsPSJub25lIj4KICA8cGF0aCBkPSJNMSA2LjM2Mzk1QzAuNDQ3NzE1IDYuMzYzOTUgMCA2LjgxMTY3IDAgNy4zNjM5NUMwIDcuOTE2MjQgMC40NDc3MTUgOC4zNjM5NSAxIDguMzYzOTVWNy4zNjM5NVY2LjM2Mzk1Wk0xNy43MDcxIDguMDcxMDZDMTguMDk3NiA3LjY4MDU0IDE4LjA5NzYgNy4wNDczNyAxNy43MDcxIDYuNjU2ODVMMTEuMzQzMSAwLjI5Mjg4NUMxMC45NTI2IC0wLjA5NzYzOTYgMTAuMzE5NSAtMC4wOTc2Mzk2IDkuOTI4OTMgMC4yOTI4ODVDOS41Mzg0MSAwLjY4MzQwOSA5LjUzODQxIDEuMzE2NTcgOS45Mjg5MyAxLjcwNzFMMTUuNTg1OCA3LjM2Mzk1TDkuOTI4OTMgMTMuMDIwOEM5LjUzODQxIDEzLjQxMTMgOS41Mzg0MSAxNC4wNDQ1IDkuOTI4OTMgMTQuNDM1QzEwLjMxOTUgMTQuODI1NSAxMC45NTI2IDE0LjgyNTUgMTEuMzQzMSAxNC40MzVMMTcuNzA3MSA4LjA3MTA2Wk0xIDcuMzYzOTVWOC4zNjM5NUgxN1Y3LjM2Mzk1VjYuMzYzOTVIMVY3LjM2Mzk1WiIgZmlsbD0iIzE5MTkxOSIvPgo8L3N2Zz4=»);}@media (hover: hover) { .ctl-btn-next:hover::after { transform: translateX(30%); }}@media (hover: hover) { .ctl-btn:hover { background: #ff803b; }}.ctl-progress-wrapper { display: flex; flex: 1; flex-direction: column; align-items: center; padding-top: 1rem;}@media (min-width: 1024px) { .ctl-progress-wrapper { padding-top: 1.5rem; }}.ctl-progress { position: relative; width: 100%; max-width: var(–ctl-progress-max-width); height: 4px; background: #e3e3e3; border-radius: 8px; overflow: hidden;}.ctl-progress::after { position: absolute; top: 0; left: 0; width: var(–scroll-progress, 0%); content: «»; height: 100%; background: var(–color-base); border-radius: 8px; transition: width 0.1s ease;}.ctl-progress.carousel-hide { visibility: hidden;}




















Omtaler
Det er ingen omtaler ennå.