Innowacyjny sklep z instrukcjami składania klocków brikido.pl

Brikido to platforma, która zamienia klocki leżące w domu w nowe modele. Użytkownik opisuje, jakie klocki ma, wybiera model i jego rozmiar, a po zakupie dostaje instrukcję budowy dopasowaną do swojej kolekcji. Byłem jedynym developerem projektu i odpowiadałem za całą warstwę sklepu: motyw, logikę kolekcji użytkownika, API do wymiany danych z silnikiem generującym instrukcje i przeglądarkę instrukcji.

Przygotowałem dedykowany motyw WooCommerce oparty na obiektowym PHP, z osobnym modelem danych dla zestawów, pojedynczych klocków i pudełek.

Użytkownik buduje swoją kolekcję na trzy sposoby, zależnie od tego, jak dokładnie ją zna. Może wskazać zestawy, które ma (bazę zasila katalog Rebrickable), oznaczyć pudełka z klockami jako przybliżoną ilość albo stworzyć własne „woreczki” i zapisać w nich każdy klocek osobno. Na tej podstawie system na bieżąco liczy całkowitą objętość kolekcji i liczbę małych elementów, które mają kluczowe znaczenie przy budowie.

Na stronie produktu klient wybiera rozmiar modelu i może obejrzeć go w interaktywnym podglądzie 3D zbudowanym na Three.js, z modelami w formacie glTF kompresowanymi Draco, żeby ładowały się szybko także na telefonie. Obok widzi tabelę porównującą to, czego model wymaga, z tym, co ma w swojej kolekcji. Od razu wie więc, czy wybrany rozmiar jest dla niego realny.

W momencie zakupu każda pozycja zamówienia dostaje unikalny identyfikator instrukcji, a do zamówienia dołączana jest migawka kolekcji użytkownika, przetłumaczona na identyfikatory zestawów i części z Rebrickable.

Silnik generujący instrukcje komunikuje się ze sklepem przez zaprojektowane przeze mnie REST API zabezpieczone tokenem. Pobiera z niego zamówienia, katalog klocków, zestawów i pudełek, a gotową instrukcję odsyła z powrotem. Sklep zapisuje ją przy zamówieniu i automatycznie zmienia jego status na zrealizowane.

Gotowe instrukcje czekają na klienta w jego koncie. Przegląda je krok po kroku w dedykowanej przeglądarce, z nawigacją między etapami i zmianą widoku modelu. Dla zespołu klienta przygotowałem import katalogu z plików CSV (zestawy, klocki i produkty, razem z automatycznym pobieraniem miniatur i łączeniem wersji językowych), stronę ustawień z generowaniem tokenu API oraz zestaw bloków Gutenberga do budowania stron. Całość działa w wersji polskiej i angielskiej dzięki Polylang.