Aktualizacja thirty bees 1.5.0
W zeszłym tygodniu wyszła aktualizacja thirty bees 1.5.0. O ile klienci głównie życzą sobie instalacje na bardziej markowym Prestashop, ja preferuję thirty bees, bo mam tam wszystko.
Jak tylko zobaczyłem, to zaraz wybrałem jeden ze sklepów, do automatycznej aktualizacji. Trzeba było usunąć tylko jeden moduł coreupdater (czy jakoś tak - który nie jest już potrzebny), aktualizacja do najnowszej wersji trwała około 1 minutę. I już moglem się cieszyć nową wersją thirty bees 1.5.0.
Na końcu artykułu, zrobię jeszcze testy porównawcze obu platform.
Przegląd najważniejszych zmian w thirty bees 1.5.0
Wsparcie PHP 8.2
thirty bees w najnowszej odsłonie wprowadza pełną obsługę najnowszego PHP 8.2. Jednocześnie usunięto wsparcie dla PHP w wersji 7.3 i starszych.
Moduły Premium
Ta aktualizacja wprowadza nową funkcjonalność do thirty bees. Moduły Premium, to zestaw (obecnie trzech) modułów, które są dostępne tylko dla osób wspierających thirtybees (tzw. sponsorów).
Funkcje przeniesione do modułów.
Czy dana funkcjonalność ma być modułem, czy też powinna być wdrożona jako funkcjonalność podstawowa (core functionality). Tutaj każdy wdraża jak komu pasuje. Ja uważam, że funkcje które ktoś mógłby chcieć zmienić w przyszłości, powinny być jako moduły, a funkcje których nikt nie będzie zmieniał, jako funkcjonalność podstawowa.
Wysyłanie wiadomości e-mail
W thirty bees 1.5 funkcja wysyłająca maile została przeniesiona z core, do modułu. Moim zdaniem świetna zmiana. Do tej pory Prestashop używa swiftmailera, którego ja osobiście nie lubię. Znacznie bardziej wolę PHPMailer'a. Posiada on pewne unikatowe funkcje, których brakuje swiftowi.
Wyciągnięcie funkcji wysyłania maili poza core sklepu oferuje nowe możliwości jak zamiana systemu wysyłania na inny. Oraz modyfikację np. systemu szablonów wysyłki email. Do tej pory trzeba było korzystać z wbudowanego systemu. Implementacja takiej funkcji jako moduł, zmienia to ograniczenie.
W thirty bees oczywiście zostały dodane w tym momencie dwa moduły. Mail via PHPmailer i Mail via swiftmailer. Więc bez problemu możemy w dowolnym momencie zmienić bibliotekę wysyłającą maile poprzez zmianę modułu.
Minifikacja jako moduł
Prestashop od dawna posiada funkcję minifikacji kodu javascript/css/html. Do tej pory wszystko było uzależnione od wbudowanej w system wersji minifkatora. Wraz z tą aktualizacją możemy wprowadzić własny system minifikacji. Np. oparty o nowsze, albo szybsze biblioteki minifikujące kod.
Osobiście brakuje mi tylko, aby galeria produktów została przeniesiona jako moduł. Często klienci chcą zmienić standardową galerię na inną i trzeba do tego dostosowywać modyfikować szablon. Przeniesienie galerii do modułu, pozwalałoby na szybką podmianę galerii na własną, bez potrzeby ruszania szablonu.
Lepszy cache
Czy lepszy to w sumie nie wiem, bo nie testowałem. Do tej pory Prestashop i thirtybees do przechowywania cache smarty używały albo dysku twardego, albo bazy danych MySQL. Żaden z tych systemów nie został zaprojektowany po to, aby przechowywać cache.
thirty bees 1.5 wprowadza nową opcję, która pozwala na użycie cache Redis lub memcached do przechowywania cache smarty. Co może w niektórych przypadkach przyśpieszyć działanie sklepu, a także pomoże zmniejszyć liczbę plików na serwerze.
Nowe warunki przewoźników.
System dostaw został wzbogacony o dodatkowe warunki przy wyborze paczki.
- Minimalna waga paczki
- Minimalna wartość zamówienia
- Maksymalna wartość zamówienia
Zmiany w systemie atrybutów i cech
- Wprowadzono również możliwość wyświetlenia wszystkich produktów, które posiadają przypisaną daną cechę i/lub atrybut.
- Dodanie "Nazwy publicznej" dla grupy cech. Do tej pory jedynie atrybuty miały rozróżnienie na nazwę (techniczną) i nazwę publiczną (wyświetlaną klientowi)
- Dodano również wsparcie dla kombinacji w przypadku produktów wirtualnych.

Inne zmiany
- Zasady koszyka: możliwość ustawienia maksymalnej wartości rabatu
- Waluta - możliwość określenia miejsc dziesiętnych
- Optymalizacja plików cookie - mniejsze, szybsze
- Import CSV - wsparcie dla niestandardowych jednostek importu
- Formularz kontaktowy: opcja wyłączenia wiadomości potwierdzającej
- Odnowiony Menedżer plików - obsługa obrazów, aktualizacja biblioteki, poprawki zabezpieczeń
- Odnowiona obsługa plików zip modułów - unifikacja, naprawiono problem z usuwaniem zasobów
- Wsparcie dla niestandardowych powiadomień w pasku narzędzi
- Powiadomienia systemowe
- API: Informacje o paczkach produktowych w zamówieniach
- API: Dodanie zasad koszyka
- Funkcje eksperymentalne - Dodanie obsługi zmiany opcji PDO::ATTR_STRINGIFY_FETCHES
- Wsparcie dla niestandardowej personalizacji edytora tinymce #9f2b210
Błędy i konserwacja
-
Zmniejszono zależność od bibliotek firm trzecich (mapy Google,...)
- usunięto mapę ze szczegółów zamówienia. dodano nowy hak
displayAdminOrderAddressExtra
gdzie można za pomocą modułu przywrócić tę funkcjonalność lub zaimplementować lepszą
- usunięto mapę ze szczegółów zamówienia. dodano nowy hak
-
Wiele poprawek błędów w rdzeniu i natywnych modułach
-
Naprawiono pamięć podręczną redis/memcache/acpu
-
Poprawki zabezpieczeń
-
Usunięto nieużywany kod
-
Naprawiono panel sterowania i raporty statystyczne
-
Naprawiono obliczenia podatku ekologicznego
-
Naprawy w edycji zamówienia w panelu administratora - wsparcie dla darmowych produktów, obliczenia wagi, uzupełnianie zapasów...
-
Naprawiono dane instalacyjne - stawki podatkowe, strefy...
Czas ładowania: thirty bees vs Prestashop
Wracająć do tematu aktualizacji i prędkośći. Nie byłbym sobą, gdybym nie zapisał czasu ładowania przed i po aktualizacji. Ale to pociągnęło za sobą dodatkowe testy i porównania.
Mój sklep ładował się około 410ms ( czyli szybko ). Po tej aktualizacji czas ładowania sklepu (TTFB) spadł z ~410 do 240-300ms (czyli super szybko).
Produkcyjny sklep, to trochę co innego niż testy na świeżej instalacji (w moim usunąłem kilka modułów, więc jest jeszcze lżejszy).
Dlatego też postanowiłem zainstalować wersję 1.4 i 1.5 (a dodatkowo, z ciekawości dodałem też wersję 8.1.1) i wykonać testy.
Platforma testowa, to serwer dedykowany z 4 rdzeniami i 16GB RAM
Wszystkie testy zostały wykonane na PHP 8.1 (bo wszystkie platformy to obsługują)
Tak więc, na tym serwerze stoją 3 sklepy, a oto ich czasy ładowanie i zużycie RAM
Sklep | Wersja | PHP | Czas | Czas Prof | RAM | MaxUż. |
---|---|---|---|---|---|---|
Czysty thirty | tb 1.4.0 | 8.1 | 235ms | 313ms | 20.5MB | ~800 |
Czysta thirty | tb 1.5.0 | 8.1 | 230ms | 220ms | 21.1MB | ~800 |
Produkcyjny | tb 1.4.0 | 8.1 | 365ms | 350ms | 21.9MB | ~800 |
Produkcyjny | tb 1.5.0 | 8.1 | 260ms | 240ms | 21.9MB | ~800 |
Czysta PS 8.1 Basic | ps 8.1.1 | 8.1 | 1030ms | 877ms | 139.4MB | ~118 |
Legenda
Czas
- Czasy ładowania z wyłączonym tybem debug i profilowania. Odczytane z konsoli przeglądarki. Tzw. TTFBCzas Prof
- Czasy ładowania z podsumowania po włączeniu profilowania.Waga
- Ilość danych pobranych przez przeglądarkęMaxUż.
Teoretyczna maksymalna ilość odwiedzających w tym samym czasie, aby zużyć 16GB RAM
Podsumowując, nie dość że było bardzo dobrze, to można powiedzieć, że jest jeszcze lepiej. Nieznacznie, ale najważniejsze, że nie gorzej.
GTMetrix
Bardzo fajnym narzędziem jest GTMetrix. Zapewne większość z Was go zna. Jednakże, trzeba widzieć, jak interpretować jego wyniki.
Postanowiłem przetestować tym narzędziem 2 najnowsze wersje TB i PS.
Czas na testy porównawcze. W obu przypadkach sklepów włączone zostały funkcje CCC, a w drugim teście dodatkowo włączona natywna obsługa webp.
- https://gtmetrix.com/compare/V5jYilF6/W57S4DXy (CCC)
- https://gtmetrix.com/compare/0wRHATtr/gqOBHKez (CCC+webp)
Chyba więcej testów nie potrzeba.
Reasumując
W chwili obecnej thirty bees to nasz system z wyboru. Nie chcę tutaj oczerniać Prestashop, bo to też dobry system, który jednak skupia się na innych aspektach rozwoju. Jeśli chcieć podsumować oba te projekty w krótkim zdaniu to thirty bees przyjęło woli udoskonalać i stabilizować obecny już system, a Prestashop bardziej skupia się na unowocześnianiu swojego framework'a. Podejście thirty bees oznacza trochę wolniejszą innowację, ale znacznie większą stabilność. Znów w Prestashop, musimy się liczyć, że nowe funkcje będą szybciej, ale wszystko co nowe, ma większą szansę na błędy (błędy usuwane są w kolejnych aktualizacjach).
Prestashop na pewno dostarczy więcej funkcji, my jednak wolimy system, który jest przede wszystkim stabilnym fundamentem do zbudowania sklepu internetowego.
Trzy sklepy testowe (za jakiś czas je usunę) dostępne są pod adresami:
http://demo.seigi.pl/test74/tb140/
http://demo.seigi.pl/test74/tb150/
http://demo.seigi.pl/test74/ps81/