1-3 dages levering i hverdag
Gratis fragt ved køb over 699,- til udvalgte fragt former

Din indkøbskurv

Din indkøbskurv er tom

Er du ikke sikker på, hvor du skal starte? Prøv disse kategorier:

Kontakt

Alle hverdage fra 09:00 til 16:00

Hos Shop Rosted ApS prioriterer vi altid kundeservice højt og derfor er det blandt andet altid muligt at komme i kontakt med os

På nuværende tidspunkt har vi valgt udelukkende, at tilbyde vores kundeservice skriftligt, således at vi via konkret info, kan hjælpe dig som kunde hurtigst muligt! Vi svarer ligeledes altid, så hurtigt som muligt indenfor de oplyste åbningstider.

Har du spørgsmål til en af vores frisør om råd og vejledning, kan du sende din forsørgelse på vores Facebook siden https://www.facebook.com/ShopRosted.dk

Ellers ved andre henvendelser kan du kontakte os på Kontakt@shoprosted.dk hvis forespørgslen er angående en ordre, så husk at sende ordre nummer med, samt tilføj andre relevante informationer, f.eks billeder hvis der har været et problem med et produkt og lignende.

async function loadDynamicCrossSells(el) { const productId = el.dataset.productId; if (!productId || el.dataset.dynamicLoaded) return; el.dataset.dynamicLoaded = 'true'; const cartItemIds = el.dataset.cartItems.split(',').map(Number).filter(Boolean); const limit = parseInt(el.dataset.maxProducts) || 4; const formatMoney = (cents) => { return (cents / 100).toLocaleString('da-DK', { minimumFractionDigits: 2, maximumFractionDigits: 2 }) + ' kr.'; }; try { const res = await fetch(`/recommendations/products.json?product_id=${productId}&limit=${limit + cartItemIds.length}&intent=related`); const { products } = await res.json(); const filtered = products .filter(p => !cartItemIds.includes(p.id) && p.available) .slice(0, limit); if (!filtered.length) return; const itemsContainer = el.querySelector('.cross-sells__items'); if (!itemsContainer) return; let itemsHtml = ''; filtered.forEach(product => { const variant = product.variants[0]; const price = formatMoney(variant.price); const compareAtPrice = variant.compare_at_price; const imageUrl = product.featured_image ? product.featured_image.replace(/(\.\w+)(\?.*)?$/, '_80x80_crop_center$1') : null; const imageHtml = imageUrl ? `
${product.title}
` : ''; const priceHtml = compareAtPrice > variant.price ? ` ${formatMoney(compareAtPrice)}
${price}
` : ` ${price} `; const buttonAttrs = product.variants.length === 1 ? `data-add-item-id="${variant.id}"` : `data-quick-add-trigger`; itemsHtml += `
${imageHtml}

${product.title}

${priceHtml}
`; }); itemsContainer.innerHTML = `
${itemsHtml}
`; } catch (e) { console.error('Cross-sells fetch failed:', e); } } document.querySelectorAll('[data-cross-sells]').forEach(loadDynamicCrossSells); const observer = new MutationObserver((mutations) => { mutations.forEach((mutation) => { mutation.addedNodes.forEach((node) => { if (node.nodeType !== 1) return; if (node.matches('[data-cross-sells]')) loadDynamicCrossSells(node); node.querySelectorAll?.('[data-cross-sells]').forEach(loadDynamicCrossSells); }); }); }); observer.observe(document.body, { childList: true, subtree: true });