Ta strona korzysta z ciasteczek, aby zapewnić Ci najlepszą możliwą obsługę. Informacje o ciasteczkach są przechowywane w przeglądarce i wykonują funkcje takie jak rozpoznawanie Cię po powrocie na naszą stronę internetową i pomaganie naszemu zespołowi w zrozumieniu, które sekcje witryny są dla Ciebie najbardziej interesujące i przydatne.
Dekoparts
Wysoko obciążona platforma B2B e-commerce z wielomilionowym stanem unikalnych części samochodowych od różnych producentów, zaawansowanym programem lojalnościowym dla dostawców, potężnymi mechanizmami administracyjnymi do efektywnego zarządzania magazynem oraz infrastrukturą automatycznie skalowalną.
- Business Analysis
- DevOps services
- QA
- UI/UX design
- Web Development
![Dekoparts](https://spaceit.tech/wp-content/uploads/2023/12/Group-482670-1.png)
Opis projektu
W ciągu kilku miesięcy nasz zespół opracował, przetestował i uruchomił nowoczesny, wysoko obciążony produkt e-commerce, który umożliwia dealerom samochodowym, warsztatom naprawczym i innym firmom z branży motoryzacyjnej zamawianie dużych ilości części samochodowych i korzystanie z rabatów przy zakupach hurtowych dzięki kompleksowemu programowi lojalnościowemu z zaawansowanymi indywidualnymi zniżkami w zależności od marki, producenta, ilości, warunków dostawy, logistyki itp. Nowa platforma zastąpiła przestarzały system, który firma używała wcześniej. Platforma składa się z witryny e-commerce dla końcowego użytkownika, panelu administracyjnego do zarządzania klientami, zapytaniami, zamówieniami, magazynem, cennikami i grupami rabatowymi, rdzenia back-end zarządzającego logiką biznesową i komunikacją między interfejsami użytkownika a bazą danych, oraz infrastruktury chmurowej.
Branża: | Ecommerce, Automotive |
Platformy: | Web |
Role: | Software developer, IT consultant |
Stos technologii: | Vendure.io, Node.js, Nest.js, PostgreSQL, GraphQL, Elasticsearch, Angular.js, Vue.js, Postmarkapp, AWS (RDS, EC2, S3, ECS, ECR, VPC, ELB), Hetzner Cloud |
![](https://spaceit.tech/wp-content/uploads/2023/12/ЭКСПОРТ_-1920-x-720-27-1.png)
Przedstawienie problemu
Klient skontaktował się z nami w związku z istniejącą starą stroną internetową, która nadal działała jako sklep internetowy dużego dystrybutora, sprzedającego części samochodowe bezpośrednio partnerom biznesowym z fabryk Azji i Europy. Strona opierała się na własnym rozwiązaniu, obejmującym dwie duże bazy danych MS SQL oraz serwery MS i MEM. Strona przestała otrzymywać aktualizacje produktów z powodu utraty klucza licencyjnego spowodowanej awarią systemu, a przywrócenie dostępu było niemożliwe ze względu na to, że oprogramowanie było przestarzałe i nie miało wsparcia. Pierwszą prośbą było przynajmniej uratowanie istniejących danych: włamanie się do bazy danych, zdobycie zdalnego dostępu do jej repliki, aktualizacja repliki nowymi danymi oraz połączenie z istniejącym rozwiązaniem e-commerce w celu ocalenia biznesu przed przerwą w funkcjonowaniu. Plan "wszystko albo nic": jeśli nam się uda, będziemy mogli kontynuować aktualizacje. Udało nam się uratować obie bazy danych o wielkości 40GB i 10GB, zaktualizować je o nowe produkty i połączyć z istniejącą stroną internetową, aby utrzymać działalność biznesu. Niemniej jednak bazy danych były dość niestabilne, zawierały zduplikowane i uszkodzone rekordy, ale to była działająca solucja, a pierwszy krytyczny punkt został przezwyciężony. Bazy danych zawierały ponad 21 milionów pozycji, podczas gdy szacowana liczba według klienta miała wynosić od 1 do 2 milionów. Jednocześnie strona e-commerce była przestarzała, wolna i obsługiwana tylko w języku niemieckim. Kolejnym celem było szybkie opracowanie nowej strony e-commerce, dodanie niestandardowej funkcjonalności, rozwiązanie problemów z bazą danych oraz przygotowanie wystarczającej infrastruktury chmurowej do zastąpienia starego sklepu.
Główne cele
- Skonfigurowanie repliki bazy danych i przetwarzaj dane producentów, klientów i produktów, aby zapewnić bezpieczne przechowywanie danych niezależnie od istniejącego rozwiązania dziedzicznego
- Rozwijanie nowego silniku e-commerce zgodnie z potrzebami klienta, zdolnego do szybkiej zamiany istniejącego systemu własnościowego
- Zapewnienie wygodną i funkcjonalną stronę internetową e-commerce, z możliwością szybkiego wyszukiwania części samochodowych za pomocą unikalnych kodów części i dodawania produktów do koszyka w języku angielskim, niemieckim i koreańskim.
- Dostarczyć panel administracyjny do zarządzania platformą e-commerce w łatwy i szybki sposób, uwzględniając duży katalog i złożony system cen.
- Skonfigurowanie odpowiednią infrastrukturę chmurową zgodnie z potrzebami projektu.
![Wyzwania techniczne](https://spaceit.tech/wp-content/uploads/2023/12/Flat-iPad-2-1.png)
Wyzwania techniczne
Projekt stanowił ogromną nierozwiązywalną łamigłówkę, którą podzieliliśmy na mniejsze zadania, priorytetyzowaliśmy i stopniowo rozwiązywaliśmy. Wybraliśmy platformę Vendure.io, ponieważ to nowoczesna bezgłowa struktura do szybkiego tworzenia sklepów internetowych z możliwością rozwijania niestandardowego interfejsu użytkownika i rozszerzania istniejącej funkcjonalności przy użyciu Node.js i GQL. Następnie przearanżowaliśmy bazy danych: połączyliśmy je, przekształciliśmy format danych, wykluczyliśmy duplikaty i usunęliśmy uszkodzone dane, przenieśliśmy do Postgre. MVP zostało miękkie uruchomione, a stara wersja tymczasowo działała równolegle w celach beta-testowania. Kolejnym wyzwaniem było zbudowanie bogatszej funkcjonalności i zaktualizowanie bazy danych nowymi danymi – producenci, części, cenniki, schematy rabatowe. Nowa funkcjonalność obejmowała system rabatowy, obsługę wielojęzyczną, importowanie cen i automatyzację eksportu zamówień. Najtrudniejszym zadaniem było odtworzenie systemu rabatowego i rozwinięcie automatyzacji cennika. Te same części samochodowe są produkowane w różnych fabrykach i miejscach, mogą mieć w pełni zamienne odpowiedniki innych marek, a każdy producent oferuje kumulacyjne zakresy rabatów, które zależą od ilości zakupionych przedmiotów przez firmę na stałe. Zanim zaczęliśmy budować tę funkcjonalność, zebraliśmy wszystkie wymagania, aby mieć pewność, że wszyscy mówimy o tym samym. Jeśli chodzi o automatyzację importu, co 3 miesiące Klient otrzymuje pliki z aktualnymi produktami i nowymi cenami od dostawców. Pliki te zawierają miliony wierszy, i konieczne było sparsowanie ich przy użyciu wielowątkowości i kolejek, a następnie skuteczne zaktualizowanie katalogu produktów, obsługa błędów przetwarzania i skrócenie czasów aktualizacji. Po załadowaniu danych katalog produktów wzrósł do 10 milionów unikalnych części, co spowodowało poważny spadek wydajności. Przeprowadziliśmy sesje testów obciążeniowych, optymalizując logikę biznesową, strukturę bazy danych, indeksy, zapytania SQL, API, schematy GQL, interfejs użytkownika, skrypty, infrastrukturę. Po 3 tygodniach skrupulatnej pracy osiągnęliśmy pożądane rezultaty. Teraz nowa witryna całkowicie zastąpiła starszą wersję.
Podstawowa funkcjonalność
- Możliwość rejestracji jako istniejący partner lub dołączenia jako nowy partner
- Możliwość wyszukiwania części samochodowych za pomocą kodów fabrycznych przy użyciu paska wyszukiwania i dodawania ich do koszyka
- Możliwość zarządzania ilościami w koszyku i przeglądania wstępnej szacowanej ceny
- Możliwość wysyłania żądań zamówień do menedżera i uzyskiwania rabatów partnerskich oraz najlepszych propozycji
- Funkcjonalność zarządzania zamówieniami i użytkownikami przez administratora
- Możliwość importowania list cen i aktualizowania katalogu produktów, cen i rabatów przez administratora
![Podstawowa funkcjonalność](https://spaceit.tech/wp-content/uploads/2023/12/Group-482676-2-1.png)
Rozwiązanie
Opracowaliśmy nowoczesny sklep online typu B2B, który zastąpił istniejące rozwiązanie, eliminując wysokie prawdopodobieństwo awarii i długotrwałych przerw w działaniu. Nowe rozwiązanie zostało zbudowane przy użyciu nowoczesnej platformy e-commerce Vendure.io, technologii Node.js, Nest.js, PostgreSQL oraz GraphQL. Interfejsy użytkownika zostały stworzone przy użyciu Angular.js i Vue.js. Nowe rozwiązanie zostało wdrożone bez utraty danych – wszystkie poprawne i użyteczne dane zostały starannie zarchiwizowane, odfiltrowane i skopiowane na nową platformę. Ponadto odtworzyliśmy złożoną logikę rabatów z pierwotnej platformy, zautomatyzowaliśmy regularny import danych i opracowaliśmy niestandardowe narzędzia administracyjne zgodnie z życzeniem klienta, w tym eksport zamówień w wymaganych formatach. Ponieważ rozwiązanie operuje na dużym katalogu produktów, przeprowadziliśmy serię testów obciążeniowych, aby skonfigurować odpowiednią infrastrukturę z możliwością automatycznego skalowania.
Wynik
- Transformacja z systemu dziedzicznego na nową platformę technologiczną.
- Złożona migracja danych platformy i bazy danych klientów.
- Nowoczesna strona docelowa i zoptymalizowana witryna.
- Rozwiązanie przyjazne zarówno dla komputerów stacjonarnych, jak i urządzeń mobilnych.
- Wsparcie dla wielu języków.
- Kompleksowa implementacja zaawansowanego programu lojalnościowego.
- Lekki i szybki panel administracyjny.
- Niezawodna, automatycznie skalowalna infrastruktura zdolna do wytrzymywania dużych obciążeń wynikających z masowych aktualizacji produktów i intensywnego przetwarzania danych w tle przy zarządzaniu ogromnym stanem magazynowym.