/* sections.jsx — landing page section components */ const IMG = { hero: "https://images.unsplash.com/photo-1559827260-dc66d52bef19?auto=format&fit=crop&w=1600&q=80", heroAlt: "https://images.unsplash.com/photo-1548839140-29a749e1cf4d?auto=format&fit=crop&w=2000&q=80", breaker: "https://images.unsplash.com/photo-1437482078695-73f5ca6c96e2?auto=format&fit=crop&w=2200&q=80", why: "https://images.unsplash.com/photo-1616118132534-381148898bb4?auto=format&fit=crop&w=1400&q=80", cta: "https://images.unsplash.com/photo-1538300342682-cf57afb97285?auto=format&fit=crop&w=2200&q=80", }; // ─────────────────────────────────────────────────────────── NAV function Nav() { return ( ); } // ─────────────────────────────────────────────────────────── HERO (3 variants) function HeroSplit() { return (
System Kaucyjny · obowiązuje od 01.01.2026

Sprzedajecie wodę online.
Regulator właśnie przeprojektował wam koszyk.

Razem ze sklepem ID'EAU przeszliśmy przez wdrożenie polskiego Systemu Kaucyjnego w e-commerce — od mapowania SKU, przez faktury VAT i logistykę zwrotów, po stabilną konwersję. Robimy to teraz dla zespołów takich jak Wasz.

Porozmawiajmy o Waszym sklepie → Zobacz case ID'EAU
60 dniśredni czas wdrożenia od audytu do go-live
18 sklepówFMCG w portfolio Gorilla C&S
0,4%błędnych faktur po wdrożeniu w ID'EAU
Butelka wody
Case study · ID'EAU · 2026
); } function HeroFull() { return (
Powierzchnia wody
System Kaucyjny · obowiązuje od 01.01.2026

Każda nowa butelka to teraz trzy osobne pozycje w Waszym koszyku.

Polski System Kaucyjny zmienił mechanikę sprzedaży FMCG online. Studium sklepu ID'EAU pokazuje, jak przejść przez tę transformację bez utraty konwersji.

Porozmawiajmy → Zobacz wyniki ID'EAU
); } function HeroManifesto() { return (
System Kaucyjny · 01.01.2026

Woda jest prosta.
Sprzedawanie jej
w 2026 — nie jest.

Polski System Kaucyjny obowiązkowo objął nowo wyprodukowane partie napojów. To nie jest mała poprawka w katalogu — to nowa logika koszyka, faktury i obsługi zwrotów. Studium sklepu ID'EAU pokazuje, czego się spodziewać i jak to spiąć.

Porozmawiajmy → Wyniki ID'EAU
); } function Hero({ variant }) { if (variant === "full") return ; if (variant === "manifesto") return ; return ; } // ─────────────────────────────────────────────────────────── PROBLEM function Problem() { const facts = [ { n: "100%", tag: "Obligatoryjność", lbl: "Polski System Kaucyjny w pełni obowiązkowy dla nowo wyprodukowanych partii napojów od 01.01.2026" }, { n: "3", tag: "Nowe pola w koszyku", lbl: "Cena netto produktu, kaucja, znak SK — każdą pozycję trzeba rozliczyć osobno na fakturze" }, { n: "≈ 1,2k", tag: "Średnia liczba SKU", lbl: "Tyle indeksów w katalogu wody/napojów średniej sieci e-commerce trzeba ponownie zmapować" }, { n: "Q2 26", tag: "Pierwsze kontrole", lbl: "Wojewódzkie Inspektoraty Ochrony Środowiska zapowiadają sprawdzanie zgodności od wiosny" }, ]; return (
Co właściwie się stało

Regulacja, która wygląda jak drobna zmiana w cenniku — w rzeczywistości przebudowuje koszyk, fakturę i logistykę zwrotów.

{facts.map((f, i) => (
{f.n}
{f.tag}
{f.lbl}
))}
); } // ─────────────────────────────────────────────────────────── BREAKER function Breaker() { return (
Krople wody
„Pierwszego dnia po wejściu SK wskaźnik add‑to‑cart → checkout {" "}spadł o 34%. Nikt nie wiedział, dlaczego widzi trzy kwoty zamiast jednej." Head of E‑commerce · ID'EAU · styczeń 2026
); } // ─────────────────────────────────────────────────────────── CASE STUDY function Case() { const metrics = [ { label: "Konwersja koszyk → zakup (rolling 30d)", before: "−34%", after: "+1,8%", delta: "Powrót powyżej baseline'u", down: false, }, { label: "Średni czas dodania nowego SKU napoju do katalogu", before: "45 min", after: "6 min", delta: "−87% pracy ręcznej", down: false, }, { label: "Udział zamówień z błędnym rozliczeniem kaucji na fakturze", before: "18,2%", after: "0,4%", delta: "Compliance check ok", down: false, }, { label: "Średni czas obsługi zwrotu butelki (od scan → zwrot środków)", before: "11 dni", after: "3 dni", delta: "−73% lead time", down: false, }, { label: "Liczba ticketów BOK miesięcznie ws. \"czemu jest droższe\"", before: "1 240", after: "82", delta: "−93% wolumenu", down: false, }, { label: "NPS w 30 dni po pierwszym zwrocie butelki", before: "−12", after: "+41", delta: "Klienci czują, że to działa", down: false, }, ]; return (
Studium przypadku
ID'EAU

Polska marka wody premium. 1 374 SKU, sprzedaż w modelu D2C, własna platforma na Magento + zewnętrzny WMS. Wdrożenie Systemu Kaucyjnego od audytu do go‑live w 58 dni. Liczby — sprzed wdrożenia (pierwszy tydzień stycznia 2026) vs. 90 dni po stabilizacji.

{metrics.map((m, i) => (
{m.label}
{m.delta}
{m.before} {m.after}
))}
); } // ─────────────────────────────────────────────────────────── OFFER function Offer() { const cards = [ { no: "01", title: "Mechanika SK — w głąb regulacji", body: "Dokładnie wiemy, kiedy naliczać kaucję, na jakie opakowania, w jakim stosunku VAT, jak prezentować ją w koszyku, na fakturze i w paragonie. Ten know‑how trafia do Was jako konkretne reguły biznesowe, nie jako pdf.", list: ["Mapa SKU → opłata", "Reguły dla nowo produkowanych partii", "Zgodność z fakturą VAT i JPK"], }, { no: "02", title: "Wdrożenie w e‑commerce — koszyk, faktura, zwroty", body: "Pracujemy w Waszym stacku. Magento, Shopify Plus, BigCommerce, headless na własnym backendzie — wdrażamy moduły kaucji, przebudowujemy koszyk, generator faktur i flow zwrotów (kurier, paczkomat, punkt).", list: ["Moduły kaucji w koszyku", "Generator faktur z polem kaucji", "Flow zwrotów + integracje WMS"], }, { no: "03", title: "Opieka po wdrożeniu — 12 miesięcy", body: "Po go‑live zostajemy z Wami przez rok. Monitoring poprawności rozliczeń, reakcja na zmiany rozporządzeń, kwartalne audyty, support dla BOK i księgowości. Nie zostawiamy z modułami, których nikt nie rozumie.", list: ["Monitoring rozliczeń 24/7", "Aktualizacje na zmiany w prawie", "Dedykowany PM przez 12 mies."], }, ]; return (
Co dostajecie

Trzy warstwy, które razem układają Wam System Kaucyjny w działający sklep.

{cards.map((c, i) => (
{c.no}
{c.title}
{c.body}
    {c.list.map((l, j) =>
  • {l}
  • )}
))}
); } // ─────────────────────────────────────────────────────────── PROCESS function Process() { const steps = [ { no: "01", t: "Audyt katalogu + flow", b: "Mapujemy SKU, identyfikujemy luki w obecnym koszyku i fakturze. Wychodzicie z konkretną listą roboczą.", d: "7–10 dni" }, { no: "02", t: "Mapping SK → katalog", b: "Każdy indeks dostaje regułę naliczania kaucji, znak SK, status dla nowo produkowanych partii.", d: "10–14 dni" }, { no: "03", t: "Wdrożenie modułów", b: "Frontend koszyka, generator faktur, integracja z WMS i kurierem, flow zwrotów end‑to‑end.", d: "20–25 dni" }, { no: "04", t: "Testy compliance", b: "Sesja z prawnikiem środowiskowym i Waszą księgowością. Test JPK, faktur, zwrotów na środowisku stage.", d: "5–7 dni" }, { no: "05", t: "Go‑live + opieka", b: "Uruchomienie produkcyjne, monitoring 30 dni, potem dedykowany PM przez 12 miesięcy.", d: "Q+12 mies." }, ]; return (
Jak to robimy

Pięć etapów, średnio 58 dni do go‑live.

Pracujemy w sprintach z Waszym zespołem produktowym i księgowością. Nie zaskakujemy fakturą za „niespodziewany scope" — wszystko, co możemy oszacować, szacujemy w audycie.

{steps.map((s, i) => (
{s.no}
{s.t}
{s.b}
{s.d}
))}
); } // ─────────────────────────────────────────────────────────── WHY GORILLA function Why() { const items = [ { n:"01", t:"Wiemy, jak nie ubić konwersji", b:"E‑commerce to nasz natywny obszar. System Kaucyjny wdrażamy tak, żeby koszyk pozostał czytelny — w pełni jasna prezentacja kaucji, bez sześciu pól, których klient nie rozumie." }, { n:"02", t:"Prawnik środowiskowy w zespole", b:"Współpracujemy z mecenas specjalizującą się w prawie odpadowym. To jej interpretacje, nie nasze, idą do Waszej księgowości i compliance." }, { n:"03", t:"Jedna osoba kontaktowa — dedykowany PM", b:"Przez 12 miesięcy macie jednego PM‑a Gorilla C&S, który zna Wasz katalog, Wasze SKU i Waszą księgową po imieniu." }, ]; const creds = [ { v:"18", l:"sklepów FMCG w portfolio, w tym 4 z sektora napojów" }, { v:"58 dni", l:"średni czas wdrożenia od audytu do go-live" }, { v:"100%", l:"projektów zakończonych w deklarowanym budżecie i terminie" }, ]; return (
Dlaczego Gorilla Commerce & Solutions

Nie jesteśmy firmą prawniczą,
ani agencją interaktywną.
Jesteśmy obiema rzeczami naraz.

Butelki wody na linii produkcyjnej
Gorilla C&S · Zespół wdrożeniowy Warszawa · 2026
{items.map((x, i) => (
{x.n} {x.t}
{x.b}
))}
{creds.map((c, i) => (
{c.v} {c.l}
))}
); } // ─────────────────────────────────────────────────────────── FAQ function FAQ() { const items = [ { q: "Kogo dokładnie dotyczy System Kaucyjny od 2026?", a: "Każdego podmiotu wprowadzającego do obrotu napoje w opakowaniach jednorazowych z tworzyw sztucznych do 3L, butelkach szklanych wielokrotnego użytku do 1,5L oraz puszkach metalowych do 1L. W e-commerce dotyczy to wszystkich sklepów sprzedających te produkty — niezależnie czy jesteście producentem, dystrybutorem czy odsprzedawcą." }, { q: "Co znaczy „nowo wyprodukowane partie napojów\"?", a: "Chodzi o partie wyprodukowane po 01.01.2026 — to one mają obowiązkowy znak SK i podlegają opłacie kaucyjnej. Partie wyprodukowane wcześniej można sprzedawać do wyczerpania zapasów na starych zasadach, ale w jednym katalogu musicie umieć obsłużyć oba modele równolegle." }, { q: "Jak rozliczać kaucję na fakturze VAT?", a: "Kaucja nie wchodzi w podstawę opodatkowania VAT — pokazywana jest osobno, po cenie produktu i przed podsumowaniem. JPK_VAT wymaga osobnych pól. Nasz moduł generuje faktury zgodne z interpretacją MF z grudnia 2025 i automatycznie aktualizuje przy zmianach." }, { q: "Nie mam sklepu stacjonarnego — jak obsługiwać zwroty butelek?", a: "Dla e-commerce wystarczy umowa z operatorem systemu (np. ReturnPack / inny operator po nominacji) lub współpraca z siecią punktów zwrotnych. Wdrażamy oba modele: zwrot kurierski (klient zamawia odbiór), zwrot w paczkomacie z dedykowanym kodem, oraz integrację z punktami partnerskimi." }, { q: "Ile czasu trwa wdrożenie?", a: "Średnio 58 dni od podpisania umowy do go-live. Sklepy z prostym katalogiem (do 500 SKU) i standardowym stackiem (Shopify, Magento) — od 40 dni. Headless i mocno zindywidualizowane backendy — do 90 dni. W audycie precyzujemy harmonogram pod Wasz konkretny przypadek." }, { q: "Czy modyfikujecie kod naszego sklepu?", a: "Tak — z pełnym code review po stronie Waszego zespołu i wszystkimi commitami w Waszym repozytorium. Pracujemy w branchach, pull requesty przechodzą Wasz proces. Po zakończeniu projektu zostawiamy dokumentację techniczną na poziomie pozwalającym Waszym deweloperom samodzielnie utrzymywać kod." }, { q: "Co się stanie, jeśli wejdą zmiany w rozporządzeniu?", a: "W ramach 12-miesięcznej opieki śledzimy zmiany w Rozporządzeniu, interpretacjach MF i MKiŚ. Każda zmiana wpływająca na Wasze rozliczenia jest implementowana w module bez dodatkowych kosztów — to część usługi, nie change request." }, { q: "Jakie są pierwsze kroki, żeby z Wami pracować?", a: "30-minutowa rozmowa wstępna (bezpłatna), w której rozumiemy Waszą skalę, stack i timing. Następnie 2-3 tygodniowy płatny audyt — zostawia Was z konkretnym scopem, wyceną i harmonogramem. Jeśli po audycie zdecydujecie się nie wdrażać z nami — wszystkie ustalenia zostają u Was." }, ]; const [open, setOpen] = React.useState(0); return (
FAQ

Co managerowie e-commerce pytają nas najczęściej.

Jeśli Wasze pytanie nie znalazło się tu — pewnie i tak je usłyszeliśmy. Napiszcie, odpowiemy w 24h.

{items.map((it, i) => (
setOpen(open === i ? -1 : i)}>
{it.q}
{it.a}
))}
); } // ─────────────────────────────────────────────────────────── CTA const TURNSTILE_SITE_KEY = '0x4AAAAAADYZekDMxn8y3ISr'; function CTA() { const [form, setForm] = React.useState({ email: "", subject: "", message: "" }); const [sent, setSent] = React.useState(false); const [isSending, setIsSending] = React.useState(false); const [error, setError] = React.useState(""); const [turnstileToken, setTurnstileToken] = React.useState(''); const turnstileRef = React.useRef(null); const turnstileWidgetRef = React.useRef(null); React.useEffect(() => { const renderTurnstile = () => { if (!window.turnstile || !turnstileRef.current || turnstileWidgetRef.current !== null) { return; } turnstileWidgetRef.current = window.turnstile.render(turnstileRef.current, { sitekey: TURNSTILE_SITE_KEY, theme: 'dark', callback: token => setTurnstileToken(token), 'expired-callback': () => setTurnstileToken(''), 'error-callback': () => { setTurnstileToken(''); setError('Nie udalo sie zweryfikowac zabezpieczenia. Odswiez formularz i sprobuj ponownie.'); }, }); }; renderTurnstile(); const timer = window.setInterval(renderTurnstile, 300); return () => { window.clearInterval(timer); if (window.turnstile && turnstileWidgetRef.current !== null) { window.turnstile.remove(turnstileWidgetRef.current); turnstileWidgetRef.current = null; } }; }, []); const set = (k) => (e) => setForm({ ...form, [k]: e.target.value }); const onSubmit = async (e) => { e.preventDefault(); setError(""); if (!turnstileToken) { setError("Potwierdz, ze nie jestes robotem."); return; } setIsSending(true); try { const response = await fetch("/api/contact", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ ...form, turnstileToken }), }); const result = await response.json().catch(() => ({})); if (!response.ok) { throw new Error(result.error || "Nie udało się wysłać wiadomości."); } setTurnstileToken(''); if (window.turnstile && turnstileWidgetRef.current !== null) { window.turnstile.reset(turnstileWidgetRef.current); } setSent(true); } catch (err) { setError(err.message || "Nie udało się wysłać wiadomości. Napiszcie proszę na contact@softgorillas.com."); } finally { if (window.turnstile && turnstileWidgetRef.current !== null) { window.turnstile.reset(turnstileWidgetRef.current); setTurnstileToken(''); } setIsSending(false); } }; return (
Napiszcie do nas · odpowiadamy w 24h

Macie do końca kwartału, żeby przejść z chaosu w zgodność.

Zostawcie wiadomość — nie sprzedamy Wam audytu w pierwszym mailu. Sprawdzimy razem, czy jesteśmy właściwym partnerem dla Waszej skali i stacku, i odezwiemy się w 24h.

Pierwsze sloty audytu: czerwiec 2026 Pracujemy w PL · EN · DE NDA standardowo na pierwszej rozmowie
{sent ? (

Dziękujemy — wiadomość przyjęta.

Odezwiemy się na {form.email || "podany adres"} w ciągu 24 godzin roboczych.

) : (