Shopio Weblog

Dva Heureka specialisté v Shopiu!

Koncem března se naši kolegové Káťa Kabrhelová a Michal Vrchota zúčastnili historicky první Heureka certifikace. Musíme se pochlubit, že oba v poměrně náročném testu uspěli a zařadili se mezi prvních 25 Heureka specialistů.

badge_ke_stazeni

Jak vám můžeme s Heurékou pomoci?

Můžete se na nás obrátit s dotazy ohledně správného nastavení vašeho Heureka feedu, který je pro zobrazení na Heurece klíčový. Pomůžeme vám také vyřešit problémy se zařazením produktů do produktového katalogu, což může být někdy docela oříšek, stejně tak jako nastavení a vyplnění informací o cenách za dopravu, které jsou pro většinu zákazníků důležité. Chtěli byste se dostat do toho “oranžového boxu” doporučovaných obchodů v produktovém katalogu, ale nevíte jak na to? Nebo ještě nemáte ani certifikát Ověřeno zákazníky? I s tím si dokážeme poradit. Nezalekneme se ani nastavení PPC reklamy či měření konverzí. Dokážeme vám poradit i s nastavením poboček či informací na detailu obchodu. Zkrátka a dobře, pokud budete mít jakýkoliv problém s nastavením vašeho e-shopu na Heurece, nebojte se nás zeptat.

Pokud se rozhodnete využít služeb Heureky na maximum, je na to Shopio připraveno. Shopio podporuje:

  • rozšířený XML feed, např. s možnostmi zobrazit ceny dopravy pro jednotlivé položky, napojení na kategorie Heureky, nastavení CPC atp.
  • Měření konverzí – plná implementace
  • Ověřeno zákazníky
  • Heureka Košík s API napojením
  • Heureka Point / Uloženka

Dokážeme také:

  • Připravit dostupnostní feed (ten je ale potřeba připravit na míru vašemu podnikání a logistice). Díky dostupnotnímu feedu vidí zákazník přesný termín doručení zboží.
  • Zobrazovat vaše recenze obchodu a produktů z Heureky na vašem e-shopu

Tyto služby podporujeme také pro slovenskou verzi Heureky.

Dotazy ohledně nastavení Heureky či párování produktů směřujte prosím na Káťu (katerina.kabrhelova@w3w.cz).

Naopak dotazy technické problémy s implementací XML feedu či chyby v XML feedu směřujte na Michala (michal.vrchota@w3w.cz).

Těšíme se na spolupráci.

Legislativní požadavky na e-shop I. – obchodní podmínky a informační povinnost

V tomto článku se pokusíme shrnout legislativní požadavky pro provozování e-shopu a popsat, jaké dokumenty je nutné pro spuštění a následný provoz e-shopu zajistit. V článku se zaměřujeme na dokumentaci spjatou se samotným spuštěním a následným provozem e-shopu pro již podnikající osoby. Nezohledňujeme zde legislativní povinnosti a předpisy pro začínající podnikatele, jako je oprávnění k podnikání, atp.

Článek byl připraven ve spolupráci s portálem PravoProPodnikatele.cz, který provozuje advokátní kancelář Kropáček Legal.

Provoz e-shopu a prodej přes internet

Při prodeji přes internet uzavírají eshopaři se zákazníkem tzv. smlouvu pomocí prostředků komunikace na dálku (smlouvy uzavírané distančním způsobem). Právní předpisy regulují prodej přes internet do značné míry a podnikatelům proto doporučujeme věnovat patřičnou pozornost stanoveným povinnostem.

Informační povinnosti provozovatelů e-shopu

V praxi rozlišujeme dvě hlavní oblasti upravující smluvní vztah mezi prodávajícím a kupujícím. Jedná se o:

  • obchodní podmínky,
  • reklamační řád.

Oba dokumenty jsou nezbytnou součástí internetového obchodování a každý návštěvník e-shopu musí mít volný přístup k informacím v nich obsažených.

Právní předpisy dále upravují, které konkrétní informace musí e-shopaři povinně zveřejňovat.

Obchodní podmínky e-shopu

Nejčastějším způsobem, jak podnikatelé na internetu plní své informační povinnosti stanovené zákonem, jsou zveřejněné obchodní podmínky.

Neexistuje žádná právní norma, která upravuje formu Všeobecných obchodních podmínek. Legislativa stanovuje pouze pravidla pro obsah, resp. co vše musí prodejce uvést v obchodních podmínkách. Zákon dokonce nehovoří ani o “obchodních podmínkách” jako takových, je proto naprosto v pořádku, když provozovatel e-shopu používá trochu odlišné názvy pro tento dokument (např. veřejné obchodní podmínky či smluvní podmínky).

Je tedy zcela na zvážení provozovatele e-shopu, jakým způsobem bude mít zpracované obchodní podmínky, jak bude členit jednotlivé sekce atd.

Obecné platí, že obchodní podmínky e-shopu musí obsahovat zejména následující informace:

  • totožnost obchodníka (např. obchodní firma, adresa, telefonní číslo)
  • základní charakteristiku nabízeného zboží a / nebo služeb
  • dodací podmínky včetně uvedení dalších nákladů
  • způsob objednání (uzavření kupní smlouvy)
  • údaj o době trvání závazku a podmínky jeho ukončení
  • odstoupení od smlouvy
  • platební podmínky
  • reklamační řád

Doporučujeme rovněž zpracovat údaje:

  • Rozhodné právo (dle jakého práva se bude spor řešit, pokud si u vás zboží objedná cizinec)
  • Autorská práva, politika cookies, atd.

Pokud by vás zaujala problematika používání cookies v e-shopu nebo nemáte stále jasno, zda musíte používat lištu se souhlasem s cookies, doporučujeme články:

Úprava ochrany osobních údajů

Provozovatel e-shopu by měl v obchodních podmínkách či v samostatném dokumentu zveřejnit informace o zpracování osobních údajů.

Prodávající nemají obecně stanovenou povinnost registrovat se na Úřad pro ochranu osobních údajů. Registrace je povinná pro každého, kdo shromažďuje a zpracovává osobní údaje. Osobním údajem může být jméno, příjemní, adresa, telefon, ale také v některých případech pouze samotná e-mailová adresa či IP adresa (blíže k rozdílenému názoru Evropské unie a českého Úřadu pro ochranu osobních údajů).

Pokud údaje od zákazníků používá podnikatel výhradně pro doručení objednaného zboží a tyto údaje následně smaže, resp. je nebude uchovávat ve své databázi, pak se nemusí registrovat.

Registraci na ÚOOÚ ale doporučujeme, protože dnešní moderní systémy pro provoz e-shopu uchovávají registrační data z každé objednávky zákazníka. Navíc je registrace nutná, pokud chcete pracovat s e-mail marketingem a klientům zasílat obchodní sdělení.

Po registraci na Úřadu pro ochranu osobních údajů nesmíte zasílat spam. Ponořte se případně do problematiky hlouběji v příspěvku: Jak se vyvarovat zasílání spamu, metoda opt-in a opt-out.

Způsob objednání

Prodávající musí uvést všechny způsoby, kterými je možné objednat nabízené zboží. Obvykle se jedná o tyto možnosti:

  • elektronickou objednávkou
  • telefonicky
  • e-mailem
  • případně SMS

Současně musí uvést, jaké údaje je kupující povinen uvést v objednávce.

Dodací podmínky

V rámci dodacích podmínek specifikujte, jaký účetní doklad vystavujete. Nejčastěji se jedná o fakturu se všemi potřebnými náležitostmi účetního dokladu. Dále, v jaké lhůtě objednané zboží expedujete s ohledem na to, zda se jedná o skladovou položku či nikoliv. V případě, že nemáte zboží skladem, musíte na to upozornit.

Dále uveďte, jakými způsoby je možné objednané zboží doručit a za jakých podmínek. Obvykle se jedná o:

  • dobírka
  • zásilkové služby
  • kurýrní služby
  • osobní odběr

Cena a platební podmínky

Kupující musí být informován, kolik stojí konkrétní zboží či služba včetně příslušné sazby DPH (údaj zveřejněný u každé položky), kolik si účtujete za případné další náklady (nejčastěji balné + doručení).

Pokud tyto další náklady nejsou součástí popisu konkrétního zboží, je nutné je uvést v sazebníku. Sazebník může být součástí Všeobecných obchodních podmínek nebo může být uváděn jako samostatný sazebník.

Je vhodné zároveň poukázat, v jakých případech je kupující osvobozen od těchto dalších nákladů (např. při nákupu dosahující určité výše nebo při osobním osobní odběru).

Specifikujte platební podmínky a také to, jaký druh plateb akceptujete.

Obvykle se jedná o:

  • dobírku
  • platbu v hotovosti při osobním odběru
  • platbu bankovním převodem
  • platební karty – nutno uvést jaké

Odstoupení od smlouvy

Spotřebitel má právo odstoupit od smlouvy do 14 dnů bez udání důvodu.

Toto právo nesmíte jako prodávající výrazně marketingově propagovat, jednalo o zakázanou obchodní praktiku, musíte o něm ale, dle zákona, spotřebitele informovat

Přestože si zákazník vyzvedne objednané zboží z internetu osobně, má právo odstoupit od smlouvy do 14 dnů bez udání důvodu. Někteří provozovatelé e-shopu se snaží praktikou osobní vyzvednutí obejít zákonné ustanovení, které chrání spotřebitele při nákupech na internetu, avšak upozorňujeme, že to není tímto způsobem možné. V zásadě platí, že pokud si spotřebitel objedná zboží na internetu (smlouva je uzavřena na dálku), má právo odstoupit od smlouvy do 14 dnů bez udání důvodu.

V případě, kdy si zákazník zboží na internetu pouze rezervuje (kupní smlouva není uzavřena), pak si zboží vyzvedne osobně na prodejně (v právním slova smyslu dochází k uzavření smlouvy na prodejně), pak tento zákazník nemá právo odstoupit od smlouvy do 14 dnů bez udání důvodu.

Pro odstoupení od smlouvy musí spotřebitel splnit následující podmínky:

  • Zboží musí být kompletní včetně příslušenství a dokladů (jako je záruční list, manuál apod.),
  • Zboží musí být vráceno ve lhůtě stanovené zákonem či lhůtě uvedené v obchodních podmínkách, pokud je delší. Lhůta 14 dní nemůže být prodávajícím zkrácena.

Co se běžně neví:

  • Spotřebitel není povinen vracet obal od zboží (ani pokud to máte uvedeno v obchodních podmínkách, jednalo by se o neplatné ustanovení).
  • Spotřebitel může vrátit zboží rozbalené, použité či dokonce poničené. Prodejce má však právo přiměřeně snížit vracenou částku.
  • Pokud provozovatel e-shopu zákazníka o možnosti odstoupit od smlouvy do 14 dnů neinformuje, prodlužuje se tato zákonná lhůta o 1 rok. Právo na odstoupení má v tomto případě spotřebitel po dobu 1 roku a 14 dní. Pokud jste spotřebitele neinformovali, lhůtu můžete zkrátit zasláním dodatečného poučení.

Portál dTest zveřejnil užitečný rozcestník, který informuje o právech a povinnostech při “bezdůvodném” odstoupení od smlouvy.

Smluvní pokuty jsou zakázané pro spotřebitele

Provozovatelé internetových obchodů nemohou ukládat spotřebitelům smluvní pokuty, a to ani v případech, kdy by tyto pokuty byly uvedeny v obchodních podmínkách e-shopu.

V praxi se můžeme setkat se smluvními pokutami v oblasti povinnosti za převzetí zboží či vrácení zboží při odstoupení od smlouvy.

Nejen, že jsou tyto pokuty a donucovací sankce neplatné, ale při kontrole České obchodní inspekce mohou způsobit provozovateli značné problémy.

Omezení smluvních pokut je zakotveno v zákoně o ochraně spotřebitele a navíc bylo potvrzeno nálezem Ústavního soudu ÚS 3512/11 ze dne 11. 11. 2013.

Specifická ustanovení v obchodních podmínkách

Prodávající musí naplňovat zákonné požadavky, které jsou na něj kladeny v souvislosti s charakterem prodávaného zboží, poskytovanou službou a obchodním modelem, který provozují. V zásadě platí, že výše uvedené požadavky jsou povinni naplňovat všichni prodávající na internetu.

Podnikatelé, kteří provozují činnost zvláštně regulovanou právními předpisy, jsou povinni navíc dodržovat další specifické požadavky. Může se jednat např. o provozovatele internetový lékáren, kteří musí dodržovat řadu regulacích o léčivech či prodejci tabákových výrobků, elektronických cigaret či virtuální operátoři.

Velkoobchodní podmínky

Velkoobchodní podmínky nejsou vhodné jen pro velké e-shopy. Obchodní podmínky pro velkoobchod uplatní všichni provozovatelé, jejichž zákazníci jsou podnikatelé. Jinými slovy, při nákupu tito zákazníci vyplňují své IČ.

Velkoobchodní podmínky nejsou povinné, nicméně jejich zveřejněním získáte jako provozovatel e-shopu výhodnější právní postavení.

Při obchodním styku s podnikateli nemusíte totiž dodržovat zákon o ochraně spotřebitele a máte tak širokou míru volnosti pro upravení vzájemných práv a povinností. Všimněte si, že v některých částech textu hovoříme výhradně pomocí pojmu “spotřebitel” a někdy mluvíme o “kupujícím” či “zákazníkovi”. Spotřebitel je totiž chráněn zákonem o ochraně spotřebitele (uplatňováno v maloobchodním modelu prodeje), zatímco kupující či zákazník může být jak spotřebitel, tak podnikatel.

Obchodní podmínky nestačí pouze zveřejnit na e-shopu

Provozovatelé internetových obchodů musí naplnit 4 obecné požadavky na obchodní podmínky:

  1. Obchodní podmínky musí být zveřejněné na e-shopu.
  2. Obchodní podmínky musí být v souladu s právními předpisy.
  3. Kupující musí při nákupu souhlasit s obchodními podmínkami.
  4. Prodávající musí zaslat obchodní podmínky kupujícímu e-mailem při potvrzení objednávky.

Čtvrtý a poslední bod je novinkou, kterou zavedl nový občanský zákoník. Řada e-shopů nezasílá celé znění obchodních podmínek a připojí zákazníkovi v e-mailu pouze hypertextový odkaz na online verzi.

Pouhý hypertextový odkaz na obchodní podmínky však není dostačující. Provozovatelé e-shopu musí zaslat zákazníkovi celé znění obchodních podmínek (buď v příloze anebo přímo v tělu e-mailu).

Poslechněte si podcast, který vysvětluje problematiku nutnosti zasílání obchodních podmínek e-mailem při potvrzení objednávky.

Česká obchodní inspekce kontroluje e-shopy

Česká obchodní inspekce je kontrolním orgánem, který má rovněž sankční pravomoci. Kontroly e-shopů probíhají celoročně a ČOI vydává pravidelně čtvrtletní tiskové zprávy, kde hodnotí výsledky kontrol. Inspektoři se při kontrolách soustředí na porušování zákon o ochraně spotřebitele.

Všechny tiskové zprávy ČOI najdete na oficiálních stránkách České obchodní inspekce v kategorii Tiskové zprávy.

Shlédněte přiloženou infografiku, která podává zprávu o kontrole eshopů za 2.čtvrtletí 2015. Pokutováno bylo více jak 4 z 5 kontrolovaných e-shopů a byly uděleny pokuty v celkové výši 1 milion korun.

Infografika, která podává zprávu o kontrole eshopů za 2.čtvrtletí 2015

Právní předpisy

Jestliže byste sami chtěli prostudovat právní předpisy a věnovat se této problematice detailněji, pak Vám doporučujeme nahlédnout do následujících dokumentů:

Výčet právních předpisů není komplexní. Jako podnikatel máte povinnost dodržovat právní předpisy, které se vztahují na váš konkrétní obchodní model a prodávané zboží, resp. poskytovanou službu.

Řada podnikatelů, kteří prodávají specifické zboží či služby, musí rovněž dodržovat předpisy:

Mnoho informací pro začínající podnikatele je možné nalézt na níže uvedených portálech.

Oficiální informace

Další užitečné informace

Prohlížení nedokončených košíků v administraci

V nové verzi Shopia jsme upravili způsob, jakým jsou v databázi ukládány zatím nedokončené košíky zákazníků. Na první pohled se může zdát, že je to jen systémová věc, která pro správce e-shopu nemá žádný přínos.

Opak je pravdou, protože nám to umožnilo rozšířit výpis nedokončených košíků v administraci:

basket1

Takže pokud nějaký zákazník vyplní své kontaktní údaje, ale už nedokončí objednávku, tak ho můžete kontaktovat a přesvědčit ho ke koupi.

basket2

Tento způsob navíc umožňuje dodělání i dalších úprav, jako je automatizované kontaktování takovýchto zákazníků s nabídkou slevy slevou na nákup nebo pomoci při volbě správných produktů.

Nové chování variant ve verzi 2.1

V nové verzi Shopio 2.1 jsme na základě zkušeností a připomínek přepracovali správu produktových variant tak, aby lépe vyhovovala vašim potřebám. Nové rozhraní se netýká jen nových e-shopů, ale mohou ho získat i naši stávající klienti, se kterými jsme se domluvili na pravidelných aktualizacích. Proto se vám pokusíme popsat, co se změnilo a v čem je nová varianta lepší.

Varianty můžete deaktivovat

shopio-var-1

Pokud již konkrétní produktovou variantu nechcete nabízet k prodeji, stačí ji pouze deaktivovat. Varianta se pak skryje na stránce produktu a zároveň nebude exportována v XML feedech pro zbožové vyhledávače. Variantu tak již nemusíte v tomto případě mazat a zůstane stále uložená v databázi pro případ, že ji zase budete chtít nabízet k prodeji. V detailu produktu se budou zobrazovat pouze ty parametry, které jsou přiřazené k aktivním variantám.

Můžete mít varianty zcela bez parametrů

Rozhodně doporučujeme k variantám parametry přiřadit z důvodu parametrického filtrování na e-shopu nebo pro generování kvalitního XML feedu do zbožových vyhledávačů. Může však nastat situace, kdy data přenášíte z jiných systémů, např. importujete z XML feedů jiných dodavatelů nebo ekonomických systémů. V těchto případech data o produktech a variantách nejsou vždy v ideálním stavu. Např. potřebují další čištění, doplnění informací atp. Proto vám Shopio nabízí i možnost spravovat varianty zcela bez parametrů. Samozřejmě si můžete parametry variant nastavit později.

Parametry u variant můžete libovolně upravovat

shopio-var-2

Varianty můžete např. nejprve naimportovat bez parametrů a až následně je k variantám přiřadit. Není tedy nutné při změně parametru variantu smazat a zakládat znovu. Stejně tak můžete i měnit (tzn. přidávat) počet parametrů, ze kterých je varianta tvořena. Např. nejprve nabízíte trička, která členíte pouze podle velikosti, a až následně se rozhodnete přidat další parametr barva. Není to problém.

Můžete nabízet produkt pouze s 1 variantou

shopio-var-3

Zbyla vám skladem pouze 1 varianta? Stačí ostatní deaktivovat a zákazníci budou moci zakoupit pouze vaši poslední variantu produktu. Pokud všechny varianty vyprodáte a deaktivujete všechny varianty, zobrazí se vám upozornění, abyste nezapomněli skrýt i samotný produkt, aby ho vaši zákazníci nezakoupili bez vybrané varianty.

Varianty je možné smazat přímo z košíku zákazníků

shopio-var-4

Když variantu deaktivujete, zákazníci si ji již nemohou zakoupit. Ovšem pokud si ji stihli vložit do svého nákupního košíku ještě dříve, mohou s takovou variantou stále dokončit objednávku. Při odstraňování varianty se vám v tom případě zobrazí varování a po potvrzení se varianta smaže i z košíků nakupujících zákazníků.

Jak vytvářet varianty

Jak probíhá vytváření variant v praxi vám ukáže následující animace. Nejprve je potřeba produkt zařadit do kategorie, která má nastaveny parametry. Poté se vám v přehledu variant objeví formulář pro výběr povinných parametrů. Já jsem využil oba parametry (Barva a Velikost). Poté je možné jako jinde v Shopiu přidat novou variantu odkazem nahoře. U varianty stačí vyplnit pouze hodnoty parametrů. Pokud vám vyhovovalo „staré“ vytváření variant zaškrtnutím na jedné stránce, můžete použít hromadné vytvoření více variant. Varianty se nyní vytvářejí deaktivované, aby se nestalo, že si někdo nově vygenerované varianty nakoupí třeba bez správně nastavené ceny. Varianty bez parametrů vytvoříte stejně snadno. Prostě jen v seznamu povinných parametrů pod seznamem variant nic nezaškrtnete.

shopio-variants

Doufáme, že se vám nové varianty budou líbit

Někteří naši klienti mají u produktů jen pár variant. Jiní jich mají i několik desítek. Během návrhu nového rozhraní jsme strávili spoustu času zkoušením různých variant chování a snažili jsme se, aby pokrývalo co nejširší spektrum různých použití, bylo intuitivní a snadno použitelné. Doufáme, že se vám nové rozhraní bude vyhovovat, ale pokud byste narazili na nějaký problém nebo komplikaci dejte vědět a pokusíme se to nějak vyřešit.

Podzimní Shopio 2.1 je tady!

Znáte pořekadlo „až se zima zeptá, co jsi dělal v létě“? My jsme se potili u počítačů, abychom stihli připravit novou podzimní verzi Shopia, která jako vždy přináší spoustu novinek. Pokusím se vám ty nejzásadnější představit.

podzimni-shopio-2-1

Předchozí verze 2.0.0 přinesla spoustu nových funkcí, třeba podporu pro Heuréka Košík, provoz na HTTPS nebo úplně přepracované fungování šablon. Co vybrat do verze 2.1.0, aby byla ještě lepší, byl celkem oříšek, ale myslím, že nakonec se nám podařilo vybrat hodně zajímavé věci.

Asi největší novinkou jsou asymetrické jazykové verze – tedy možnost mít některé stránky, články nebo bannery jen v některých verzích. Je to věc, na kterou se hodně našich zákazníků ptalo, a bylo ji v předchozích verzích obtížné vyřešit. Teď to jde na dvě kliknutí. Můžete tak například snadno udělat banner upozorňující na dopravu zdarma po ČR, ale vypnete jeho zobrazování ve slovenské verzi, kde doprava zdarma není. Navíc si můžete podle jazyka nastavit adresu pro odchozí emaily. To se hodí zejména v případě, pokud v zahraničí vystupujete pod jinou doménou – to je třeba případ Pivní dárkyPivné DárčekyCzechBeerGifts.

Další novinkou, která s jazyky souvisí, je možnost zapínat a vypínat jazyky za běhu. Stalo se nám, že klient se rozhodl expandovat do zahraničí a potřeboval veškerý obsah zpřístupnit v cizím jazyce. Jenže vytvořit veškerý obsah chvíli trvá a na eshopu by se mezitím zobrazoval nedodělaný obsah. V předchozích verzích nebylo možné jazyk přidat bez toho, aniž by byl vidět na eshopu. Museli jsme to tedy složitě řešit vytvořením dočasné verze eshopu, kde se všechno naplnilo a zkontrolovalo a pak přesunulo zpět. Nově je možné jazyk přidat, ale nezapínat. V klidu si připravíte obsah a až bude napsaný a zkontrolovaný, tak ho zapnete. To samé samozřejmě funguje také pro nové měny.

Pokud je pro vás důležité, jak se váš eshop umisťuje ve vyhledávačích, budete jistě nadšeni z integrované podpory pro přesměrování. Kdykoli změníte adresu stránky nebo třeba produktu, Shopio si toho všimne a automaticky vytvoří přesměrování ze staré adresy na novou. Vše je navíc navrženo tak chytře, že vždy dojde rovnou k přesměrování na aktuální adresu. A to i v případě, že jste měnili URL ve více krocích (url1 -> url2 -> url3 -> url1 -> url4). Jak to hezky funguje si můžete vyzkoušet na našem demoshopu.

Pro eshopy s větším množstvím variant jsme připravili zbrusu nové rozhraní pro správu variant.  To nově umožňuje dočasnou deaktivaci variant a produkty s jen jednou variantou. Doufáme, že se vám bude líbit, a oceníme zpětnou vazbu.

Na konec jsem si nechal takové vývojářské perličky, které ale ocení i zákazníci. První z nich jsou jazykově závislé sloupce v databázi. Různé jazyky se řadí a porovnávají různě. V angličtině například nemají písmeno Ch a řadí ho pod C, jinak se chová také azbuka a další jazyky. Shopio nově rozumí tomu, který sloupec je ve kterém jazyku a podle toho řadí a vyhledává. Druhá perlička je inteligentní vybírání alternativních produktů. Alternativní produkty můžete stále vybrat ručně. Ale pokud to neuděláte, nebo vyberete třeba jen jeden, tak Shopio automaticky doplní do seznamu produkty ze stejné kategorie s co nejpodobnější cenou. Již nyní to používáme na Pivních dárcích. Všimněte si, že i když v kategorii jsou různé věci v rozpětí 170 až 1200 Kč, tak Shopio vybere ty, které jsou skutečně alternativní. To je ideální v případě, kdy produkt už neprodáváte a zákazník, který přijde z vyhledávače, hledá náhradu. Navíc pokud chcete využívat alternativní produkty na up-selling, stále můžete produkty vybírat ručně. Případně jsou k dispozici také Související produkty, které jdou na up-selling a cross-selling použít stejně dobře. Z této úpravy mám osobně velkou radost, protože i když je relativně jednoduchá, tak zákazníkům velmi pomůže.

Další změny už jen telegraficky.

  • Nový modul na zoom fotografie v detailu produktu. Používá ho například 4camping.
  • Vylepšené CSS pro tisk – divili byste se, kolik lidí si produkty z eshopu tiskne!
  • Shopio se naučilo používat Facebook Pixel – můžete tedy měřit kampaně na Facebooku.
  • Vylepšili jsme také výpis informací z platebních metod. Díky tomu snáz zjistíte, zda zákazník nemá problémy se zaplacením.
  • Formuláře v košíku a registraci mají nastavené auto-fill atributy, takže jdou lépe vyplňovat automaticky.
  • Přibyla podpora pro nové feedy Zboží.cz 2015 (včetně <CATEGORY_ID>), Seznam Sklik Retargeting v rámci modulu Sklik, Heuréka měření konverzí (nová verze od září), Google Remarketing.

Doufáme, že se vám nová verze bude líbit. Pro zákazníky, kteří využívají možnost průběžného upgradu, budeme nasazovat změny v průběhu října. Pokud pro vaše Shopio zatím průběžné upgrady nevyužíváte a chtěli byste, neváhejte nás kontaktovat.

Jak můžete ušetřit tím, že vaše Shopio bude aktuální?

Už dávno neplatí, že stačí mít na e-shopu jen hezkou šablonu. V konkurenčním prostředí e-commerce je třeba neustále přicházet s novými nápady. E-shop s možností úprav na míru vám poskytuje mnoho prostoru jak se odlišit od konkurence. Zároveň má však jednu nevýhodu. Je pro něj poměrně drahé průběžně reagovat na změny na trhu. Náklady se totiž nemohou rozkládat mezi více zákazníků jako v případě řešení bez úprav, kde na jednom kódu běží stovky nebo i tisíce e-shopů.

8772LH04PGR8K1

Trh e-commerce se, stejně jako celé IT odvětví, vyvíjí překotnou rychlostí. Od roku 2008, kdy Shopio vzniklo, už jsme zažili mnohé zásadní změny. Neuvěřitelný nástup Heuréky, která převálcovala tehdy velmi dobře zavedené Zboží.cz. Asynchronní měřící kód Google Analytics a měření konverzí. Vznik a rozmach zasílatelských společnosti jako DPD, PPL nebo Geis a platebních metod jako GoPay, PayU nebo ThePay. Integrace každé takové velké změny do Shopia a její otestování může stát i několik desítek tisíc, které ve výsledku někdo musí zaplatit. Dělat je všechny v rámci zákaznických úprav je i pro zavedené e-shopy docela velká investice.

Takhle situace se nám vůbec nelíbila. My totiž chceme, aby Shopia prosperovala, vydělávala a dařilo se jim. Přišli jsme proto s řešením.

Nabízíme pravidelné aktualizace neboli upgrady, které respektují existující klientské úpravy. Úpravy postupně integrujeme do hlavní verze Shopia a při upgradu je „propisujeme“ do klientských verzí. To nám umožňuje náklady na integraci rozložit mezi více zákazníků a zároveň nám to šetří čas. Je to tedy, jak říkají Angličani, „win-win“.

V každém upgradu získá e-shop za zlomek ceny ty nejdůležitější změny za poslední půl rok. Typicky jsou to úpravy ve feedech pro vyhledávače zboží (ve 2.1 nové Zboží.cz), měřících kódech (ve 2.1 Sklik Retargeting) nebo vylepšení pro SEO (ve 2.1 rozšířená metadata v detailu produktu). Dále pak drobná i větší vylepšení použitelnosti pro administrátory i návštěvníky. Takto jsme například v poslední verzi přidali možnost nevyžadovat vyplnění adresy pro osobní odběry – to je něco, co nabízí zatím jen minimum řešení.

Náročnost upgradů je závislá na množství a složitosti zákaznických úprav. Kalkulujeme ji tedy individuálně a může se v průběhu času měnit s tím, jak se zapracovávají klientské úpravy. Někteří z našich klientů, jako třeba Nejbaby.cz, už je využívají v pilotním provozu a jsou s nimi spokojeni. Pokud vás tato možnost zaujala a zvažujete, že byste chtěli upgrady pro své Shopio, tak stačí napsat nebo zavolat a domluvíme se :)

Inzerujte na Slevomatu se Shopiem!

Připravili jsme pro naše klienty možnost propojit Shopio a Slevomat – nejznámější český slevový portál. Vaše nabídka na Slevomatu se zobrazí až 300 000 lidem a je to tak ideální možnost, jak na svůj e-shop přilákat nové zákazníky.

Co můžete na Slevomatu inzerovat?

  • Vybraný produkt ve slevě.
  • Kombinaci produktů ve slevě.
  • Slevový kupón na pevnou částku nebo procentní slevu.

Po zakoupení na Slevomatu obdrží zákazník unikátní kód voucheru, který následně může uplatnit na vašem e-shopu.

E-shopy, které automatické propojení se Slevomatem nemají, nutí své zákazníky, aby vložili kód voucheru do poznámky objednávky. To s sebou ale nese celou řadu problémů:

  • Zákazník může vložit neplatný kód voucheru (ať už omylem nebo úmyslně) – a prodejce tak musí kód ručně ověřovat a stojí ho to spoustu času navíc.
  • Zákazník sice vloží správný kód voucheru, ale vybere na e-shopu produkt, na který se sleva nevztahuje. Prodejce musí komunikovat se zákazníkem a to mu opět zabere spoustu času.
  • Zákazník musí čekat, až prodejce kupón ověří a než bude jeho objednávka expedována.
  • E-shop není schopen okamžitě spočítat celkovou cenu objednávky.
  • Pokud se zákazník rozhodne v průběhu nákupu do košíku přidat další položky tak neví, jaká bude finální cena objednávky po uplatnění kupónu a zda nebude muset něco doplácet.
  • Určitá kombinace dopravy a platby může hodnotu objednávky navýšit. Pokud je zákazník nucen rozdělit svou objednávku, musí zaplatit za dopravu 2x, což ho může velmi často od nákupu odradit.
  • Bez přesné ceny nemůže zákazník zaplatit okamžitě, např. elektronicky. Musí počkat, až prodejce vystaví fakturu.

Shopio všechny tyto problémy řeší za vás!

Shopio umožňuje propojení se Slevomatem pomocí volitelného modulu, který si můžete objednat. Díky propojení Shopia a Slevomatu se sleva spočítá zákazníkům automaticky a okamžitě. Po zadání slevového kódu a dokončení nákupu na e-shopu dojde k automatickému uplatnění kupónu na Slevomatu. Shopio samozřejmě neumožní uplatnit exspirovaný nebo již použitý kupón.

slevomat2

Aby vše mohlo automaticky fungovat, je samozřejmě potřeba drobná akce na straně e-shopu. V Shopio administraci je potřeba vytvořit slevový kupón a ten svázat s ID vaší akce na Slevomatu.

Jak slevový kupón nastavíte je jen na Vás, měl by ale logicky odpovídat inzerované ceně na Slevomatu. Tzn. pokud prodáváte produkt za 1000 Kč na Slevomatu za 800 Kč, vytvoříte slevový kupón na 1000 Kč a svážete ho s vybraným produktem. Zákazníci, kteří si slevový kupón na Slevomatu zakoupí, mají poté po uplatnění kupónu produkt na vašem e-shopu za „0 Kč“.

Pokud budete mít složitější kampaň, kdy nabízíte více variant produktu s různou cenou v rámci jedné akce, rádi vám s nastavením kampaně pomůžeme.

Před oficiálním spuštěním akce vám také doporučujeme svoji kampaň pokaždé důkladně otestovat.

shopio_slevomat

Více informací o možnostech jak inzerovat na Slevomatu naleznete přímo na webu Slevomat.cz.

Propojení Shopia se Slevomatem jsme již realizovali pro e-shop Levné učebnice a pro GSKlub.

Pokud budete mít k možnosti propojení vašeho e-shopu se Slevomatem jakékoliv dotazy, neváhejte nás kontaktovat.

Snažší vyplňování zákaznických údajů s Auto-fill

V nové verzi Shopia, která nás čeká na podzim, jsme kromě jiných vylepšení zavedli podporu pro auto-fill, tedy automatické vyplňování zákaznických údajů z prohlížeče. Moderní prohlížeče, jako například Google Chrome, si automaticky zapamatovávají, co zadáváte do políček při objednávce a jsou je pak schopny vyplnit automaticky. Prohlížeč se pokusí odhadnout, co které políčko znamená, ale ne vždy se mu to daří. Typický problém je, že pro oddělené jméno a příjmení vyplní celé jméno jen do jednoho políčka. Díky této úpravě mu přesně řekneme, co kam patří a dokáže tak například správně vyplnit jinou dodací adresu.

Připravili jsme krátkou animaci toho, jak vyplňování funguje.

animace vyplňování zákaznických údajů

Přijde nám to jako skvělý způsob, jak vašim zákazníkům nakupování ještě více zpříjemnit. Pro klienty, kteří využívají možnosti průběžného upgradu eshopu bude tato novinka dostupná v rámci podzimního upgradu. Ostatní si ji mohou poté vyžádat jako zákaznickou úpravu.

Co používáme na vývoj (nejen) Shopia

Tomáš už sepsal, jak nám vývoj funguje po organizační stránce, já se vám teď pokusím přiblížit, jaké nástroje a technologie používáme.

Backend

Shopio je postavené na Zend Frameworku 1 (protože v době, kdy se vybíralo, na čem ho stavět nebylo nic moc jiného k dispozici). Samozřejmě jsme si museli některé věci v ZF upravit a opravit, ale naprostou většinu věcí se nám podařilo poslat zpět do upstreamu (takže už jsou součástí ZF). Kromě ZF1 používáme různé další knihovny – Twig, Texy, Nette (Image, Debug), mPDF, PHPExcel, Symfony Console.

Shopio běží na PHP 5.3 (na Tojeono.cz) nebo PHP 5.5 (v naší infrastruktuře) a MySQL (resp. MariaDB). Na šablony se historicky používalo jen čisté PHP (jak je v ZF aplikacích časté), ale aktuální vývojová verze Shopia už používá Twig (s tím souvisí i to, že Shopio bude podporovat externě vytvářené šablony – ale o tom napíšu až někdy jindy). Některá Shopia dále používají Elasticsearch (a kupodivu nejen na hledání, ale třeba i na výpis kategorií), Memcache, Redis.

A jak už Tomáš zmiňoval, tak hodně důležitý je pro nás Jenkins. Pro každý commit a každý Pull Request se pouští automatizovaný build, který kontroluje spoustu věcí a v případě jakéhokoliv problému failne a dá vědět mailem. Vezmu to jen rychle:

  • PHP-Parallel-Lint – zkontroluje celé Shopio za pár sekund
  • twig-lint – kontrola syntaxe šablon
  • PHPUnit – testujeme jak model, tak i ZF controllery
  • PHP_CodeSniffer – Zend standard a spoustu dalších pravidel – psal jsem o tom na svém blogu
  • PHPCPD
  • JSHint – kontrola syntaxe JS
  • JSCS – CodeSniffer pro JS

Infrastruktura

Velká část Shopií běží na sdíleném hostingu Tojeono.cz (kromě sdíleného hostingu mají i VPS s dedikovanou pamětí a výkonem pro větší zátěž).

Kromě toho jsme v poslední době vytvořili vlastní infrastrukturu pro běh Shopií. Základem je loadbalancer (s nginxem), který servíruje statická data a ostatní požadavky předává na jednotlivé workery (nginx + php-fpm). Těch workerů může být podle potřeby samozřejmě více. Jako databáze se používá MariaDB (master a slave servery). Na monitoring Icinga (fork Nagiosu) a collectd + Visage. Všechny servery běží na Debianu.

A to nejdůležitější je to, že jednotlivé servery nejsou instalovány ručně, ale pomocí SaltStack (obdoba Chef/Puppet). Takže veškerou konfiguraci serverů máme verzovanou v gitu a není problém rychle nahodit obdobnou infrastrukturu kdekoliv na nových serverech, případně přidat další worker. Úvod do saltu popsal Tomáš na Zdrojáku.

Na deploy používáme buildskripty ve Phingu, do kterého si píšeme vlastní tasky. Samotný deploy spouštíme z webového rozhraní a je to one-click-deploy (kdy se na jedno kliknutí na server nahraje poslední revize z gitu a spustí změnové SQL skripty).

Na řízení projektů a komunikaci s klienty používáme ActiveCollab. Je to systém, který máme nainstalovaný u sebe a platíme roční poplatek za upgrady. V minulosti jsme uvažovali o vytvoření vlastního systému, ale vždy jsme to nakonec zavrhli, protože by to bylo neúměrně mnoho práce.

Frontend

Na frontendu používáme HTML5 (+microdata tam, kde mají smysl). CSS generujeme ze Sassu (používáme Compass). Zajímavostí je, že používáme Twitter Boostrap, ale místo oficiální LESS verze používáme Sassový port (teď už podporují Sass i oficiálně). V JavaScriptu máme převážně drobnosti v jQuery/jQueryUI. CSS i JS samozřejmě spojujeme a minifikujeme (používáme vlastní knihovnu)

Vývojáři

Zajímavostí je, že zatím všichni používáme na vývoj Windows (to neznamená, že nemáme rádi Linux – na vývojářských strojích naleznete cygwin a spoustu linuxových nástrojů). Chvíle trápení práce s Macem (který máme pro build iOS aplikace) všem stačila.

Všechen kód verzujeme gitem a ukládáme ho na Github, kde nám PR v poslední době obohacují GitHub Selfies Na práci s gitem používáme GitExtensions <3 (a bash používáme jen pro několik příkazů – resp. kombinací příkazů uložených jako aliasy).


Kód píšeme v PHPStormu a lokálně si ho spouštíme na xamppu/wamppu. A používáme xdebug (na debugování a profilování).

Kávu z Holešovických pražíren pro nás vaří DeLonghi Magnifica a nádobí po nás myje Baumatic myčkovič.

Co dál?

Používáte také podobné nástroje? Nebo jiné a lepší a divíte se, že si s těmito vystačíme? Dejte nám vědět na info@www.shopio.cz. Neustále hledáme nové posily do týmu a rádi se něco nového naučíme.

Jak vyvíjíme Shopio?

Tento příspěvek je trochu techničtějšího rázu, než je na našem blogu obvyklé. Rád bych vám v něm přiblížil některé zajímavé postupy, které používáme při vývoji Shopia.

Ilustrativní: Monitor s kódem

Práce na Shopiu je rozdělena na dvě části – práce na samotné platformě a práce na úpravách pro konkrétní zákazníky. Abychom mohli zákazníkům dodávat úpravy v odpovídajícím čase a za přijatelné ceny, potřebujeme mít pro úpravy stabilní základ, na který se můžeme spolehnout. Proto je pro nás kvalita základního kódu velmi důležitá.

Společné vlastnictví kódu

Pokud pracujete ve větší společnosti, určitě to znáte – kusy kódu, o kterých nikdo netuší jak fungují, a jejich úprava je za trest. Takové kusy kódu na Shopiu prakticky nemáme. Vzhledem k tomu, že w3w je velmi svobodná firma, tak potřebujeme, aby mohl kdokoli kdykoli pracovat na jakémkoli kusu kódu (někdo může být na cestách, nebo mít doma výpadek internetu a někdo ho musí zastoupit). Základním kamenem společného vlastnictví kódu jsou coding standards – tedy způsob formátování zdrojového kódu, pojmenovávání tříd, proměnných a souborů.

Nepoužíváme žádný ze zavedených coding standardů, ale pro naše potřeby jsme si upravili Zend coding standard tak, aby nám zbytečně nepřidělával práci, ale aby nám pomáhal. Při zavádění coding standardů je důležité, aby s jeho zavedením souhlasili všichni a byl výsledkem shody. Jedině v tom případě ho budou všichni svědomitě používat a bude přínosem. Nám se to podařilo, a tak dokonce často nastávají vtipné situace, kdy člověk najde chybu v kódu, udělá git blame a zjistí, že ji napsal sám. Po čase se totiž z pohledu do kódu prakticky nedá poznat, kdo ho napsal. A to je základ společného vlastnictví kódu.

Problém coding standardů je, že kontrolovat je nikoho nebaví. Je to otravná práce. Ale nebyli bychom vývojáři, kdybychom si nedokázali pomoct skriptem! Takže coding standardy za nás hlídá phpcs. Automatizované kontroly nasazujeme postupně, jak postupně opravujeme standardy. Pokud si na běžícím projektu vymyslíte standard a začnete ho kontrolovat pomocí phpcs, nejspíš to bude epic fail. Proč? Protože každé spuštění vrátí Found 1000 violations, too many violations. Je potřeba to dělat postupně od nejzásadnějších věcí, které dodržujete už teď a postupovat k detailům. A jednou za čas udělat big bang a přepsat něco napříč projektem. Za dobu, co nám phpcs běží, se počet pravidel poměrně dost rozrostl a myslím, že zachytí většinu běžných chyb.

Git

Před časem jsme celou naší codebase zmigrovali z SVN do gitu. Zpětně to bylo velmi dobré rozhodnutí, protože nám umožnilo zavést množství různých postupů, které nám pomáhají zlepšovat kvalitu kódu. Při vývoji Shopia používáme upravený Github workflow. Veškeré úpravy probíhají v oddělených větvích a poté jsou pomocí pullrequestů integrovány zpět do hlavní vývojové větve. Pullrequesty (PR), pokud nevíte o co se jedná, jsou vlastně požadavky na zaintergrování nějakého kódu. Vytvořením PR říkáme „žádám tě, abys kus kódu, který je ve větvi XY, přidal do větve ABC“. A to je přesně situace, kdy je ideální čas na code review.

Pullrequesty a Code review

Základní pravidlo: Nikdy si nikdo nemergne vlastní PR.

I kdyby to mělo být přejmenování jedné proměnné. Za každý kus kódu v hlavní vývojové větvi jsou tak vždy zodpovědní dva lidé – ten, kdo to vytvořil, a ten, kdo ho mergoval. Před mergnutím PR si tak dotyčný kód vždycky pořádně zkontroluje, když je za něj zodpovědný.

Prvním krokem review je kontrola samotného kódu – v rámci PR na Githubu je na to samostatná záložka, ve které jsou zobrazené změny v kódu, které PR přináší (diff). U menších změn většinou stačí změny v kódu jen přečíst a pro sebe si je vysvětlit. Tím člověk odhalí většinu zjevných chyb – špatně pojmenované třídy a proměnné, nesmyslné konstrukce atp. Jakmile při review narazím na něco, u čeho si řeknu „co vlastně tohle dělá?“, tak tomu dám chvilku, a pokud to nepochopím, tak přidávám komentář, že je třeba kód přejmenovat, přestrukturovat nebo aspoň doplnit komentář. Díky tomu se nám daří mít v hlavní větvi minimum kódu, který by byl nepochopitelný. A to nám dál pomáhá ve společném vlastnictví kódu.

Kontinuální integrace

Martin v rámci své bakalářky (doporučuji k přečtení) pro w3w zprovoznil CI server Jenkins, ten nám umožňuje automatické kontroly jak běžících projektů, tak vývojových větví. Pro každou větev beží v Jenkinsu build, který zkontroluje PHP/JS coding standardy, zkontroluje, jestli PHP/JS/twig/SASS neobsahuje syntaktické chyby (lint) a spustí testy. Nedávno jsme také zprovoznili přímé napojení na Github, takže se nám automaticky buildují pullrequesty a přes API se označují. Situace, kdy člověk pushne na Github, chvilku počká a u githubu se mu objeví zelená fajfka, že build proběhl bez chyb, je super!

Párové programování

Čas od času narazíme na problém, který je tak velký, že si s ním člověk láme hlavu a vůbec se nikam neposouvá. V praxi se ukázalo, že než se celý den trápit sám, tak se vyplatí pozvat kolegu, ať jde programovat se mnou.

Rozdíl mezi párovým programováním a „zeptáním se kolegy“ je zásadní. Ptát se jednou za čas není efektivní – kolegu rušíte z jiné práce, musí přerušit to co dělá, začít se soustředit na váš problém, pochopit ho a pak poradit. Při párovém programování si oba vyhradíme čas, ten kus kódu máme v hlavě a plně se soustředíme na to, co děláme.

Nestává se příliš často, že by výsledek rychleji hotový (když se sečtou hodiny obou vývojářů). Ale párové programování přináší jiné hodnoty než rychlost. Vyšší kvalitu kódu, skutečně „společné“ vlastnictví kódu a je to vlastně i teambuilding.

Pokud jste ještě párové programování nezkoušeli, určitě mu dejte šanci. V práci, na Code Retreatu, nebo zajděte na Coding Dojo. Nebo si něco naprogramujte pro zábavu u jednoho PC s kamarádem.

WF

Pokud jste až doteď znali všechny použité zkratky, tak tuhle asi přeci jen neznáte. Za magickou zkratkou WF se skrývá Wopruz Faktor.

Jako každá aplikace, která má za sebou nějakou historii, i Shopio má části, které jsou méně kvalitní než jiné. Protože v rámci zákaznických úprav zasahujeme často do spousty míst kódu, stane se, že je třeba něco upravit i v těch „ošklivějších“ končinách. A podle toho, jak moc „ošklivý“ ten kód je, tak vysoký je Wopruz Faktor, který je úpravě přiřazený. Wopruz Faktor tedy udává, jak moc se nikomu do dané úpravy nechce („protože to bude wopruz“). Pozor aby nedošlo ke zmatení. WF není to samé jako splácení technologického dluhu. Má mnohem blíž spíš ke zvyšování developer experience (z frameworků DX prosazuje nejvíc asi Symfony).

Dobrou zprávou je, že snižování WF je jednou z priorit během rozvoje Shopia. I během nejnabitějších měsíců věnujeme alespoň několik hodin snižování WF. Za poslední rok jsme udělali v tomto ohledu dost práce a vymetli jsme i ta nejzatuchlejší místa, takže nám teď vývoj dělá o dost větší radost.

Přístup managementu, důraz na kvalitu kódu, svědomité splácení technologického dluhu a zlepšování developer experience je podle mého jednou ze zásadních výhod práce ve w3w.

Možná to vypadá, že se w3w stará víc o vývojáře než o klienty. Ale opak je pravdou. Protože většinu úprav účtujeme hodinově podle reálné náročnosti, tak má snížení WF přímý vliv na výslednou cenu (a termín). Rozdíl mezi „to bude wopruz na celé odpoledne a dneska se mi do toho už nechce (4 h)“ a „to bude celkem snadný, udělám to večer (1 h)“ může být výsledkem jedné nebo dvou hodin snižování WF.

Jak nám to funguje?

Nemůžu mluvit za ostatní, ale z technického pohledu vývoj Shopia funguje skvěle. Především společné vlastnictví kódu nám umožňuje si vzájemně pomáhat a sdílení kódu člověka obohacuje. Tu člověk objeví zajímavou konstrukci, jindy zas elegantní řešení složitého problému. Code review mě donutil víc přemýšlet nad kvalitou kódu a DX už během psaní. Poskytuje také určitou jistotu v tom, že se do produkce nedostane nějaká hloupá chyba z nepozornosti.

Co se chystá?

Nejžhavější věc na Shopiu je momentálně nová šablonovací vrstva, která by měla umožnit grafikům mnohem širší možnosti, co se úprav designu týče. A také nová serverová infrastruktura, díky které se nám otevírá možnost používat nové zajímavé nástroje (redis, fronty, replikované databáze a další). Myslím, že příští rok bude pro rozvoj Shopia velmi zásadní a posune ho hodně dopředu.

Říkáte si teď v duchu, že byste chtěli také programovat takhle? Nebo si říkáte, jak můžeme fungovat bez [doplňte skvělý nástroj pro týmový vývoj]? Dejte nám vědět na info@www.shopio.cz. Neustále hledáme nové posily do týmu a rádi se něco nového naučíme.