Together
for Quality

We are
Oudijk Gerbera

A progressive family business that sees opportunities to learn and improve every day. We believe that we can only provide our customers with top quality Germinis if we work together as a team with passion and continuously improve our processes. Proudly serving our loyal customers every day since 1975.

Our ambition is to continuously compete at the top and be among the best growers in the industry. We do this by working together and learning from others. Our focus is not only quality, but we also work continuously on innovation and sustainability. We innovate our processes to smartly and quickly deliver all our varieties to customer specifications. In addition to customer and market needs, we consider our environment and provide sustainable solutions. Our goal is to minimize our footprint by reducing all aspects that impact it.

Albino

Lobby

Café

Delmonte

Flamazing

Max

Cookies ‘n Cream

Tiptop

Prosecco

Everton

Tahiti

Esmée

Sary

Jagoda

Nirvana

GolfGolf

Tracy

Snuffy

Floyd

Beaker

Discover all our species

We proudly present our wide assortment of over 82 varieties of Germinis. Each Germini is selected for its unique external characteristics and top quality for a beautiful and good vase life.

/* Code from https://element.how/elementor-horizontal-scroll-containers/ * Copyright 2023 Element.How * Licensed for personal and commercial use for customers who purchased access * No redistribution or resale allowed */ document.addEventListener('DOMContentLoaded', function () { let horizontalScrollContainers = document.querySelectorAll('.horizontalScrollContainer'); horizontalScrollContainers.forEach((horizontalScrollContainer) => { let speedMultipliers = { desktop: 1.4, tablet: 1.2, mobile: 1, } /* greater value = faster, 1 = default */ let horizontalScrollTranslate = horizontalScrollContainer.querySelector('.horizontalScrollTranslate'); let horizontalScrollParent = horizontalScrollContainer.parentElement; let scrolledRatio = 0; let horizontalScrollContainerTop, horizontalScrollHeight, horizontalScrollTranslateWidth, widthToScroll, windowWidth, mult; function updateValues() { windowWidth = window.innerWidth; windowWidth > 1024? mult = speedMultipliers.desktop : windowWidth > 767? mult = speedMultipliers.tablet : mult = speedMultipliers.mobile; horizontalScrollTranslateWidth = horizontalScrollTranslate.offsetWidth; horizontalScrollParent.style.height = window.innerHeight + horizontalScrollTranslateWidth / mult + 'px'; horizontalScrollHeight = horizontalScrollParent.offsetHeight; widthToScroll = horizontalScrollTranslateWidth - windowWidth; horizontalScrollContainerTop = (window.innerHeight - horizontalScrollContainer.offsetHeight) / 2; horizontalScrollContainer.style.top = `${horizontalScrollContainerTop}px`; } updateValues(); /* update values on resize event */ window.addEventListener('resize', () => { if (windowWidth !== window.innerWidth) updateValues(); }); let isUpdateScheduled = false; function manageScroll() { let horizontalScrollTop = horizontalScrollParent.getBoundingClientRect().top; let windowHeight = window.innerHeight; scrolledRatio = (horizontalScrollTop - horizontalScrollContainerTop) / (horizontalScrollHeight - horizontalScrollContainer.offsetHeight - 100) * -1; /* removing 100px to make it sticky a bit longer after it reaches the end, for better UX */ /* clamp scrolledRatio in between 0 and 1 */ scrolledRatio = Math.min(Math.max(scrolledRatio, 0), 1); horizontalScrollTranslate.style.transform = `translateX(${scrolledRatio * widthToScroll * -1}px)`; isUpdateScheduled = false; }; /* Listen to the scroll event on the window object and schedule the update function using throttling */ window.addEventListener('scroll', () => { if (!isUpdateScheduled) { isUpdateScheduled = true; requestAnimationFrame(manageScroll); } }); }); /* preload the images after the first image gets in the viewport */ (function () { let images = document.querySelectorAll('.horizontalScrollContainer img'); if (!images.length) return; if (!images.length) return; let firstImage = images[0]; let options = { root: null, rootMargin: '0px', threshold: 0.3 }; let observer = new IntersectionObserver((entries, observer) => { entries.forEach(entry => { if (entry.isIntersecting) { images.forEach(img => { addPreloadLink(img); }); observer.unobserve(firstImage); } }); }, options); observer.observe(firstImage); })(); function addPreloadLink(img) { let link = document.createElement('link'); link.rel = 'preload'; link.href = img.src || img.dataset.src; link.as = 'image'; if (img.srcset) link.setAttribute('imagesrcset', img.srcset); if (img.sizes) link.setAttribute('imagesizes', img.sizes); document.head.appendChild(link); } /* END OF preload the images after the first image gets in the viewport */ }); body:not(.elementor-editor-active) .horizontalScrollContainer { overflow: hidden; } .horizontalScrollContainer { position: sticky; top:0; } .horizontalScrollTranslate.e-con { width: fit-content; transition: transform 0.14s cubic-bezier(.03,.89,.74,1.01); } .horizontalScrollTranslate > .e-con.e-con { min-width: 100vw; height: 100vh; max-height: 100vh; max-width: 100vw; /* delete if you want containers that are direct children of "horizontalScrollTranslate" to be more than 100vw */ }

Mix

Our extensive assortment of mixes includes seasonal mixes, color mixes and occasion mixes. There is a mix for every moment in our range, you can see our current mixes offer in the webshop.

Also check out
our corporate film

Mix

Our extensive assortment of mixes includes seasonal mixes, color mixes and occasion mixes. There is a mix for every moment in our range, you can see our current mixes offer in the webshop.

Our partners

Cooperation is in our genes! With our people, our customers, but certainly also with our fellow growers of Decorum and with gerbera collective Coloured by Gerbera.