#241 Domena internetowa – nazwa sklepu, a może coś więcej?

Domena internetowa, czyli tak naprawdę adres www, który wpisujemy w przeglądarkę, bu dotrzeć na naszą stronę, to bardzo ważna część każdego biznesu. Wraz z odnoszonymi sukcesami rośnie wartość naszej domeny. Adresy www wielkich marek warte są miliony dolarów, a adresy wpisane z błędami lub innymi końcówkami bardzo szybko znikają z puli dostępnych do kupienia rekordów. Dlaczego? Czy warto jest zainwestować w zakup kolejnych domen dla naszego e-biznesu? Dlaczego niektórzy właściciele e-sklepów korzystają z wielu adresów przekierowujących na jedną stronę? Odpowiedź na to i kilka innych pytań znajdziecie w dzisiejszej lekcje. Czytaj dalej

Magia e-commerce, czyli ludzka psychika a wydatki

Żyjemy w czasach, gdzie półki uginają się pod ciężarem wyłożonych na nich towarów, a każdy produkt jest w zasadzie “na wyciągnięcie ręki”. Sklepy internetowe niemal każdego dnia oferują nowe funkcjonalności, a dokonanie zakupu, nawet zza granicy jest już właściwie na porządku dziennym. Szeroka oferta sprawia jednak, że podjęcie decyzji zakupowej staje się coraz trudniejsze – gdzie kupić, co kupić, jaki kolor wybrać, czy gdzieś oferowana jest zniżka? Te i wiele innych pytań zajmują codziennie głowy tysięcy kupujących. Zakupy robiliśmy i robić będziemy zawsze, jednak wraz z upływem czasu zmienia się ich jakość. Oferuje się nam coraz większe możliwości, zwłaszcza we wspomnianym już obszarze e-commerce. Zanim jednak podejmiemy decyzję związaną ze swoimi pieniędzmi, w naszym mózgu zachodzi wiele reakcji, głównie jednak emocjonalnych, a nie racjonalnych. Pytanie zatem, czy możliwe jest, aby nasz mózg wpadł w tak zwaną pułapkę finansową?

Tę i wiele innych kwestii porusza neuroekonomia, czyli nauka badająca związki pomiędzy zachodzącymi w mózgu reakcjami, a decyzjami związanymi z pieniędzmi (kupowaniem lub inwestowaniem). Lewa półkula naszego mózgu odpowiedzialna jest za mowę, racjonalne myślenie, zdolności analityczne i logikę, prawa z kolei za odczuwanie emocji, kreatywność, intuicję czy wyobraźnię. Zanim podejmiemy się dokonania czynności zakupowej, obie półkule naszego mózgu będą musiały stoczyć ze sobą naprawdę potężną walkę. Jednak, jak głosi neuroekonomia – decyzje finansowe podejmujemy najczęściej pod wpływem emocji. Wynika to stąd, że kiedy się wahamy, szybciej reaguje prawa półkula naszego mózgu, natomiast dopiero w momencie, gdy nie jesteśmy w stanie dokonać spontanicznego wyboru, “dowodzenie” przejmuje półkula lewa.

Kupno produktu to nic innego, jak wymiana pieniędzy na dany produkt. Jak się jednak okazuje, proces ten wcale nie wiąże się z wyłącznie pozytywnymi emocjami – w momencie dokonywania zakupów mózg ludzki odczuwa bowiem stratę, wynikającą z ubytku ciężko zarobionych pieniędzy. Aby to poczucie straty zminimalizować, firmy wręcz prześcigają się w oferowaniu coraz to nowszych, szybszych i mówiąc wprost, niewymagających myślenia metod płatności. W samych sklepach internetowych wyróżnić możemy np. przelew, płatność kartą, Blikiem czy Bitcoinami. Takie formy opłaty za zamówienie wymagają tak naprawdę zaledwie kilku sekund aktywności kupującego. To kilka sekund, podczas których do świadomości klienta nie zdąży jeszcze dotrzeć fakt, że właśnie wydał on dużo (a często nawet za dużo) pieniędzy. Dodatkowo również, korzystając z oferowanych współcześnie metod płatności, klienci nie widzą realnie ubywających z portfela pieniędzy, co sprawia, że łatwiej jest im kupować kolejne i kolejne rzeczy. Dzięki temu, że klienci po prostu nie czują, że wydają pieniądze, wartość koszyka nieustannie wzrasta. Taka tendencja wzrostowa widoczna jest zwłaszcza w sklepach internetowych, które wręcz do perfekcji opanowały ekspresowe tempo obsługi procesu zakupowego. To właśnie w przypadku e-commerce, od zakupu produktu dzieli nas zaledwie kilka kliknięć, a dzięki szybkim przelewom nie musimy nawet wypełniać na koncie bankowym danych naszej transakcji – wystarczy tylko jedno kliknięcie w magiczny przycisk “potwierdź” i stajemy się bogatsi o nowy produkt, a nasz portfel lżejszy o 100, 200 czy 1000 zł.

Coraz to nowsze metody płatności powstają nie bez przyczyny. Jak widać, ich rozwój i wirtualizacja, w połączeniu z uproszczeniem i przyspieszeniem całego procesu zakupowego, w sposób znaczący wpływają na wzrost konsumpcjonizmu. Patrząc na różne badania rynkowe i artykuły poświęcone zagadnieniu neuroekonomii, czy po prostu obserwując ludzi i ich zachowania zakupowe, możemy być pewni, że rynek handlu, zwłaszcza tego internetowego, będzie dalej rósł w siłę. Pewne, wpisane już w naszą naturę zachowania konsumenckie ewoluują, a firmy nie pozostają na nie obojętne. Należy zatem pamiętać, że to co dla jednych będzie pułapką finansową, dla innych stanowić będzie prawdziwą żyłę złota.

#240 Język korzyści w e-commerce

Zdjęcia i opisy produktów w e-commerce, mają przekonać klienta do zakupu. W handlu elektronicznych sprzedajemy nie tyle sam produkt, ile wyobrażenie o nim. Dla kupującego nie jest on namacalny, nie ma go jak przymierzyć, czy postawić w salonie by sprawdzić jak wygląda. Dlatego tak ważne są dobrej jakości treści, które pozwolą kupującemu zapoznać się z ofertą sklepu i wybrać towar idealnie pasujący do jego potrzeb. Na pomoc sprzedawcy przychodzi język korzyści, którym komunikujemy klientom, jakie cechy mają sprzedawane przez nas towar. Jak wykorzystać taki rodzaj komunikacji? Czytaj dalej

Co siedzi w środku tablic PHP?

Zacznę może od genezy problemu. Pracowałem nad optymalizacją zużycia pamięci w pewnym procesie importu danych, ponieważ pierwsze analizy wskazywały na użycie około 890MB – taka wartość była nie do przyjęcia. Standardowo na pierwszy ogień poszły obiekty DAO na rzecz zwykłych tablic – efektem był spadek do 280MB. Niemniej to nadal zbyt dużo, celem było maksimum 128MB. Analizując cały proces doszedłem do wniosku, że można przyspieszyć trochę proces i pozbyć się sporej ilości pamięci usuwając standardowe wyszukiwanie wierszy przez repozytorium obiektów DAO w zamian budując mini-repozytorim składające się z tablicy par (czyli tablica tablic de facto) [id, source_id]. Pierwsze testy i spore zaskoczenie, bo tak prosta struktura składająca się z około 65000 par zajmowała około 27MB. Poniżej przykład:

<?php

echo number_format(memory_get_usage(), 0, '.', ' ') . "\n";

$a=[];
for ($i=0; $i<65536; $i++)
{
	$a[] = [$i, 2*$i];
}

echo number_format(memory_get_usage(), 0, '.', ' ') . "\n";
echo number_format(memory_get_peak_usage(), 0, '.', ' ') . "\n";

daje w rezultacie:

Jest to wartością dość dużą, niestety. Zrobiłem szybko jeszcze dwa inne testy. Tablica jednowymiarowa z narzuconym indeksem:

<?php

echo number_format(memory_get_usage(), 0, '.', ' ') . "\n";

$a=[];
for ($i=0; $i<65536; $i++)
{
	$a[2*$i] = $i;
}

echo number_format(memory_get_usage(), 0, '.', ' ') . "\n";
echo number_format(memory_get_peak_usage(), 0, '.', ' ') . "\n";

dało w rezultacie:

oraz tablica jednowymiarowa bez narzuconego indeksu:

<?php

echo number_format(memory_get_usage(), 0, '.', ' ') . "\n";

$a=[];
for ($i=0; $i<65536; $i++)
{
	$a[] = $i;
}

echo number_format(memory_get_usage(), 0, '.', ' ') . "\n";
echo number_format(memory_get_peak_usage(), 0, '.', ' ') . "\n";

co dało wynik:

Różnica między drugim i trzecim testem choć znaczna, to i tak jest niewielka w porównaniu do pierwszego testu – zużycie pamięci jest prawie 10 razy mniejsze. Zacząłem się zastanawiać, co takiego tkwi wewnątrz tablic w PHP, że prosta struktura z niewielką ilością danych pochłania kosmiczne ilości pamięci?

Ściągnąłem więc źródła PHP w wersji 7.2.14 i po poszukiwaniach znalazłem powód.

Uwaga! Wszystkie wyliczenia prowadzone są z założeniem kompilacji kodu dla 64-bitowego procesora i systemu operacyjnego: typ long ma 8 bajtów, wskaźniki mają 8 bajtów.

Najpierw należy wyjaśnić, jak PHP wewnętrznie przechowuje zmienne. Zmienne w PHP z definicji nie mają typu, można string traktować jak integer i na odwrót (od PHP 7 mamy TypeHint, ale to jest inny mechanizm). Skąd więc wiadomo jakiego typu jest zmienna? Wewnętrznie odpowiada za to struktura ZVAL (zend_value) i wygląda ona tak:

struct _zval_struct {
	zend_value        value;			/* value */
	union {
		struct {
			ZEND_ENDIAN_LOHI_4(
				zend_uchar    type,			/* active type */
				zend_uchar    type_flags,
				zend_uchar    const_flags,
				zend_uchar    reserved)	    /* call info for EX(This) */
		} v;
		uint32_t type_info;
	} u1;
	union {
		uint32_t     next;                 /* hash collision chain */
		uint32_t     cache_slot;           /* literal cache slot */
		uint32_t     lineno;               /* line number (for ast nodes) */
		uint32_t     num_args;             /* arguments number for EX(This) */
		uint32_t     fe_pos;               /* foreach position */
		uint32_t     fe_iter_idx;          /* foreach iterator index */
		uint32_t     access_flags;         /* class constant access flags */
		uint32_t     property_guard;       /* single property guard */
		uint32_t     extra;                /* not further specified */
	} u2;
};

typedef union _zend_value {
	zend_long         lval;				/* long value */
	double            dval;				/* double value */
	zend_refcounted  *counted;
	zend_string      *str;
	zend_array       *arr;
	zend_object      *obj;
	zend_resource    *res;
	zend_reference   *ref;
	zend_ast_ref     *ast;
	zval             *zv;
	void             *ptr;
	zend_class_entry *ce;
	zend_function    *func;
	struct {
		uint32_t w1;
		uint32_t w2;
	} ww;
} zend_value;

Nie będę dalej rozwijał wszystkich typów, tym bardziej że z ich nazwy można się zorientować, co tam jest. Generalnie struktura zend_value zawiera trzy pola, z których każde jest unią i ma długość:
• value – 8 bajtów
• u1 – 4 bajty
• u2 – 4 bajty

Wynika z tego, że sama struktura opisująca zmienną ma wielkość przynajmniej 16 bajtów, nie licząc wartości samej zmiennej: dla typów całkowitych i zmiennoprzecinkowych będzie to 0 (zero), ponieważ mieszczą się one bezpośrednio w strukturze; dla łańcuchów, tablic, obiektów itp. jest to tyle, ile wynosi rozmiar tej zmiennej – w strukturze jest przechowywany tylko wskaźnik do pamięci zajmowanej przez zmienną.

W naszym przykładzie było około 65000 liczb całkowitych, co daje 1,0MB na same liczby.

No dobrze, ale co w końcu z tymi tablicami? Tablice są opisane inną strukturą, zend_array:

struct _zend_array {
	zend_refcounted_h gc;
	union {
		struct {
			ZEND_ENDIAN_LOHI_4(
				zend_uchar    flags,
				zend_uchar    nApplyCount,
				zend_uchar    nIteratorsCount,
				zend_uchar    consistency)
		} v;
		uint32_t flags;
	} u;
	uint32_t          nTableMask;
	Bucket           *arData;
	uint32_t          nNumUsed;
	uint32_t          nNumOfElements;
	uint32_t          nTableSize;
	uint32_t          nInternalPointer;
	zend_long         nNextFreeElement;
	dtor_func_t       pDestructor;
};


typedef struct _Bucket {
	zval              val;
	zend_ulong        h;                /* hash value (or numeric index)   */
	zend_string      *key;              /* string key or NULL for numerics */
} Bucket;


typedef struct _zend_refcounted_h {
	uint32_t         refcount;			/* reference counter 32-bit */
	union {
		struct {
			ZEND_ENDIAN_LOHI_3(
				zend_uchar    type,
				zend_uchar    flags,    /* used for strings & objects */
				uint16_t      gc_info)  /* keeps GC root number (or 0) and color */
		} v;
		uint32_t type_info;
	} u;
} zend_refcounted_h;

No i tablica okazała się całkiem rozbudowanym tworem. Mamy strukturę zend_refcounted_h z której korzysta GarbageCollector, mamy strukturę Bucket w której są poszczególne elementy tablicy no i w końcu strukturę samej tablicy, gdzie mamy rozmiar, wskaźnik bieżącego elementu itd.

Rozmiary poszczególnych części przedstawiają się następująco:
zend_refcounted_h – 8 bajtów
Bucket – 32 bajty (16 bajtów zval plus 2 pola po 8 bajtów)
zend_array – 56 bajtów (nie będę się tutaj rozpisywał, kto jest chętny może sobie sprawdzić)

Podsumowując: nasza tablica 65536 elementów typu całkowitego (integer) ma rozmiar:
• struktura zend_array: 56 bajtów
• 65536 elementów Bucket zawierających wartości integer: 2 097 120 bajtów

Razem daje to 2 097 176 bajtów, co jest w miarę zgodne z tym, co widzieliśmy w trzecim teście. Jak w takim razie wyglądałyby obliczenia dla pierwszego testu?

• struktura zend_array: 56 bajtów
• 65536 elementów Bucket zawierających tablicę: 2 097 120 bajtów
◦ struktura zend_array: 65536 * 56 bajtów = 3 670 016 bajtów
◦ 2 elementy Bucket zawierające liczby całkowite: 65536 * 2 * 32 bajty = 4 194 304 bajty

Łącznie daje to 9 961 496 bajtów. 10MB pamięci na dane, które w języku C zajęłyby maksymalnie 1MB to dość szokujące odkrycie. Tym bardziej, że podliczyłem same struktury danych, bez uwzględnienia faktu wyrównywania pól w strukturach do granicy 8 bajtów (biorąc to pod uwagę np. struktura zval_struct będzie zajmować w pamięci 24 bajty, nie 16; zend_array 80 bajtów zamiast 56) oraz samego zarządzania pamięcią w PHP, struktur pomocniczych itp.

W porządku, a co z obiektami? Cóż, są równie rozbudowane jak tablice:

struct _zend_object {
	zend_refcounted_h gc;
	uint32_t          handle; // TODO: may be removed ???
	zend_class_entry *ce;
	const zend_object_handlers *handlers;
	HashTable        *properties;
	zval              properties_table[1];
};

HashTable to alias dla zend_array (lepiej wygląda….), reszta jest wskaźnikami lub definicje są przedstawione wyżej, suma rozmiaru wszystkich pól daje 52 bajty (72 bajty uwzględniając memory alignment).

Cóż… Mit tak uwielbianych przeze mnie tablic legł w gruzach, tablice nie są dobre na wszystko i okazuje się, że bardzo łatwo jest naciąć się przy ich używaniu. Natomiast mając na względzie, jak są reprezentowane wewnętrznie w PHP można je efektywnie wykorzystywać – tablica składająca się z tablic o dużej liczbie elementów będących typami prostymi jest nadal jednym z najbardziej efektywnych sposobów przechowywania danych. Przypadek tablicy składającej się z dwu-elementowych tablic daje się na szczęście w prosty sposób zredukować do tablicy jednowymiarowej (indeks to jeden element, wartość to drugi).

Na zakończenie powiem jeszcze, że stosując kilka innych sztuczek (przetwarzanie w małych paczkach, korzystanie niemal wyłącznie z PDO, mini-repozytorium par danych) udało mi się zredukować zużycie pamięci z początkowego 890MB do 20MB; szybkość „przy okazji” też wzrosła z około 10 do 2 minut.

Autorem tekstu jest Łukasz Bugaj.

Modus operandi zespołu kreacji

Rola zespołów zajmujących się wizualną stroną systemów na przestrzeni ostatnich lat ewoluowała. Obecnie skupiają się one na tym, by pomóc użytkownikom zrozumieć w jakim miejscu strony internetowej się znajdują, co ich otacza i czego mogą się spodziewać po dokonaniu konkretnej akcji. Można śmiało powiedzieć, że zespoły te pełnią więc rolę „architektów zrozumienia”.

Zespół kreacji to połączenie kompetencji osób specjalizujących się w kwestiach UX, design oraz frontend. Na przestrzeni lat stworzonych zostało wiele dobrych praktyk w zakresie prezentacji produktów, wyszukiwania, filtrowania, procesu zakupowego oraz nawigacji w sklepie internetowym. Wszystko po to, by strona realizowała swoje cele biznesowe. Głównymi elementami budującymi użyteczność systemu e-commerce są więc:

– nauczalność, określenie poziomu trudności wykonania przez użytkownika prostych zadań przy pierwszym kontakcie z systemem,

– efektywność, czyli szybkość korzystania przez użytkowników z rozwiązań w momencie, gdy są już im one znane,

– zapamiętywalność, czyli łatwość przypomnienia sobie mechanizmów działania system po dłuższej przerwie czasowej,

– błędy, czyli częstotliwość popełniania błędów po stronie użytkowników oraz łatwość ich zażegnania,

– satysfakcja, czyli przyjemność jaką użytkownik odczuwa korzystając z systemu.

Główne metody

W celu stworzenia dobrze zaprojektowanego systemu e-commerce i w oparciu wyżej wymienione elementy, można wyróżnić następujące metody:

– badania na użytkownikach (scenariusze, testy z prowadzącym),

– analiza zachowań użytkowników poprzez narzędzia analityczne, np. Google Analytics,

– organizacja treści w celu wspierania użyteczności. Na tę architekturę informacji składa się: organizacja, sposób grupowania treści, nazewnictwo, nawigacja oraz wyszukiwanie (formułowanie zapytań, które porównywane są z dokumentami relewantnymi we wszystkich zbiorach informacji).

Wszystkie metody oparte są o uniwersalne konceptach projektowania oraz o zasady dotyczące ludzkiej percepcji.

Narzędzia wspierające

Na rynku istnieją dziesiątki narzędzi wspierających pracę architektów informacji. Wśród nich, warto wybrać te najbardziej dopasowane do specyfiki branży docelowej. Wśród wykorzystywanych narzędzi zespołu UX możemy znaleźć:

– papier i ołówek, które posłużą nam do możliwie najszybszej wersji makietowania i przekazywania pomysłów,

– UX Pin, Axure, które pozwolą na makietowanie w bardziej ustrukturyzowanej formie,

– Silverback, umożliwiający przeprowadzenie na użytkownikach testóww formie wideo, według przygotowanego wcześniej scenariusza. W tym przypadku rejestruje się zarówno akcje wykonywane w sklepie internetowym jak i mimikę użytkownika. Taki materiał jest bazą do analizy i umożliwia wprowadzenie ewentualnych usprawnień przez zespół projektowy,

– mapy ciepła, takie jak CrazyEgg i Hotjar które wykorzystywane są w celu zdiagnozowania głównych obszarów zainteresowania użytkowników,

– narzędzia analityczne jak Google Analytics i panel sklepu internetowego pomocne w analizie sprzedaży.

Wszystkie powyższe elementy, w połączeniu z intuicją, doświadczeniem, wiedzą zespołu oraz otwartością na poszukiwanie nowych rozwiązań, sprawiają że „architekci zrozumienia” mogą z sukcesem realizować swoją rolę.

#239 Jak sklepy komunikowały promocje Black Friday 2018

Styczeń to dobry czas na podsumowania. My na tapetę wzięliśmy chyba największą zeszłoroczną akcję promocyjną w polskim e-commerce. Czarny piątek bo o nim będzie mowa, bardziej znany jako Black Friday przypadał w zeszłym roku na dzień 23 listopada. O ile ten rodzaj wyprzedaży jest najbardziej rozpowszechniony w Stanach Zjednoczonych, Kanadzie czy Wielkiej Brytanii to w polskim internecie również nie mogło zabraknąć kultowych wyprzedaży. Czytaj dalej

Podsumowanie Q4 2018 w i-systems

Końcówka roku – gorący czas niemal w każdej firmie. W tych związanych z e-commerce chyba jeszcze bardziej intensywny. Jak to wyglądało w i-systems i jak pogodziliśmy prace na rzecz systemów dla naszych klientów z pracami na rzecz rozwoju produktów? Jakie będą główne aspekty naszej pracy w przyszłym roku? O tym i wielu innych ciekawostkach dowiecie się Państwo z dzisiejszego podsumowania.

Nowe projekty jako wyznaczniki trendów

Ostatnie trzy miesiące, a w zasadzie nawet cały miniony rok, stał pod znakiem systemów dla firm działających w modelu B2B. Otwierają się one na nowe rozwiązania optymalizujące ich pracę i uruchamiające kolejne możliwości sprzedaży produktów. Wśród projektów z sektora B2B, nad którymi pochylaliśmy się w ostatnich trzech miesiącach roku wyróżnić możemy m.in.: system stworzony w standardzie PWA (Progressive Web App) dla ogólnopolskiego dystrybutora zajmującego się sprzedażą produktów i systemów do utrzymania czystości i higieny. PWA pozwala na budowanie spójnej zarówno dla urządzeń mobilnych jak i przeglądarek webowych komunikacji. Jedna aplikacja oznacza więc szereg korzyści – oszczędność czasu zespołu programistów oraz samego klienta, a także pozytywny wpływ na jakość projektu.

Ciekawe dla nas były też realizacje dla firmy oferującej materiały do wykonywania m.in.: systemów dachowych, instalacji nawadniania czy podłóg obiektowych oraz dla firmy zajmującej się importem i dystrybucją sprzętu AGD.

Wygląda na to, że świeżo rozpoczęty rok również będzie stał pod znakiem rozwiązań B2B – już teraz zacieramy ręce na samą myśl o kolejnych wyzwaniach, które na nas czekają.

Strategiczny rozwój organizacji

W minionym kwartale skupiliśmy się też na integracjach, rozwijając przede wszystkim połączenie z systemami takimi jak Asseco Softlab ERP, Streamsoft Verto czy imoje oferowane przez ING Bank Śląski. Kolejne podejmowane przez nas kroki mają na celu jeszcze głębszą integrację, a co za tym idzie,obsługę większej ilości procesów po stronie naszego systemu e-commerce.

W ostatnich miesiącach roku część naszego zespołu można było spotkać na wydarzeniach takich jak VI Forum Retail Channels 360 – Rośnij Wielokanałowo, Web Summit, Forum Szefów Sprzedaży oraz Fashion Business Congress.

Wewnętrzne projekty podnoszące jakość

Przyjęty przez nas i dopracowywany w ostatnim czasie model pracy w zespołach kontekstowych funkcjonuje już w pełni. Obecne zespoły koncentrują się nad obszarami takimi jak: CI, integracje, zamówienia, RMA, CRM, PIM, rabaty, GUI, Shop App, Allegro oraz POS.

Dla lepszego zobrazowania działania tego modelu, zdecydowaliśmy się pokrótce opisać pracę dwóch kontekstów. Zespół Continuous Integration (CI) w ostatnim czasie skupiał się na refaktoryzacji CI-Buildera oraz Kubernetes Buildera, a także na aktualizacji GitLab. Prowadził on również prace nad przyspieszeniem działania systemów oraz ustabilizowaniem obrazów PHP. Działania te spowodowały możliwość przyjmowania dużo większego ruchu. Z kolei zespół odpowiadający za Product Information Management (PIM) usprawnił funkcjonowanie produktów w sklepie, a także skupił się na cennikach, zestawach produktowych oraz ich zaawansowanym sortowaniu.

Więcej o modelu pracy w zespołach kontekstowych można przeczytać na blogu i-systems.

Co czeka i-systems w 2019 roku?

Obszary działalności i-systems w nowym roku podzielić będzie można na dwie, główne kategorie. Pierwszą z nich będzie globalizacja działalności i produktów firmy. Start zaplanowanych działań będzie miał miejsce jeszcze w pierwszym kwartale 2019 roku.

Druga kategoria dotyczyć będzie głównego core i-systems, czyli oprogramowania. Prace nad rozwojem produktów sprawowane są przez wszystkie wyżej wymienione konteksty, dzięki czemu rozwój następować będzie w sposób równoległy i spójny. Wśród najważniejszych, zaplanowanych działań można zaliczyć kolejne prace nad PWA, czyli pracę nad jeszcze większą separacją frontendu i backendu. Taka rozdzielność pozwoli na utworzenie nieosiągalnych dziś możliwości skalowania aplikacji, a za tym osiągnięcie większej wydajności przy mniejszym nakładzie kosztów. W planach jest także m.in.: ukończenie nowego API (CRM) oraz dokończenie nowego modułu polityki rabatowej.

O szczegółach wszystkich prac będziemy na bieżąco informować na blogu. Aby nie pominąć kolejnego podsumowania kluczowych działań w rozwoju i-systems, zapraszamy do zapisania się do newslettera.

#238 Jak przy pomocy własnego portalu budować relację z klientami?

Budowanie relacji z klientami opartej o same kanały social media przypomina trochę stosunki sąsiedzkie na dużym osiedlu. Niby się znamy, mijamy się każdego dnia, poznajemy swoje rytuały i zachowania, ale nie prowadzi to do niczego poza zdawkowym “dzień dobry”. Facebook może być miejscem na rozpoczęcie wspólnych relacji – z tego miejsca możemy łatwo kierować ruch naszych fanów na zewnętrzne strony, które pozwalają prowadzić z klientem dialog, a co najważniejsze w późniejszym okresie wpłynąć na sprzedaż produktów marki. Budując społeczności pokazujemy naszym odbiorcom, że zależy nam na tworzeniu relacji długoterminowych. Dziś kilka przykładów na to, jak można robić to bardzo dobrze.

Z dzisiejszej lekcji dowiesz się:

  • o budowaniu społeczności zaangażowanych w relację z marką
  • o plusach tworzenia własnego community
  • o grywalizacji i jej wpływie na zwiększenie zaangażowania użytkowników

Dlaczego budowanie community jest najlepszą formą utrzymywania relacji z klientem?

Community, to społeczność, grupa osób, która jest blisko marki. O jakiej grupie odbiorców mówimy? Przede wszystkim o osobach, które są połączone jakąś pasją lub cechami charakteru. Mogą to być na przykład młodzi rodzice, gracze konsolowi, rowerzyści wyczynowi, seniorzy mieszkający w jakimś rejonie, nie ma znaczenia. To od marki zależy, na podstawie jakich cech będą chcieli zbudować community. Budowanie własnej społeczności klientów, która nie opiera się tylko na kanałach social media, daje marce przewagę konkurencyjną, a główne zalety takich działań to:

  • oddanie marce oraz lojalność – gdy klienci wchodzą w kontakt z marką, ważne jest to, by dać im miejsce do dialogu – wtedy są bardziej oddani firmie. Wśród nich wyłaniają się ambasadorzy oraz osoby lojalne, które zawsze staną po stronie firmy. Często też dzielą się oni informacjami zdobytymi z portalu;
  • łatwe zbieranie danych, pozyskiwanie pomysłów – społeczności mają to do siebie, że są źródłem wiedzy, jaka przydaje się firmie. Łatwiej i chętniej dzielą się opiniami i pomysłami, które dużo łatwiej jest wykorzystać w działaniu firmy;
  • user-generated content – zaangażowana społeczność potrafi pisać tysiące komentarzy, reagować na posty, pisać własne recenzje produktów itp. To skarbnica treści, z której nie możemy rezygnować;
  • budowanie świadomości marki – dzięki przywiązaniu klientów do społeczności stworzonej przez markę dużo chętniej sięgają oni po inne produkty oferowane przez brand. Przy okazji dużo łatwiej możemy dowiedzieć się tego, jaka jest opinia klientów na temat wybranego produktu;
  • nasi klienci stają się częścią supportu – członkowie społeczności wzajemnie sobie pomagają, czego przykładem może być grupa wsparcia Apple, czy też Microsoft Xbox. Często inni użytkownicy portalu odpowiadają na pytania w pierwszej kolejności. Robią to dlatego, że czują przywiązanie do marki, a poza tym często posiadają wiedzę, która pozwoli naprowadzić nowych odbiorców na odpowiedź.

Facebook i ciągłe zmiany vs. stabilność własnych rozwiązań

Odstawmy na chwilę Facebooka na bok i przyjrzyjmy się społecznościom budowanym na zewnętrznych platformach – i tych prostych, i tych bardziej złożonych – tworzonych przez marki, by przyciągnąć do siebie użytkowników każdego dnia i sprawić, by odwiedzali oni nie tylko profil na Facebooku, ale i przygotowaną specjalnie stronę. Dlaczego o tym piszemy? Z tego powodu, że właśnie te marki, które postawiły na zbudowanie własnych społeczności, mogą mówić o uzyskaniu dużej przewagi nad konkurencją. Wystarczy przyjrzeć się kilku przykładom z zagranicznego i rodzimego rynku.

Wśród ciekawszych można na pewno wyróżnić LEGO IDEAS – portal stworzony dla maniaków i fanów kultowych klocków, na którym można dzielić się nie tylko opiniami, ale także własnymi pomysłami na zestawy, chwalić się stworzonymi projektami, oceniać projekty innych użytkowników (przykład i video pod linkiem). Oczywiście wszystko pod skrzydłami LEGO.

Innym przykładem może być portal Trueachievements, który zrzesza maniaków konsoli Xbox. To tam gracze mogą połączyć swoje profile, śledzić postęp w grach, umawiać się z innymi osobami na rozgrywki, dyskutować o nadchodzących wydarzeniach i premierach. Społeczność ta ma swoje forum, grupy tematyczne, wewnętrzną pocztę. Wszystko po to, by łatwiej i lepiej zdobywać kolejne osiągnięcia.

W Polsce jedną z pierwszych stron firmowych, które postawiły na budowanie relacji z klientami, jest portal Gram.pl. Od początku celem było zrzeszanie graczy, miłośników multimedialnej rozgrywki. Poza newsami z branży pojawiały się na stronie inne informacje z życia wydawnictwa, możliwość rozmowy z pracownikami branży multimedialnej, do dyspozycji użytkowników było również forum. Wprowadzone elementy grywalizacji np. poszukiwania kuponów rabatowych ukrytych na podstronach sprawiało, że na portalu cały czas przebywali fani. Z czasem funkcjonalności się rozrastały. Wprowadzono blogi graczy, powstały nowe działy, a co najważniejsze – sklep internetowy, z którego korzystali zarejestrowani użytkownicy i mieli oni dodatkowe rabaty za bycie częścią społeczności.

Marki mogą osiągnąć dużo lepsze wyniki w budowaniu własnych społeczności, niż ma to miejsce na Facebooku. Własny portal, dopasowany do grupy odbiorców, to nie tylko tworzenie community, ale to nie wszystko. Duże znaczenie w działaniu społeczności ma także user generated content, który wspomaga pozycjonowanie strony.

Każda społeczność jest inna

Powyższe stwierdzenie jest prawdą. Nie możemy mówić o dwóch takich samych grupach osób. Na przykład platforma przygotowana dla Nutricia Medyczna miała być miejscem, które skupia się na osobach, chorych na fenyloketonurię lub mają styczność z tą chorobą. Mowa tu też o rodzicach dzieci chorych na PKU (tak zapisuje się skrót jej nazwy). Stworzenie takiej grupy ludzi na Facebooku mogło być skomplikowane z jednego bardzo ważnego powodu – ludzie mogliby czuć dyskomfort, jeśli musieliby publicznie rozmawiać o schorzeniu swoim lub swoich bliskich. W Polsce jest wiele osób borykających się z tą chorobą i ciężko w tym wypadku mówić o spójnej grupie, gdyż fenyloketonuria dotyka zarówno dzieci, jak i osoby dorosłe i starsze.

To tylko jeden z wielu przykładów. Microsoft skupia graczy, którzy posiadają konsole Xbox w programach dla fanów (np. Rewards), którzy mogą na przygotowanych dla nich stronach rozmawiać z innymi osobami, doradzać im, pomagać rozwiązać problemy. Wzajemne relacje są bardzo ważne w świecie wirtualnej rozrywki, co zauważyły marki już jakiś czas temu. Dlatego Sony oraz Microsoft inwestują w tego typu rozwiązania.

Grywalizacja – element budujący zaangażowanie

Świetnym przykładem na wykorzystanie grywalizacji w społeczności możemy zauważyć na portalu/sklepie muve.pl. Wzbogacenie strony o te elementy, np. zbieranie punktów i osiągnięć wzbudza dodatkową ciekawość osób, które odwiedzają stronę. Punkty zyskuje się za aktywność, na przykład za komentarze, napisanie artykułu, zalogowanie się kilka dni pod rząd. Aby jednak nie wszystko sprowadzało się do samego klikania w „lubię to”, dodatkowe osiągnięcia zachęcają do interakcji ze stroną. Wiele „odznak” nie jest opisanych, przez co członkowie społeczności sami muszą dojść do tego, co należy zrobić, by daną odznakę odblokować. Osiągnięcia i punkty można wymieniać na cyfrowe i fizyczne nagrody, a także można wymienić je na zniżki w sklepie internetowym.

Spójne działania w wielu kanałach

Ważne jest aby utrzymywać wspólną komunikację w każdym z kanałów. Świetnie pokazuje to sklep POPVinyl.pl, który sprzedaje słynne figurki POP. Stworzenie zakładki dla społeczności, gdzie użytkownicy mogą dzielić się swoimi zdjęciami, wzajemnie oglądać, a przy okazji nawiązywać wzajemne relacje. Dodatkowo stworzona na Facebooku grupa pozwala właścicielom w łatwy sposób docierać do klientów i fanów, przedstawiać nowe produkty, czy tez prowadzić outlet, gdzie wyprzedawane są figurki z uszkodzonymi pudełkami. Wyprzedaże takie cieszą się bardzo dużym zainteresowaniem, co widać podczas tego typu akcji.

Jak widać na przedstawionych przykładach budowanie własnych społeczności, to bardzo dobry kierunek, który pokazuje, że nawiązywanie długotrwałych relacji z klientem indywidualnym jest rozwiązaniem przynoszącym korzyści obu stronom. Klienci są bowiem w centrum uwagi marki, a firma ma możliwość prowadzenia z nimi dialogu, co jest bardzo ważne w tworzeniu strategii długofalowej.

#237 W jaki sposób wykorzystać marketing automation w branży eventowej?

Komunikacja wokół wydarzenia jest jednym z kluczowych projektów mających olbrzymi wpływ na jego powodzenie. Promocja, edukacja, budowanie napięcia i zaangażowania … odpowiednio przygotowany cykl komunikacji pozwala na osiągnięcie wielu strategicznych celów związanych 
z eventem.

Z dzisiejszej lekcji dowiesz się:

  • jakie funkcje oferuje automatyzacja marketingu
  • w jaki sposób zautomatyzować proces komunikacji wokół wydarzenia

Jak działa automatyzacja marketingu?

Marketing automation to zestaw warunków, filtrów i akcji, za pomocą których możesz tworzyć tzw. cykle. Cykle szczegółowo reprezentują proces komunikacji z subskrybentem. Możesz np. 
za pomocą marketing automation stworzyć cykl, w którym wyślesz wiadomość powitalną 
do osób zainteresowanych wydarzeniem, przeprowadzisz kampanię promocyjną lub wynagrodzisz ich zaangażowanie. Możesz stworzyć proste lub bardzo złożone cykle marketing automation, całkowicie dopasowując je do własnych potrzeb.

Szczególnie przydatne funkcje

Tagowanie

Tagowanie pozwala na oznaczanie kontaktów w bazie. Możesz przypisać wiele tagów do jednego kontaktu, a potem na ich podstawie personalizować komunikację wysyłaną do subskrybentów. Tagowanie można wykorzystać na wiele sposobów. Oto kilka podpowiedzi:

  • Możesz wykorzystać zdefiniowane frazy, np.: zaangażowany, aktywny, zainteresowany, uczestnik poprzedniej edycji.
  • Możesz wyszukiwać kontakty i segmentować je w oparciu o tagowanie. Dzięki temu stworzysz bardziej targetowane kampanie.
  • Tagowanie pozwala na analizowanie zachowań konkretnych subskrybentów i śledzenie ich aktywności.

Scoring

Nadawanie punktów scoringowych pomaga śledzić zaangażowanie klientów i pozwala obliczyć realną wartość bazy kontaktów. To Ty decydujesz, za które akcje dodać lub odjąć punkty, 
a które akcje nie zmieniają ich liczby. Punkty scoringowe to wartość przypisana indywidualnie każdemu subskrybentowi. W cyklu automation punkty nadawane są dynamicznie i pozwalają sprawdzić poziom zaangażowania odbiorców wiadomości. W skrócie, dzięki scoringowi można:

  • Dodawać lub odejmować punkty bazując na zachowaniu klientów.
  • Lepiej sprofilować subskrybentów pod względem zaangażowania.
  • Przypisać konkretne wartości do wykonywanych akcji.
  • Budować cykle automation w oparciu o scoring i spersonalizowane tylko pod klientów 
z konkretną ilością punktów.
  • Budować programy lojalnościowe dla najbardziej zaangażowanych klientów.

Przykładowy cykl marketing automation

Promocja

Oto przykład cyklu marketing automation na potrzeby promocji wydarzenia. Cykl rozpoczyna się w momencie, gdy osoba zainteresowana wydarzeniem zapisze się na listę. Pierwszą wiadomość w cyklu może być wiadomość podziękowaniem za zainteresowanie wydarzeniem. Następne wiadomości mogą przypominać o zbliżającym się evencie.

Cykl wykorzystuje scoring. Za każdym razem, gdy kontakt otworzy wiadomość otrzymuje 
1 punkt scoringowy. Dzięki temu będziemy mogli w łatwy sposób sprawdzić zaangażowanie subskrybentów.

Dobrym pomysłem jest segmentacja bazy kontaktów i personalizację komunikacji w oparciu 
o ich potrzeby i preferencje. Przykładowe segmenty to:

  • uczestnicy poprzednich edycji
  • osoby, które były zainteresowane poprzednim wydarzeniem, ale się nie zarejestrowały
  • nowi subskrybenci

Przykład bardzo prostego maila promocyjnego od The Conference, który może rozpoczynać cykl promocyjny.

Informacja

Wylistuj najważniejsze informacje na temat planowanego eventu: cel, misja, agenda, czas 
i miejsce wydarzenia, sylwetki prelegentów, etc. i zaprezentuj je w odrębnych wiadomościach.

Fragment emaila od Smashing Magazine prezentujący sylwetki prelegentów podczas zbliżającego się wydarzenia.

Od samego początku staraj się angażować osoby na twojej liście mailingowej. Możesz to zrobić zadając im pytania, na które będą mogli odpowiedzieć za pomocą przycisków w szablonie wiadomości oraz za pomocą krótkich ankiet.

Możesz na przykład wysłać email, za pomocą którego odbiorcy będą mogli zagłosować 
na miejsce wydarzenia lub warsztaty. Wystarczy przygotować szablon wiadomości prezentujący dwie oferty i zachęcić do oddania głosu za pomocą przycisku.

Poniższy cykl ma na celu zachęcić subskrybentów do oddania głosu na miejsce wydarzenia. Pierwszych 20 osób, które odda głos klikając w przycisk otrzyma zniżkę na wydarzenia. Cykl zawiera filtr ograniczający wysyłkę wiadomości do pierwszych 20 wiadomości.

Twoja kolej!

Mam nadzieję, że powyższe przykłady jasno pokazały Ci możliwości, jakie oferuje automatyzacja. Pamiętaj, że za pomocą warunków, akcji i filtrów możesz tworzyć dowolne cykle komunikacji, dopasowane pod kątem Twojego wydarzenia.

Najważniejszy jest pierwszy krok. Możesz zacząć od prostych cykli i rozbudowywać je z czasem o dodatkowe elementy, które umożliwią Ci np. śledzenie aktywności odbiorców i precyzyjną segmentację listy kontaktów.

Dobry e-commerce, czyli jaki?

Przełom roku, to w świecie e-commerce zdecydowanie intensywny okres. Rozpoczyna się on od przypadającego na listopad Black Friday, po którym, w odstępie zaledwie kilku dni następuje Cyber Monday. Te dwa wielkie, sprzedażowe święta, to zaledwie początek. Już w grudniu, w stronę klientów kierowana jest kolejna promocyjna okazja, jaką jest Dzień Darmowej Dostawy, a po nim przypadają wiążące się z licznymi promocjami Święta Bożego Narodzenia. Jak można zauważyć – listopad i grudzień niosą ze sobą naprawdę wiele okazji, zarówno dla samych marek, jak i dla ich klientów. Jak to jednak z okazjami bywa – tuż obok nich, pojawia się równie wiele wyzwań. Końcem roku wszystkie sklepy oferują wyjątkowe promocje i jeszcze silniej niż zwykle walczą o klienta. Co zatem zrobić, aby wyróżnić się na tle konkurencji i zatrzymać przy sobie już przyciągniętego klienta? W dzisiejszym artykule wyjaśniamy, jaki powinien być dobry e-commerce. Opisujemy te elementy, które są szczególnie ważne dla klientów podczas dokonywania zakupów online (zwłaszcza w okresie końcoworocznym).

Odpowiedni i kompletny content

Okres świąteczno-końcoworocznych promocji przyciąga do sklepów internetowych całe rzesze ludzi. Wartościowy i kompletny content z pewnością pomoże nie tylko zatrzymać ludzi, którzy już dotarli do naszego systemu e-commerce. Pozwoli też przyciągnąć do niego nowych, potencjalnych klientów. Czytelne treści o wysokiej jakości merytorycznej oraz odpowiednio dobrane, atrakcyjne zdjęcia produktowe potrafią zdziałać cuda. Jednym z elementów sklepu internetowego, który łączy ze sobą te dwa aspekty, oferując klientowi wyższą jakość zakupów, jest sekcja porad. Pozwala ona na zaprezentowanie produktów w nieco inny, nieszablonowy sposób, prezentując treści o charakterze edukacyjnym, a nie stricte sprzedażowym.

Łatwe wyszukiwanie

Klienci jednomyślnie deklarują, że jedną z najistotniejszych w ich opinii funkcjonalności sklepów internetowych jest wyszukiwarka produktów. Optymalna wyszukiwarka nie tylko znajduje produkty, ale także podpowiada klientowi, jakiego produktu może szukać, w momencie, gdy zapytanie nie zostało poprawnie sformułowane. Wykorzystywana przez nas wyszukiwarka pełnotekstowa jest nie tylko bardzo wydajna, ale również nie obciąża ona zasobów systemowych sklepu, a także posiada całą gamę dodatkowych funkcji wspierających sprzedaż. Tego typu narzędzie pozwala na odnajdowanie produktów po: nazwie, opisie, słowach kluczowych, kategorii, polach profili, flagach, tagach, wariantach czy też producencie. Jej głównym zadaniem jest precyzowanie zapytań klientów. Efektem wdrożenia wyszukiwarki pełnotekstowej jest nie tylko zwiększenie konwersji w sklepie, ale również wzmocnienie lojalności obecnych klientów, dzięki usprawnieniu procesu zakupowego.

Opinie

Pozytywne rekomendacje sklepu czy konkretnych produktów niewątpliwie potrafią zachęcić do dokonania zakupu. Sklep, który posiada wiele rekomendacji zyskuje w oczach użytkowników na wiarygodności, co w sposób bezpośredni przekłada się także na wzrost sprzedaży. Wystawiona opinia potwierdza jakość asortymentu, jak również samej obsługi klienta. Stworzona przez nas funkcjonalność opinii pozwala na udzielenie rekomendacji każdemu zalogowanemu w sklepie klientowi, który złożył i opłacił zamówienie. Recenzje wyświetlane są na karcie produktu wraz z sumaryczną oceną danego produktu i liczbą przydzielonych mu przez klientów gwiazdek. Oglądając dany produkt można dowolnie sortować opinie według różnych kryteriów, a także oznaczać wybrane opinie jako pomocne. Pozytywne rekomendacje użytkowników wpływają nie tylko na zaufanie klientów do marki, czy ich decyzje zakupowe, ale również na pozycjonowanie w wyszukiwarce.

Click & Collect

Współcześni klienci bardzo cenią sobie usługę click & collect. Często to właśnie jej brak jest przyczyną porzucania koszyków. C&C to trend w e-commerce, który jest pochodną efektu ROPO (Research Online, Purchase Offline). Dlaczego usługa ta jest tak bardzo popularna? Przede wszystkim umożliwia ona klientowi dokonanie zamówienia online, o dowolnej porze, a następnie jego odbiór w najdogodniejszym dla niego terminie, w dowolnym salonie stacjonarnym lub współpracującym z marką punkcie sprzedaży. Dodatkowym plusem jest również to, że odbiór paczki odbywa się bez kolejki. Wdrożenie usługi click & collect sprawia, że marka zyskuje w oczach klientów, bowiem odbierana jest jako rozumiejąca i realizująca ich potrzeby.

Darmowa dostawa

Bardzo często, jako jedną z najważniejszych korzyści zakupów online wymienia się, tańszą niż w przypadku sklepów stacjonarnych, cenę towaru. Wielu klientów jednak, tuż przed opłaceniem zamówienia, porzuca swój koszyk zakupowy. Przyczyną tego typu zachowań najczęściej okazuje się cena wysyłki. O ile sam koszt towaru bywa zachęcający, o tyle konieczność doliczenia do niego dodatkowej kwoty za przesyłkę jest po prostu… zniechęcająca. Rozwiązaniem okazuje się darmowa dostawa. Wiele sklepów, aby przyciągnąć do siebie klientów nie tylko bierze udział w dniu darmowej dostawy, ale również samemu przynajmniej kilka razy w roku organizuje takie dni np. z okazji jakichś świąt. Dobrym pomysłem jest też zaoferowanie klientom darmowej dostawy po przekroczeniu konkretnej wartości koszyka. Zmotywowanie klientów do dokonania zakupów o większej wartości przekłada się bezpośrednio na wzrost poziomu sprzedaży marki.

Śledzenie przesyłki

Najcenniejszym towarem we współczesnym świecie jest informacja. Właściwie, można by się nawet było pokusić o stwierdzenie, że jest to towar bezcenny. Klient, który rozpoczyna proces zakupowy chce wiedzieć wszystko, co tylko się da – na jakim etapie realizacji jest jego zamówienie, kiedy zostanie ono dostarczone, gdzie znajduje się w danej chwili. Dobry sklep internetowy, to taki, który zapewnia użytkownikowi odpowiedzi na te i wiele innych pytań. Funkcjonalnością, która to ułatwia jest śledzenie przesyłki. Dzięki jej zastosowaniu klient może na bieżąco weryfikować status swojej paczki, a sam właściciel sklepu, mając wiedzę o dostarczeniu przesyłki, może w sposób automatyczny aktualizować w systemie status zamówienia.

Same Day Delivery

Okazuje się, że cierpliwość zdecydowanie nie jest najmocniejszą cechą współczesnego klienta. Jak wynika z raportu Forrester’a, aż 30% konsumentów jest w stanie zapłacić dodatkowe pieniądze za doręczenie im produktów jeszcze tego samego dnia, w którym złożone zostało zamówienie. O ile jednak w branży spożywczej dostawa tego samego dnia jest standardem, czy wręcz obowiązkiem, o tyle, w pozostałych branżach nie jest ona jeszcze aż tak popularna. Przyczyną takiego stanu rzeczy może być cena usługi logistycznej, która w przypadku same day delivery jest niestety wyższa, niż w przypadku tradycyjnej przesyłki kurierskiej. Pomimo ograniczeń, jakie niesie ze sobą ta usługa, celem podniesienia jakości obsługi klienta oraz jego satysfakcji z procesu zakupowego, coraz więcej firm decyduje się na jej wdrożenie. Inwestycje te z pewnością zostaną docenione i przełożą się na realne korzyści dla marek.

Polityka zwrotów

Kupując produkty przez internet klientowi trudniej jest ocenić rzeczywistą jakość produktu, czy też znaleźć dla siebie idealny rozmiar. Właśnie dlatego, w sklepach internetowych zwroty zakupionych produktów to kwestia, której nie sposób uniknąć. Możemy oczywiście dokładać wszelkich starań, aby zminimalizować ich liczbę, jednak świat online rządzi się swoimi prawami, a zwroty są jednym z nich. Opracowanie odpowiedniej polityki zwrotów i umożliwienie klientom darmowego odesłania zakupionych towarów pozytywnie wpływają na wizerunek marki, poszerzając jednocześnie grono jej lojalnych klientów. Dodatkowo również, analiza przyczyn zwrotów pozwala na wyciągnięcie wniosków co do jakości produktów znajdujących się w ofercie sklepu, a co za tym idzie – jej ewentualną poprawę. Dla klienta z kolei odpowiednio zorganizowana polityka zwrotów, to swego rodzaju ukłon marki w jego stronę i zwiększenie jego zakupowego komfortu.

Personalizacja

Każdy klient chce się czuć ważny i doceniany. Nic nie pomaga w osiągnięciu tego celu bardziej, niż personalizacja kierowanego do niego przekazu. To właśnie takie małe elementy, jak imienne zwroty, rekomendowanie zakupu oglądanych wcześniej przez daną osobę produktów, czy symboliczne rabaty i promocje z okazji np. urodzin, są kluczem do sukcesu. Dobra personalizacja przekłada się bowiem, w sposób bezpośredni, na zwiększenie wskaźnika konwersji. Według Raportu AgilOne, „Marketing Personalization Preferences”, aż 70% konsumentów dokonując zakupów w Internecie oczekuje spersonalizowanej ścieżki zakupowej. Co tak naprawdę wpływa na personalizację i jej jakość? Przede wszystkim dokładne zbieranie informacji o klientach, analiza ich zachowań, a także umiejętne wykorzystywanie pozyskanych informacji. Personalizacja to zatem nic innego, jak zrozumienie potrzeb klientów, którego efektem jest dostarczanie interesującej i angażującej treści oraz produktów, które idealnie wpisują się w potrzeby i gusta klientów.

UX

UX, czyli doświadczenie użytkownika, to nic innego, jak projektowanie ze zwróceniem szczególnej uwagi na dostarczenie użytkownikowi pozytywnych doświadczeń. W praktyce oznacza to, że system e-commerce powinien być dla niego nie tylko atrakcyjny wizualnie, ale również użyteczny i intuicyjny. Najważniejsze jednak jest to, aby samo korzystanie z niego sprawiało klientowi przyjemność i dawało poczucie satysfakcji. W e-commerce, z perspektywy UX, najważniejsze obszary to karta produktu, koszyk oraz strona główna. To właśnie te miejsca klient odwiedza najczęściej i to one są w sposób bezpośredni powiązane z nabywaniem produktu. Jeśli zadbamy o to, aby sklep internetowy został przygotowany zgodnie z zachowaniem zasad UX, znacznie podniesiemy komfort naszych klientów, co z pewnością przełoży się pozytywnie na ich decyzje zakupowe. Tutaj ważne będzie używanie odpowiednich technologii, takich jak API, PWA, MACH, czy też headless ecommerce.

Dostosowanie do różnych urządzeń

Dokonywanie zakupów w internecie o dowolnej porze i z dowolnego miejsca sprawia, że sprzedawcy muszą dostosowywać swoje sklepy internetowe właściwie do wszystkich, dostępnych na rynku urządzeń. Czasy, gdy zakupy dokonywane były tylko z poziomu PC minęły bezpowrotnie. Współczesny konsument, to taki, który zapozna się z ofertą sklepu internetowego za pośrednictwem smartfona, następnie przeczyta opinie o interesującym go produkcie na tablecie, a wreszcie dokona zakupu przy użyciu laptopa. To konsument, który łatwo zmienia rodzaj wykorzystywanego urządzenia, a jeszcze łatwiej porzuca swój koszyk, jeśli uzna, że proces zakupowy jest dla niego zbyt niewygodny i nieintuicyjny. Możliwości dostosowania sklepu internetowego do różnych urządzeń jest naprawdę wiele – od aplikacji mobilnych i webowych, poprzez PWA, aż po RWD – bez względu na to, jakiego wyboru dokonamy, powinniśmy pamiętać, że na końcu zawsze powinien znaleźć się klient. Zadowolony klient.

Bezpieczeństwo e-commerce

Niezależnie od asortymentu produktowego, wykorzystywanych technologii, czy reprezentowanego modelu biznesowego, jedna kwestia łączy, a przynajmniej powinna łączyć, wszystkie sklepy internetowe. Tą kwestią jest bezpieczeństwo. Sklepy internetowe współcześnie stawiają czoła nie lada wyzwaniu – muszą one codziennie, w sposób w pełni bezpieczny, zarządzać ogromem wrażliwych danych i przesyłem sporej ilości pieniędzy. Jest to kwestia niezwykle ważna, nie tylko w świetle nowych przepisów RODO, ale również w perspektywie szybkiego rozwoju cyberprzestępstw. Zakupienie odpowiednich certyfikatów bezpieczeństwa, integracja wyłącznie ze sprawdzonymi systemami zewnętrznymi, a wreszcie dobór wiarygodnego partnera biznesowego dostarczającego oprogramowanie, to podstawowe kroki, jakie powinna podjąć każda, działająca w internecie marka. Bezpieczeństwo sklepu znacznie wpływa na lojalność jego klientów, dlatego też powinniśmy do niego przykładać szczególną uwagę.

Opisane powyżej elementy nie są co prawda magiczną receptą na zatrzymanie klienta w sklepie internetowym, jednak stanowią zbiór dobrych praktyk, których zdecydowanie warto przestrzegać. Zadowolony klient, to taki, który proces zakupowy kończy z sukcesem, a więc opuszcza sklep internetowy z poczuciem, że kupił wszystko, czego potrzebował. Zadowolenie klienta przekłada się również w sposób bezpośredni na zadowolenie marki, a przecież o to w tym wszystkim chodzi.

#236 Czym jest PWA

Zmieniające się trendy w korzystaniu z urządzeń mobilnych doprowadziły do sytuacji, w której często narzędziem do przeglądania internetu, robienia zakupów online, jest właśnie telefon komórkowy. Google podaje, że prawie 3 razy więcej użytkowników przegląda strony internetowe w przeglądarce wbudowanej w telefonie, niż za pomocą aplikacji przygotowanej przez developerów. Z drugiej strony czas spędzony przez użytkowników na użytkowaniu dedykowanych aplikacji jest wielokrotnie wyższy niż w przypadku stron www. Pomocnym rozwiązaniem może być Progressive Web App łączące funkcjonalności strony i natywnej aplikacji.

Z dzisiejszej lekcji dowiesz się:

          • czym jest Progressive Web App i jak wykorzystać ją w e-commerce;

PWA, co to jest?

PWA, czyli Progressive Web App to rozwiązanie, które pozwala na stworzenie takich aplikacji internetowych, które będą łączyły najlepsze cechy rozwiązań webowych i mobilnych. Wyobraźmy sobie stronę www, którą instaluje się jak aplikację, ale zajmuje ona dużo miej miejsca, a pozwala na przeglądanie je w trybie offline. PWA ma dużo więcej ciekawych funkcjonalności, przeczytać można o nich poniżej.

Co w przypadku, gdy sklep ma własną aplikację zakupową? Czy wtedy potrzebuje on Progressive Web App? Wydawać się może, że tak faktycznie jest. Przyglądając się informacjom podawanym przez Forrestera 60% czasu klienci spędzają na urządzeniach mobilnych korzystając jedynie z trzech aplikacji. Jakich? Różnych, ale możemy obstawiać, że jedną z nich jest apka do social mediów. Potwierdzają to inne dane, mówiące, że w top 3 najchętniej używanych przez nas aplikacji są Google Maps, Facebook i YouTube. Raczej nie ma tu miejsca na nasze rozwiązanie. Dlatego trzeba zastanowić się, czy nie warto postawić na PWA?

Progressive Web App – dlaczego warto?

Trzeba wpierw zwrócić uwagę na to, że PWA jest bardzo wspierane przez Google. Podczas konferencji Google I/O ’17 Sam Birch PM z Google opowiadał o możliwościach tego rozwiązania. Wspominał też oraz powodach, które sprawiają, że PWA jest tak atrakcyjnym rozwiązaniem i sprawdzi się ono nie tylko w e-commerce. Podstawowe z nich to możliwości technologiczne, takie jak powiadomienia push, brak konieczności wbijania adresu do przeglądarki, ale także zachowywanie koszyka, gdy tracimy zasięg, oraz przeglądanie strony w trybie online. Świetnym przykładem na to, jak PWA może mieć wpływ na statystyki strony jest Forbes. Lewis Dvorkin zachwala sobie możliwość personalizacji przekazu, wysyłania powiadomień itd. Forbes podaje, że dzięki PWA ilość wyświetlanych reklam wzrosła o 20%, zaangażowanie czytelników wzrosło o 100%. Dodatkowo o 43% wzrosła liczba sesji na użytkownika.

Najważniejsze cechy PWA:

  • niezawodność – ponieważ Progressive Web App muszą działać nawet, gdy tracimy dostęp do sieci. Dlatego korzysta się z tzw. Service Workers. Jest to rodzaj węzła, który łączy ze sobą aplikację, Internet oraz pamięć podręczną telefonów. Dzięki temu pewne części aplikacji zostają zapamiętane w pamięci podręcznej i są używane przez nią w sytuacji, gdy stracimy połączenie z siecią. Dlatego nie mamy obawy, że stracimy niezapisany koszyk;
  • niezależność – według wymogów aplikacje PWA są wyświetlane bez konieczności używania przeglądarki, dodatkowo muszą działać na każdym urządzeniu;
  • responsywność – czyli dopasowanie do każdego urządzenia. Aplikacje tego typu muszą być łatwe w użytkowaniu na każdym ekranie, niezależnie od jego wielkości wyglądać dobrze, szybko się wczytywać, a gdy nastąpią opóźnienia podczas wczytywania strony, to musi pojawić się odpowiedni wskaźnik informujący o tym użytkownika;
  • szybka i łatwa instalacja – przeważnie plik instalacyjny jest niewielki bowiem i sama apka jest niewielkich rozmiarów, ca za tym idzie instalacja trwa dosłownie kilka sekund;
  • łatwe dotarcie do użytkownika – powiadomienia push są jednym z głównych elementów PWA, pozwalają one informować czytelników o zmianach i nowościach na stronie. Warto wspomnieć, że według Mobify rozwiązania takie cieszą się otwieralnością większą o 46% niż porównywane kampanie e-mail.

Aby aplikacja spełniała wszelkie wymagania i posiadała funkcjonalności, które zaliczają ją do Progressive Web App należy poświęcić czas i pieniądze. Na stronie dla deweloperów Google podaje wszelkie potrzebne im informacje, by uniknąć niepotrzebnych błędów. (https://developers.google.com/web/progressive-web-apps/checklist)

Gdzie wykorzystać PWA?

Rozwiązanie to będzie idealne dla sklepów internetowych. PWA może działać kilka razy szybciej niż dedykowane strony mobilne. Dzięki temu załadowanie podstrony z produktem nie trwa sekundy, a milisekundy. Korzystają z nich media. Wspomniany Forbes czy też Washington Post, chwalą się statystykami, które zwiększyły się od momentu używania przez wydawnictwo rozwiązań PWA. Na Progressive Web App postawią firmy usługowe, hotele, restauracje i inne, gdzie ważny jest czas ładowania się strony. Dzięki temu można przecież wyprzedzić konkurencję.

Jak długo to potrwa?

Estymacja

Za wikipedią estymacja to dział wnioskowania statystycznego, będący zbiorem metod pozwalających na uogólnianie wyników badania próby losowej na nieznaną postać i parametry rozkładu zmiennej losowej całej populacji oraz szacowanie błędów wynikających z tego uogólnienia.

Naturalnie nie mogę zagwarantować, że po lekturze niniejszego artykułu szanowny czytelnik będzie uzyskiwał dokładne estymacje. Niemniej mam nadzieję, że uczynię Cię bardziej pewnym w ich dostarczaniu.

Przykład

W artykule chciałem się skupić na przykładzie oraz metodologii, która sprawdza się w moim przypadku. Przechodząc do meritum proponuję rozpatrzyć następujący problem:

Jako administrator sklepu internetowego chcę, aby jego zamówienia zostały automatycznie przekazane po opłaceniu do zewnętrznego spedytora, który w tym celu wystawi niezbędne API.

Na pierwszy rzut oka brzmi prosto i precyzyjnie, niemniej w zależności od złożoności systemu oraz intensywności wpadania do niego zamówień sprawa znacząco się komplikuje. Widzimy zatem, że już na początku natrafiamy na pierwszą przeszkodę. Literatura elegancko nazywa niniejszy problem Cone of Uncertainty (czyli rożek/stożek/lejek niepewności). Termin ten oznacza, że developer w chwili początkowej startuje od największej ilości ryzyka i niepewności związanych z funkcjonalnością.

Sytuacja pogarsza się tym bardziej im zainteresowane strony zmieniają założenia i cele. Jedynym sposobem na obniżenia stożka jest stale przeprowadzanie badań oraz konsultacji w celu wyjaśnienia i uporządkowania możliwie jak największej ilości zmiennych.

Przy tak przedstawionym problemie naturalnie nasuwa się masę pytań. Jakim protokołem wysyłane będą dane do API, w jaki sposób będą zabezpieczone, jakiego formatu powinny być dane wyjściowe, jaką przepustowość zapewni bramka odbierająca zamówienia, itd…

Work-breakdown structure

Istnieje ogromna niepewność/nieprecyzyjność w naszej treści zadania. Pierwszą rzeczą, którą należy zrobić jest rozbicie zadania na mniejsze porcje pracy, tak abyśmy mogli wyestymować każde z osobna. Formalnie mówimy o tworzeniu work-breakdown structure (WBS), czyli strukturę podziału pracy.

Naturalnie po dokonaniu konsultacji z klientem otrzymałem niezbędną specyfikacje techniczną interfejsu API, który wymagał protokołu RESTowego z prostą autoryzacją tokenową. Specyfikacja również zawierała niezbędne szczegóły co do formatu danych wejściowych oraz zwracanych błędów. Dopiero wówczas problem mogłem podzielić na mniejsze komponenty:

1. przygotowanie interfejsu klienta, który przyjmując dane wejściowe konwertuje dane do formatu json i wysyła je bramki
2. dodanie do interfejsu klienta mechanizmu logującego wychodzące żądania oraz przychodzące odpowiedzi
3. przygotowanie mechanizmu kolejkującego zamówienia, aby w sytuacji niepowodzenia wysyłki móc ponawiać ją do skutku, a w sytuacji niedostępności serwisu partnera poinformować o tym administratora systemu
4. przygotowanie serwisu mapującego dane zamówienia do modelu przyjmowanego przez bramkę partnera
5. implementacja wysyłki danych

Naturalnie wciąż pozostaje sporo niejasności zwłaszcza w sytuacji metodologii mapowania. Po dalszych konsultacjach okazało się, że administrator systemu zarządał dodatkowej kontroli nad mapowaniem w związku z tym ostatni punkt musiałem rozbić na jeszcze mniejsze partie:

4a. przygotowanie GUI dla elementów zamówienia, które administrator sytemu może zmapować na dane zgodne w bramce partnera
4b. przygotowanie struktury przechowującej relacje encji naszego systemu do encji systemu partnera
4c. uzupełnienie mappera zamówień o zaktualizowane właściwości oraz encje systemu partnera zgodnie z zapisaną mapą

W powyższym podziale zawsze staram się trzymać zasady, aby każdy z punktów pochłonął do 4h mojej pracy. Uwaga! podejrzewam, że wielu programistów spotkało się w literaturze, aby porcje zajmowały nie więcej niż 8h, czyli maksymalnie jeden dzień roboczy. Istnieje również Queueing theory (teoria kolejek), która sugeruje rozbijanie rzeczy na mniejsze, łatwiejsze do opanowania części, dzięki czemu istnieje możliwość równoległego przepływu pracy co w konsekwencji prowadzi do zwiększenia jej przepustowości.

Niemniej ze względu na fakt, że często pracuje nad zadaniami samodzielnie i jestem zmuszony przerywać prace i zajmować się innymi drobniejszymi tematami, które wpadają niezapowiedzianie jak konsultacje lub hotfixy, drobniejsza estymacja pozwala mi lepiej planować sobie nadchodzący dzień. Naturalnie w sytuacji gdy skończę bieżący punkt zadania, biorę się za następny 😉

Naturalnie finalną estymacją jest zsumowanie czasów wykonania poszczególnych punktów. Powyższy przykład przedstawia tzw. oszacowanie eksperckie. Oprócz tego istnieje jeszcze podejście formalne, tj. wykorzystanie próby statystycznej. Dzięki niej można obliczyć dodatkowy błąd statystyczny i uwzględniać go w następnych szacunkach. Oraz dysponujemy również podejściem łączonym, które stanowi sumę dwóch wspomnianych metod.

Planowanie grupowe

W sytuacji, gdy poszczególne punkty naszego zadania szacujemy w grupie programistów dysponujemy jeszcze takimi opcjami jak Planning Poker (lepiej znany jako Scrum Poker) oraz Wideband Delphi. W pierwszej, członkowie grupy dokonują oszacowań, grając ponumerowanymi kartami zakrytymi do stołu, zamiast wypowiadać je na głos. Karty zostają ujawnione, a następnie omawia się dane szacunkowe. Ukrywając dane w ten sposób, grupa unika nastawienia poznawczego, gdzie pierwsza liczba wypowiedziana na głos stanowi precedens dla kolejnych oszacowań.

W procesie Delphi koordynator zespołu przedstawia każdemu ekspertowi specyfikację i formularz oceny. Następnie podczas grupowego spotkania eksperci omawiają kwestie oceny z koordynatorem i między sobą. Na koniec wypełniają formularze anonimowo, a Koordynator przygotowuje i rozpowszechnia podsumowanie szacunków. W sytuacji gdy estymacje są mocno rozbieżne powtarzamy cały proces, aż do osiągnięcia zadowalającego konsensusu.

Niewątpliwą zaletą wspólnego szacowania problemów programistycznych jest fakt, że te mogą odkryć nowe techniki i/lub pułapki które skrywa zadanie. Istnieje jeszcze bardziej złożone podejście mianowicie metoda punktów przypadków użycia (Use Case Points w skrócie UCP). Polega ona na przypisywaniu punktów relatywnie w zależności od złożoności zadania. Im bardziej złożone tym kosztują więcej punktów. Pomysł polega na tym, że bardziej złożone zadanie powinno się wykonać dłużej, niż proste zadanie. Po uzyskaniu punktacji można w pewien sposób uzyskać niezbędną ilość godzin developerskich. Niemniej należy pamiętać, że punkty nie stanowią bezpośredniego przełożenia na liczbę godzin. Dla zainteresowanych odsyłam do artykułu: https://rubygarage.org/blog/3-reasons-to-estimate-with-story-points

Podsumowanie

Podsumowując, estymacje stanowią istotną część cyklu produkcyjnego. Pozwalają nam podejmować decyzje dotyczące tego, co się dzieje w projekcie. Na koniec zwracam jeszcze uwagę o prawie Brook’a z pozycji „The Mythical Man Month”, który stwierdza, że dodawanie osób do projektu może zwiększyć ilość czasu w jego realizacji. Zatem należy również pamiętać o równowadze między wprowadzaniem ludzi w zadania bez powodowania wielu przeszkód i utrudnień.

Autorem tekstu jest Marek Rode.