{"id":13005,"date":"2025-11-11T15:21:01","date_gmt":"2025-11-11T13:21:01","guid":{"rendered":"https:\/\/www.dutchblue.com\/?page_id=13005"},"modified":"2026-05-15T15:12:15","modified_gmt":"2026-05-15T12:12:15","slug":"vendors","status":"publish","type":"page","link":"https:\/\/www.dutchblue.com\/en\/vendors\/","title":{"rendered":"Vendors"},"content":{"rendered":"\n\n\t<section class=\"section section_categories\" id=\"section_1352512922\">\n\t\t<div class=\"section-bg fill\" >\n\t\t\t\t\t\t\t\t\t\n\t\t\t\n\n\t\t<\/div>\n\n\t\t\n\n\t\t<div class=\"section-content relative\">\n\t\t\t\n\n<div class=\"row\"  id=\"row-432794380\">\n\n\n\t<div id=\"col-791802369\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner\"  >\n\t\t\t\n\t\t\t\n\n\n\n<div class=\"section_categories\">\n  <div class=\"categories\">\n    <h3>Neue Lieferanten<\/h3>\n  <\/div>\n\n  <!-- Vendors -->\n  <div class=\"vendors-container\">\n    <div id=\"vendors\" class=\"vendors-bar\">\n      <div class=\"vendors container\">\n\n        <div class=\"row vendors-row slider row-slider large-columns-7 medium-columns-4 small-columns-3 slider-nav-simple slider-nav-light slider-nav-push is-draggable\"\n          data-flickity-options='{\n            \"imagesLoaded\": true,\n            \"groupCells\": \"100%\",\n            \"dragThreshold\": 5,\n            \"cellAlign\": \"left\",\n            \"wrapAround\": false,\n            \"prevNextButtons\": false,\n            \"percentPosition\": true,\n            \"pageDots\": true,\n            \"rightToLeft\": false,\n            \"draggable\": true,\n            \"cellSelector\": \".vendor-cat\"\n          }'>\n\n          <!-- Dr. Schumacher -->\n          <div class=\"col vendor-cat\">\n            <div class=\"col-inner text-center\">\n              <a href=\"#dr-shumacher\" class=\"plain\">\n                <div class=\"slide_img\">\n                  <img decoding=\"async\" src=\"\/wp-content\/uploads\/dr_shumacher.svg\" alt=\"Dr. Schumacher\">\n                <\/div>\n              <\/a>\n            <\/div>\n          <\/div>\n\n          <!-- Gloup -->\n          <div class=\"col vendor-cat\">\n            <div class=\"col-inner text-center\">\n              <a href=\"#gloup\" class=\"plain\">\n                <div class=\"slide_img\">\n                  <img decoding=\"async\" src=\"\/wp-content\/uploads\/gloup.svg\" alt=\"Gloup\">\n                <\/div>\n              <\/a>\n            <\/div>\n          <\/div>\n\n          <!-- Invacare -->\n          <div class=\"col vendor-cat\">\n            <div class=\"col-inner text-center\">\n              <a href=\"#invacare\" class=\"plain\">\n                <div class=\"slide_img\">\n                  <img decoding=\"async\" src=\"\/wp-content\/uploads\/invacare.svg\" alt=\"Invacare\">\n                <\/div>\n              <\/a>\n            <\/div>\n          <\/div>\n\n          <!-- Jonova -->\n          <div class=\"col vendor-cat\">\n            <div class=\"col-inner text-center\">\n              <a href=\"#jonova\" class=\"plain\">\n                <div class=\"slide_img\">\n                  <img decoding=\"async\" src=\"\/wp-content\/uploads\/jonova.svg\" alt=\"Jonova\">\n                <\/div>\n              <\/a>\n            <\/div>\n          <\/div>\n\n          <!-- Kern -->\n          <div class=\"col vendor-cat\">\n            <div class=\"col-inner text-center\">\n              <a href=\"#kern\" class=\"plain\">\n                <div class=\"slide_img\">\n                  <img decoding=\"async\" src=\"\/wp-content\/uploads\/kern.svg\" alt=\"Kern\">\n                <\/div>\n              <\/a>\n            <\/div>\n          <\/div>\n\n          <!-- MaiMed -->\n          <div class=\"col vendor-cat\">\n            <div class=\"col-inner text-center\">\n              <a href=\"#maimed\" class=\"plain\">\n                <div class=\"slide_img\">\n                  <img decoding=\"async\" src=\"\/wp-content\/uploads\/maimed.svg\" alt=\"MaiMed\">\n                <\/div>\n              <\/a>\n            <\/div>\n          <\/div>\n\n          <!-- Metzeler -->\n          <div class=\"col vendor-cat\">\n            <div class=\"col-inner text-center\">\n              <a href=\"#metzeler\" class=\"plain\">\n                <div class=\"slide_img\">\n                  <img decoding=\"async\" src=\"\/wp-content\/uploads\/metzeler.svg\" alt=\"Metzeler\">\n                <\/div>\n              <\/a>\n            <\/div>\n          <\/div>\n\n          <!-- Petermann -->\n          <div class=\"col vendor-cat\">\n            <div class=\"col-inner text-center\">\n              <a href=\"#petermann\" class=\"plain\">\n                <div class=\"slide_img\">\n                  <img decoding=\"async\" src=\"\/wp-content\/uploads\/petermann.svg\" alt=\"Petermann\">\n                <\/div>\n              <\/a>\n            <\/div>\n          <\/div>\n\n          <!-- SENI -->\n          <div class=\"col vendor-cat\">\n            <div class=\"col-inner text-center\">\n              <a href=\"#seni\" class=\"plain\">\n                <div class=\"slide_img\">\n                  <img decoding=\"async\" src=\"\/wp-content\/uploads\/seni.svg\" alt=\"SENI\">\n                <\/div>\n              <\/a>\n            <\/div>\n          <\/div>\n\n          <!-- SingLiesel -->\n          <div class=\"col vendor-cat\">\n            <div class=\"col-inner text-center\">\n              <a href=\"#sing-liesel\" class=\"plain\">\n                <div class=\"slide_img\">\n                  <img decoding=\"async\" src=\"\/wp-content\/uploads\/sing_liesel.svg\" alt=\"SingLiesel\">\n                <\/div>\n              <\/a>\n            <\/div>\n          <\/div>\n\n          <!-- Soehngen -->\n          <div class=\"col vendor-cat\">\n            <div class=\"col-inner text-center\">\n              <a href=\"#soehngen\" class=\"plain\">\n                <div class=\"slide_img\">\n                  <img decoding=\"async\" src=\"\/wp-content\/uploads\/soehngen.svg\" alt=\"Soehngen\">\n                <\/div>\n              <\/a>\n            <\/div>\n          <\/div>\n\n          <!-- Softline -->\n          <div class=\"col vendor-cat\">\n            <div class=\"col-inner text-center\">\n              <a href=\"#softline\" class=\"plain\">\n                <div class=\"slide_img\">\n                  <img decoding=\"async\" src=\"\/wp-content\/uploads\/softline.svg\" alt=\"Softline\">\n                <\/div>\n              <\/a>\n            <\/div>\n          <\/div>\n\n          <!-- Theocare -->\n          <div class=\"col vendor-cat\">\n            <div class=\"col-inner text-center\">\n              <a href=\"#theocare\" class=\"plain\">\n                <div class=\"slide_img\">\n                  <img decoding=\"async\" src=\"\/wp-content\/uploads\/theo_care.svg\" alt=\"Theocare\">\n                <\/div>\n              <\/a>\n            <\/div>\n          <\/div>\n\n          <!-- Florett \/ Varomed logo -->\n          <div class=\"col vendor-cat\">\n            <div class=\"col-inner text-center\">\n              <a href=\"#florett\" class=\"plain\">\n                <div class=\"slide_img\">\n                  <img decoding=\"async\" src=\"\/wp-content\/uploads\/varomed.svg\" alt=\"Varomed\">\n                <\/div>\n              <\/a>\n            <\/div>\n          <\/div>\n\n        <\/div><!-- \/.row -->\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- Single products area: only one vendor loads at a time -->\n  <div id=\"vendor-products\" class=\"product-vendor\">\n    <div class=\"categories\">\n      <h3 id=\"vendor-title\">Dr. Schumacher<\/h3>\n    <\/div>\n\n    <div class=\"section_slider_mobile\">\n      <div class=\"vp-wrap\" data-vendor=\"Dr. Schumacher\" data-meta-key=\"Vendor\" data-orderby=\"menu_order\" data-order=\"ASC\" data-per-page=\"-1\" data-chunk=\"24\" data-page=\"0\" data-has-more=\"1\" data-cache-minutes=\"60\" data-lang=\"\" data-single=\"1\"><div class=\"products row row-small large-columns-4 medium-columns-3 small-columns-2 has-shadow row-box-shadow-1 row-box-shadow-2-hover has-equal-box-heights equalize-box\">\n<\/div><!-- row -->\n<div class=\"vp-sentinel is-loading\" aria-hidden=\"true\">  <span class=\"vp-spinner\" aria-hidden=\"true\"><\/span><\/div><\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', function () {\n\n  \/* --------------------------------------------------------------------------\n   * 1. Sticky vendors bar basics\n   * -------------------------------------------------------------------------- *\/\n  var vendorsBar = document.getElementById('vendors');\n  var triggerTop = vendorsBar ? vendorsBar.offsetTop : 0;\n  var lastScrollY = window.scrollY;\n\n  function recalcTrigger(){\n    triggerTop = vendorsBar ? vendorsBar.offsetTop : 0;\n  }\n\n  window.addEventListener('load', recalcTrigger);\n  window.addEventListener('resize', recalcTrigger);\n\n  var mqMobile = window.matchMedia('(max-width: 849px)');\n\n\n  \/* --------------------------------------------------------------------------\n   * 2. Flickity slider: mobile only\n   * -------------------------------------------------------------------------- *\/\n  var vendorsSlider = document.querySelector('.vendors-row.slider');\n  var flkty = null;\n\n  function cleanupFlickityDom(){\n    if (!vendorsSlider) return;\n\n    var vp = vendorsSlider.querySelector('.flickity-viewport');\n    var sl = vendorsSlider.querySelector('.flickity-slider');\n\n    if (vp) vp.removeAttribute('style');\n    if (sl) sl.removeAttribute('style');\n\n    vendorsSlider.removeAttribute('style');\n  }\n\n  function getFlickityInstance(){\n    if (!vendorsSlider || !window.jQuery) return null;\n\n    var inst = null;\n\n    try {\n      inst = window.jQuery(vendorsSlider).data('flickity') || null;\n    } catch(e){}\n\n    return inst;\n  }\n\n  function ensureFlickityMobileOnly() {\n    if (!vendorsSlider || !window.jQuery) return;\n\n    if (mqMobile.matches) {\n      flkty = getFlickityInstance() || flkty || null;\n\n      if (flkty && typeof flkty.resize === 'function') {\n        try {\n          flkty.resize();\n        } catch(e){}\n      }\n    } else {\n      try {\n        var inst = getFlickityInstance();\n\n        if (inst && typeof inst.destroy === 'function') {\n          inst.destroy();\n        }\n      } catch(e){}\n\n      flkty = null;\n      cleanupFlickityDom();\n    }\n\n    recalcTrigger();\n  }\n\n  ensureFlickityMobileOnly();\n  setTimeout(ensureFlickityMobileOnly, 0);\n  setTimeout(ensureFlickityMobileOnly, 150);\n  setTimeout(ensureFlickityMobileOnly, 500);\n\n  window.addEventListener('load', function(){\n    ensureFlickityMobileOnly();\n    setTimeout(ensureFlickityMobileOnly, 150);\n    setTimeout(ensureFlickityMobileOnly, 500);\n  });\n\n  mqMobile.addEventListener('change', function(){\n    ensureFlickityMobileOnly();\n  });\n\n\n  \/* --------------------------------------------------------------------------\n   * 3. Vendor data and helpers\n   * -------------------------------------------------------------------------- *\/\n  var vendorItems = new Array();\n  var allVendorLinks = document.querySelectorAll('.vendors-row .col.vendor-cat a');\n\n  var productsRoot = document.getElementById('vendor-products');\n  var titleEl = document.getElementById('vendor-title');\n\n  function cleanHash(hash) {\n    return decodeURIComponent((hash || '').replace('#', '').trim()).toLowerCase();\n  }\n\n  function mapSlugToVendorValue(slug){\n    slug = cleanHash(slug);\n\n    switch (slug) {\n      case 'maimed': return 'MaiMed';\n      case 'jonova': return 'Jonova';\n      case 'soehngen': return 'Soehngen';\n      case 'petermann': return 'Petermann';\n      case 'metzeler': return 'Metzeler';\n      case 'softline': return 'Softline';\n      case 'dr-shumacher': return 'Dr. Schumacher';\n      case 'dr-schumacher': return 'Dr. Schumacher';\n      case 'kern': return 'Kern';\n      case 'gloup': return 'Gloup';\n      case 'tzmo': return 'TZMO';\n      case 'seni': return 'SENI';\n      case 'sing-liesel': return 'SingLiesel';\n      case 'florett': return 'Florett';\n      case 'invacare': return 'Invacare';\n      case 'theocare': return 'Theocare';\n      default: return slug;\n    }\n  }\n\n  function getWrap(){\n    return productsRoot ? productsRoot.querySelector('.vp-wrap') : null;\n  }\n\n  function callWrapLoad(vendorValue){\n    var wrap = getWrap();\n\n    if (!wrap) return false;\n    if (typeof wrap.vpLoadVendor !== 'function') return false;\n\n    wrap.vpLoadVendor(vendorValue);\n    return true;\n  }\n\n  function scrollToProducts(){\n    if (!productsRoot) return;\n\n    var offset = vendorsBar ? vendorsBar.offsetHeight + 10 : 10;\n    var y = productsRoot.getBoundingClientRect().top + window.pageYOffset - offset;\n\n    window.scrollTo({\n      top: y,\n      behavior: 'smooth'\n    });\n  }\n\n\n  \/* --------------------------------------------------------------------------\n   * 4. Active vendor UI\n   * -------------------------------------------------------------------------- *\/\n  function selectActiveVendorCell(activeElement, activeIndex, retry){\n    if (!mqMobile.matches || !activeElement) return;\n\n    ensureFlickityMobileOnly();\n\n    var inst = getFlickityInstance();\n\n    if (inst) {\n      flkty = inst;\n\n      try {\n        if (typeof inst.resize === 'function') {\n          inst.resize();\n        }\n\n        if (typeof inst.selectCell === 'function') {\n          inst.selectCell(activeElement, false, false);\n          return;\n        }\n\n        if (typeof inst.select === 'function' && activeIndex >= 0) {\n          inst.select(activeIndex);\n          return;\n        }\n      } catch(e){}\n    }\n\n    if (retry) {\n      setTimeout(function(){\n        selectActiveVendorCell(activeElement, activeIndex, false);\n      }, 250);\n    }\n  }\n\n  function setActiveVendor(id, shouldSlide) {\n    ensureFlickityMobileOnly();\n\n    var activeIndex = -1;\n    var activeElement = null;\n\n    vendorItems.forEach(function (entry) {\n      if (entry.id === id) {\n        entry.el.classList.add('is-active');\n        activeIndex = entry.index;\n        activeElement = entry.el;\n      } else {\n        entry.el.classList.remove('is-active');\n      }\n    });\n\n    if (shouldSlide) {\n      selectActiveVendorCell(activeElement, activeIndex, true);\n\n      setTimeout(function(){\n        selectActiveVendorCell(activeElement, activeIndex, true);\n      }, 150);\n\n      setTimeout(function(){\n        selectActiveVendorCell(activeElement, activeIndex, false);\n      }, 500);\n    }\n  }\n\n  function findVendorEntry(id) {\n    id = cleanHash(id);\n\n    var found = null;\n\n    vendorItems.forEach(function(entry){\n      if (!found && entry.id === id) {\n        found = entry;\n      }\n    });\n\n    return found;\n  }\n\n\n  \/* --------------------------------------------------------------------------\n   * 5. Load vendor products\n   * -------------------------------------------------------------------------- *\/\n  function loadVendorById(id, options) {\n    options = options || {};\n\n    var entry = findVendorEntry(id);\n    if (!entry) return false;\n\n    var vendorValue = mapSlugToVendorValue(entry.id);\n\n    if (titleEl) {\n      var img = entry.link.querySelector('img');\n      var alt = img && img.alt ? img.alt : vendorValue;\n\n      titleEl.textContent = alt;\n    }\n\n    setActiveVendor(entry.id, !!options.slide);\n\n    if (options.updateHash) {\n      history.pushState(null, '', '#' + entry.id);\n    }\n\n    if (options.scroll) {\n      scrollToProducts();\n    }\n\n    if (!callWrapLoad(vendorValue)) {\n      var tries = 0;\n\n      var t = setInterval(function(){\n        tries++;\n\n        if (callWrapLoad(vendorValue) || tries > 60) {\n          clearInterval(t);\n        }\n      }, 50);\n    }\n\n    return true;\n  }\n\n\n  \/* --------------------------------------------------------------------------\n   * 6. Register vendor links\n   * -------------------------------------------------------------------------- *\/\n  allVendorLinks.forEach(function (link) {\n    var href = link.getAttribute('href') || '';\n\n    if (href.indexOf('#') !== 0) return;\n\n    var id = cleanHash(href);\n    if (!id) return;\n\n    var item = link.closest('.col.vendor-cat');\n    if (!item) return;\n\n    var index = vendorItems.length;\n\n    vendorItems.push({\n      id: id,\n      el: item,\n      index: index,\n      link: link\n    });\n\n    link.addEventListener('click', function (e) {\n      e.preventDefault();\n\n      loadVendorById(id, {\n        slide: true,\n        scroll: true,\n        updateHash: true\n      });\n    });\n  });\n\n  if (!vendorItems.length) return;\n\n\n  \/* --------------------------------------------------------------------------\n   * 7. Initial load: direct hash or first vendor\n   * -------------------------------------------------------------------------- *\/\n  var hashVendor = cleanHash(window.location.hash);\n\n  var firstVendor = vendorItems.find(function(entry){\n    return !!entry;\n  });\n\n  if (hashVendor && findVendorEntry(hashVendor)) {\n    loadVendorById(hashVendor, {\n      slide: true,\n      scroll: true,\n      updateHash: false\n    });\n  } else if (firstVendor) {\n    loadVendorById(firstVendor.id, {\n      slide: false,\n      scroll: false,\n      updateHash: false\n    });\n  }\n\n\n  \/* --------------------------------------------------------------------------\n   * 8. Browser back\/forward hash support\n   * -------------------------------------------------------------------------- *\/\n  window.addEventListener('hashchange', function () {\n    var id = cleanHash(window.location.hash);\n\n    if (id && findVendorEntry(id)) {\n      loadVendorById(id, {\n        slide: true,\n        scroll: true,\n        updateHash: false\n      });\n    }\n  });\n\n\n  \/* --------------------------------------------------------------------------\n   * 9. Sticky bar show\/hide: mobile only\n   * -------------------------------------------------------------------------- *\/\n  var ticking = false;\n\n  function handleScroll() {\n    if (ticking) return;\n\n    ticking = true;\n\n    window.requestAnimationFrame(function(){\n      ticking = false;\n\n      var currentY = window.scrollY;\n\n      if (!vendorsBar) {\n        lastScrollY = currentY;\n        return;\n      }\n\n      if (!mqMobile.matches) {\n        vendorsBar.classList.remove('vendors-sticky', 'vendors-visible');\n        lastScrollY = currentY;\n        return;\n      }\n\n      if (currentY <= triggerTop) {\n        vendorsBar.classList.remove('vendors-sticky', 'vendors-visible');\n        lastScrollY = currentY;\n        return;\n      }\n\n      vendorsBar.classList.add('vendors-sticky');\n\n      var goingDown = currentY > lastScrollY;\n      var goingUp = currentY < lastScrollY;\n\n      if (goingUp) {\n        vendorsBar.classList.add('vendors-visible');\n      } else if (goingDown) {\n        vendorsBar.classList.remove('vendors-visible');\n      }\n\n      lastScrollY = currentY;\n    });\n  }\n\n  window.addEventListener('scroll', handleScroll, { passive: true });\n\n});\n<\/script>\n\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n<\/div>\n\n\t\t<\/div>\n\n\t\t\n<style>\n#section_1352512922 {\n  padding-top: 30px;\n  padding-bottom: 30px;\n}\n<\/style>\n\t<\/section>\n\t\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-13005","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.dutchblue.com\/en\/wp-json\/wp\/v2\/pages\/13005","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dutchblue.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.dutchblue.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.dutchblue.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dutchblue.com\/en\/wp-json\/wp\/v2\/comments?post=13005"}],"version-history":[{"count":66,"href":"https:\/\/www.dutchblue.com\/en\/wp-json\/wp\/v2\/pages\/13005\/revisions"}],"predecessor-version":[{"id":21369,"href":"https:\/\/www.dutchblue.com\/en\/wp-json\/wp\/v2\/pages\/13005\/revisions\/21369"}],"wp:attachment":[{"href":"https:\/\/www.dutchblue.com\/en\/wp-json\/wp\/v2\/media?parent=13005"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}