Sklep generował zduplikowane zamówienia – klient kliknął „Zamów” raz, ale powstawały dwa identyczne zamówienia z podwójną płatnością. Problem dotyczył ~2% zamówień głównie przy wolnym połączeniu internetowym. Czas naprawy: 6 godzin.
Klienci nie mogli znaleźć produktów przez wyszukiwarkę mimo że produkty były widoczne w kategoriach. Wyszukiwanie po SKU, nazwie i opisie nie dawało wyników. Problem narastał przez 2 tygodnie po migracji na nowy serwer. Czas naprawy: 2 godziny.
Konwersja sklepu spada – to jeden z najczęstszych sygnałów alarmowych z jakimi właściciele sklepów trafiają do specjalistów. Problem jest niejednorodny: to samo zjawisko może mieć kilkanaście różnych przyczyn, a diagnoza bez dostępu do danych jest niemożliwa. Poniżej opisuję najczęstsze przyczyny i jak je odróżnić.
Varnish był zainstalowany i skonfigurowany, ale każde żądanie trafiało do PHP – hit rate wynosił 0%. Serwer był przeciążony mimo Varnisha. Problem w błędnej konfiguracji VCL i cookiach sesji. Czas naprawy: 4 godziny.
Fibers weszły do PHP w wersji 8.1 jako mechanizm cooperative multitasking – możliwość zawieszenia i wznowienia wykonania funkcji w dowolnym miejscu. To nie są wątki ani procesy – Fiber działa w tym samym wątku PHP, ale pozwala przełączać się między zadaniami bez blokowania. Pokażę jak działają Fibers, gdzie mają sens i jak biblioteki async (ReactPHP, Amp) używają ich pod spodem.
Import 10 000 produktów przez panel admina kończył się błędem Allowed memory size exhausted po około 3000 produktach. Import trwał 40 minut i nie kończył się sukcesem. Czas naprawy: 3 godziny.
Klienci nie dostawali potwierdzeń zamówień. Sklep wysyłał emaile z lokalnego sendmail który był blokowany przez serwery pocztowe jako spam. 95% emaili trafiało do folderu Spam lub było odrzucanych. Czas naprawy: 2 godziny.
Serwer przeciążony, logi nginx pełne requestów do /admin. Boty próbowały się zalogować do panelu admina przez 72 godziny – 50 000 prób. Jeden z kont admin miał słabe hasło. Czas reakcji: 30 minut, wzmocnienie: 2 godziny.
Własna metoda płatności w Magento 2 to jeden z bardziej złożonych modułów do napisania od zera. Wymaga implementacji interfejsu MethodInterface, konfiguracji w system.xml, szablonów JS dla checkout i obsługi webhooków zwrotnych od bramki. Pokażę kompletną strukturę modułu integrującego fikcyjną bramkę płatności – od autoryzacji przez capture po obsługę refundacji.
Właściciele firm którzy po raz pierwszy wdrażają sklep na Magento 2 często nie wiedzą czego się spodziewać i na co się przygotować. Poniżej opisuję typowy przebieg projektu od pierwszej rozmowy do uruchomienia – bez upiększeń.
