{"product_id":"pack-de-6-limes-recip-one-aurora-rogin","title":"Set van 6 Recip-One gouden vijlen - ROGIN","description":"\u003cdiv class=\"oofti-tier-offer\" data-product-handle=\"recip-one-rogin\" data-unit-price-ttc=\"22.80\"\u003e\n  \u003cdiv class=\"oofti-tier-offer__header\"\u003e\n    \u003cstrong\u003eHoeveelheidsaanbieding\u003c\/strong\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"oofti-tier-offer__intro\"\u003e\n    Bespaar meer afhankelijk van de bestelhoeveelheid.\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"oofti-tier-offer__tiers\"\u003e\n    \u003cdiv class=\"oofti-tier-offer__tier\" data-tier=\"1\"\u003e\n      \u003cdiv class=\"oofti-tier-offer__tier-left\"\u003e\n        \u003cstrong\u003eKoop 5-9\u003c\/strong\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"oofti-tier-offer__tier-right\"\u003e\n        bespaar \u003cstrong\u003e5 %\u003c\/strong\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"oofti-tier-offer__tier\" data-tier=\"2\"\u003e\n      \u003cdiv class=\"oofti-tier-offer__tier-left\"\u003e\n        \u003cstrong\u003eKoop 10-49\u003c\/strong\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"oofti-tier-offer__tier-right\"\u003e\n        bespaar \u003cstrong\u003e9 %\u003c\/strong\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"oofti-tier-offer__tier\" data-tier=\"3\"\u003e\n      \u003cdiv class=\"oofti-tier-offer__tier-left\"\u003e\n        \u003cstrong\u003eKoop 50-100\u003c\/strong\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"oofti-tier-offer__tier-right\"\u003e\n        bespaar \u003cstrong\u003e13 %\u003c\/strong\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"oofti-tier-offer__note\"\u003e\n    Korting zichtbaar bij het afrekenen.\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"oofti-tier-offer__progress\"\u003e\n    \u003cdiv class=\"oofti-tier-offer__progress-bar\" data-offer-bar\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"oofti-tier-offer__status\" data-offer-status\u003e\n    Aanbieding wordt gecontroleerd…\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n  .oofti-tier-offer {\n    margin: 16px 0;\n    padding: 16px;\n    border: 1px solid #bfe7df;\n    border-radius: 12px;\n    background: #f6fffc;\n    font-family: inherit;\n  }\n\n  .oofti-tier-offer__header {\n    margin-bottom: 6px;\n    font-size: 16px;\n    line-height: 1.3;\n    color: #163342;\n  }\n\n  .oofti-tier-offer__intro {\n    font-size: 14px;\n    color: #163342;\n    margin-bottom: 12px;\n  }\n\n  .oofti-tier-offer__tiers {\n    display: flex;\n    flex-direction: column;\n    gap: 8px;\n    margin-bottom: 10px;\n  }\n\n  .oofti-tier-offer__tier {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    gap: 12px;\n    padding: 10px 12px;\n    border-radius: 10px;\n    background: #ffffff;\n    border: 1px solid #d9ece7;\n    font-size: 14px;\n    color: #163342;\n  }\n\n  .oofti-tier-offer__tier.is-active {\n    border-color: #39bfa7;\n    background: #ecfbf7;\n  }\n\n  .oofti-tier-offer__tier.is-reached {\n    border-color: #8ad8c7;\n    background: #f3fffb;\n  }\n\n  .oofti-tier-offer__note {\n    font-size: 13px;\n    color: #4f6b78;\n    margin-bottom: 12px;\n  }\n\n  .oofti-tier-offer__progress {\n    width: 100%;\n    height: 10px;\n    background: #dfeceb;\n    border-radius: 999px;\n    overflow: hidden;\n    margin-bottom: 10px;\n  }\n\n  .oofti-tier-offer__progress-bar {\n    height: 100%;\n    width: 0%;\n    border-radius: 999px;\n    background: #39bfa7;\n    transition: width 0.25s ease;\n  }\n\n  .oofti-tier-offer__status {\n    font-size: 14px;\n    color: #163342;\n  }\n\u003c\/style\u003e\n\n\u003cscript\u003e\n  (function() {\n    const container = document.querySelector('.oofti-tier-offer');\n    if (!container) return;\n\n    const productHandle = container.getAttribute('data-product-handle');\n    const unitPriceTTC = Number(container.getAttribute('data-unit-price-ttc')) || 22.8;\n\n    const statusEl = container.querySelector('[data-offer-status]');\n    const barEl = container.querySelector('[data-offer-bar]');\n    const tierEls = container.querySelectorAll('.oofti-tier-offer__tier');\n\n    const tiers = [\n      { min: 5, max: 9, discount: 5 },\n      { min: 10, max: 11, discount: 9 },\n      { min: 50, max: 100, discount: 13 }\n    ];\n\n    function formatEuro(value) {\n      return value.toLocaleString('fr-FR', {\n        style: 'currency',\n        currency: 'EUR'\n      });\n    }\n\n    function clearTierStates() {\n      tierEls.forEach(function(el) {\n        el.classList.remove('is-active');\n        el.classList.remove('is-reached');\n      });\n    }\n\n    function markTierState(qty) {\n      clearTierStates();\n\n      tierEls.forEach(function(el, index) {\n        const tier = tiers[index];\n        if (!tier) return;\n\n        if (qty \u003e= tier.min \u0026\u0026 qty \u003c= tier.max) {\n          el.classList.add('is-active');\n        } else if (qty \u003e tier.max) {\n          el.classList.add('is-reached');\n        }\n      });\n    }\n\n    function getCurrentTier(qty) {\n      return tiers.find(function(tier) {\n        return qty \u003e= tier.min \u0026\u0026 qty \u003c= tier.max;\n      });\n    }\n\n    function getNextTier(qty) {\n      return tiers.find(function(tier) {\n        return qty \u003c tier.min;\n      });\n    }\n\n    function updateProgress(qty) {\n      let progress = 0;\n\n      if (qty \u003c= 0) {\n        progress = 0;\n      } else if (qty \u003c 5) {\n        progress = (qty \/ 5) * 100;\n      } else if (qty \u003c 10) {\n        progress = 100;\n      } else if (qty \u003c 50) {\n        progress = 100;\n      } else {\n        progress = 100;\n      }\n\n      if (barEl) {\n        barEl.style.width = Math.min(progress, 100) + '%';\n      }\n    }\n\n    function updateUI(qty) {\n      markTierState(qty);\n      updateProgress(qty);\n\n      const currentTier = getCurrentTier(qty);\n      const nextTier = getNextTier(qty);\n\n      if (qty \u003c 5) {\n        const remaining = 5 - qty;\n        statusEl.innerHTML =\n          'Ajoutez encore \u003cstrong\u003e' + remaining + '\u003c\/strong\u003e unité' + (remaining \u003e 1 ? 's' : '') +\n          ' pour débloquer \u003cstrong\u003e5 %\u003c\/strong\u003e de remise.';\n        return;\n      }\n\n      if (currentTier) {\n        const unitAfter = unitPriceTTC * (1 - currentTier.discount \/ 100);\n        statusEl.innerHTML =\n          '✅ Offre active : \u003cstrong\u003e' + currentTier.discount + ' %\u003c\/strong\u003e de remise appliquée, soit \u003cstrong\u003e' +\n          formatEuro(unitAfter) + '\u003c\/strong\u003e TTC par unité.';\n        return;\n      }\n\n      if (qty \u003e= 12 \u0026\u0026 qty \u003c 50) {\n        const remaining = 50 - qty;\n        statusEl.innerHTML =\n          'Aucun palier promo entre \u003cstrong\u003e12\u003c\/strong\u003e et \u003cstrong\u003e49\u003c\/strong\u003e unités dans cette configuration. Ajoutez encore \u003cstrong\u003e' +\n          remaining + '\u003c\/strong\u003e unité' + (remaining \u003e 1 ? 's' : '') +\n          ' pour atteindre \u003cstrong\u003e13 %\u003c\/strong\u003e.';\n        return;\n      }\n\n      if (qty \u003e 100) {\n        statusEl.innerHTML =\n          '✅ Vous avez dépassé le palier affiché de \u003cstrong\u003e100\u003c\/strong\u003e unités. Vérifiez dans BOGOS si la remise doit continuer au-delà.';\n        return;\n      }\n\n      if (nextTier) {\n        const remaining = nextTier.min - qty;\n        statusEl.innerHTML =\n          'Ajoutez encore \u003cstrong\u003e' + remaining + '\u003c\/strong\u003e unité' + (remaining \u003e 1 ? 's' : '') +\n          ' pour atteindre \u003cstrong\u003e' + nextTier.discount + ' %\u003c\/strong\u003e de remise.';\n        return;\n      }\n\n      statusEl.innerHTML = 'Remise visible au moment du paiement.';\n    }\n\n    function itemMatchesProduct(item) {\n      if (!item) return false;\n\n      if (item.handle \u0026\u0026 item.handle === productHandle) {\n        return true;\n      }\n\n      if (item.url \u0026\u0026 item.url.indexOf('\/products\/' + productHandle) !== -1) {\n        return true;\n      }\n\n      return false;\n    }\n\n    async function refreshOffer() {\n      try {\n        const res = await fetch('\/cart.js', { credentials: 'same-origin' });\n        const cart = await res.json();\n\n        let totalQty = 0;\n\n        if (cart \u0026\u0026 cart.items \u0026\u0026 Array.isArray(cart.items)) {\n          cart.items.forEach(function(item) {\n            if (itemMatchesProduct(item)) {\n              totalQty += Number(item.quantity || 0);\n            }\n          });\n        }\n\n        updateUI(totalQty);\n      } catch (error) {\n        statusEl.textContent = 'Remise visible au moment du paiement.';\n      }\n    }\n\n    refreshOffer();\n\n    document.addEventListener('DOMContentLoaded', refreshOffer);\n    document.addEventListener('cart:refresh', refreshOffer);\n    document.addEventListener('ajaxProduct:added', refreshOffer);\n\n    document.addEventListener('click', function(e) {\n      const btn = e.target.closest('button[type=\"submit\"], [name=\"add\"], .shopify-payment-button__button');\n      if (!btn) return;\n      setTimeout(refreshOffer, 1200);\n    });\n\n    const cartDrawer = document.querySelector('cart-drawer, .drawer, .cart-drawer');\n    if (cartDrawer \u0026\u0026 window.MutationObserver) {\n      const observer = new MutationObserver(function() {\n        refreshOffer();\n      });\n      observer.observe(cartDrawer, { childList: true, subtree: true });\n    }\n  })();\n\u003c\/script\u003e\n\n\n\u003cp\u003eReciprociteitsinstrument voor wortelkanaalbehandeling. Instrument in steriele blister, aanbevolen voor eenmalig gebruik om constante snijprestaties te garanderen, het risico op breuken te verminderen en kruisbesmetting te voorkomen.\u003c\/p\u003e\n\u003cp\u003e\u003cspan style=\"color: rgb(64, 64, 64);\"\u003e\u003cstrong\u003e\"We hebben deze vijlen laten testen door talrijke exclusieve endodontisten, en het oordeel is duidelijk: « De Recip-One blauwe vijlen zijn op alle punten vergelijkbaar met de beste vijlen op de markt, bieden ongeëvenaarde prestaties, uitzonderlijke duurzaamheid en onvergelijkbare precisie. » Hun unanieme feedback bevestigt de superieure kwaliteit en onbetwiste betrouwbaarheid van dit product, ontworpen om te voldoen aan de eisen van de meest veeleisende klinische praktijken.\"\u003c\/strong\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003eDe Recip-One vijlen zijn verkrijgbaar in drie versies met verschillende kenmerken die zijn afgestemd op de specifieke behoeften van beoefenaars:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eRecip-One Zilveren\u003c\/strong\u003e: Zeer efficiënt in werk en snijprestaties, ontworpen voor rechte kanalen. Hun stijfheid maakt ze minder flexibel, maar hun snijcapaciteit is optimaal in gevallen waar de kromming van het kanaal minimaal is.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eRecip-One Blauwe\u003c\/strong\u003e: Deze vijlen zijn extreem flexibel, waardoor ze ideaal zijn voor kanalen met sterke krommingen. Hun flexibiliteit zorgt voor een nauwkeurige aanpassing aan de contouren van het kanaal, waardoor het risico op afwijkingen en breuken wordt geminimaliseerd.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eRecip-One Gouden\u003c\/strong\u003e: Deze gouden vijlen combineren flexibiliteit en snijcapaciteit en bieden een perfecte balans tussen werk en hanteerbaarheid. Ze zijn ideaal voor gemengde kanalen, dat wil zeggen kanalen die zowel een goede snijcapaciteit als enige flexibiliteit vereisen.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eElk type vijl is ontworpen om te voldoen aan de specificaties van endodontische behandelingen, waardoor beoefenaars een keuze hebben die past bij de complexiteit van de te behandelen kanalen.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003eWe bieden u voor dit product de varianten aan \u003c\/p\u003e\n\u003cp\u003eLengte: 21, 25, 31 mm\u003c\/p\u003e\n\u003cp\u003eType:\u003c\/p\u003e\n\u003cp\u003e#25 met 8% coniciteit,\u003cspan\u003e \u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan data-mce-fragment=\"1\"\u003e#\u003c\/span\u003e40\u003cspan\u003e \u003c\/span\u003e\u003cspan data-mce-fragment=\"1\"\u003emet 6\u003c\/span\u003e\u003cspan data-mce-fragment=\"1\"\u003e% coniciteit\u003c\/span\u003e,\u003c\/p\u003e\n\u003cp\u003e\u003cspan data-mce-fragment=\"1\"\u003e#\u003c\/span\u003e\u003cspan\u003e \u003c\/span\u003e50 \u003cspan data-mce-fragment=\"1\"\u003emet 5\u003c\/span\u003e\u003cspan data-mce-fragment=\"1\"\u003e% coniciteit\u003c\/span\u003e\u003cspan\u003e \u003c\/span\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cdiv style=\"text-align: left;\"\u003e\u003cimg style=\"float: none;\" alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0335\/9873\/4474\/files\/reciponecross_100x100.jpg?v=1603209004\"\u003e\u003c\/div\u003e\n\u003cp\u003e\u003cspan\u003eDe S-vorm (doorsnede) verbetert de flexibiliteit. \u003cstrong\u003eMet één instrument kan een wortelkanaal worden voorbereid.\u003c\/strong\u003e\u003cbr\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eVerkocht per set van 6 vijlen \u003c\/span\u003e\u003c\/p\u003e","brand":"Dental Coop","offers":[{"title":"L 25mm, #25","offer_id":53752482693447,"sku":"RECIPLIMAU_25_25","price":19.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0335\/9873\/4474\/files\/sup-taper-files-aurora-version.webp?v=1776766157","url":"https:\/\/oofti.fr\/nl\/products\/pack-de-6-limes-recip-one-aurora-rogin","provider":"oofti.fr","version":"1.0","type":"link"}