Przejdź do treści
online
plv0.46.1 · 1d135e2
Aktywny

Karuselle

Wielojęzyczny marketplace z wyselekcjonowaną markową modą z drugiej ręki: wyszukiwanie semantyczne, elastyczne prowizje sprzedawców, raportowanie podatkowe w UE i nowe metody płatności w rosnącym kodzie Laravel.

Strona główna Karuselle: sprzedawca wyselekcjonowanej mody markowej z drugiej ręki, ze zdjęciem srebrnej torebki na całą szerokość, przyciskiem „Sell with us”, menu według marek i kategorii, wyszukiwarką i przełącznikiem języka

Zadanie

Wielojęzyczny marketplace modowy z wieloma sprzedawcami i kilkoma zewnętrznymi kanałami sprzedaży musiał dalej rosnąć na starzejącym się kodzie: mądrzejsze wyszukiwanie, uczciwe i elastyczne prowizje, raportowanie podatkowe w UE, więcej metod płatności — i sklep, który pozostanie szybki i bezpieczny.

Rozwiązanie

Trzy lata jako jedyny programista:

  • Aktualizacja frameworka: Laravel 5.8 → 6 → 7 → 8 → 9 → 10 → 11 ze wszystkimi pakietami oraz PHP 7.4 → 8.x w dwa tygodnie, do tego przeprowadzka na nowy serwer.
  • Wyszukiwanie semantyczne w czterech językach: własna usługa embeddingów i wektorowa baza danych, przyrostowa synchronizacja indeksu przez kolejki, powrót do zwykłego wyszukiwania z circuit breakerem, przełącznik w panelu bez wdrożenia, deterministyczny filtr koloru/kategorii/materiału, synonimy i komendy diagnostyczne.
  • Katalog i witryna sklepu: filtry AJAX na żywo w szufladach z licznikami, przeliczanie rozmiarów na EU i typy rozmiarów według kraju, filtry rabatów i sprzedawców, przyjazne dla SEO adresy URL, pełny redesign kart, nagłówka, stopki i mega-menu, banery i slidery na stronie głównej zarządzane przeciąganiem.
  • Propozycja ceny: klient proponuje cenę, administrator odpowiada kontrofertą e-mailem nawet gościom, limity na osobę, termin ważności i ochrona przed podwójnym kliknięciem.
  • Checkout i płatności: opłata Buyer Protection w koszyku, checkoucie, e-mailach i fakturach VAT; kupony, wysyłka zależna od kraju; Stripe z 3D Secure, Apple Pay i Google Pay, PayPal REST, Paysera z weryfikacją kwoty.
  • Sprzedawcy i pieniądze: kanały sprzedaży z własnymi prowizjami i fakturami, osobna faktura dla każdego sprzedawcy w jednym zamówieniu, terminy wypłat dla sprzedawców, unijny raport podatkowy DAC7 w XML, numery faktur nadawane pod blokadą w bazie danych oraz moduł Commission Rules z jednym resolverem, stawkami dla kanałów, regułami według wieku ogłoszenia, podglądem, sortowaniem przeciąganiem i dziennikiem zmian.
  • Feedy i marketing: Google Merchant, Facebook, marketplace’y partnerskie w CSV, synchronizacja e-commerce z Mailchimp, consent mode v2.
  • SEO i GEO: dane strukturalne dla produktów, okruszków i FAQ, canonical i hreflang tylko dla istniejących tłumaczeń, noindex dla faset, reguły robots dla crawlerów AI i llms.txt, codzienna mapa strony i komenda do kontroli SEO.
  • Języki: LT, EN, PL i RU z tłumaczeniem przy zapisie i cotygodniowymi komendami synchronizacji.
  • Panel i utrzymanie: panele kolejek i zadań z heartbeatem workerów, eksporty w tle, odzyskiwanie sesji z zachowaniem wpisanego tekstu, sprzątanie porzuconych szkiców produktów.
  • Bezpieczeństwo: przegląd bezpieczeństwa zamknął luki w kontroli dostępu i dostępie do plików, dodał ograniczanie prób logowania na konto i na IP, wylogowywanie sesji po zmianie hasła i ograniczenie typów przesyłanych plików.
  • Testy: zestaw testów od zera do 239 testów, z zabezpieczeniem przed uruchomieniem ich na produkcji.

Rezultat

  • Obliczanie prowizji dla 50 produktów: ze 101 zapytań do bazy danych do 2.
  • Lista ofert: 169 → 121 zapytań na stronę; produkt z 35 ofertami: 92 → 64.
  • Miniatury produktów: 136 KB → 20 KB każda (60 na stronę kategorii); zdjęcia jednego produktu 2,5 MB → 0,5 MB.
  • Zarobki sprzedawców w historii sprzedaży pokazują teraz to, co faktycznie naliczono — znaleziono i naprawiono błąd, który dotyczył większości historycznych wierszy.
  • Wyszukiwanie semantyczne obejmuje na produkcji około 9000 produktów.

Zrzuty ekranu