☰
Menü
×
Serien
Eiche
Noir
Professional
Schwedische Buche
Traditionell
Walnuss
Järn
Typen
Bräter
Bratpfanne
Eierpfanne
Grillpfanne
Pfannen-Sets
Pfannkuchenpfanne
Servierpfanne
Spezial Pfannen
Wokpfanne
Grillplatte
Ofenform
Waffeleisen
Paletten & Wender
Zubehör / Deckel
Bücher
Gewürze
Mörser
Gewürzmühlen Traditionell
Swing Gewürzmühlen
Aktionen
Gutscheine
Service
Gutscheine
Gratis Zugaben
Wunschliste
Versand- / Zahlweisen
Rücksendungen
Warenkorb
Kontakt
Anmelden
Registrieren
Serien
Eiche
Noir
Professional
Schwedische Buche
Traditionell
Walnuss
Järn
Typen
Bräter
Bratpfanne
Eierpfanne
Grillpfanne
Pfannen-Sets
Pfannkuchenpfanne
Servierpfanne
Spezial Pfannen
Wokpfanne
Grillplatte
Ofenform
Waffeleisen
Paletten & Wender
Zubehör / Deckel
Bücher
Gewürze
Mörser
Gewürzmühlen Traditionell
Swing Gewürzmühlen
Aktionen
Gutscheine
Service
Gutscheine
Gratis Zugaben
Wunschliste
Versand- / Zahlweisen
Rücksendungen
Warenkorb
Kontakt
Anmelden
Registrieren
Anmelden
Anmelden
Registrieren
0
if(!document.getElementById('paypal-smart-payment-script')) { var script = document.createElement("script"); script.type = "module"; script.id = "paypal-smart-payment-script"; script.src = "https://cdn02.plentymarkets.com/nsfenjcurszi/plugin/113/paypal/js/smartPaymentScript.min.js"; script.setAttribute("data-client-id", "AfslQana4f4CQjHvRBnUc6vBJg5jgJuZFwM-SbrTiGKUAqB7MrxQv3QWFdQ6U1h7ogMDokT1DNBzRxMw"); script.setAttribute("data-user-id-token", ""); script.setAttribute("data-merchant-id", "KQ9VDNA6T5T9Q"); script.setAttribute("data-currency", "EUR"); script.setAttribute("data-append-trailing-slash", ""); script.setAttribute("data-locale", "de_DE"); script.setAttribute("sandbox", ""); script.setAttribute("googlePayComponent", 1); script.setAttribute("applePayComponent", 1); script.setAttribute("logToken", "31342ddb25d16999f36695f26a0524a6"); document.body.appendChild(script); } else { var script = document.getElementById('paypal-smart-payment-script'); script.src = "https://cdn02.plentymarkets.com/nsfenjcurszi/plugin/113/paypal/js/smartPaymentScript.min.js"; script.setAttribute("data-client-id", "AfslQana4f4CQjHvRBnUc6vBJg5jgJuZFwM-SbrTiGKUAqB7MrxQv3QWFdQ6U1h7ogMDokT1DNBzRxMw"); script.setAttribute("data-user-id-token", ""); script.setAttribute("data-merchant-id", "KQ9VDNA6T5T9Q"); script.setAttribute("data-currency", "EUR"); script.setAttribute("data-append-trailing-slash", ""); script.setAttribute("data-locale", "de_DE"); script.setAttribute("sandbox", ""); script.setAttribute("googlePayComponent", 1); script.setAttribute("applePayComponent", 1); script.setAttribute("logToken", "31342ddb25d16999f36695f26a0524a6"); }
if (typeof paypal_plenty_sdk === 'undefined' || typeof renderPayPalButtons !== 'function') { document.addEventListener('payPalScriptInitialized', () => { renderPayPalButtons('697d1963d7bd2', 'paypal', 'paypal', 'rect', 'gold'); }); } else { renderPayPalButtons('697d1963d7bd2', 'paypal', 'paypal', 'rect', 'gold'); }
☰
0
if(!document.getElementById('paypal-smart-payment-script')) { var script = document.createElement("script"); script.type = "module"; script.id = "paypal-smart-payment-script"; script.src = "https://cdn02.plentymarkets.com/nsfenjcurszi/plugin/113/paypal/js/smartPaymentScript.min.js"; script.setAttribute("data-client-id", "AfslQana4f4CQjHvRBnUc6vBJg5jgJuZFwM-SbrTiGKUAqB7MrxQv3QWFdQ6U1h7ogMDokT1DNBzRxMw"); script.setAttribute("data-user-id-token", ""); script.setAttribute("data-merchant-id", "KQ9VDNA6T5T9Q"); script.setAttribute("data-currency", "EUR"); script.setAttribute("data-append-trailing-slash", ""); script.setAttribute("data-locale", "de_DE"); script.setAttribute("sandbox", ""); script.setAttribute("googlePayComponent", 1); script.setAttribute("applePayComponent", 1); script.setAttribute("logToken", "31342ddb25d16999f36695f26a0524a6"); document.body.appendChild(script); } else { var script = document.getElementById('paypal-smart-payment-script'); script.src = "https://cdn02.plentymarkets.com/nsfenjcurszi/plugin/113/paypal/js/smartPaymentScript.min.js"; script.setAttribute("data-client-id", "AfslQana4f4CQjHvRBnUc6vBJg5jgJuZFwM-SbrTiGKUAqB7MrxQv3QWFdQ6U1h7ogMDokT1DNBzRxMw"); script.setAttribute("data-user-id-token", ""); script.setAttribute("data-merchant-id", "KQ9VDNA6T5T9Q"); script.setAttribute("data-currency", "EUR"); script.setAttribute("data-append-trailing-slash", ""); script.setAttribute("data-locale", "de_DE"); script.setAttribute("sandbox", ""); script.setAttribute("googlePayComponent", 1); script.setAttribute("applePayComponent", 1); script.setAttribute("logToken", "31342ddb25d16999f36695f26a0524a6"); }
if (typeof paypal_plenty_sdk === 'undefined' || typeof renderPayPalButtons !== 'function') { document.addEventListener('payPalScriptInitialized', () => { renderPayPalButtons('697d1963d94ee', 'paypal', 'paypal', 'rect', 'gold'); }); } else { renderPayPalButtons('697d1963d94ee', 'paypal', 'paypal', 'rect', 'gold'); }
Serien
Eiche
Noir
Professional
Schwedische Buche
Traditionell
Walnuss
Järn
Typen
Bräter
Bratpfanne
Eierpfanne
Grillpfanne
Pfannen-Sets
Pfannkuchenpfanne
Servierpfanne
Spezial Pfannen
Wokpfanne
Grillplatte
Ofenform
Waffeleisen
Paletten & Wender
Zubehör / Deckel
Bücher
Gewürze
Mörser
Gewürzmühlen Traditionell
Swing Gewürzmühlen
Aktionen
Gutscheine
Service
Gutscheine
Gratis Zugaben
Wunschliste
Versand- / Zahlweisen
Rücksendungen
Warenkorb
Kontakt
Anmelden
Registrieren
Service
Gutscheine
Gratis Zugaben
Wunschliste
Versand- / Zahlweisen
Rücksendungen
Warenkorb
Kontakt
Konto
Anmelden
Anmelden
Registrieren
☰
Serien
Eiche
Noir
Professional
Schwedische Buche
Traditionell
Walnuss
Järn
Typen
Bräter
Bratpfanne
Eierpfanne
Grillpfanne
Pfannen-Sets
Pfannkuchenpfanne
Servierpfanne
Spezial Pfannen
Wokpfanne
Grillplatte
Ofenform
Waffeleisen
Paletten & Wender
Zubehör / Deckel
Bücher
Gewürze
Mörser
Gewürzmühlen Traditionell
Swing Gewürzmühlen
Aktionen
Gutscheine
Service
Gutscheine
Gratis Zugaben
Wunschliste
Versand- / Zahlweisen
Rücksendungen
Warenkorb
Kontakt
Anmelden
Registrieren
0
if(!document.getElementById('paypal-smart-payment-script')) { var script = document.createElement("script"); script.type = "module"; script.id = "paypal-smart-payment-script"; script.src = "https://cdn02.plentymarkets.com/nsfenjcurszi/plugin/113/paypal/js/smartPaymentScript.min.js"; script.setAttribute("data-client-id", "AfslQana4f4CQjHvRBnUc6vBJg5jgJuZFwM-SbrTiGKUAqB7MrxQv3QWFdQ6U1h7ogMDokT1DNBzRxMw"); script.setAttribute("data-user-id-token", ""); script.setAttribute("data-merchant-id", "KQ9VDNA6T5T9Q"); script.setAttribute("data-currency", "EUR"); script.setAttribute("data-append-trailing-slash", ""); script.setAttribute("data-locale", "de_DE"); script.setAttribute("sandbox", ""); script.setAttribute("googlePayComponent", 1); script.setAttribute("applePayComponent", 1); script.setAttribute("logToken", "31342ddb25d16999f36695f26a0524a6"); document.body.appendChild(script); } else { var script = document.getElementById('paypal-smart-payment-script'); script.src = "https://cdn02.plentymarkets.com/nsfenjcurszi/plugin/113/paypal/js/smartPaymentScript.min.js"; script.setAttribute("data-client-id", "AfslQana4f4CQjHvRBnUc6vBJg5jgJuZFwM-SbrTiGKUAqB7MrxQv3QWFdQ6U1h7ogMDokT1DNBzRxMw"); script.setAttribute("data-user-id-token", ""); script.setAttribute("data-merchant-id", "KQ9VDNA6T5T9Q"); script.setAttribute("data-currency", "EUR"); script.setAttribute("data-append-trailing-slash", ""); script.setAttribute("data-locale", "de_DE"); script.setAttribute("sandbox", ""); script.setAttribute("googlePayComponent", 1); script.setAttribute("applePayComponent", 1); script.setAttribute("logToken", "31342ddb25d16999f36695f26a0524a6"); }
if (typeof paypal_plenty_sdk === 'undefined' || typeof renderPayPalButtons !== 'function') { document.addEventListener('payPalScriptInitialized', () => { renderPayPalButtons('697d1963dae4b', 'paypal', 'paypal', 'rect', 'gold'); }); } else { renderPayPalButtons('697d1963dae4b', 'paypal', 'paypal', 'rect', 'gold'); }
Sprache
Deutsch
Englisch
Lieferland
Finden
Wunschliste
Service
Wunschliste
Wunschliste
Alle Artikel in den Warenkorb
(() => { const bulkBtn = document.getElementById("pm-bulk-add"); if (!bulkBtn) return; // Selector-Liste: hier werden typische "Add to basket"-Buttons eingesammelt. // Je nach Template/Widget kann ein anderer Selector nötig sein. const ADD_TO_CART_SELECTORS = [ // sehr generisch (Buttons/Links mit passendem Text) – letzte Reserve 'button, a', // häufige data-Attribute/Classes (je nach plenty/Ceres/Theme unterschiedlich) '[data-add-to-basket]', '[data-testing="add-to-basket"]', '.add-to-basket', '.add-to-cart', '.btn-add-to-basket', '.basket-button' ]; const sleep = (ms) => new Promise(r => setTimeout(r, ms)); const isVisible = (el) => { if (!el) return false; const r = el.getBoundingClientRect(); return r.width > 0 && r.height > 0 && r.bottom >= 0 && r.top <= (window.innerHeight || document.documentElement.clientHeight); }; const looksLikeAddToCart = (el) => { // Nur echte Klick-Targets if (!(el instanceof HTMLElement)) return false; if (el.id === "pm-bulk-add") return false; if (el.disabled) return false; // Textheuristik als Fallback (de/en), damit 'button, a' nicht alles einsammelt const t = (el.innerText || "").trim().toLowerCase(); const okText = t === "in den warenkorb" || t.includes("in den warenkorb") || t.includes("warenkorb") || t.includes("add to cart") || t.includes("add to basket"); // Attribut/klasse ist stärker als Text const okAttr = el.matches('[data-add-to-basket], [data-testing="add-to-basket"], .add-to-basket, .add-to-cart, .btn-add-to-basket, .basket-button'); return okAttr || okText; }; const collectAddButtons = () => { // Sammeln über die Selector-Liste, dann deduplizieren const set = new Set(); for (const sel of ADD_TO_CART_SELECTORS) { document.querySelectorAll(sel).forEach(el => set.add(el)); } const arr = Array.from(set) .filter(looksLikeAddToCart) .filter(isVisible); // nur sichtbare: deckt den Fall ab, dass Listen virtualisiert sind return arr; }; const setBusy = (busy) => { bulkBtn.disabled = busy; bulkBtn.style.opacity = busy ? "0.7" : "1"; }; const clickSequentially = async (buttons) => { // sequenziell, damit Basket-Updates nicht kollidieren for (const btn of buttons) { // Element kann zwischenzeitlich neu gerendert werden if (!document.contains(btn)) continue; if (btn.disabled) continue; // Scroll in View, damit manche Handler (Intersection/virtual DOM) aktiv werden try { btn.scrollIntoView({ block: "center", inline: "nearest" }); } catch (_) {} await sleep(120); // echter Click btn.click(); // kurze Pause für Request + UI state await sleep(350); } }; bulkBtn.addEventListener("click", async (e) => { e.preventDefault(); setBusy(true); try { const buttons = collectAddButtons(); await clickSequentially(buttons); } catch (err) { console.error("[pm-bulk-add]", err); } finally { setBusy(false); } }); })();