Möbelgriffe
loader
Laden...
114 Artikel
Seite
Primabad Greep 79,5 cm Aluminium
UVP 45,00 
Preis 38,25 
clock Lieferung in 6-8 Wochen
Primabad Griff 89,5 cm Edelstahl-Look
UVP 61,00 
Preis 51,85 
clock Gratis Lieferung in 6-8 Wochen
Primabad Griff 92,5 cm Chrom
UVP 41,00 
Preis 34,85 
clock Lieferung in 6-8 Wochen
Ben Olivo Griff 40x4x0,8 cm Gebürstetes Mattgold
UVP 24,00 
Preis 16,00 
clock Lieferbar
Ben Olivo Griff 40x22x1,8 cm Gebürstetes Edelstahl
UVP 24,00 
Preis 16,00 
clock Lieferbar
Ben Olivo Griff 60x4x0,8 cm Matt Schwarz
UVP 30,00 
Preis 20,00 
clock Lieferbar
Ben Olivo Griff 60x4x0,8 cm Matt Weiß
UVP 30,00 
Preis 20,00 
clock Lieferbar
Ben Olivo Griff 60x4x0,8 cm Gebürstetes Mattgold
UVP 30,00 
Preis 20,00 
clock Lieferbar
Ben Olivo Griff 60x4x0,8 cm Gebürstetes Edelstahl
UVP 30,00 
Preis 20,00 
clock Lieferbar
Ben Olivo Griff 60x4x0,8 cm Gebürstetes Kupfer
UVP 30,00 
Preis 20,00 
clock Lieferbar
Ben Olivo Griff 60x4x0,8 cm Gebürstetes Metal Black
UVP 30,00 
Preis 20,00 
clock Lieferbar
Ben Olivo Griff 20x4x0,8 cm Matt Schwarz
UVP 17,00 
Preis 11,00 
clock Lieferbar
Ben Olivo Griff 20x4x0,8 cm Matt Weiß
UVP 17,00 
Preis 11,00 
clock Lieferbar
Ben Olivo Griff 20x4x0,8 cm Gebürstetes Mattgold
UVP 17,00 
Preis 11,00 
clock Lieferbar
Ben Olivo Griff 20x4x0,8 cm Gebürstetes Edelstahl
UVP 17,00 
Preis 11,00 
clock Lieferbar
Ben Olivo Griff 40x4x0,8 cm Matt Schwarz
UVP 24,00 
Preis 16,00 
clock Lieferbar
Ben Olivo Griff 40x4x0,8 cm Matt Weiß
UVP 24,00 
Preis 16,00 
clock Lieferbar
Hansgrohe AddStoris Türgriff Gebürstete Bronze
UVP 163,00 
Preis 113,80 
truck Lieferung in 1 - 2 Tagen
Geberit iCon Möbelgriff B53 Sandgrau
UVP 26,00 
Preis 20,80 
truck Lieferung in 1 - 2 Tagen
Geberit iCon Möbelgriff B75 Lava
UVP 39,00 
Preis 31,20 
truck Lieferung in 1 - 2 Tagen
Ben Olivo Griff 40x22x1,8 cm Gebürstetes Metal Black
UVP 24,00 
Preis 16,00 
check-circle Lieferung in 4 bis 5 Tagen
Ben Olivo Griff 20x4x0,8 cm Gebürstetes Metal Black
UVP 17,00 
Preis 11,00 
check-circle Lieferung in 4 bis 5 Tagen
  • check-circle Versandkostenfrei ab 2.000 €
  • check-circle Bester Webshop 2025
  • check-circle Trusted Shops Käuferschutz
Nicht gefunden, wonach Sie gesucht haben?
114 Artikel
Seite
window.runChatLogic = function() { if (!window.marketingToolsLoaded || window.cmChatCombinedIntegration) return; window.cmChatCombinedIntegration = true; const WEBCONVERSATIONS_ID = '3c8c57ac-b646-45ce-a51d-2674ca7b4d0a'; //variabel per domain const SCRIPT_ID = 'cmwc-webchat-script'; let lastProcessedContext = ''; const getVisitorId = () => { const match = document.cookie.match(/_ga=GA1\.\d+\.(\d+\.\d+)/); return match ? String(match[1]) : (sessionStorage.getItem('vertex_fallback_id') || 'anon-' + Math.random().toString(36).substring(2, 15)); }; const getSessionId = () => { try { const gaCookie = document.cookie.split('; ').find(row => row.startsWith('_ga_')); if (gaCookie) return String(gaCookie.split('=')[1].split('.')[2]); } catch (e) { } return null; }; const findInDataLayer = (key, value) => { if (!window.dataLayer) return null; return [...window.dataLayer].reverse().find(e => e && e[key] === value); }; const getProductAndCartContext = () => { const payload = {}; const viewItemEvent = findInDataLayer('event', 'view_item'); if (viewItemEvent?.ecommerce?.items?.length) { const product = viewItemEvent.ecommerce.items[0]; payload.last_product = product.item_name ? product.item_name.toString() : ''; payload.last_product_id = product.item_id ? product.item_id.toString() : ''; } // Let op: dit event vult de cart-context alleen als de klant daadwerkelijk de // winkelwagenpagina bezoekt. Items die via een AJAX-minicart worden toegevoegd zonder // naar /checkout/cart te navigeren, worden hier (nog) niet in meegenomen. const cartEvent = findInDataLayer('event', 'cartPage'); if (cartEvent && cartEvent.cart) { const cart = cartEvent.cart; payload.cart_items_json = JSON.stringify(cart.items); payload.cart_content_summary = cart.items.map(item => `${item.quantity}x ${item.name}`).join(', '); payload.cart_total = cart.total ? cart.total.toString() : '0'; payload.cart_qty = cart.cartQty ? cart.cartQty.toString() : '0'; payload.cart_has_items = cart.hasItems ? cart.hasItems.toString() : 'false'; } return payload; }; const getContextPayload = () => { const host = window.location.hostname; const payload = { ga_visitor_id: getVisitorId(), ga_session_id: getSessionId(), domain: host.includes('saniweb.de') ? 'saniweb.de' : (host.includes('saniweb.be') ? 'saniweb.be' : 'saniweb.nl'), store_id: host.includes('saniweb.be') ? '1' : (host.includes('saniweb.de') ? '2' : '0') }; // Cart ID toevoegen indien aanwezig try { const mageCache = JSON.parse(localStorage.getItem('mage-cache-storage') || '{}'); if (mageCache.cart?.cartId) payload.cart_id = String(mageCache.cart.cartId); } catch (e) {} Object.assign(payload, getProductAndCartContext()); return payload; }; const sendContextUpdate = () => { try { const chatInstance = window.cmwc && window.cmwc.get(WEBCONVERSATIONS_ID); if (!chatInstance) return; const currentPayload = getContextPayload(); const signature = JSON.stringify(currentPayload); if (signature !== lastProcessedContext) { lastProcessedContext = signature; chatInstance.addContext(currentPayload); console.log("[Chat-Safe] Context updated"); } } catch (e) { console.error("[Chat-Safe] Error sending context:", e); } }; const loadChatWidget = () => { if (document.getElementById(SCRIPT_ID)) return; const chatLanguage = window.location.hostname.includes('saniweb.de') ? 'de' : 'nl'; const script = document.createElement('script'); script.id = SCRIPT_ID; script.type = 'module'; script.crossOrigin = 'anonymous'; script.src = 'https://webchat.digitalcx.com/webchat.js'; script.onload = () => { try { const instance = cmwc.add(WEBCONVERSATIONS_ID); instance.install({ language: chatLanguage }); // Wacht heel even tot de installatie echt klaar is voor de eerste context setTimeout(sendContextUpdate, 1000); } catch (e) { console.error("[Chat-Safe] Install error:", e); } }; document.body.appendChild(script); }; // Start de boel loadChatWidget(); // In plaats van een snelle poller: check elke 10 seconden OF bij een pagina-event setInterval(sendContextUpdate, 10000); window.addEventListener('focus', sendContextUpdate); // Update als gebruiker terugkomt op tabblad document.addEventListener('turbo:load', () => setTimeout(sendContextUpdate, 300)); }; function syncCartToFrontend(cartId) { localStorage.setItem('cartId', cartId); if (window.hyva && window.hyva.setCookie) { window.hyva.setCookie('mage-cache-sessid', '', -1, true); } else { document.cookie = 'mage-cache-sessid=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT'; } window.dispatchEvent(new CustomEvent('reload-customer-section-data')); } // --- TRIGGERS --- if (window.marketingToolsLoaded) { window.runChatLogic(); } window.addEventListener('CookiebotOnAccept', function() { window.marketingToolsLoaded = true; // Zorg dat de flag omgaat window.runChatLogic(); }); // Turbo Load support document.addEventListener('turbo:load', () => { window.cmChatCombinedIntegration = false; if (window.marketingToolsLoaded) window.runChatLogic(); });