Menu Zavřít

Shoptet začíná koketovat s logistikou. V rámci své nové služby přináší internetovým obchodníkům řešení pro správu přepravy zásilek

6. 11. 2024
Doba čtení: 2 minuty
Autor: Shoptet
  • Česká společnost Shoptet poskytující platformu pro snadný provoz internetových obchodů spouští nový produkt
  • V rámci služby Shoptet Balíky chce svým zákazníkům nabídnout efektivní řešení pro správu přepravy zásilek
  • Zákazníci z řad online prodejců budou díky ní moci snáze objednávat přepravu balíkových zásilek, sledovat jejich stav nebo tisknout štítky

V současné době skrze něj provozuje svůj e-shop v Česku, na Slovensku a v Maďarsku více než 41 tisíc podnikatelů. Už dávno přitom neplatí, že by se Shoptet zaměřoval pouze na výstavbu online obchodů jako takových. Během své 15leté existence se totiž „převtělil“ z pouhého poskytovatele e-shopových řešení na dodavatele „all-in-one“ služby, která těmto internetovým obchodníkům pomáhá napříč celým spektrem činností. A nově tak trochu i s logistikou, respektive přepravou zásilek koncovým zákazníkům.

Vedení Shoptetu se totiž rozhodlo spustit další pilíř svého podnikání. Služba nese jednoduchý, leč výstižný název Shoptet Balíky, přičemž jejím cílem je poskytnout všem svým klientům efektivní řešení pro správu přepravy zásilek.

Outstream Placeholder

„Logistika je jeden z klíčových prvků online podnikání. Její integrací do rozhraní Shoptetu významně zjednodušíme a zároveň zrychlíme celý proces odbavování zásilek. Každý podnikatel tak získá významnou časovou úsporu s administrací dopravců a expedicí,“ sdělil šéf uvedené společnosti Samuel Huba redakci Euro.cz jako jedné z prvních.

Pomůže s objednáním přepravy i trasováním

Hlavní výhodou nového řešení by podle vedení Shoptetu měla být jeho univerzálnost. Až dosud totiž platilo, že každý e-shop musel řešit cenové podmínky s každým dopravcem zvlášť a stejně tak i zvlášť spravovat jejich služby v různých systémech. „Díky službě Shoptet Balíky tento problém odpadá. Podnikatelé získají výhodnější podmínky, než jaké by si sami vyjednali, a to vše přímo z administrace jejich e-shopu a v řádu minut, a ne týdnů, jako to bylo standardem doposud,“ zdůraznil Huba.

Není to otázka peněz nebo času, ale dobrého nápadu. Lidé jsou dnes na e-shopech schopni prodávat třeba i popcorn, říká šéf Shoptetu
Přečtěte si také:

Není to otázka peněz nebo času, ale dobrého nápadu. Lidé jsou dnes na e-shopech schopni prodávat třeba i popcorn, říká šéf Shoptetu

S čím vším konkrétně tato novinka internetovým obchodníkům pomůže? Jedná se především o objednávání přepravy balíkových zásilek jako takové, tisk štítků, ale současně i o sledování stavu zásilek a jejich statistiky. Celý proces je navíc plně automatizovaný. „Tato služba představuje další krok v našem úsilí o zjednodušení podnikání a věříme, že zásadně zlepší způsob, jakým e-shopy přistupují k logistice,“ nechal se slyšet šéf Shoptetu, podle kterého se s novým produktem nepojí žádné dodatečné poplatky.

WT100_25

Jeden nový produkt za druhým

Podobných novinek si Shoptet, jenž se vloni těšil z 66miliardových tržeb (meziroční nárůst o 16 procent), pro své zákazníky v polední době připravil víc. Na přelomu léta a podzimu společnost například představila nový marketingový nástroj, pomocí něhož mohou provozovatelé internetových obchodů propagovat vlastní produkty skrze automatizovanou online reklamu na Googlu, a to přímo z administrace e-shopu. Díky tomu by tak měli ušetřit značné množství peněz, jež by jinak byli nuceni vynaložit na služby externích marketingových agentur.

Vedle služby Shoptet Kampaně se zákazníci této firmy v uplynulých letech dočkali ještě řešení Shoptet Premium, jež lze plně přizpůsobit specifickým požadavkům na vzhled a funkčnost větším e-shopům. Opomenout však nelze ani zavedení vlastní platební Shoptet Pay, kterou společnost zavedla předloni na jaře.

  • Našli jste v článku chybu?
'; 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'; } }