Realizacje

Sklep internetowy Fabryka.pl

Wydawnictwo Fabryka Słów ma sklep!

Książki, muzyka, filmy i multimedia w jednym miejscu, w dobrej cenie.

Zakres prac

  • wdrożenie projektu - Evo Technologie,
  • opracowanie strategii marketingowej, research, kreacje - EVO Marketing,
  • prowadzenie kampanii - EVO SEM,
  • obsługa PR - EVO.

Cel projektu

Stworzenie wydajnej platformy e-commerce, która pozwoli użytkownikom na szybkie i wygodne znalezienie wybranego produktu z bazy liczącej ponad 700 tyś. pozycji. System sklepu musiał ściśle współpracować z dostawcą danych i magazynem obsługującym wysyłki zamówień. Dodatkowym utrudnieniem była częsta rotacja danych.
W trakcie realizacji okazało się, że poza platformą e-commerce potrzebny będzie również dedykowany system klasy CRM. Pozwoli on na sprawną pracę Biura Obsługi Klienta i śledzenie procesu realizacji zamówień, oraz generowanie statystyk sprzedaży.


Wyzwania

  1. Szybka i intuicyjna wyszukiwarka produktów.
  2. Praca na dużym zbiorze danych (pełna baza ponad 1 mln produktów) o dużej rotacji zawartości importowana z zewnątrz.
  3. Synchronizowanie stanów magazynowych.
  4. Monitorowanie na bieżąco statusu realizacji zamówień.
  5. Integracja z wieloma systemami zewnętrznymi: system magazynowy, system księgowy, zewnętrzna baza produktów, CRM, płatności on-line.
  6. Stworzenie dedykowanej aplikacji dla Biura Obsługi Klienta.

Wdrożone rozwiązania

Wyszukiwarka

Zapewniliśmy odpowiednią szybkość przeszukiwania bazy produktów, korzystając z dedykowanego silnika wyszukiwania (Search Engine). Istnieje kilka tego typu rozwiązań, zarówno Open Source jak i płatnych. Mieliśmy już wcześniej doświadczenia z aplikacją Mnogo search engine, ale zdecydowaliśmy się spróbować czegoś o bardziej rozbudowanej funkcjonalności. Wybraliśmy system Sphinx.

Sphinx Search Engine jest bardzo rozbudowanym narzędziem Open Source, o bardzo wysokiej wydajności zarówno wyszukiwania jak i indeksowania danych. Źródłem danych dla Sphinx’a może być baza danych (wbudowane wsparcie dla MySQL i PostreSQL) lub dokumenty XML. 

Dzięki odpowiedniemu skonfigurowaniu Sphinx’a i wprowadzonym modyfikacjom, powstała wyszukiwarka o następujących cechach:

  • prędkość wyszukiwania ponad 100 razy szybsza niż rozwiązanie oparte o wyszukiwania pełno tekstowe na bazie danych MySQL,
  • odciążenie bazy danych,
  • możliwość wyszukiwania wyrazów zawierających zarówno frazy wpisane z polskimi znakami diakrytycznymi jak i bez (ołówek, olowek),
  • możliwość wyszukiwania fraz z uwzględnieniem odmiany przez przypadki (np. wojna, wojny, wojnie).

CRM Dla Biura Obsługi Klienta (BOK)

Na początku w zakresie projektu przewidywana była integracja z zewnętrznym systemem. W trakcie prac zdecydowano się jednak opracować dedykowaną aplikację, która będzie gromadziła dane odnośnie zamówień ze wszystkich współpracujących ze sobą systemów:

  • platformy sprzedaży e-commerce,
  • magazynu,
  • systemu księgowego.

Główne funkcjonalności systemu:

  • wyszukiwanie dowolnego zamówienia na podstawie: daty złożenia, nazwiska klienta, czy adresu e-mail,
  • nadzór realizacji zamówień, śledzenie statusów z magazynu,
  • wprowadzanie korekt do zamówień,
  • generowanie powiadomień dla zamówień, w których pojawią się opóźnienia,
  • możliwość opisywania i oznaczania zamówień,
  • kontrola i wgląd we wszystkie wiadomości e-mail wysyłane do klienta,
  • kontrola nadpłat i zwrotów klienta,
  • statystyki zrealizowanych zamówień i sprzedaży produktów z możliwością generowania dla dowolnego okresu z wykorzystaniem opcjonalnych filtrów jak np. status realizacji zamówień czy typy produktów.

Synchronizacja z danymi Magazynu

Sklep współpracuje z magazynem Firmy Księgarskiej Jacek Olesiejuk. Na potrzeby sklepu zostały opracowane formaty i harmonogramy wymiany danych w oparciu o pliki XML. 

Wyzwaniem była duża zmienność i rotacja danych. Wymagało to opracowania bardzo wydajnych mechanizmów, które nie mogły powodować przerw w działaniu sklepu.

Wymieniane dane:

  • baza produktów wraz z opisami,
  • dostępności produktów,
  • zamówienia,
  • statusy realizacji zamówień,
  • korekty i anulacje zamówień.

Doradca Zakupowy

Jest to specjalna funkcja systemu, która pozwala na dobór produktu odpowiedniego dla osób w określonym wieku i płci. Bardzo pomocna, gdy nie mamy np. pomysłu na prezent. Funkcjonalność składa się z dwóch modułów. Jeden przeznaczony jest dla użytkowników, aby mogli znaleźć odpowiedni produkt. Drugi moduł przeznaczony jest dla redaktorów, w celu łatwej kategoryzacji produktu dla odpowiedniej grupy docelowej.

Pozostałe wdrożone rozwiązania:

  • integracja z systemem płatności elektronicznych płatności.pl,
  • integracja z porównywarką Ceneo,
  • mechanizm zarządzania promocjami oparty o pojedyncze produkty i dowolnie tworzone grupy,
  • obsługa kodów rabatowych,
  • integracja z system księgowym Asseco Softlab.

Sphinx Search Engine
Podstawowe funkcje i korzyści

Potrzeby

W przypadku sklepu o tak szerokiej ofercie kluczową funkcjonalnością pozwalającą na sprawne poruszanie się po stronie jest intuicyjna i szybko działająca wyszukiwarka. Pierwsza wersja po uruchomieniu sklepu oparta była o wbudowaną w bazę danych MySQL funkcję: Full text Search. Szybko jednak okazało się, że nawet przy istniejących w TYPO3 mechanizmach cache'owania wyników działanie wyszukiwarki przy większym ruchu jest zbyt powolne, a przede wszystkim generuje bardzo duże obciążenie na bazie danych. Poza tym wyszukiwarka nie oferowała bardzo pożądanych funkcjonalności wpływających na intuicyjność takich jak:

  • Wyszukiwanie uwzględniające odmianę morfologiczną charakterystyczną dla języka polskiego: np.: Wojna, Wojnie, wojny
  • Możliwość wyszukiwania wyrazów z uwzględnieniem polskich znaków diakrytycznych lub nie: np.: Żółw, zolw, żolw, zólw, każda z tych fraz powinna zwracać wyniki odpowiednie dla wpisania słowa 'żółw'.

Dlaczego Sphinx?

Szybko zaczęliśmy poszukiwać innego rozwiązania. Wybór był oczywisty, dedykowany silnik wyszukiwania. Istnieje jednak wiele takich rozwiązań. Wcześniej wykorzystywaliśmy już przy innych projektach Mnogo Search (http://www.mnogosearch.org/). W tym przypadku zdecydowaliśmy jednak, że silnik ten nie oferuje nam odpowiedniej funkcjonalności. Brakowało mu przede wszystkim wbudowanej możliwość zaawansowanego filtrowania wyników i sortowania.

Dokonując porównania innych rozwiązań zdecydowaliśmy się na bardzo chwalone przez deweloperów rozwiązanie Sphinx Search Engine. Dlaczego postawiliśmy na ten silnik? Zdecydowały o tym następujące funkcjonalności:

  • Duża Szybkość indeksowania, jak twierdzą autorzy ( 10 – 15 MB/sec dla 1 rdzenia).
  • Rewelacyjna szybkość wyszukiwania, (150 – 250 zapytań na sekundę na rdzeń przy 1 milionie dokumentów w bazie o łącznej wielkości 1,2 GB)
  • Możliwość przeszukiwania po wielu polach naraz
  • Zaawansowane możliwości filtrowania i sortowania wyników
  • Wbudowana obsługa bazy danych MySQL/PostgreSQL
  • Indeksowanie w czasie rzeczywistym
  • Możliwość konfiguracji odmiany morfologicznej.
  • Dobre wsparcie dla UTF-8
  • Łatwość instalacji bez dodatkowych pakietów (Brak wymogu posiadania np. JAVA'y)
  • Otwarte, wykorzystane w wielu projektach rozwiązanie Open Source.
  • Bardzo dobra, przejrzysta dokumentacja techniczna dostępna na stronach projektu
  • Ciągły rozwój

Jak to działa

Mechanizm działania silników wyszukiwania (ang.Search Engines) jest dość prosty. W tle, zwykle co określony czas pobierane są dane ze źródła (baza danych, plików XML), które podlegają indeksowania. W momencie którym chcemy odszukać interesujące nas dane, zamiast tworzyć zapytanie do bazy danych, to tworzymy jego ekwiwalent do silnika wyszukiwania. Silnik w zależności od wybranego rozwiązania może nam zwrócić rekordy wraz z ich atrybutami (dla książki np.: tytuł, autor, cena), lub tylko same identyfikatory. W drugim przypadku resztę pożądanych atrybutów pobieramy sami ze źródła, czyli rola silnika ogranicza się tylko do wskazania nam właściwych, interesujących nas rekordów. Silnik musi działać jako usługa stale włączona na serwerze podobnie jak baza danych.

Korzyści z wdrożenia

Po pierwsze Sphinx spełnił wszystkie nasze wymagania i potrzeby, przy czym zaoferował rewelacyjną wydajność. Dla naszej bazy składającej się z około 1 mln pozycji, przy stosowaniu wielu filtrów i sortowaniu wyników po stronie Sphinx'a prędkość zwrócenia wyników nigdy nie przekroczyła 20 ms.

Zastosowanie Sphinxa pozwoliło na znaczące odciążenie bazy danych, przez co poprawiła się nie tylko szybkość działania wyszukiwarki, ale i całej strony.

Kolejną zaletą była zaskakująca szybkość i łatwość wdrożenia w pełni funkcjonalnego rozwiązania. Cała konfiguracja i podpięcie silnika do naszego działającego już systemu zajęły 2 dni pracy jednemu programiście, który wcześniej nie miał w ogóle styczności z tym rozwiązaniem.

klient

Fabryka Słów

data realizacji: 20.06.2011

E-commerce, Rozwiązania zintegrowane

Technologie:

  • Ajax
  • CMS TYPO3
  • HTML/CSS
  • PHP
  • jQuery

Odwiedź stronę

strona www