SYLIUS NEXT.JS PWA SUBIEKT GT LOGISTYKA 3D D2C

Plantoris

Najtrudniejszy w tym sklepie nie był koszyk, tylko karton.

Ogrody Drama sprzedają rośliny od trzech pokoleń: uprawa od 1974 roku, centrum ogrodnicze i biuro projektowe pod Zbrosławicami od 1996, dziś 50 osób. Plantoris to ich wejście na rynek ogólnopolski. Zbudowaliśmy cały system od zera: Sylius jako silnik, Next.js jako warstwa frontu, Subiekt GT jako źródło prawdy o towarze i własny algorytm pakowania 3D, bez którego ten sklep nie policzyłby poprawnie ani jednej dostawy.

Plantoris — sklep internetowy Ogrodów Drama zbudowany na Sylius i Next.js
Plantoris — ogólnopolski sklep z roślinami, zbudowany od zera na Sylius i Next.js.
× Przed
  • Żywy towar łamie standardowy model sklepu. Roślina zmienia gabaryt w sezonie, jednych pozycji nie wolno układać w stos, innych nie wolno wysłać przy mrozie. Gotowe silniki e-commerce nie mają na to pola w bazie.
  • Koszt dostawy nie wynika z wagi. Dwumetrowe drzewko i worek podłoża o tej samej masie to dwie zupełnie inne przesyłki. Cennik ryczałtowy oznacza albo dopłacanie do zamówień, albo odstraszanie klienta.
  • Dwa magazyny, jedno zamówienie. Rośliny i akcesoria wychodzą z różnych lokalizacji, a klient widzi jeden koszyk i jedną kwotę.
  • Prawda o towarze siedzi w ERP. Stany, ceny i VAT żyją w Subiekcie GT i nikt nie będzie utrzymywał drugiej, równoległej bazy w sklepie.
  • Skala docelowa, nie startowa. Architektura musiała od pierwszego dnia znieść katalog rzędu 100 000 pozycji i kilkadziesiąt tysięcy zdjęć.
→ Nasze podejście
  • Backend first. Zaczęliśmy od integracji i logiki, a nie od wyglądu. Warstwa graficzna powstawała równolegle po stronie agencji klienta i weszła do prac dopiero wtedy, gdy silnik już liczył.
  • Dane logistyczne jako obywatel pierwszej kategorii. Waga, trzy wymiary, flaga „czy można stawiać na tym inne", typ opakowania, faza wzrostu i miesiąc dostępności to pola produktu, a nie zdanie w opisie.
  • Reguły zamiast wyjątków. Sezonowość, cut off wysyłki i wstrzymanie przy mrozie to konfiguracja w panelu, nie telefon do programisty w listopadzie.
  • Sylius, nie gotowy sklep pudełkowy. Przy tej liczbie reguł niestandardowych framework z otwartym modelem domenowym jest tańszy w rok niż walka z ograniczeniami zamkniętej platformy.

Czym to zbudowaliśmy.

Sylius (Symfony)
silnik e-commerce, model produktowy z atrybutami ogrodniczymi, strefy podatkowe, waluty, panel administracyjny z rozbudowanym ACL
Next.js (PWA)
warstwa prezentacji, kodowana na projektach graficznych dostarczonych przez agencję klienta
Subiekt GT
dwukierunkowa integracja: produkty, ceny, stany i VAT do sklepu, zamówienia i kontrahenci z powrotem do ERP
Cloudflare CDN + Images
dystrybucja i automatyczna konwersja zdjęć do WebP oraz AVIF
Apaczka
etykiety kurierskie i statusy przesyłek zaciągane do panelu klienta
Sentry
monitoring błędów po stronie backendu i frontu
Marketing automation
zdarzenia zakupowe, porzucone koszyki, segmenty klientów, integracja opinii
Feedy XML
Google Merchant, Ceneo, narzędzia monitoringu cen konkurencji

Trzy rzeczy, których nie zrobi żaden gotowy sklep.

Algorytm pakowania 3D (bin packing)

System nie szacuje kosztu wysyłki, tylko go wylicza. Przed finalizacją zamówienia symuluje fizyczne ułożenie towaru: bierze wymiary i wagę każdej pozycji, sprawdza flagę układania w stos (delikatne rośliny jej nie mają), dobiera najtańszą kombinację opakowań z dostępnej puli kartonów, skrzyń i palet, a dopiero z niej wylicza cennikową kwotę dla klienta. Opakowania mają własne wymiary, koszt logistyczny i stan magazynowy.

Dlaczego to ma znaczenie: przy asortymencie od saszetki nasion po dwumetrowe drzewko różnica między wyliczeniem a ryczałtem to realna marża na każdym zamówieniu.

Split shipment

Koszyk dzieli się automatycznie na podzamówienia według lokalizacji towaru, rośliny osobno, donice i akcesoria osobno, z poprawnym zsumowaniem kosztów dostawy. Klient widzi jedno zamówienie, magazyny widzą swoje listy, a ERP dostaje komplet danych.

Sezon, pogoda i cut off

Wysyłka żywego towaru nie jest funkcją ciągłą. Wdrożyliśmy konfigurowalny dzień i godzinę graniczną wysyłki, sezonową widoczność kategorii i produktów, reguły logistyczne definiowane per miesiąc oraz wstrzymanie wysyłki przy temperaturach około zera, uruchamiane z panelu przez operatora. Do tego bufory sprzedaży per produkt i osobny status „rozpoczęcie pakowania" widoczny wyłącznie dla pakowalni.

Pozostały zakres wdrożenia.

Katalog
produkt w wielu kategoriach jednocześnie, warianty z własną ceną i EAN, cross selling, atrybuty ogrodnicze (mrozoodporność, stanowisko, gleba), wizualne mega menu z kafelkami
Przedsprzedaż
preorder z własną datą realizacji, płatność z góry, blokada łączenia towaru dostępnego z niedostępnym
Cyfrowe paszporty roślin
kod QR na produkcie prowadzi do wirtualnej karty rośliny z instrukcją pielęgnacji i dodaje ją do panelu „Mój Ogród" bez szukania w sklepie
Plant Doctor
wirtualny ogrodnik, agent AI odpowiadający na pytania o dobór i pielęgnację
Program lojalnościowy
integracja z istniejącym systemem punktowym klienta: jedno logowanie, saldo i historia punktów, progi, pasek postępu, nagrody, portfel kuponów, oferty dla poziomu
Promocje
promocje czasowe procentowe i kwotowe, kupony jedno i wielokrotne, zakładka z okazjami, roślina tygodnia i miesiąca, pełna obsługa dyrektywy Omnibus z historią najniższej ceny z 30 dni
Panel i CMS
role i uprawnienia (administrator, pakowalnia, obsługa klienta), banery, blog poradnikowy, materiały do pobrania, strony informacyjne i formularz kontaktowy
Usługa projektowa
zamawianie projektu ogrodu online, ankieta i wycena, dokumentacja z listą roślin prowadzącą z powrotem do koszyka

Sześć miesięcy w modelu backend first, z twardymi rezultatami na koniec każdego etapu.

ETAP 1

Fundamenty

Warsztaty techniczne, mapowanie danych z ERP, środowiska Dev i Stage, CDN.

ETAP 2

Integracja ERP

Synchronizacja produktów, cen i stanów, atrybuty ogrodnicze w bazie, feedy XML.

ETAP 3

Logistyka

Split shipment, algorytm pakowania, marketing automation, statusy kurierskie.

ETAP 4

Logika UX i AI

Ścieżki użytkownika, konsultacje makiet z agencją klienta, wdrożenie wirtualnego ogrodnika.

ETAP 5

Frontend

Design review dostarczonych projektów, kodowanie widoków w Next.js, konfiguracja CMS.

ETAP 6

Stabilizacja

Testy obciążeniowe, testy akceptacyjne, szkolenie zespołu, migracja na produkcję.

Co się zmieniło.

Firma o zasięgu lokalnym sprzedaje w całej Polsce, tym samym asortymentem i tą samą wiedzą.
Koszt dostawy przestał być zgadywaniem. Każde zamówienie ma policzone opakowania, a nie ryczałt liczony od wagi.
ERP pozostał jedynym źródłem prawdy o towarze. Zespół pracuje w Subiekcie tak jak dotąd, sklep nadąża sam.
Sezon obsługuje panel, nie programista. Cut off, widoczność kategorii i wstrzymanie wysyłki przy mrozie są w rękach zespołu klienta.
Biuro projektowe zyskało kanał sprzedaży, bo projekt ogrodu kończy się listą roślin do kupienia w tym samym sklepie.
Architektura gotowa na katalog rzędu 100 000 pozycji, więc rozwój asortymentu nie oznacza przepisywania systemu.

Bez procentów. Sklep działa od niedawna, a zamiast efektownych liczb bez pokrycia pokazujemy, co realnie zmienił ten system.

Masz podobny problem?

Jeśli Twój koszyk musi rozumieć gabaryt, sezon i dwa magazyny naraz, gotowy sklep tego nie udźwignie. Pokażemy, jak policzyć to poprawnie.