Opinie o sklepie

Opinie naszych klientów są dla nas niezwykle ważne – to one najlepiej pokazują, co sprawia, że nasze produkty stają się częścią Waszej codzienności. Dzięki nim wiemy, jak łączyć wysoką jakość, modny styl i komfort, który doceniacie każdego dnia. Wasze słowa to dla nas nie tylko inspiracja, ale także motywacja do dalszego rozwoju. Jako marka oferująca szeroki wybór produktów i cenione światowe marki, chcemy dostarczać to, co najlepsze – zgodnie z Waszymi oczekiwaniami.

Podziel się swoją opinią! Twój głos pomaga nam ulepszać ofertę i tworzyć jeszcze lepsze doświadczenia zakupowe

(() => { // fetch('https://trustmate.io/widget/api/1071e6c3-5390-47a0-bc7c-a786a04cf7a5/html') - TODO: remove after platform multihornet fix - !!!frontend do not remove const UI = { last: (where, what) => {where?.append(what)}, first: (where, what) => {where?.insertBefore(what, where.firstChild)}, after: (where, what) => {where?.parentNode.insertBefore(what, where.nextSibling)}, before: (where, what) => {where?.parentNode.insertBefore(what, where)}, replace: (where, what) => {where?.replaceWith(what)} }; const RELOADS_LIMIT = 10; let reloadsCount = 0; let lastAttributeValue = null; function loadWidgetHtml({ type }) { const tag = document.getElementById('1071e6c3-5390-47a0-bc7c-a786a04cf7a5'); if (tag) { widgetConfig = { target: tag.dataset.t, action: tag.dataset.a, observe: tag.dataset.o, itemId: tag.dataset.i }; if (widgetConfig.target && widgetConfig.action) { if (!Object.hasOwn(UI, widgetConfig.action)) { console.error(`TrustMate: action '${widgetConfig.action}' is wrong`); return; } const target = document.querySelector(widgetConfig.target); if (!target) { console.error(`TrustMate: target '${widgetConfig.target}' not found`); return; } UI[widgetConfig.action](target, tag); } tag.innerHTML = ` `; if (widgetConfig.itemId && widgetConfig.target) { const target = document.querySelector(widgetConfig.target); if (!target) return; const initialElement = target.querySelector(`[${widgetConfig.itemId}]`) || target.closest(`[${widgetConfig.itemId}]`); if (initialElement) { lastAttributeValue = initialElement.getAttribute(widgetConfig.itemId); } } if (widgetConfig.target && widgetConfig.action && widgetConfig.observe) { const observeTag = document.querySelector(widgetConfig.observe); if (observeTag) { const widgetObserver = new MutationObserver((mutations, observer) => { const tag = document.getElementById('1071e6c3-5390-47a0-bc7c-a786a04cf7a5'); function checkProductIdChange() { if (tag) { const currentItemId = tag.dataset.i; const dynamicSelector = `[${currentItemId}]`; const target = document.querySelector(widgetConfig.target); if (!target) return; const elementWithDynamicSelector = target.querySelector(dynamicSelector) || target.closest(dynamicSelector); const attributeValue = elementWithDynamicSelector?.getAttribute(currentItemId); window.tmWidgetItemId = attributeValue; if (attributeValue && attributeValue !== lastAttributeValue) { lastAttributeValue = attributeValue; widgetConfig.itemId = currentItemId; const newUrl = `https://trustmate.io/widget/api/1071e6c3-5390-47a0-bc7c-a786a04cf7a5/html`; const modifiedUrl = newUrl.replace(/product=[^&]*/, 'product=' + attributeValue); fetch(modifiedUrl) .then((response) => { if (!response.ok) { throw new Error('There was a problem with fetching widget.'); } return response.text(); }) .then((html) => { if (tag) { tag.innerHTML = html; } const widgetsWithObserver = [ 'hydra', 'productFerret2', 'hornet', ]; if (widgetsWithObserver.includes(type)) { const intersectionObserver = new IntersectionObserver((entries) => { if (entries[0].isIntersecting) { window.tmWidgetScripts?.[type]?.({ spaWidget: tag }); intersectionObserver.unobserve(tag); } }, { rootMargin: '600px', threshold: 0.01 }); intersectionObserver.observe(tag); } else { window.tmWidgetScripts?.[type]?.({ spaWidget: tag }); } return; }) .catch((err) => console.error('Error fetching new content:', err)); } return; } } checkProductIdChange(); if (tag) { return; } observer.disconnect(); if (reloadsCount >= RELOADS_LIMIT) { console.error('TrustMate: widget 1071e6c3-5390-47a0-bc7c-a786a04cf7a5 reload limit reached'); return; } ++reloadsCount; const newTag = document.createElement('div'); newTag.id = '1071e6c3-5390-47a0-bc7c-a786a04cf7a5'; newTag.dataset.a = widgetConfig.action; newTag.dataset.t = widgetConfig.target; newTag.dataset.o = widgetConfig.observe; const target = document.querySelector(widgetConfig.target); if (!target) { console.error(`TrustMate: target '${widgetConfig.target}' not found after last html change`); return; } UI[widgetConfig.action](target, newTag); loadWidgetScript(); }); widgetObserver.observe(observeTag, {childList: true, subtree: true}); } } } else { console.error('TrustMate: No tag for 1071e6c3-5390-47a0-bc7c-a786a04cf7a5'); } } function waitForWindow() { let index = 0; const intervalWindowId = setInterval(function() { if (typeof window !== 'undefined') { clearInterval(intervalWindowId); loadWidgetScript(); } index += 1; if (index > 50) { clearInterval(intervalWindowId); } }, 50); } function loadWidgetScript() { if (467699 < 10) return; function scriptExists(url) { return document.querySelectorAll(`script[src="${url}"]`).length > 0; } if(scriptExists('https\u003A\/\/trustmate.io\/build\/js\/widget\/chupacabra2.4b88579f.js')) { function removeJs(src) { document.querySelector(`script[src="${src}"]`).remove(); } removeJs('https\u003A\/\/trustmate.io\/build\/js\/widget\/chupacabra2.4b88579f.js'); } const widgetScript = document.createElement('script'); widgetScript.src = 'https\u003A\/\/trustmate.io\/build\/js\/widget\/chupacabra2.4b88579f.js'; widgetScript.defer = true; widgetScript.onload = () => { loadWidgetHtml({ type: 'chupacabra2' }); }; document.body.appendChild(widgetScript); } if (typeof window === 'undefined') { waitForWindow(); } else { loadWidgetScript(); } })();