AML
Alex Media Lab Внедрение AI и B2B-маркетинг
Консультация
Technologia 02.06.2026 7 min czytania

Własny silnik zamiast WooCommerce — co zyskał VEX Systems

Po migracji VEX Systems zyskał szybkość, kontrolę i niezależność od wtyczek. Podsumowujemy konkretne korzyści własnego silnika względem WooCommerce.

Aleksander
Alex Media Lab
Własny silnik zamiast WooCommerce — co zyskał VEX Systems

Granice gotowych platform e-commerce w sektorze B2B

Większość firm dystrybucyjnych rozpoczyna swoją obecność w sieci od najprostszego scenariusza: instalacji WordPressa z wtyczką WooCommerce. Na etapie sprzedaży kilkudziesięciu produktów do klientów indywidualnych takie rozwiązanie wydaje się rozsądne — jest tanie w uruchomieniu, ma gotowe szablony i tysiące wtyczek obiecujących dowolną funkcjonalność za kilkadziesiąt dolarów rocznie.

Problem pojawia się w momencie, gdy firma wchodzi na poziom profesjonalnej dystrybucji B2B. W przypadku VEX Systems — oficjalnego dystrybutora profesjonalnego oświetlenia scenicznego i systemów nagłośnienia marek FOS Technologies oraz iHOS — wymagania techniczne przerosły możliwości silnika opartego na wtyczkach:

  • Ponad 897 zaawansowanych urządzeń AV w stałej ofercie oraz katalog części zamiennych przekraczający 20 000 indeksów.
  • Rozbudowana matryca atrybutów technicznych: kąty świecenia soczewek, protokoły DMX/RDM, typy diod LED, pasma przenoszenia, waga, wymiary rackowe i zapotrzebowanie prądowe.
  • Wielopoziomowe cenniki partnerskie: inne ceny dla instalatorów, klubów, teatrów, a inne dla klientów detalicznych.
  • Konieczność bezpośredniej integracji z ERP (Subiekt GT): dwukierunkowy przepływ stanów magazynowych, cen netto w walutach EUR/PLN oraz rezerwacji sprzętu.
  • Dual-channel: jednoczesna obsługa platformy hurtowej B2B (vex-systems.pl) oraz sklepu detalicznego (vex.sklep.pl) na jednym, wspólnym zasobie danych.

Poniżej przedstawiamy szczegółową analizę architektoniczną: dlaczego WooCommerce zawiódł i jak stworzenie autorskiego silnika w Django zredukowało czas odpowiedzi serwera o 97%.


Architektoniczny koszmar: 42 wtyczki i piekło wp_postmeta

Głównym problemem WooCommerce nie jest sam kod PHP, lecz model danych wymuszony przez architekturę WordPressa. WordPress opiera się na strukturze EAV (Entity-Attribute-Value), w której wszystkie niestandardowe parametry produktów zapisywane są w jednej, gigantycznej tabeli wp_postmeta.

Gdy produkt posiada 20 parametrów technicznych, w bazie powstaje 20 osobnych wierszy dla każdego produktu. Przy katalogu liczącym 1 000 produktów i kilku wersjach językowych tabela osiąga setki tysięcy wierszy. Każde filtrowanie produktów (np. „ruchome głowice o mocy >300W z protokołem Art-Net”) wymagało wykonania wielokrotnych złączeń (JOIN) na tej samej tabeli.

-- Typowe zapytanie WooCommerce przy filtrowaniu kilku parametrów
SELECT p.ID FROM wp_posts p
INNER JOIN wp_postmeta pm1 ON p.ID = pm1.post_id AND pm1.meta_key = '_moc_led'
INNER JOIN wp_postmeta pm2 ON p.ID = pm2.post_id AND pm2.meta_key = '_protokol'
INNER JOIN wp_postmeta pm3 ON p.ID = pm3.post_id AND pm3.meta_key = '_kat_swiecenia'
WHERE p.post_type = 'product' AND p.post_status = 'publish'
AND CAST(pm1.meta_value AS UNSIGNED) >= 300
AND pm2.meta_value LIKE '%Art-Net%';

Efekt w praktyce?
1. TTFB (Time to First Byte) na poziomie 2.8 – 3.4 sekundy. Użytkownik czekał niemal 3 sekundy, zanim serwer w ogóle zaczął przesyłać pierwszy bajt strony.
2. Kaskadowe awarie przy aktualizacjach: Aktualizacja wtyczki do cen hurtowych potrafiła wyłączyć kalkulator kosztów dostawy InPost albo zepsuć przełącznik języków WPML.
3. Puchnięcie pamięci: Każde żądanie HTTP alokowało ponad 180 MB pamięci RAM na serwerze, co przy kilkunastu jednoczesnych użytkownikach dławiło procesor serwera VPS.


Nowy fundament: Python, Django i PostgreSQL

Podjęliśmy decyzję o całkowitym odcięciu się od WordPressa. Zbudowaliśmy dedykowany silnik oparty na Pythonie, frameworku Django oraz relacyjnej bazie PostgreSQL.

1. Czysty, znormalizowany model relacyjny

Zamiast wrzucać wszystko do jednego worka meta-danych, zaprojektowaliśmy ścisłą strukturę bazodanową:

  • Tabela Product z precyzyjnie otypowanymi kolumnami (power_watts, beam_angle_min, beam_angle_max, dmx_channels).
  • Natywne pole JSONB w PostgreSQL dla specyficznych, rzadkich parametrów, indeksowane za pomocą indeksu GIN.
  • Czas wykonania złożonego zapytania filtrującego spadł z 840 ms do zaledwie 4 ms.

2. Dwukierunkowa synchronizacja z Subiekt GT

Zamiast powolnych webhooks i zewnętrznych integratorów obciążających serwer, stworzyliśmy dedykowany mikroserwis ETL. Skrypt w tle przetwarza stany magazynowe i cenniki bezpośrednio z bazy Subiekta, aktualizując platformę B2B w cyklach co 60 sekund z mechanizmem Safety Abort (jeśli feed zwróci błąd lub niekompletne dane, baza produkcyjna nie zostaje naruszona).

3. Płaski front bez ociężałego npm-bloatu

Zamiast instalować frameworki z 500 MB folderem node_modules (typu Next.js czy Nuxt), zastosowaliśmy komponenty JSX kompilowane pojedynczo przez esbuild. Każdy moduł to lekki, niezależny plik JS, który przeglądarka pobiera błyskawicznie i buforuje w pamięci podręcznej.


Twarde liczby: Porównanie przed i po migracji

Poniższa tabela przedstawia realne pomiary zarejestrowane na serwerze produkcyjnym VEX Systems przed i po wdrożeniu autorskiego silnika:

Parametr wydajnościowy WordPress + WooCommerce Autorski silnik Django (Alex Media Lab) Zmiana
TTFB (Time to First Byte) 2 800 ms (2.8s) 78 ms (0.08s) -97.2% 🚀
Pełne załadowanie strony (LCP) 4 200 ms 840 ms (< 0.9s) 5x szybciej
Liczba wtyczek zewnętrznych 42 wtyczki 0 wtyczek (100% natywny kod) Brak konfliktów
Zużycie RAM na zapytanie ~190 MB ~18 MB 10x mniejsze
Koszt licencji wtyczek rocznie ~3 800 zł / rok 0 zł 100% oszczędności
Czas synchronizacji z Subiektem 15–30 minut (zawieszenia) Masaż danych w < 12 sekund W czasie rzeczywistym

Dodatkowa wartość: Trójstopniowy model Opieka B2B

Wdrożenie własnego silnika otworzyło drogę do zaimplementowania unikalnej logiki biznesowej, której nie dało się stabilnie utrzymać na WooCommerce — zintegrowanych pakietów serwisowych Opieka:

  1. Opieka Standard: Dostęp do bazy wiedzy, aktualizacji firmware'u urządzeń DMX i podstawowej gwarancji dystrybutora.
  2. Opieka Priority: Gwarantowany czas reakcji serwisu do 24h, sprzęt zastępczy na czas naprawy oraz dedykowany opiekun techniczny.
  3. Opieka Managed SLA: Kompleksowy nadzór nad instalacją w klubie, teatrze lub hotelu, okresowe audyty fotometryczne i natychmiastowa wysyłka modułów zamiennych z magazynu w Warszawie.

Wszystkie te uprawnienia, powiązane z numerami seryjnymi zakupionych urządzeń, są weryfikowane automatycznie w panelu klienta w ułamku sekundy.


Podsumowanie: Czy Twoja firma potrzebuje własnego silnika?

Doświadczenie VEX Systems udowadnia, że w segmencie B2B platforma internetowa nie jest tylko „sklepem” — jest narzędziem pracy inżynierów, projektantów instalacji i dyrektorów technicznych.

Jeśli Twoi klienci tracą cierpliwość czekając na otwarcie karty katalogowej, a Twój zespół spędza godziny na ręcznym poprawianiu błędów między sklepem a systemem ERP, dalsze łatanie WordPressa kolejnymi wtyczkami jest tylko odsuwaniem problemu w czasie.

W Alex Media Lab projektujemy i wdrażamy dedykowane platformy cyfrowe, które eliminują dług technologiczny i budują przewagę konkurencyjną na lata.