☰
Menü
×
Serien
BBQ
Bestecke
Buckels / Vespermesser
Fromago
Gartenmesser
Ibex
Kochmesser
K-Serie
Küchenmesser
Premium Serie
Seaknives
Serie 1922
Messer
Boscher
Buckels
Grandmoulin
Hamburger
Heritage
Hechtsäbels
Hippekniep
Ibex
Junger Koch
Katana Moulin
Klassiker
Lierenaar
Lignum 3
Mittelspitz
Parmoulin
Petty
Pilzpflücker
Rückenspitz
Tranchelard
Vogelschnabel
Watenspitz
Yatagan
Typen
Ausbeinmesser
Brotmesser
Fischmesser
Fleischmesser
Gemüsemesser
Käsemesser
Kochmesser
Nakiri
Santoku
Schälmesser
Scheren
Schinkenmesser
Steakmesser
Taschenmesser
Tourniermesser
Tranchiermesser
Vespermesser
Zwoller
Zubehör
Aufbewahren
Schärfstäbe
Streichriemen
Schleifsteine
Öle & Tücher
Schneidebretter
Scheren
Bücher
Espresso Café
Gutscheine
Marken
Blockwerk
Eisch Glas
Falk Culinair
Gräfe & Unzer
Helmensdorfer
Kinu
Kupfermanufaktur
Macani
Mitheis
Müllernkontor
Riess Emaille
Rösle
Rösle Grillen
Sieger
Skeppshult
Service
Gutscheine
Gratis Zugaben
Wunschliste
Versand- / Zahlweisen
Rücksendungen
Warenkorb
Kontakt
Anmelden
Registrieren
Serien
BBQ
Bestecke
Buckels / Vespermesser
Fromago
Gartenmesser
Ibex
Kochmesser
K-Serie
Küchenmesser
Premium Serie
Seaknives
Serie 1922
Messer
Boscher
Buckels
Grandmoulin
Hamburger
Heritage
Hechtsäbels
Hippekniep
Ibex
Junger Koch
Katana Moulin
Klassiker
Lierenaar
Lignum 3
Mittelspitz
Parmoulin
Petty
Pilzpflücker
Rückenspitz
Tranchelard
Vogelschnabel
Watenspitz
Yatagan
Typen
Ausbeinmesser
Brotmesser
Fischmesser
Fleischmesser
Gemüsemesser
Käsemesser
Kochmesser
Nakiri
Santoku
Schälmesser
Scheren
Schinkenmesser
Steakmesser
Taschenmesser
Tourniermesser
Tranchiermesser
Vespermesser
Zwoller
Zubehör
Aufbewahren
Schärfstäbe
Streichriemen
Schleifsteine
Öle & Tücher
Schneidebretter
Scheren
Bücher
Espresso Café
Gutscheine
Marken
Blockwerk
Eisch Glas
Falk Culinair
Gräfe & Unzer
Helmensdorfer
Kinu
Kupfermanufaktur
Macani
Mitheis
Müllernkontor
Riess Emaille
Rösle
Rösle Grillen
Sieger
Skeppshult
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/133/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", "798845118ed53492a0738d0292fc644b"); document.body.appendChild(script); } else { var script = document.getElementById('paypal-smart-payment-script'); script.src = "https://cdn02.plentymarkets.com/nsfenjcurszi/plugin/133/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", "798845118ed53492a0738d0292fc644b"); }
if (typeof paypal_plenty_sdk === 'undefined' || typeof renderPayPalButtons !== 'function') { document.addEventListener('payPalScriptInitialized', () => { renderPayPalButtons('699f87470594b', 'paypal', 'paypal', 'rect', 'gold'); }); } else { renderPayPalButtons('699f87470594b', '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/133/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", "798845118ed53492a0738d0292fc644b"); document.body.appendChild(script); } else { var script = document.getElementById('paypal-smart-payment-script'); script.src = "https://cdn02.plentymarkets.com/nsfenjcurszi/plugin/133/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", "798845118ed53492a0738d0292fc644b"); }
if (typeof paypal_plenty_sdk === 'undefined' || typeof renderPayPalButtons !== 'function') { document.addEventListener('payPalScriptInitialized', () => { renderPayPalButtons('699f87470757f', 'paypal', 'paypal', 'rect', 'gold'); }); } else { renderPayPalButtons('699f87470757f', 'paypal', 'paypal', 'rect', 'gold'); }
Serien
BBQ
Bestecke
Buckels / Vespermesser
Fromago
Gartenmesser
Ibex
Kochmesser
K-Serie
Küchenmesser
Premium Serie
Seaknives
Serie 1922
Messer
Boscher
Buckels
Grandmoulin
Hamburger
Heritage
Hechtsäbels
Hippekniep
Ibex
Junger Koch
Katana Moulin
Klassiker
Lierenaar
Lignum 3
Mittelspitz
Parmoulin
Petty
Pilzpflücker
Rückenspitz
Tranchelard
Vogelschnabel
Watenspitz
Yatagan
Typen
Ausbeinmesser
Brotmesser
Fischmesser
Fleischmesser
Gemüsemesser
Käsemesser
Kochmesser
Nakiri
Santoku
Schälmesser
Scheren
Schinkenmesser
Steakmesser
Taschenmesser
Tourniermesser
Tranchiermesser
Vespermesser
Zwoller
Zubehör
Aufbewahren
Schärfstäbe
Streichriemen
Schleifsteine
Öle & Tücher
Schneidebretter
Scheren
Bücher
Espresso Café
Gutscheine
Marken
Blockwerk
Eisch Glas
Falk Culinair
Gräfe & Unzer
Helmensdorfer
Kinu
Kupfermanufaktur
Macani
Mitheis
Müllernkontor
Riess Emaille
Rösle
Rösle Grillen
Sieger
Skeppshult
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
BBQ
Bestecke
Buckels / Vespermesser
Fromago
Gartenmesser
Ibex
Kochmesser
K-Serie
Küchenmesser
Premium Serie
Seaknives
Serie 1922
Messer
Boscher
Buckels
Grandmoulin
Hamburger
Heritage
Hechtsäbels
Hippekniep
Ibex
Junger Koch
Katana Moulin
Klassiker
Lierenaar
Lignum 3
Mittelspitz
Parmoulin
Petty
Pilzpflücker
Rückenspitz
Tranchelard
Vogelschnabel
Watenspitz
Yatagan
Typen
Ausbeinmesser
Brotmesser
Fischmesser
Fleischmesser
Gemüsemesser
Käsemesser
Kochmesser
Nakiri
Santoku
Schälmesser
Scheren
Schinkenmesser
Steakmesser
Taschenmesser
Tourniermesser
Tranchiermesser
Vespermesser
Zwoller
Zubehör
Aufbewahren
Schärfstäbe
Streichriemen
Schleifsteine
Öle & Tücher
Schneidebretter
Scheren
Bücher
Espresso Café
Gutscheine
Marken
Blockwerk
Eisch Glas
Falk Culinair
Gräfe & Unzer
Helmensdorfer
Kinu
Kupfermanufaktur
Macani
Mitheis
Müllernkontor
Riess Emaille
Rösle
Rösle Grillen
Sieger
Skeppshult
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/133/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", "798845118ed53492a0738d0292fc644b"); document.body.appendChild(script); } else { var script = document.getElementById('paypal-smart-payment-script'); script.src = "https://cdn02.plentymarkets.com/nsfenjcurszi/plugin/133/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", "798845118ed53492a0738d0292fc644b"); }
if (typeof paypal_plenty_sdk === 'undefined' || typeof renderPayPalButtons !== 'function') { document.addEventListener('payPalScriptInitialized', () => { renderPayPalButtons('699f874709263', 'paypal', 'paypal', 'rect', 'gold'); }); } else { renderPayPalButtons('699f874709263', '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); } }); })();