České námluvy dokonány, Seyfor plně převezme Dotykačku

2. 5. 2025
Doba čtení: 2 minuty

Sdílet

Zakladatel Seyforu Martin Cígler a CEO Dotykačky Petr Menclík podepisují smlouvu o akvizici
Autor: Seyfor
Strategická investice míří na další růst a expanzi do zahraničí.

Společnost Seyfor oznámila, že se po šesti letech od prvního vstupu stane stoprocentním vlastníkem skupiny Dotykačka. V rámci dokončení dlouhodobé transakce podepsal Seyfor dohodu, na jejímž základě získá zbývajících 42 % podílu. Dokončení transakce podléhá schválení Úřadu pro ochranu hospodářské soutěže (ÚOHS).

Dotykačka bude i nadále působit jako samostatná značka v rámci skupiny Seyfor. V rámci plánovaného rozvoje se zaměří na posílení pozice na stávajících trzích a rozšíření do dalších evropských zemí. Rozvoj Dotykačky v novém akcionářském setupu bude nadále řídit její dosavadní manažerský tým, který skupinu vede prakticky od jejího vzniku.

Máme nové jméno

ChannelWorld, nejlepší channel portál v České republice podle analytické společnosti Canalys, po šestnácti letech existence mění název na Channeltrends.

„Probíhající akvizice je naší dosud největší investicí a zároveň ukázkovým příkladem dlouhodobého a strategicky řízeného růstu,“ říká Martin Cígler, zakladatel a generální ředitel společnosti Seyfor.

„Dotykačka je pro nás klíčovým produktem, který vhodně doplňuje portfolio našich služeb. Když jsme v roce 2019 vstoupili do firmy, měli jsme jasnou vizi: konsolidovat trh pokladních systémů v Česku a na Slovensku a vytvořit silné technologické zázemí pro další expanzi,“ vysvětluje.

Seyfor posiluje ve střední Evropě, rozšiřuje portfolio o slovenské NCC Přečtěte si také:

Seyfor posiluje ve střední Evropě, rozšiřuje portfolio o slovenské NCC

Martin Cígler dodává, že v současnosti je Dotykačka jedničkou v Česku, úspěšně působí na Slovensku i v Polsku, a nově má díky zázemí Seyforu příležitost vstoupit i na další trhy.

Randění od roku 2019

První akviziční krok Dotykačky učinil Seyfor v roce 2019, kdy získal 24% podíl. V průběhu stejného roku následovala druhá fáze, při níž navýšil svůj podíl na 58 %. V následujících letech pak došlo k řadě dalších strategických kroků: akvizici společnosti Smart Software, provozovatele pokladního systému pro řetězce SmartPOS i začlenění platebního řešení Dotypay, které dnes tvoří nedílnou součást Dotykačky.

Martina Chloupková byla jmenována HR ředitelkou Seyforu Přečtěte si také:

Martina Chloupková byla jmenována HR ředitelkou Seyforu

„Díky této akvizici získává Seyfor nejen technologicky vyspělé řešení, ale i kvalitní platformu s velkým růstovým potenciálem. Její silnou tržní pozici potvrzuje téměř 30 tisíc provozovaných zařízení na třech trzích,“ doplňuje Cígler.

„Se vstupem Seyforu v roce 2019 jsme získali mnohem víc než kapitál, získali jsme strategického partnera. Převzetí 100% podílu je logický krok na naší společné, dnes již šestileté cestě,“ komentuje akvizici Petr Menclík, CEO společnosti Dotykačka ČR s.r.o. od jejího založení.

Nové články do mailu

 

Chcete mít každý týden přehled o informacích pro resellery, dodavatele služeb a profesionály v prodejním kanále IT a CE? Objednejte si náš mailový servis. Objednat si lze i newsletter To hlavní, páteční souhrn nejdůležitějších článků ze serverů vydavatelství Internet Info.

Nynějších 42 % získáváme od české investiční společnosti Redwood Capital, s níž jsme posledních šest let úzce spolupracovali a společnými silami jsme upevnili a posílili pozici Dotykačky jako lídra trhu. Redwood Capital byl pro nás výjimečným partnerem při budování úspěšného příběhu Dotykačky a sehrál klíčovou roli jako první investor, který stál u jejích začátků,“ doplňuje Michal Rybovič, partner private equity firmy Sandberg Capital, která spoluvlastní společnost Seyfor spolu s Martinem Cíglerem.

CIF25

„Akvizice Seyforu je pro nás pěkným zakončením desetiletého byznysového projektu, který jsme na jeho počátku vnímali jako vystoupení z naší komfortní zóny investic v energetickém sektoru. Měli jsme štěstí na skvělý management v čele s Petrem Menclíkem a spolehlivé byznysové partnery ze Seyfor a Sandberg Capital, se kterými vždy platila každá, byť nepsaná dohoda. Víme, že necháváme Dotykačku v dobrých rukách,“ říká Tomáš Hardt, partner investiční společnosti Redwood Capital.

Zdroj: Seyfor

Čtěte dále

Polovina českých podnikatelů neví, jak se bránit proti kybernetickým útokům
Polovina českých podnikatelů neví, jak se bránit proti kybernetickým útokům
ČD – Telematika a ČD-IS fúzují, vzniká velký hráč v ICT službách v dopravě a státní správě
ČD – Telematika a ČD-IS fúzují, vzniká velký hráč v ICT službách v dopravě a státní správě
Obrazem: SWS pozvala Krakonoše na inovace a networking
Obrazem: SWS pozvala Krakonoše na inovace a networking
Obrazem: 100Mega v Telči poručila dešti i hokeji
Obrazem: 100Mega v Telči poručila dešti i hokeji
Téměř dvě třetiny firem preferují uchovávat zálohu v cloudu
Téměř dvě třetiny firem preferují uchovávat zálohu v cloudu
IDC: Cla necla, globální dodávky počítačů by letos měly vyrůst o 4 %
IDC: Cla necla, globální dodávky počítačů by letos měly vyrůst o 4 %
'; document.getElementById('preroll-iframe').onload = function () { setupIframe(); } prerollContainer = document.getElementsByClassName('preroll-container-iframe')[0]; } function setupIframe() { prerollDocument = document.getElementById('preroll-iframe').contentWindow.document; let el = prerollDocument.createElement('style'); prerollDocument.head.appendChild(el); el.innerText = "#adContainer>div:nth-of-type(1),#adContainer>div:nth-of-type(1) > iframe { width: 99% !important;height: 99% !important;max-width: 100%;}#videoContent,body{ width:100vw;height:100vh}body{ font-family:'Helvetica Neue',Arial,sans-serif}#videoContent{ overflow:hidden;background:#000}#adMuteBtn{ width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:20px;right:25px}"; videoContent = prerollDocument.getElementById('contentElement'); videoContent.style.display = 'none'; videoContent.volume = 1; videoContent.muted = false; const playPromise = videoContent.play(); if (playPromise !== undefined) { playPromise.then(function () { console.log('PREROLL sound allowed'); // setUpIMA(true); videoContent.volume = 1; videoContent.muted = false; setUpIMA(); }).catch(function () { console.log('PREROLL sound forbidden'); videoContent.volume = 0; videoContent.muted = true; setUpIMA(); }); } } function setupDimensions() { prerollWidth = Math.min(iinfoPrerollPosition.offsetWidth, 480); prerollHeight = Math.min(iinfoPrerollPosition.offsetHeight, 320); } function setUpIMA() { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. createAdDisplayContainer(); // Create ads loader. adsLoader = new google.ima.AdsLoader(adDisplayContainer); // Listen and respond to ads loaded and error events. adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, onAdsManagerLoaded, false); adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, onAdError, false); // An event listener to tell the SDK that our content video // is completed so the SDK can play any post-roll ads. const contentEndedListener = function () { adsLoader.contentComplete(); }; videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Preroll advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; // Specify the linear and nonlinear slot sizes. This helps the SDK to // select the correct creative if multiple are returned. // adsRequest.linearAdSlotWidth = prerollWidth; // adsRequest.linearAdSlotHeight = prerollHeight; adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } function createAdDisplayContainer() { // We assume the adContainer is the DOM id of the element that will house // the ads. prerollDocument.getElementById('videoContent').style.display = 'none'; adDisplayContainer = new google.ima.AdDisplayContainer( prerollDocument.getElementById('adContainer'), videoContent); } function unmutePrerollAdvert() { adVolume = !adVolume; if (adVolume) { adsManager.setVolume(0.3); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } else { adsManager.setVolume(0); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } } function onAdsManagerLoaded(adsManagerLoadedEvent) { // Get the ads manager. const adsRenderingSettings = new google.ima.AdsRenderingSettings(); adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true; adsRenderingSettings.loadVideoTimeout = 12000; // videoContent should be set to the content video element. adsManager = adsManagerLoadedEvent.getAdsManager(videoContent, adsRenderingSettings); // Add listeners to the required events. adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, onContentPauseRequested); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, onContentResumeRequested); adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, onAdEvent); // Listen to any additional events, if necessary. adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, onAdEvent); playAds(); } function playAds() { // Initialize the container. Must be done through a user action on mobile // devices. videoContent.load(); adDisplayContainer.initialize(); // setupDimensions(); try { // Initialize the ads manager. Ad rules playlist will start at this time. adsManager.init(1920, 1080, google.ima.ViewMode.NORMAL); // Call play to start showing the ad. Single video and overlay ads will // start at this time; the call will be ignored for ad rules. adsManager.start(); // window.addEventListener('resize', function (event) { // if (adsManager) { // setupDimensions(); // adsManager.resize(prerollWidth, prerollHeight, google.ima.ViewMode.NORMAL); // } // }); } catch (adError) { // An error may be thrown if there was a problem with the VAST response. // videoContent.play(); } } function onAdEvent(adEvent) { const ad = adEvent.getAd(); console.log('Preroll event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: if (!ad.isLinear()) { videoContent.play(); } prerollDocument.getElementById('adContainer').style.width = '100%'; prerollDocument.getElementById('adContainer').style.maxWidth = '640px'; prerollDocument.getElementById('adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: window.addEventListener('scroll', onActiveView); if (ad.isLinear()) { intervalTimer = setInterval( function () { // Example: const remainingTime = adsManager.getRemainingTime(); // adsManager.pause(); }, 300); // every 300ms } prerollDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (prerollLastError === 303) { playYtVideo(); } break; case google.ima.AdEvent.Type.COMPLETE: if (ad.isLinear()) { clearInterval(intervalTimer); } playYtVideo(); break; } } function onAdError(adErrorEvent) { console.log(adErrorEvent.getError()); prerollLastError = adErrorEvent.getError().getErrorCode(); if (!loadNext()) { playYtVideo(); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrlIndex < iinfoVastUrls.length) { iinfoPrerollPosition.remove(); playPrerollAd(); } else { return false; } adVolume = 1; return true; } function onContentPauseRequested() { videoContent.pause(); } function onContentResumeRequested() { videoContent.play(); } function onActiveView() { if (prerollContainer) { const containerOffset = prerollContainer.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (prerollPaused) { adsManager.resume(); prerollPaused = false; } return true; } else { if (!prerollPaused) { adsManager.pause(); prerollPaused = true; } } } return false; } function playYtVideo() { iinfoPrerollPosition.remove(); youtubeIframe.style.display = 'block'; youtubeIframe.src += '&autoplay=1&mute=1'; } }
OSZAR »