Ben Sanitair: Trendiges Sanitär für Ihr gesamtes Badezimmer. "Trendsetzendes Sanitär von erstklassiger Qualität für eine vollständige Badezimmereinrichtung" - das ist es, wofür Ben Sanitair steht. Das umfangreiche Sortiment umfasst Badezimmermöbel, Badewannen, Duschabtrennungen, Waschbecken und Armaturen. Ben Sanitair zeichnet sich nicht nur durch erstklassige Qualität aus, sondern bietet auch wettbewerbsfähige Preise. Dies ist möglich, da Design und Produktion in Eigenregie erfolgen. Das Sortiment umfasst neben einzelnen Sanitärartikeln auch komplette Badezimmer, die von einem Team aus Designern entworfen wurden. Entdecken Sie die trendigen Sanitärprodukte von Ben Sanitair auf unserer Website und gestalten Sie Ihr Badezimmer nach Ihren Wünschen.
Zuletzt angesehene Produkte
Bewertungen
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();
});