Przejdź do treści
Mateusz Cieplak

Shopify · Moda

Love and Hate

Sklep na nowym motywie, przebudowane karty produktu, szybszy na telefonach

Love and Hate sprzedaje bieliznę szytą w Polsce. Przeniosłem sklep ze starego motywu Prestige 4 na Prestige 11 w Online Store 2.0, przebudowałem karty produktu, dodałem to, czego wymagają unijne przepisy o odstąpieniu od umowy, a potem zmierzyłem i usunąłem to, co spowalniało telefony.

Rola
Główny programista: 38 z 39 zmergowanych pull requestów
Okres
kwiecień - wrzesień 2026
Technologie
  • Shopify
  • Liquid
  • Prestige 11 (OS 2.0)
  • Metaobjects
  • Customer Privacy API
  • Judge.me
  • Python
Love and Hate: strona główna na ekranie komputera
Love and Hate na telefonie
PageSpeed mobile, średnio
57 → 71
czasu przeliczania stylów
−85%
waga strony kolekcji
700 → 502 KB
tekstów w pamięci tłumaczeń EN
3800+

Kontekst

Sklep działał na Prestige 4.14, starszym motywie bez bloków aplikacji. Redesign na nowej wersji stał od czerwca, a sklep nie miał niczego, czego wymaga unijna dyrektywa o odstąpieniu od umowy online: zwroty szły przez PDF do wydruku i maila.

Nowa wersja ruszyła 25 września 2026, po polsku i angielsku.

Co zrobiłem

  • Migracja na Prestige 11.1 w Online Store 2.0 i dokończenie redesignu na nowej wersji
  • Warianty kolorów jako osobne produkty grupowane przez metaobiekt, z licznikiem +N na kartach produktów
  • Przyklejony pasek dodawania do koszyka na telefonach, z wyborem rozmiaru w pasku
  • Biustonosze z obwodem i miseczką jako dwa pola obok siebie zamiast jednej długiej listy
  • Odstąpienie od umowy online według dyrektywy UE 2023/2673: link w stopce i przycisk na osobnej stronie otwierają formularz
  • Jeden przełącznik regionu, który ustawia kraj, walutę i język naraz
  • Wersja angielska przez proces CSV ze skryptami w Pythonie i pamięcią tłumaczeń ponad 3800 tekstów
  • Własny baner cookies na Customer Privacy API Shopify; Yandex i Clarity ładują się dopiero po zgodzie
  • Znalazłem przyczynę awarii integracji Baselinker-Fakturownia, która blokowała zamknięcie miesiąca (wygasły token), i uzupełniłem brakujące faktury

Trudne momenty i jak je rozwiązałem

  1. Problem

    Judge.me trzyma liczbę opinii w polach Shopify, ale nie ich treść, więc karty produktów pokazywały gwiazdki bez opinii.

    Rozwiązanie

    Liczby renderują się po stronie serwera z pól Shopify, a treści ładują się leniwie z endpointu widżetu Judge.me, gdy sekcja pojawia się na ekranie.

  2. Problem

    Trzy reguły :has() w motywie sprawiały, że przeglądarka przeliczała style ponad sekundę na stronach kolekcji i produktów.

    Rozwiązanie

    Zawęziłem selektory do body:has(...). Przeliczanie stylów spadło z 1369 do 205 ms na kolekcjach i z 1238 do 177 ms na kartach produktów.

  3. Problem

    Stary motyw nie miał bloków aplikacji, a natywne zwroty Shopify wymagają konta klienta, więc żadne z nich nie załatwiało odstąpienia online.

    Rozwiązanie

    Aplikacja do odstąpień wpięta w motyw: link w stopce i przycisk na stronie odstąpienia, bez zakładania konta.

Wyniki

  • PageSpeed mobile, średnia kluczowych stron: 57,0 → 71,2
  • Waga strony przed kompresją: kolekcja 700 → 502 KB, wyszukiwarka 1287 → 490 KB
  • Karty produktów na telefonach, dane z Shopify od prawdziwych użytkowników (75. percentyl, pierwszy dzień po wdrożeniu): 1,83 s → 1,14 s
  • Odstąpienie od umowy online zgodnie z dyrektywą UE 2023/2673

Ekrany

Przesuń palcem albo użyj przycisków, żeby przejrzeć ekrany.

  • Strona główna
    Komputer · Strona główna
  • Strona główna na telefonie
    Telefon · Strona główna na telefonie
  • Karta produktu z wariantami kolorów
    Komputer · Karta produktu z wariantami kolorów
  • Przyklejony pasek dodawania do koszyka na telefonie
    Telefon · Przyklejony pasek dodawania do koszyka na telefonie
  • Obwód i miseczka jako dwa pola
    Telefon · Obwód i miseczka jako dwa pola
  • Strona kolekcji
    Komputer · Strona kolekcji
  • Odstąpienie od umowy online według dyrektywy UE 2023/2673
    Komputer · Odstąpienie od umowy online według dyrektywy UE 2023/2673

Kontakt

Porozmawiajmy.

Szukasz frontend developera, który doprowadzi projekt aż do produkcji? Skorzystaj z formularza albo napisz bezpośrednio.

kontakt@mateuszcieplak.com

Dane służą wyłącznie do odpowiedzi. Formularz obsługuje Web3Forms.

Skontaktuj się