{"barcodes":[{"referrers":[-1],"id":1,"name":"EAN_13 1","createdAt":"0000-00-00 00:00:00","updatedAt":"2017-04-07 12:20:03","type":"GTIN_13","code":"4250489637280"}],"defaultCategories":[{"id":348,"right":"all","sitemap":true,"parentCategoryId":946,"level":4,"linklist":true,"type":"item","updatedAt":"2022-10-25T14:23:56+02:00","manually":false,"plentyId":22632}],"filter":{"hasManufacturer":true,"isSalable":true,"isSalableAndActive":true,"hasActiveChildren":false},"images":{"all":[{"path":"S3:9227:BROOKER-Manschettenknoepfe-rund-Onyx-Silber.jpg","names":{"lang":"de","imageId":41891,"name":"Manschettenkn\u00f6pfe rund konkav halbrunde Onyx-Einalge Silber ","alternate":"Manschettenkn\u00f6pfe rund Onyx Silber "},"urlPreview":"https:\/\/cdn02.plentyone.com\/f2d5nd8wf1gh\/item\/images\/9227\/preview\/BROOKER-Manschettenknoepfe-rund-Onyx-Silber.jpg","urlSecondPreview":"https:\/\/cdn02.plentyone.com\/f2d5nd8wf1gh\/item\/images\/9227\/secondPreview\/BROOKER-Manschettenknoepfe-rund-Onyx-Silber.jpg","urlMiddle":"https:\/\/cdn02.plentyone.com\/f2d5nd8wf1gh\/item\/images\/9227\/middle\/BROOKER-Manschettenknoepfe-rund-Onyx-Silber.jpg","position":0,"url":"https:\/\/cdn02.plentyone.com\/f2d5nd8wf1gh\/item\/images\/9227\/full\/BROOKER-Manschettenknoepfe-rund-Onyx-Silber.jpg","cleanImageName":"BROOKER-Manschettenknoepfe-rund-Onyx-Silber.jpg"},{"url":"https:\/\/cdn02.plentyone.com\/f2d5nd8wf1gh\/item\/images\/9227\/full\/manschettenknoepfe-etui-brooker.jpg","position":1,"path":"S3:9227:manschettenknoepfe-etui-brooker.jpg","urlMiddle":"https:\/\/cdn02.plentyone.com\/f2d5nd8wf1gh\/item\/images\/9227\/middle\/manschettenknoepfe-etui-brooker.jpg","urlSecondPreview":"https:\/\/cdn02.plentyone.com\/f2d5nd8wf1gh\/item\/images\/9227\/secondPreview\/manschettenknoepfe-etui-brooker.jpg","names":{"lang":"de","imageId":41892,"alternate":"Brooker-Etui schwarz Manschettenkn\u00f6pfe","name":"Brookeretui schwarz Manschettenkn\u00f6pfe"},"urlPreview":"https:\/\/cdn02.plentyone.com\/f2d5nd8wf1gh\/item\/images\/9227\/preview\/manschettenknoepfe-etui-brooker.jpg","cleanImageName":"manschettenknoepfe-etui-brooker.jpg"}],"variation":[]},"item":{"id":9227,"add_cms_page":0,"condition":{"id":0,"names":{"lang":"de","name":"Neu"}},"free2":"","free20":0,"storeSpecial":{"id":2,"names":{"lang":"de","name":"Neuheit"}},"manufacturerId":25,"producingCountryId":0,"revenueAccount":0,"conditionApi":{"id":0,"names":{"lang":"de","name":"Neu"}},"ageRestriction":0,"itemType":"default","customsTariffNumber":"","manufacturer":{"id":25,"name":"BROOKER Fine Cufflinks","legalName":"Grom Schmuck","logo":"\/images\/gallery\/producer\/brooker_cufflinks.jpg","url":"","contactUrl":"info@grom-schmuck.de","street":"Siemensstr.","email":"info@grom-schmuck.de","position":0,"responsibleName":"Torsten Grom","responsibleStreet":"Siemensstr.","responsibleHouseNo":"42","responsiblePostCode":"75217","responsibleTown":"Birkenfeld","responsibleCountry":1,"responsibleEmail":"info@grom-schmuck.de","responsibleContactUrl":"info@grom-schmuck.de","responsiblePhoneNo":"+49 (0)7231 7833570","pixmaniaBrandId":0,"neckermannBrandId":0,"externalName":"BROOKER Fine Cufflinks","neckermannAtEpBrandId":0,"postcode":"75217","houseNo":"42","town":"Birkenfeld","countryId":1,"phoneNumber":"+49 (0)7231 7833570","faxNumber":"","laRedouteBrandId":0,"comment":"","updatedAt":"2024-12-10T16:07:31+01:00","nameExternal":"BROOKER Fine Cufflinks","countryObject":{"names":[{"language":"de","id":1,"name":" Deutschland","country_id":1},{"country_id":1,"id":250,"name":"Germany","language":"en"}],"active":1,"shippingDestinationId":101,"name":" Deutschland","isCountryStateMandatory":null,"storehouseId":0,"id":1,"lang":"de","isoCode2":"DE","isoCode3":"DEU"},"responsibleCountryObject":{"names":[{"language":"de","id":1,"name":" Deutschland","country_id":1},{"country_id":1,"id":250,"name":"Germany","language":"en"}],"active":1,"shippingDestinationId":101,"name":" Deutschland","isCountryStateMandatory":null,"storehouseId":0,"id":1,"lang":"de","isoCode2":"DE","isoCode3":"DEU"}},"rebate":0,"salableVariationCount":1,"producingCountry":{"names":[]}},"properties":[{"propertySelection":[],"propertyId":57,"propertySelectionId":null,"surcharge":0,"property":{"id":57,"position":0,"names":{"lang":"de","name":"Schwarz","description":"","propertyId":57},"valueType":"empty","isOderProperty":false,"isShownOnItemPage":true,"isShownOnItemList":true,"isShownAtCheckout":true,"surcharge":0},"group":{"id":5,"names":{"lang":"de","name":"Farbe","description":"","propertyGroupId":5},"backendName":"Farbe","orderPropertyGroupingType":"none","isSurchargePercental":false,"ottoComponent":0,"updatedAt":"2016-03-20T18:03:51+01:00"}}],"texts":{"name2":"","name3":"","description":"<p>Zeitlose Eleganz und subtile Raffinesse: Mit unseren exquisiten runden, konkaven Manschettenkn\u00f6pfen aus hochwertigem Silber, veredelt mit einer halbseitigen Onyx-Einlage, verleihen Sie Ihrem Outfit eine markante Note. Das Statement f\u00fcr den stilvollen Gentleman von heute.<\/p>\n<p><li><b>Marke:<\/b> BROOKER by grom schmuck <\/li><\/p> \n<p><li><b>Material:<\/b> massives 925er Sterling Silber<\/li><\/p>\n<p><li><b>Farbe:<\/b> Silber, Schwarz<\/li><\/p> \n<p><li><b>Form:<\/b> rund<\/li><\/p> \n<p><li><b>Besonderheit:<\/b> Onyx-Einlage<\/li><\/p> \n<p><li><b>Ma\u00dfe:<\/b> 14 mm x 20 mm x 14 mm<\/li><\/p> \n<p><li><b>Gewicht:<\/b> 12 g je Paar <\/li><\/p> \n<p><b>Im Lieferumfang ist das hochwertige Manschettenknopfetui-Etui von BROOKER by grom schmuck enthalten.<\/b><\/p>\n<p>Die runde Form der Manschettenkn\u00f6pfe sorgt f\u00fcr eine harmonische \u00c4sthetik, w\u00e4hrend die konkave Oberfl\u00e4che eine faszinierende Tiefe und Dynamik schafft. Die halbseitige Onyx-Einlage verleiht den Manschettenkn\u00f6pfen eine zus\u00e4tzliche Dimension und einen Hauch von Luxus. Das tiefschwarze Onyx symbolisiert St\u00e4rke, Selbstvertrauen und Eleganz und verleiht diesem Accessoire eine besondere Ausstrahlung. Die dunkle Farbe des Onyx bildet einen faszinierenden Kontrast zum gl\u00e4nzenden Silber und verleiht den Manschettenkn\u00f6pfen eine unverwechselbare Eleganz. Diese Manschettenkn\u00f6pfe sind nicht nur ein stilvolles Accessoire, sondern auch ein Ausdruck von Pers\u00f6nlichkeit und Stilbewusstsein. Sie sind perfekt f\u00fcr formelle Anl\u00e4sse wie Hochzeiten, Galas oder Gesch\u00e4ftsmeetings, aber auch f\u00fcr den Alltag geeignet, um jedem Outfit einen Hauch von Luxus zu verleihen. Mit ihrer zeitlosen Eleganz sind diese Manschettenkn\u00f6pfe das ideale Geschenk f\u00fcr den modernen Gentleman. Zeigen Sie Stil und Klasse mit unseren runden, konkaven Manschettenkn\u00f6pfen aus Silber mit halbseitiger Onyx-Einlage und setzen Sie ein Statement, das Eindruck hinterl\u00e4sst.<\/p>","title":"","technicalData":"","urlPath":"manschettenknoepfe\/material\/manschettenknoepfe-silber\/manschettenknoepfe-sterling-silber\/brooker-manschettenknoepfe-rund-onyx-silber","itemId":9227,"id":114411,"lang":"de","metaDescription":"Manschettenkn\u00f6pfe mit Onyx-Einlagen \u2705 Echtsilber \u2705 runde Form \u2713 Exzellenter Service \u27a8 St\u00f6bern Sie gleich rein!","name1":"BROOKER Manschettenkn\u00f6pfe rund Onyx Silber ","shortDescription":"","keywords":"Manschettenkn\u00f6pfe rund gew\u00f6lbt konvex halbkreis halbkugel Silber Onyx silberfarben Sterling-Silber Etui Geschenk 925er-Silber Sterling-Silber Echtsilber "},"unit":{"names":{"unitId":1,"lang":"de","name":"St\u00fcck"},"unitOfMeasurement":"C62","content":1},"variation":{"position":0,"number":"637280","model":"637280","externalId":"CUF-1447_ONYX","availabilityId":1,"estimatedAvailableAt":null,"maximumOrderQuantity":null,"minimumOrderQuantity":1,"intervalOrderQuantity":1,"availableUntil":null,"releasedAt":null,"name":"BROOKER Manschettenkn\u00f6pfe rund Onyx Silber ","weightG":112,"weightNetG":12,"widthMM":20,"lengthMM":14,"heightMM":14,"unitsContained":1,"bundleType":null,"mayShowUnitPrice":false,"availabilityUpdatedAt":"2024-06-18T14:33:43+02:00","availability":{"id":1,"icon":"av1.jpg","averageDays":1,"createdAt":"2019-08-07 11:02:36","updatedAt":"2019-08-07 11:02:36","names":{"id":22,"availabilityId":1,"lang":"de","name":"Sofort lieferbar","createdAt":"2021-10-25 11:55:10","updatedAt":"2021-10-25 11:55:10"},"iconPath":"\/tpl\/availability\/av1.jpg","mappedAvailability":"http:\/\/schema.org\/InStock"},"id":15962,"unitCombinationId":1},"hasOrderProperties":false,"hasRequiredOrderProperty":false,"prices":{"default":{"price":{"value":159,"formatted":"159,00\u00a0\u20ac"},"unitPrice":{"value":159,"formatted":"159,00\u00a0\u20ac"},"basePrice":"","baseLot":null,"baseUnit":null,"baseSinglePrice":null,"minimumOrderQuantity":1,"contactClassDiscount":{"percent":0,"amount":0},"categoryDiscount":{"percent":0,"amount":0},"currency":"EUR","lowestPrice":{"value":null,"formatted":""},"vat":{"id":0,"value":19},"isNet":false,"data":{"salesPriceId":1,"price":159,"priceNet":133.61344537815,"basePrice":159,"basePriceNet":133.61344537815,"unitPrice":159,"unitPriceNet":133.61344537815,"lowestPrice":null,"lowestPriceNet":null,"customerClassDiscountPercent":0,"customerClassDiscount":0,"customerClassDiscountNet":0,"categoryDiscountPercent":0,"categoryDiscount":0,"categoryDiscountNet":0,"vatId":0,"vatValue":19,"currency":"EUR","interval":"none","conversionFactor":1,"minimumOrderQuantity":"1.00","updatedAt":"2026-02-04 11:45:10","type":"default","pricePosition":1}},"rrp":{"price":{"value":189,"formatted":"189,00\u00a0\u20ac"},"unitPrice":{"value":189,"formatted":"189,00\u00a0\u20ac"},"basePrice":"","baseLot":null,"baseUnit":null,"baseSinglePrice":null,"minimumOrderQuantity":1,"contactClassDiscount":{"percent":0,"amount":0},"categoryDiscount":{"percent":0,"amount":0},"currency":"EUR","lowestPrice":{"value":null,"formatted":""},"vat":{"id":0,"value":19},"isNet":false,"data":{"salesPriceId":40,"price":189,"priceNet":158.82352941176,"basePrice":189,"basePriceNet":158.82352941176,"unitPrice":189,"unitPriceNet":158.82352941176,"lowestPrice":null,"lowestPriceNet":null,"customerClassDiscountPercent":0,"customerClassDiscount":0,"customerClassDiscountNet":0,"categoryDiscountPercent":0,"categoryDiscount":0,"categoryDiscountNet":0,"vatId":0,"vatValue":19,"currency":"EUR","interval":"none","conversionFactor":1,"minimumOrderQuantity":"1.00","updatedAt":"2026-02-04 11:45:10","type":"rrp","pricePosition":2}},"set":null,"specialOffer":null,"graduatedPrices":[{"price":{"value":159,"formatted":"159,00\u00a0\u20ac"},"unitPrice":{"value":159,"formatted":"159,00\u00a0\u20ac"},"basePrice":"","baseLot":null,"baseUnit":null,"baseSinglePrice":null,"minimumOrderQuantity":1,"contactClassDiscount":{"percent":0,"amount":0},"categoryDiscount":{"percent":0,"amount":0},"currency":"EUR","lowestPrice":{"value":null,"formatted":""},"vat":{"id":0,"value":19},"isNet":false,"data":{"salesPriceId":1,"price":159,"priceNet":133.61344537815,"basePrice":159,"basePriceNet":133.61344537815,"unitPrice":159,"unitPriceNet":133.61344537815,"lowestPrice":null,"lowestPriceNet":null,"customerClassDiscountPercent":0,"customerClassDiscount":0,"customerClassDiscountNet":0,"categoryDiscountPercent":0,"categoryDiscount":0,"categoryDiscountNet":0,"vatId":0,"vatValue":19,"currency":"EUR","interval":"none","conversionFactor":1,"minimumOrderQuantity":"1.00","updatedAt":"2026-02-04 11:45:10","type":"default","pricePosition":1}}]},"facets":[],"attributes":[]}

BROOKER Manschettenknöpfe rund Onyx Silber

Art.-Nr.: 637280

Art.-Nr.: 637280


function styleArticlePrice() { document.querySelectorAll('.widget-item-price').forEach(function(widget) { /* Erst alles zurücksetzen – wichtig bei Variantenwechsel */ widget.style.removeProperty('position'); widget.style.removeProperty('top'); const nextWidget = widget.nextElementSibling; if (nextWidget && nextWidget.classList.contains('vat')) { nextWidget.style.removeProperty('position'); nextWidget.style.removeProperty('top'); } const priceElements = Array.from(widget.querySelectorAll('*')).filter(function(el) { const text = el.textContent .replace(/\u00a0/g, ' ') .trim(); const isPurePrice = /^[0-9.,\s]+€$/.test(text); const hasPriceChild = Array.from(el.children).some(function(child) { const childText = child.textContent .replace(/\u00a0/g, ' ') .trim(); return /^[0-9.,\s]+€$/.test(childText); }); return isPurePrice && !hasPriceChild; }); if (priceElements.length === 0) { return; } let strikePrice = null; let currentPrice = null; priceElements.forEach(function(el) { const styles = window.getComputedStyle(el); const isStrike = el.tagName === 'DEL' || el.tagName === 'S' || el.tagName === 'STRIKE' || styles.textDecorationLine.indexOf('line-through') !== -1 || styles.textDecoration.indexOf('line-through') !== -1; if (isStrike) { strikePrice = el; } }); const normalPrices = priceElements.filter(function(el) { return el !== strikePrice; }); if (normalPrices.length > 0) { currentPrice = normalPrices.reduce(function(largest, el) { if (!largest) { return el; } const currentSize = parseFloat(window.getComputedStyle(el).fontSize); const largestSize = parseFloat(window.getComputedStyle(largest).fontSize); return currentSize > largestSize ? el : largest; }, null); } /* Aktuellen Verkaufspreis fett */ if (currentPrice) { currentPrice.style.setProperty('font-weight', '700', 'important'); } /* Nur bei vorhandenem Streichpreis */ if (strikePrice && currentPrice) { /* Abstand Streichpreis → aktueller Preis kompakter */ strikePrice.style.setProperty('margin-bottom', '0', 'important'); strikePrice.style.setProperty('line-height', '1', 'important'); currentPrice.style.setProperty('margin-top', '0', 'important'); currentPrice.style.setProperty('line-height', '1.1', 'important'); /* Gesamten Preisblock 14 px nach oben */ widget.style.setProperty('position', 'relative', 'important'); widget.style.setProperty('top', '-14px', 'important'); /* MwSt.-Zeile ebenfalls mit hochziehen */ if (nextWidget && nextWidget.classList.contains('vat')) { nextWidget.style.setProperty('position', 'relative', 'important'); nextWidget.style.setProperty('top', '-14px', 'important'); } } }); } styleArticlePrice(); setTimeout(styleArticlePrice, 200); setTimeout(styleArticlePrice, 800); document.addEventListener("onVariationChanged", function() { setTimeout(styleArticlePrice, 100); setTimeout(styleArticlePrice, 500); });
189,00 €
159,00 € *
Inhalt 1 Stück
inkl. ges. MwSt. zzgl. 0,00 € Versandkosten
${ $store.getters.currentItemVariation.variation.availability.names.name }
function reloadAvailability() { if (ceresStore.getters.currentItemVariation.variation.availability.id < 3) { let shipToday = true; let shipTomorrow = true; const cutoffHours = 16; const todayStringWithTimeZoneEuropeBerlin = new Date().toLocaleString("en-US", {timeZone: "Europe/Berlin"}) const todayEuropeBerlin = new Date(Date.parse(todayStringWithTimeZoneEuropeBerlin)); let tomorrowEuropeBerlin = new Date(Number(todayEuropeBerlin)); tomorrowEuropeBerlin.setDate(todayEuropeBerlin.getDate() + 1); const dayOfWeekEuropeBerlin = todayEuropeBerlin.getDay(); var dd = String(todayEuropeBerlin.getDate()).padStart(2, '0'); var mm = String(todayEuropeBerlin.getMonth() + 1).padStart(2, '0'); var yyyy = todayEuropeBerlin.getFullYear(); var hh = todayEuropeBerlin.getHours(); var ii = todayEuropeBerlin.getMinutes(); const todayStringEuropeBerlin = yyyy + '-' + mm + '-' + dd; const tomorrowStringEuropeBerlin = tomorrowEuropeBerlin.getFullYear() + '-' + String(tomorrowEuropeBerlin.getMonth() + 1).padStart(2, '0') + '-' + String(tomorrowEuropeBerlin.getDate()).padStart(2, '0'); if (dayOfWeekEuropeBerlin === 0 || dayOfWeekEuropeBerlin === 6) { shipToday = false; } else if (hh > cutoffHours) { shipToday = false; } else { $.getJSON("https://feiertage-api.de/api/?jahr=2020&nur_land=BW", function (json) { $.each(json, function (i, item) { if (todayStringEuropeBerlin === item.datum) { shipToday = false; } if (tomorrowStringEuropeBerlin === item.datum) { shipTomorrow = false; } }); }); } if (!shipToday) { console.log(dayOfWeekEuropeBerlin + 1); if (dayOfWeekEuropeBerlin === 5 || dayOfWeekEuropeBerlin === 6) { shipTomorrow = false; } if (dd === '31' && mm === '12') { shipTomorrow = false; } } let displayHours; if ((cutoffHours - (hh + 1)) < 0) { displayHours = 0; } else { displayHours = cutoffHours - (hh + 1); } setTimeout(function () { if (shipToday) { var countdownText = ''; if (displayHours === 0) { countdownText = (60 - ii) + ' Min.'; } else if (displayHours === 1) { countdownText = '1 Std. ' + (60 - ii) + ' Min.'; } else { countdownText = displayHours + ' Std. ' + (60 - ii) + ' Min.'; } $('#shipping-countdown').html('Versand noch heute bei Bestellung innerhalb von ' + countdownText + '.'); } else { if (shipTomorrow) { $('#shipping-countdown').html('Wenn Sie noch heute bestellen, verlässt die Ware bereits morgen unser Lager.'); } else { $('#shipping-countdown').html('Ihre Bestellung wird vorbereitet, gepackt & schon am nächsten Werktag (Mo-Fr) an Sie versandt!'); } } }, 100); $('#shipping-countdown').css('display', 'block'); } else { $('#shipping-countdown').html(' '); } } document.addEventListener("onVariationChanged", () => { reloadAvailability(); }); reloadAvailability();
WhatsApp
Fragen? Direkt per WhatsApp
pro-manschettenknoepfe.de
(function () { 'use strict'; /* ========================================================= GROM – Live-Gravurvorschau v5.0 Gravurtext: Merkmal 109 Schriftart: Merkmal 110 Anmerkungen: Merkmal 120 (optional) Neu in v5.0: - Alle sechs Schriften werden aus den Zeichensatz-PDFs der Gravurmaschine gezeichnet (Vektor-Glyphdaten statt OTF/PNG-Sprites). Dadurch sind alle Zeichen sichtbar, die die Maschine graviert (Umlaute, ß, Akzente, €, Klammern, $, % …), und die Vorschau zeigt genau die Strichführung der Gravur. - Glyphdaten werden pro Schrift erst bei Auswahl geladen (13–54 KB gzip). - Typografische Zeichen (’ “ ” „ – — …) werden auf vorhandene abgebildet. - Zeichen, die eine Schrift nicht hat, werden unter der Vorschau als Hinweis angezeigt statt stillschweigend zu verschwinden. - Einheitliche Größe: Versalhöhe als Bezug, ein "-" wird nicht mehr riesig aufgeblasen. Unverändert aus v4.1: Doppel-Einbindungsschutz, Render-Token, Debounce, Ein-/Ausblenden mit Plenty-Merkmalen, Anmerkungen-Label. ========================================================= */ if (window.__gromGravurLiveInit) return; window.__gromGravurLiveInit = true; const PREVIEW_H = 52; /* Innenhöhe der Box: 62px - 2 * 5px Padding */ const SHOW_MISSING_HINT = true; const GLYPH_BASE_URL = 'https://cdn02.plentyone.com/f2d5nd8wf1gh/frontend/gravur-fonts/'; /* Optionstext im Plenty-Select → Datei + Darstellung. line: Strichstärke in CSS-Pixeln bei normaler Größe. Mehrlinien-Schriften (3L/4L, AZURE-Schraffur) brauchen feinere Linien, da die Linien dort zusammen den Buchstabenstrich bilden. */ const FONTS = { "AZURE": { file: "gravur-glyphs-azure-v1.js", line: 0.75, upperOnly: true }, "Baby Script 42": { file: "gravur-glyphs-baby-script-42-v1.js", line: 1.25 }, "Optima 3L": { file: "gravur-glyphs-optima-3l-v1.js", line: 0.80 }, "Script 4L": { file: "gravur-glyphs-script-4l-v1.js", line: 0.90 }, "Script Rund 1L": { file: "gravur-glyphs-script-rund-1l-v1.js", line: 1.35 }, "US Block 1L": { file: "gravur-glyphs-us-block-1l-v1.js", line: 1.35 } }; const TARGET_H = 34; /* sichtbare Höhe (CSS-px) für Versalhöhe inkl. Ober-/Unterlängen */ /* Typografische Varianten → Zeichen, die in den Gravurschriften vorkommen. */ const SUBSTITUTE = { '‘': "'", '’': "'", '‚': "'", '‛': "'", '′': "'", '´': "'", '`': "'", '“': '"', '”': '"', '„': '"', '‟': '"', '″': '"', '«': '"', '»': '"', '‐': '-', '‑': '-', '‒': '-', '–': '-', '—': '-', '−': '-', '…': '...', ' ': ' ', ' ': ' ', ' ': ' ', '\t': ' ', '\n': ' ', '\r': ' ', 'ẞ': 'SS' /* großes ẞ hat keine Schrift → SS */ }; window.__gromGravurGlyphs = window.__gromGravurGlyphs || {}; const dataCache = {}; /* Schriftname -> Promise mit Daten */ const pathCache = {}; /* Schriftname → { codepoint: Path2D } */ let renderToken = 0; let debounceTimer = null; /* ---------- Glyphdaten ---------- */ function loadGlyphs(fontName) { if (window.__gromGravurGlyphs[fontName]) { return Promise.resolve(window.__gromGravurGlyphs[fontName]); } if (dataCache[fontName]) return dataCache[fontName]; dataCache[fontName] = new Promise(function (resolve, reject) { const s = document.createElement('script'); s.src = GLYPH_BASE_URL + FONTS[fontName].file; s.async = true; s.onload = function () { const d = window.__gromGravurGlyphs[fontName]; if (d) resolve(d); else { delete dataCache[fontName]; reject(new Error('no data')); } }; s.onerror = function (e) { delete dataCache[fontName]; /* späterer neuer Versuch möglich */ s.remove(); reject(e); }; document.head.appendChild(s); }); return dataCache[fontName]; } function getPath(fontName, data, key) { const cache = pathCache[fontName] || (pathCache[fontName] = {}); if (!cache[key]) cache[key] = new Path2D(data.glyphs[key][5]); return cache[key]; } /* Text → Liste vorhandener Glyphen + Liste fehlender Zeichen. */ function mapText(text, fontName, data) { const cfg = FONTS[fontName]; const has = function (ch) { return !!data.glyphs[String(ch.codePointAt(0))]; }; const glyphs = []; const missing = []; let value = (text || '').normalize ? text.normalize('NFC') : text; Array.from(value).forEach(function (ch) { let candidates = [ch]; if (!has(ch) && SUBSTITUTE[ch] !== undefined) { candidates = Array.from(SUBSTITUTE[ch]); } candidates.forEach(function (c) { if (!has(c) && cfg.upperOnly) { const up = c.toUpperCase(); if (up.length === 1 && has(up)) c = up; else if (up !== c && Array.from(up).every(has)) { /* z. B. ß → SS, falls nötig */ Array.from(up).forEach(function (u) { glyphs.push(String(u.codePointAt(0))); }); return; } } if (has(c)) glyphs.push(String(c.codePointAt(0))); else if (c.trim() && missing.indexOf(c) < 0) missing.push(c); }); }); return { glyphs: glyphs, missing: missing }; } /* ---------- DOM ---------- */ function getTextInput() { return document.querySelector( '#order-property-input-container_109 input, ' + '#order-property-input-container_109 textarea' ); } function getFontSelect() { return document.querySelector('#order-property-input-select_110'); } function getSelectedFontName() { const select = getFontSelect(); if (!select || select.selectedIndex < 0) return ''; const opt = select.options[select.selectedIndex]; return opt ? opt.text.trim() : ''; } function findNotesContainer() { /* Im echten Plenty-DOM ist Anmerkungen Merkmal 120. */ const direct = document.getElementById('order-property-input-container_120'); if (direct) return direct; /* Fallback, falls Plenty die ID irgendwann ändert. */ const containers = document.querySelectorAll('[id^="order-property-input-container_"]'); for (const container of containers) { const labels = container.querySelectorAll('label'); for (const label of labels) { if ((label.textContent || '').trim() === 'Anmerkungen') return container; } } return null; } function getNotesLabel(notesContainer) { if (!notesContainer) return null; const labels = notesContainer.querySelectorAll('label'); for (const label of labels) { if ((label.textContent || '').trim() === 'Anmerkungen') return label; } return null; } function setPreviewState(previewVisible) { const notesContainer = findNotesContainer(); const notesLabel = getNotesLabel(notesContainer); const customNotesLabel = document.getElementById('grom-live-notes-label'); /* Eigenes Label nur zeigen, wenn wir das Plenty-Label tatsächlich ersetzen. */ if (customNotesLabel) { customNotesLabel.style.display = (previewVisible && notesLabel) ? 'block' : 'none'; } if (!notesContainer) return; if (previewVisible) { /* Das absolut positionierte Plenty-Label würde die Vorschau überlagern. */ notesContainer.style.setProperty('padding-top', '0px', 'important'); if (notesLabel) notesLabel.style.setProperty('display', 'none', 'important'); } else { /* Geschlossener Zustand: native Plenty-Beschriftung + 9 px Abstand. */ notesContainer.style.setProperty('padding-top', '9px', 'important'); notesContainer.style.setProperty('box-sizing', 'border-box', 'important'); if (notesLabel) notesLabel.style.removeProperty('display'); } } function ensurePreview() { const input = getTextInput(); const textContainer = document.getElementById('order-property-input-container_109'); if (!input || !textContainer) return null; let wrap = document.getElementById('grom-live-engraving-preview'); if (!wrap) { wrap = document.createElement('div'); wrap.id = 'grom-live-engraving-preview'; wrap.style.cssText = 'display:none;' + 'width:100%;' + 'margin:9px 0 0 0;' + 'padding:0;' + 'box-sizing:border-box;' + 'clear:both;'; const label = document.createElement('div'); label.textContent = 'Gravurvorschau'; label.style.cssText = 'font-size:11px;' + 'font-family:inherit;' + 'font-weight:400;' + 'line-height:1.15;' + 'color:#333;' + 'margin:0 0 4px 0;' + 'padding:0;' + 'text-align:left;'; const box = document.createElement('div'); box.id = 'grom-live-engraving-box'; box.style.cssText = 'width:100%;' + 'height:62px;' + 'padding:5px 8px;' + 'border:0;' + 'background:#f7f7f7;' + 'box-sizing:border-box;' + 'display:flex;' + 'align-items:center;' + 'justify-content:center;' + 'overflow:hidden;'; const canvas = document.createElement('canvas'); canvas.id = 'grom-live-engraving-canvas'; canvas.style.cssText = 'display:block;' + 'width:100%;' + 'height:' + PREVIEW_H + 'px;' + 'margin:0;' + 'padding:0;'; const hint = document.createElement('div'); hint.id = 'grom-live-engraving-hint'; hint.style.cssText = 'display:none;' + 'font-size:11px;' + 'font-family:inherit;' + 'line-height:1.3;' + 'color:#a00;' + 'margin:4px 0 0 0;' + 'padding:0;' + 'text-align:left;'; const customNotesLabel = document.createElement('div'); customNotesLabel.id = 'grom-live-notes-label'; customNotesLabel.textContent = 'Anmerkungen'; customNotesLabel.style.cssText = 'display:none;' + 'font-size:11px;' + 'font-family:inherit;' + 'font-weight:400;' + 'line-height:1.15;' + 'color:#333;' + 'margin:10px 0 4px 0;' + 'padding:0;' + 'text-align:left;'; box.appendChild(canvas); wrap.appendChild(label); wrap.appendChild(box); wrap.appendChild(hint); wrap.appendChild(customNotesLabel); textContainer.insertAdjacentElement('afterend', wrap); } else if (wrap.previousElementSibling !== textContainer) { textContainer.insertAdjacentElement('afterend', wrap); } return wrap; } function setHint(missing) { const hint = document.getElementById('grom-live-engraving-hint'); if (!hint) return; if (!SHOW_MISSING_HINT || !missing || !missing.length) { hint.style.display = 'none'; hint.textContent = ''; return; } hint.textContent = (missing.length === 1 ? 'Dieses Zeichen ist in der gewählten Schrift nicht verfügbar: ' : 'Diese Zeichen sind in der gewählten Schrift nicht verfügbar: ') + missing.join(' '); hint.style.display = 'block'; } function showPreview(wrap) { wrap.style.display = 'block'; setPreviewState(true); } function hidePreview(wrap) { if (wrap) wrap.style.display = 'none'; setHint(null); setPreviewState(false); } /* ---------- Canvas ---------- */ function setupCanvas(canvas) { const box = document.getElementById('grom-live-engraving-box'); if (!box) return null; const dpr = Math.min(window.devicePixelRatio || 1, 2); const cssW = Math.max(1, box.clientWidth - 16); /* 2 * 8px Padding */ const cssH = PREVIEW_H; canvas.width = Math.round(cssW * dpr); canvas.height = Math.round(cssH * dpr); canvas.style.width = cssW + 'px'; canvas.style.height = cssH + 'px'; const ctx = canvas.getContext('2d'); ctx.setTransform(1, 0, 0, 1, 0, 0); ctx.clearRect(0, 0, canvas.width, canvas.height); return { ctx: ctx, dpr: dpr, width: canvas.width, height: canvas.height }; } function drawGlyphs(fontName, data, keys) { const canvas = document.getElementById('grom-live-engraving-canvas'); const state = canvas ? setupCanvas(canvas) : null; if (!state || !keys.length) return; const G = data.glyphs; const cap = data.capHeight; /* Layout in Font-Einheiten (Grundlinie y = 0, y nach unten). */ let x = 0; let minX = Infinity, maxX = -Infinity; let minY = -cap, maxY = 0; /* Bezug: Versalhöhe bis Grundlinie */ const placed = []; keys.forEach(function (k) { const g = G[k]; if (g[5]) { minX = Math.min(minX, x + g[1]); maxX = Math.max(maxX, x + g[3]); minY = Math.min(minY, g[2]); maxY = Math.max(maxY, g[4]); placed.push({ key: k, x: x }); } x += g[0]; }); if (!placed.length) return; /* nur Leerzeichen */ const ctx = state.ctx; const W = state.width; const H = state.height; const dpr = state.dpr; const inkW = Math.max(1, maxX - minX); const inkH = Math.max(1, maxY - minY); const availableW = W - (20 * dpr); let scale = (TARGET_H * dpr) / inkH; if (inkW * scale > availableW) scale = availableW / inkW; const offX = (W - inkW * scale) / 2 - minX * scale; const offY = (H - inkH * scale) / 2 - minY * scale; /* Linienstärke: bei verkleinerten (langen) Texten etwas dünner, aber sichtbar. */ const normalScale = (TARGET_H * dpr) / (cap * 1.45); const shrink = Math.min(1, scale / normalScale); const lineCss = FONTS[fontName].line * Math.max(0.7, Math.sqrt(shrink)); ctx.strokeStyle = '#111'; ctx.lineCap = 'round'; ctx.lineJoin = 'round'; placed.forEach(function (p) { ctx.setTransform(scale, 0, 0, scale, offX + p.x * scale, offY); ctx.lineWidth = (lineCss * dpr) / scale; ctx.stroke(getPath(fontName, data, p.key)); }); ctx.setTransform(1, 0, 0, 1, 0, 0); } /* ---------- Steuerung ---------- */ /* true, wenn das Element im DOM hängt und tatsächlich angezeigt wird. */ function isVisible(el) { if (!el || !el.isConnected) return false; if (!el.getClientRects().length) return false; return window.getComputedStyle(el).visibility !== 'hidden'; } async function renderPreview() { const token = ++renderToken; const input = getTextInput(); const select = getFontSelect(); const textContainer = document.getElementById('order-property-input-container_109'); /* Blendet Plenty Gravurtext oder Schriftart aus (z. B. bei "Lasergravur: Bild/Logo/Wappen"), muss auch die Vorschau verschwinden. */ if (!input || !select || !isVisible(textContainer) || !isVisible(select)) { hidePreview(document.getElementById('grom-live-engraving-preview')); return; } const wrap = ensurePreview(); if (!wrap) return; const text = input.value || ''; const fontName = getSelectedFontName(); if (!text.trim() || !FONTS[fontName]) { hidePreview(wrap); return; } /* Erst sichtbar machen, damit die Box eine Breite hat. */ showPreview(wrap); let data; try { data = await loadGlyphs(fontName); } catch (e) { if (token === renderToken) hidePreview(wrap); /* Daten nicht ladbar → lieber keine Vorschau */ return; } if (token !== renderToken) return; /* inzwischen neuere Eingabe */ const mapped = mapText(text, fontName, data); drawGlyphs(fontName, data, mapped.glyphs); setHint(mapped.missing); } function scheduleRender(delay) { clearTimeout(debounceTimer); debounceTimer = setTimeout(renderPreview, delay || 0); } document.addEventListener('input', function (e) { if (e.target && e.target.closest && e.target.closest('#order-property-input-container_109')) { scheduleRender(60); } }); document.addEventListener('change', function (e) { if (e.target && e.target.id === 'order-property-input-select_110') { scheduleRender(0); return; } /* Jede andere Merkmal-Auswahl (z. B. Gravurart) kann Felder ein- oder ausblenden. Plenty baut das DOM danach neu auf → mehrfach prüfen. */ if (e.target && e.target.closest && e.target.closest('[id^="order-property-input-container_"]')) { scheduleRender(0); setTimeout(renderPreview, 250); setTimeout(renderPreview, 700); } }); document.addEventListener('click', function (e) { if (e.target && e.target.closest && e.target.closest('.properties-toggle')) { setTimeout(renderPreview, 150); setTimeout(renderPreview, 400); } }); document.addEventListener('onVariationChanged', function () { setTimeout(renderPreview, 250); setTimeout(renderPreview, 600); }); window.addEventListener('resize', function () { scheduleRender(120); }); setPreviewState(false); setTimeout(renderPreview, 300); setTimeout(renderPreview, 900); })();
(function () { function fixDuplicateFontPreview() { var container = document.getElementById('order-property-input-container_110'); if (!container) { return; } var images = container.querySelectorAll('img.font-img'); var seenSources = {}; images.forEach(function (img) { var src = img.getAttribute('src'); if (!src) { return; } if (seenSources[src]) { img.style.display = 'none'; } else { img.style.display = 'block'; seenSources[src] = true; } }); } /* Beim Laden */ setTimeout(fixDuplicateFontPreview, 200); setTimeout(fixDuplicateFontPreview, 600); setTimeout(fixDuplicateFontPreview, 1200); /* Beim Öffnen/Schließen der Gravur */ document.addEventListener('click', function (event) { if ( event.target.closest && event.target.closest('.properties-toggle') ) { setTimeout(fixDuplicateFontPreview, 100); setTimeout(fixDuplicateFontPreview, 400); } }); /* Beim Wechsel der Schriftart */ document.addEventListener('change', function (event) { if ( event.target && event.target.id === 'order-property-input-select_110' ) { setTimeout(fixDuplicateFontPreview, 100); setTimeout(fixDuplicateFontPreview, 400); } }); /* Beim Variantenwechsel */ document.addEventListener('onVariationChanged', function () { setTimeout(fixDuplicateFontPreview, 200); setTimeout(fixDuplicateFontPreview, 600); }); })();

Für die Gravur benötigen wir 1-3 Werktage.

Bei Manschettenknöpfen zählen die Zeichen beider Gravuren zusammen (2x GROM = 8 Zeichen). Unterschiedliche Gravuren sind möglich.

Anzahl:
PayPal Klarna Apple Pay Kreditkarten
100 Tage Rückgaberecht

Zeitlose Eleganz und subtile Raffinesse: Mit unseren exquisiten runden, konkaven Manschettenknöpfen aus hochwertigem Silber, veredelt mit einer halbseitigen Onyx-Einlage, verleihen Sie Ihrem Outfit eine markante Note. Das Statement für den stilvollen Gentleman von heute.

  • Marke: BROOKER by grom schmuck
  • Material: massives 925er Sterling Silber
  • Farbe: Silber, Schwarz
  • Form: rund
  • Besonderheit: Onyx-Einlage
  • Maße: 14 mm x 20 mm x 14 mm
  • Gewicht: 12 g je Paar
  • Im Lieferumfang ist das hochwertige Manschettenknopfetui-Etui von BROOKER by grom schmuck enthalten.

    Die runde Form der Manschettenknöpfe sorgt für eine harmonische Ästhetik, während die konkave Oberfläche eine faszinierende Tiefe und Dynamik schafft. Die halbseitige Onyx-Einlage verleiht den Manschettenknöpfen eine zusätzliche Dimension und einen Hauch von Luxus. Das tiefschwarze Onyx symbolisiert Stärke, Selbstvertrauen und Eleganz und verleiht diesem Accessoire eine besondere Ausstrahlung. Die dunkle Farbe des Onyx bildet einen faszinierenden Kontrast zum glänzenden Silber und verleiht den Manschettenknöpfen eine unverwechselbare Eleganz. Diese Manschettenknöpfe sind nicht nur ein stilvolles Accessoire, sondern auch ein Ausdruck von Persönlichkeit und Stilbewusstsein. Sie sind perfekt für formelle Anlässe wie Hochzeiten, Galas oder Geschäftsmeetings, aber auch für den Alltag geeignet, um jedem Outfit einen Hauch von Luxus zu verleihen. Mit ihrer zeitlosen Eleganz sind diese Manschettenknöpfe das ideale Geschenk für den modernen Gentleman. Zeigen Sie Stil und Klasse mit unseren runden, konkaven Manschettenknöpfen aus Silber mit halbseitiger Onyx-Einlage und setzen Sie ein Statement, das Eindruck hinterlässt.

    Per whatsapp:     pro-manschettenknoepfe.de

    Oder per Kontaktformular:

    document.querySelector("form > input[data-mail='subject']").value = "Anfrage zu Artikelnummer: ${ $store.getters.currentItemVariation.variation.number }";

    Sie wollen eine größere Anzahl dieses Artikels bestellen?
    Gerne erstellen wir Ihnen eine individuelles Angebot!

    Für Juweliere, Herrenaustatter, Werbemittelhändler und alle anderen gewerblichen Interessenten haben wir in unserem Händlerbereich Informationen (z.B. zu Themen wie individuellen Gravuren, Drucken und Neuproduktionen, sowie Referenzen und Projektbeispiele) bereit gestellt.

    Für den Zugang zu unseren Händler-Preisen legen Sie sich einfach ein Kundenkonto an und senden uns bitte im Anschluß Ihre Gewerbeanmeldung oder Ihren Handelsregisterauszug an b2b@pro-manschettenknoepfe.de.
    Wir werden Ihr Kundenkonto umgehend als Händlerkonto (ohne Mindestbestellwert) freischalten.
    Es werden Ihnen dann alle Artikel zum Händler-Einkaufspreis angezeigt.

    Für weitere Informationen stehen wir Ihnen gerne zur Verfügung:

    • per eMail: b2b@pro-manschettenknoepfe.de
    • per Telefon: +49 (0)7231 7833570
    BROOKER Fine Cufflinks Produktsicherheitsverordnung (GPSR) Verantwortung
    Grom Schmuck
    Siemensstr. 42
    75217 Birkenfeld
    info@grom-schmuck.de
    +49 (0)7231 7833570

    Weitere Informationen finden Sie hier.

    EMPFEHLUNGEN