4 min

11 września 2017

Jaką platformę ecommerce wybrać gdy mamy dużo produktów?

Wybór odpowiedniego silnika sklepu internetowego to często zmora każdego przedsiębiorcy myślącego o wejściu do handlu online. Ile osób, tyle zazwyczaj opinii co lepsze, a czego należy unikać. Czy na pewno nie da się jednoznacznie stwierdzić które platformy eCommerce nadają się do określonych celów? Moim zdaniem taka diagnoza jest możliwa, szczególnie w przypadku gdy postawimy przed sklepem konkretne wymagania. Przykładowo może to być [sklep modowy] (https://bardotti.pl/) o czystym wyglądzie lub [marketplace] (https://shopconnector.pl/) z dużą ilością produktów, zaawansowanymi filtrami i integracjami z magazynami zewnętrznymi. To dwie kompletnie odmienne wizje sklepu internetowego do których potrzebujemy innego podejścia i innych narzędzi.

W tym wpisie podpowiemy na co zwrócić uwagę mając dużą bazę produktów, powiedzmy większą niż 1000.

Na początek trochę teorii – „duża baza” to w efekcie dłuższy czas potrzebny na odnalezienie w jej strukturze konkretnej pozycji. Czas jest tym dłuższy im więcej wariantów danego produktu posiadamy. Przykładowo, mając 10 000 produków, po 10 wariantów każdy (kombinacje koloru i rozmiaru) otrzymujemy tabelę na 100 000 rekordów. Bez kilku sprytnych zabiegów większość platform łapie na tym etapie czkawkę, czego efektem jest wczytywanie strony po 10-20 sekund. Jak sobie z tym radzić?

Cachowanie strony

Cache’owanie opiera się na zachowaniu wcześniej wygenerowanej statycznej wersji strony serwisu i późniejszym wykorzystywaniu jej przez pewien określony czas do obsługi kolejnych odwołań. Pozwala to na znaczne ograniczenie użycia zasobów serwera oraz szybsza odpowiedz niż w przypadku każdorazowego generowania całej strony. Nie zawsze właściwe jest zastosowanie takiego rozwiązania dla wszystkich stron – czasem ich zawartość aktualizowana jest często lub dostosowana pod konkretnego użytkownika. Możliwe jest także zastosowanie bardziej granularnego cache poprzez zachowywanie pomiędzy wywołaniami wybranych stałych fragmentów strony i późniejsze stosowanie tak uzyskanego statycznego kodu dla kolejnych zapytań.


Cachowanie bazy

Współczesne platformy e-commerce intensywnie wykorzystują backend bazodanowy dla realizacji swych funkcjonalności. Wyświetlenie pojedynczej strony często skutkuje wykonaniem kilkudziesięciu kwerend co w przypadku dużej liczby odwiedzających może spowodować przeciążenie bazy danych i spowolnić generowanie stron. Dodatkowo w znacznej części do wyświetlenia poszczególnych podstron serwisu potrzebne jest wykonanie za każdym razem jednakowych zapytań. W celu zredukowania ilości wymagających obliczeniowo kwerend i zmniejszenia obciążenia bazy danych można zastosować warstwę cache’ująca. Wyniki dla często wykonywanych zapytań zostają wtedy zachowane w szybkiej pamięci podręcznej a kolejne ich wywołania skutkują zwróceniem uzyskanej wcześniej odpowiedzi bez konieczności angażowania samej warstwy bazodanowej.

Wydajne filtry

Filtrowanie pozwala użytkownikowi na szybkie zlokalizowanie pośród tysięcy dostępnych produktów tych spełniających wyszczególnione przez niego kryteria. Z punktu widzenia odbiorcy istotne jest dostarczenie przejrzystego interfejsu filtrów, dostatecznej ilości parametrów dla poszukiwanego produktu i jednoznacznej logiki działania zgodnej z przewidywaniami użytkownika. Ważne jest także dostosowanie ilości dostępnych rodzajów filtrów jak i wartości parametrów filtrowania do aktualnie przeglądanej przez użytkownika kategorii produktów. W przypadku dużej ilości produktów wybranie wszystkich z dostępnych dla danej kategorii parametrów może okazać się zadaniem w znaczącym stopniu obciążającym bazę danych i powodującym niepotrzebne spowolnienie generowania stron. W tym wypadku warto zastosować wspomniane wcześniej rozwiązania w postaci cache’owania fragmentów strony lub warstwy przechowującej wyniki wcześniejszych zapytań w pamięci podręcznej.

Wydajny serwer dla platformy e-commerce

Do zastosowań e-commerce, w odróżnieniu od zwykłych site’ów informacyjnych, tradycyjne rozwiązanie w postaci hostingu współdzielonego może okazać się nieadekwatne. Ze względu na swą złożoność platformy e-commerce maja tendencje do znacznego obciążania tego typu usług skutkującego walką o zasoby z innymi użytkownikami serwera i w efekcie spowolnieniem lub całkowitym uniemożliwieniem działania. Krokiem we właściwym kierunku jest wykupienie usługi VPS i w przypadku mniejszych sklepów, które nie obsługują dużej ilości użytkowników, może być to rozwiązanie wystarczające. Należy pamiętać że nadal mamy do czynienia z współdzieleniem fizycznej maszyny lecz dostępne dla użytkowników zasoby rozłożone są bardziej równomiernie. Dysponujemy również większą kontrolą nad serwerem co daje możliwość optymalizacji konfiguracji usług i usprawnienia działania platformy. Najwłaściwszą opcją dla hostingu e-commerce jest wykupienie dedykowanej maszyny – skutkuje to znacznym przyspieszeniem czasu ładowania stron, zwiększeniem dostępnej przepustowości łącza i daje możliwość obsłużenia ruchu o wysokim natężeniu. Dobór konfiguracji maszyny uzależniony jest od wymagań i złożoności danego rozwiązania oraz konieczności obsłużenia określonej ilości użytkowników.