contact@beecommerce.pl
+48 697 548 508
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 o czystym wyglądzie lub marketplace 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ć?
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ń.
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.
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.
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.