Własny kod w Shopify czy dostosowanie motywu: jak wybrać

Własny kod w Shopify czy dostosowanie motywu: jak wybrać

Ostatnio zweryfikowano: 23 października 2026
14 min czytania
Przewodnik

Większość zleceń dotyczących Shopify zaczyna się od pytania "czy możesz po prostu zmienić motyw?". Czasem odpowiedź to dziesięć minut w edytorze motywów. Czasem zmiana dotyczy kasy albo logiki cen, czyli miejsc, do których kod motywu w ogóle nie sięga. Wtedy prawdziwy wybór jest między aplikacją z App Store, aplikacją własną z Shopify Functions, zmianą planu albo pogodzeniem się z tym, że Shopify na to nie pozwala. Wybór złej warstwy kończy się tak, że sklep płaci za obejście w motywie, które psuje się przy następnej aktualizacji, albo za aplikację własną, która działa tylko na planie, którego sklep nie ma.

Ten poradnik porządkuje zlecenia według warstwy, która naprawdę może je zrealizować. Każdy limit planu, data i liczba poniżej pochodzą z shopify.dev albo z Centrum pomocy Shopify i zostały sprawdzone 23 października 2026.

#Co można zmienić w motywie Shopify bez programowania

Motywy Online Store 2.0 są zbudowane z szablonów JSON. Dokumentacja szablonów JSON opisuje je jako pliki danych, które przechowują listę sekcji i ich ustawienia, i podaje, że sprzedawcy “mogą dodawać, usuwać i zmieniać kolejność tych sekcji w edytorze motywów” (tłumaczenie własne). Szablon może wyświetlić do 25 sekcji, a każda sekcja może mieć do 50 bloków.

Spora część “dostosowania” to więc konfiguracja: przeniesienie bloku z opiniami wyżej, dodanie sekcji z tabelą rozmiarów do jednego szablonu produktu, złożenie strony docelowej z istniejących sekcji, zmiana kolorów i fontów w ustawieniach motywu. Jeśli twój motyw ma potrzebną sekcję, nikt nie musi pisać kodu. Wątek na r/shopify, w którym 23 października 2026 padło dokładnie to pytanie, ujął to w jednym zdaniu:

Sporo zleceń na “customowe” rzeczy okazuje się metapolem plus sekcją.

(u/Born_Programmer_1089, r/shopify, 23 października 2026, tłumaczenie własne)

Kolejny poziom to edycja Liquid, CSS i JavaScriptu w samym motywie. Tak powstaje nowy typ sekcji, własny szablon produktu, metapole wyświetlane na karcie produktu czy inny układ filtrów kolekcji. Strona pomocy o edycji kodu motywu mówi bez ogródek, ile to kosztuje: kod warto edytować tylko wtedy, “gdy nie da się wprowadzić potrzebnych zmian” w edytorze, a jeśli zmiany nie są zgodne z aktualizacją motywu, “wszystkie zmiany w kodzie zostaną usunięte w zaktualizowanej kopii” (tłumaczenie własne). Najpierw zduplikuj motyw i prowadź listę zmienionych plików, żeby następna aktualizacja była zwykłym scaleniem zmian, a nie wykopaliskami.

Równie ważne jest to, czego kod motywu nie zrobi. Odpowiada za wygląd sklepu. Nie działa podczas finalizacji zamówienia, nie zmienia sposobu naliczania rabatów i nie zablokuje złożenia zamówienia.

#Aplikacja Shopify czy rozszerzenie motywu: kiedy są potrzebne

Opinie, zestawy produktów, doradcy rozmiaru, widżety programów lojalnościowych i podglądy 3D zwykle pochodzą z aplikacji. Nowoczesne aplikacje umieszczają to, co wyświetlają w sklepie, w rozszerzeniu motywu (theme app extension): to bloki Liquid, które sprzedawca wstawia w edytorze motywów. Shopify wprost wymienia korzyść: sprzedawcy “nie będą musieli ręcznie edytować kodu motywu”, a aplikacje “nie edytują kodu motywu, co zmniejsza ryzyko wprowadzenia zmian psujących motyw” (tłumaczenie własne). Rozszerzenia motywu współpracują z motywami Online Store 2.0, więc sklep na starszym motywie (vintage) traci tę czystą ścieżkę.

Dla właściciela sklepu wynikają z tego dwie zasady:

  • Jeśli aplikacja z App Store robi to, czego potrzebujesz, i instaluje się przez bloki aplikacji, zwykle wychodzi taniej i bezpieczniej niż własny kod w motywie, bo utrzymuje ją dostawca aplikacji i przetrwa aktualizacje motywu.
  • Jeśli programista proponuje ręczne wklejenie fragmentu kodu aplikacji do theme.liquid, zapytaj, dlaczego aplikacja nie ma bloku. Ręcznie wklejone fragmenty zostają zwykle w motywie także po odinstalowaniu aplikacji.

Aplikacja własna ma sens, gdy logika jest specyficzna dla twojej firmy (synchronizacja z ERP, reguła cenowa, której nikt nie sprzedaje, etap akceptacji zamówień B2B) albo gdy każda z aplikacji w App Store pokrywa połowę wymagań i gryzie się z pozostałymi.

#Shopify Functions: co robią i jaki plan jest potrzebny

Shopify Functions pozwalają programistom “dostosować logikę zaplecza Shopify, uruchamiając własny kod podczas finalizacji zamówienia” (tłumaczenie własne). To warstwa dla wszystkiego, co zmienia kwoty, dostawę albo decyduje, czy zamówienie może przejść dalej. Obecne API Functions:

  • Discount: jedna funkcja może naliczać rabaty na produkty, zamówienie i wysyłkę
  • Payment Customization: zmiana nazwy, kolejności albo ukrywanie metod płatności, ustawianie terminów płatności
  • Delivery Customization: zmiana nazwy, sortowanie albo ukrywanie opcji dostawy
  • Cart and Checkout Validation: blokowanie zamówienia z własnym komunikatem błędu
  • Cart Transform: rozwijanie, łączenie albo aktualizowanie pozycji koszyka, na potrzeby zestawów
  • Fulfillment Constraints i Order Routing
  • Pickup Point i Local Pickup Delivery Option Generators

Funkcje kompilują się do WebAssembly, działają na serwerach Shopify i podlegają ścisłym limitom liczby instrukcji oraz rozmiaru danych wejściowych i wyjściowych. Właściciele sklepów najczęściej przeoczają regułę dotyczącą planu. Dokumentacja Shopify mówi, że “sklepy na każdym planie mogą korzystać z publicznych aplikacji dystrybuowanych przez Shopify App Store, które zawierają funkcje”, ale “tylko sklepy na planie Shopify Plus mogą korzystać z aplikacji własnych zawierających API Shopify Functions” (tłumaczenie własne).

W praktyce: reguła ukrywająca metodę płatności z aplikacji z App Store działa na planie Basic. Ta sama reguła napisana jako aplikacja własna tylko dla twojego sklepu wymaga planu Plus. Zanim zamówisz własną funkcję, sprawdź swój plan albo to, czy jakaś publiczna aplikacja już tego nie oferuje.

Są też limity na sklep. Shopify pozwala na maksymalnie 25 aktywnych funkcji w każdej z grup: rabaty, dostosowania płatności, dostosowania dostawy i walidacje. Sklepy z wieloma aplikacjami robiącymi podobne rzeczy mogą dobić do tego sufitu.

Shopify Scripts, starsze narzędzie Script Editor do logiki rabatów i wysyłki, to zamknięty rozdział. Strona pomocy Script Editor podaje, że od 30 czerwca 2026 Shopify Scripts “zostało wycofane”, opublikowane skrypty “zostały dezaktywowane i już nie działają” (tłumaczenie własne), a następcą jest Shopify Functions. Jeśli twoje progi cenowe po cichu przestały działać tego lata, to właśnie z tego powodu.

#Ceny hurtowe w Shopify bez aplikacji

Sprzedaż hurtowa najlepiej pokazuje, dlaczego przed pisaniem czegokolwiek warto sprawdzić wbudowane funkcje Shopify. 22 października 2026 właściciel sklepu zapytał na r/shopify właśnie o to:

próbuję się zorientować, jakie rozwiązania stosowaliście tutaj, żeby dać hurtownikom niższą cenę niż klientom detalicznym. myślałem, że mógłbym stworzyć kod rabatowy, którego klient użyłby, żeby dostać stały rabat procentowy.

(u/GreenGloober, r/shopify, 22 października 2026, tłumaczenie własne)

Odpowiedzi objęły dwie z opisanych wyżej warstw. Jeden programista opisał drogę przez motyw: kod rabatowy ograniczony do segmentu klientów na etapie kasy plus sprawdzenie w Liquid na karcie produktu.

Otaguj klientów hurtowych (np. “wholesale”), zbuduj z tego tagu segment klientów i utwórz procentowy kod rabatowy ograniczony do tego segmentu, żeby nie wyciekł do klientów detalicznych. […] To naprawiasz w motywie: małe sprawdzenie w Liquid na customer.tags, które zalogowanym klientom hurtowym pokazuje cenę hurtową obok albo zamiast detalicznej. To tylko wyświetlanie, więc prawdziwą robotę w kasie i tak robi rabat.

(u/vladeta, r/shopify, 23 października 2026, tłumaczenie własne)

To działa przy stałym procencie, a najważniejsze jest ostrzeżenie “tylko wyświetlanie” (tłumaczenie własne): motyw pokazuje liczbę, rabat decyduje o kwocie do zapłaty, i te dwie wartości mogą się rozjechać. Ten sam komentarz nazwał potem natywne cenniki B2B funkcją planu Plus. Inna odpowiedź wskazała drogę wbudowaną:

dodaj hurtowników jako firmy, zrób katalog z twoim hurtowym rabatem procentowym i jak się zalogują, widzą swoją cenę na każdym produkcie. bez plusa masz limit 3 katalogów, ale to aż nadto, jeśli masz tylko jeden poziom hurtowy

(u/HoneyedVices, r/shopify, 23 października 2026, tłumaczenie własne)

Dokumentacja Shopify przyznaje rację drugiej odpowiedzi. Shopify B2B “jest dostępne w planach Basic, Grow, Advanced i Shopify Plus” (tłumaczenie własne), nie tylko w Plus. Klientów hurtowych zakładasz jako firmy i przypisujesz im katalogi z ich własnymi cenami.

Porównanie planów B2B pokazuje, czym plany się różnią:

Funkcja B2BBasic, Grow, AdvancedPlus
Aktywne katalogi B2BDo 3, przypisywane przez rynki B2BBez limitu
Katalog przypisany bezpośrednio do firmy lub lokalizacjiNieTak
Reguły ilościowe (minimum, maksimum, krok)TakTak
Progi cenowe zależne od ilościTakTak
Odroczone terminy płatnościTakTak
Wymagana przedpłata (depozyt)NieTak

Hurtownik z jednym cennikiem dla odbiorców i progami ilościowymi może więc na planie Basic nie potrzebować ani aplikacji, ani własnego kodu. Firma z osobną umową cenową dla każdego klienta potrzebuje bezpośredniego przypisania katalogów, czyli planu Plus, aplikacji cenowej albo własnej funkcji rabatowej w publicznej aplikacji. Nadpisywanie cen w koszyku ma osobną barierę: API Cart Transform podaje, że z aplikacji z operacjami lineUpdate mogą korzystać tylko sklepy deweloperskie albo sklepy na planie Plus.

Właściciele sklepów na WooCommerce, którzy porównują platformy, znają ten kompromis z drugiej strony: tam ceny dla konkretnego klienta to wtyczka albo własny kod PHP na dowolnym hostingu, bez progów planów, ale utrzymujesz to sam. Całą tę decyzję omawia nasze porównanie Shopify Plus i headless WooCommerce.

#Czym zastąpiono checkout.liquid w Shopify

Kiedyś kasa była miejscem, gdzie sklepy na planie Plus swobodnie edytowały Liquid. To się skończyło etapami, a Shopify podaje dokładne daty:

  • 13 sierpnia 2024: zmiany w checkout.liquid przestały działać na stronach Information, Shipping i Payment. Changelog Shopify zapowiadał, że sklepy, które nie zdążą przed terminem, zostaną “automatycznie przełączone na niedostosowaną, standardową kasę Shopify” (tłumaczenie własne).
  • 28 sierpnia 2025: według dokumentacji checkout.liquid wygaszono go na stronach Thank you i Order status, a sklepom Plus wyłączono tam tagi script. Tego samego dnia pole dodatkowych skryptów stało się tylko do odczytu.
  • 26 sierpnia 2026: termin, do którego sklepy spoza planu Plus musiały zaktualizować strony Thank you i Order status. Strona pomocy Shopify podaje, że aktualizacja zastępuje te strony i wszystkie istniejące na nich dostosowania.

W ich miejsce weszły węższe narzędzia. Rozszerzenia UI kasy (checkout UI extensions) dodają bloki zbudowane z komponentów Shopify, działające w izolowanej piaskownicy bez dostępu do “samej strony kasy (HTML ani innych zasobów)” (tłumaczenie własne). Śledzeniem zajmują się piksele (web pixels). Za wygląd odpowiadają ustawienia brandingu i Checkout Branding API. Logikę obsługują Functions.

Granica planów przebiega przez środek kasy. Strona o dostosowaniu kasy podaje, że “zaawansowane funkcje dostosowania kasy są dostępne tylko w planie Shopify Plus” (tłumaczenie własne), i wymienia jako funkcje Plus aplikacje zmieniające strony Information, Shipping i Payment oraz Checkout Branding API. Standardowe dostosowania są dostępne od planu Basic wzwyż.

#Które funkcje Shopify są tylko w planie Plus

Na podstawie cytowanych wyżej stron to elementy dostępne tylko w Plus, które najczęściej przesądzają o projekcie:

  • Aplikacje własne zawierające Shopify Functions (publiczne aplikacje z App Store z funkcjami działają na każdym planie)
  • Rozszerzenia UI kasy na krokach Information, Shipping i Payment
  • Checkout Branding API
  • Operacje lineUpdate w Cart Transform, służące do nadpisania ceny, nazwy albo zdjęcia pozycji koszyka
  • Terminy płatności ustawiane przez funkcję dostosowania płatności oraz ukrywanie konkretnych miejsc wyświetlania płatności
  • Katalogi B2B bez limitu, bezpośrednie przypisanie katalogu do firmy, wymagana przedpłata

To, czego nie ma na liście, i tak może mieć jakiś niuans zależny od planu. Shopify zmienia te strony, więc sprawdzaj samą stronę w dniu wyceny zakresu, a nie wpis na blogu sprzed roku, łącznie z tym.

#Czy Shopify w ogóle pozwala na taką zmianę

Pierwsza odpowiedź w tym samym wątku dodała krok, który większość list decyzyjnych pomija:

Najpierw sprawdź, czy Shopify w ogóle pozwala na zmianę, którą chcesz wprowadzić. Na przykład zmiana wyglądu strony produktu to coś zupełnie innego niż wymuszenie reguły zakupowej w kasie. Do pierwszego może wystarczyć edycja motywu, a drugie może wymagać Shopify Functions albo zgodnej aplikacji.

(u/kunalkhatri12, r/shopify, 23 października 2026, tłumaczenie własne)

Niektóre zlecenia rozbijają się o zasady platformy, zanim w ogóle dojdzie do rozmowy o budżecie. Shopify dokumentuje kilka z nich:

  • Żadnego dowolnego kodu w kasie. Rozszerzenia UI kasy “są ograniczone do konkretnych komponentów UI i API udostępnionych przez platformę” (tłumaczenie własne) i działają w Web Workerze bez dostępu do DOM. Projektu, który wymaga wstrzyknięcia własnego skryptu w krok płatności, nie da się zbudować.
  • Sortowanie dostaw ma dolną granicę. API Delivery Customization podaje, że “najtańsza opcja wysyłki zawsze musi być pierwszą zaznaczoną opcją” (tłumaczenie własne).
  • Ukrywanie dostawy na skrytki pocztowe działa tylko częściowo. Według tej samej dokumentacji funkcja może ukryć opcję wysyłki na skrytkę (PO Box) wyłącznie wtedy, gdy opcję dostarcza usługa przewoźnika albo zewnętrzna aplikacja wysyłkowa. Stawek wysyłki wpisanych ręcznie w ustawieniach sklepu ta reguła nie obejmie.
  • Funkcja nie może zachowywać się losowo. Dokumentacja Shopify Functions mówi wprost, że Shopify nie dopuszcza w funkcjach niedeterminizmu, a do debugowania nie da się pisać na STDOUT ani STDERR. Losowanie typu “co dziesiąty klient dostaje rabat” odpada, a dane potrzebne regule, na przykład próg z metapola, trzeba podać funkcji na wejściu.
  • Subskrypcje blokują część logiki. Cart Transform odrzuca operacje expand, merge i update, gdy w koszyku jest plan sprzedaży (selling plan), a dostosowanie płatności nie może ustawić terminów płatności, gdy koszyk zawiera produkty w subskrypcji.
  • Połączenia sieciowe z funkcji są ograniczone. W funkcjach rabatowych zapytania fetch mogą wysyłać tylko aplikacje własne w sklepach Plus i Enterprise, a w funkcjach walidacji tylko aplikacje własne w sklepach Enterprise.

Dziesięć minut czytania odpowiedniej strony na shopify.dev przed wyceną chroni przed dobrze znanym scenariuszem: funkcja jest opisana, zaprojektowana i w połowie zbudowana, a potem trafia do kosza, bo platforma nigdy na nią nie pozwalała. Gdy Shopify mówi “nie”, uczciwe opcje to inny przebieg zakupu, zewnętrzny krok przed kasą albo platforma, na której kod kasy należy do ciebie. Posiadanie własnego kodu ma cenę, którą programiści zwykle zaniżają. W wątku z 18 października doświadczony programista pytał, czy budować sklepy klientów na Shopify, czy na własnym hostingu, bo na Shopify “czuje się, jakby pracował w pudełku” (tłumaczenie własne). Jedna z odpowiedzi przyszła od kogoś, kto prowadził wiele wdrożeń na zamówienie:

W swojej karierze nadzorowałem mnóstwo wdrożeń headless i na zamówienie. Bardzo niewiele z nich powinno było tak powstać, a w 2026 dotyczy to tym bardziej. To wyjątkowe wymagania uzasadniają złożoność.

(u/pjmg2020, r/shopify, 19 października 2026, tłumaczenie własne)

Jeśli twoje wymaganie naprawdę jest wyjątkowe, na przykład logika kasy, na którą Shopify nie pozwala, nasz przewodnik po migracji z Shopify do WooCommerce opisuje, z czym wiąże się przeprowadzka.

#Motyw, aplikacja, Functions czy Plus: tabela decyzyjna

Czego potrzebujeszWarstwa, która to zapewniaWymagany plan
Przestawienie sekcji, nowa strona docelowa z istniejących sekcjiEdytor motywówDowolny
Nowy typ sekcji, wyświetlanie metapól, własny szablon produktuKod motywu (Liquid)Dowolny
Opinie, widżet zestawów, wyświetlanie programu lojalnościowegoAplikacja z rozszerzeniem motywuDowolny
Ukrycie albo zmiana nazwy metody płatności lub dostawyPubliczna aplikacja z funkcją albo aplikacja własnaDowolny dla aplikacji publicznej; Plus dla aplikacji własnej
Blokada zamówienia według reguły (minimalna ilość, ograniczenie adresu)Funkcja walidacjiDowolny dla aplikacji publicznej; Plus dla aplikacji własnej
Progi rabatowe albo rabaty dla konkretnych klientówFunkcja rabatowaDowolny dla aplikacji publicznej; Plus dla aplikacji własnej
Jeden cennik hurtowy z progami ilościowymiShopify B2B, wbudowaneBasic lub wyższy
Osobne ceny dla każdego klienta hurtowegoB2B z bezpośrednim przypisaniem kataloguPlus
Własny blok na kroku Information, Shipping lub PaymentRozszerzenie UI kasyPlus
Własny blok na stronie Thank you lub Order statusRozszerzenie UI kasySprawdź aktualną stronę dla swojego planu
Skrypt wstrzyknięty w HTML kasyNiemożliwe na ShopifyŻaden

#Jak zlecić pracę programiście Shopify

Opisz zlecenie jako efekt: “klienci hurtowi z Niemiec widzą ceny netto i muszą zamawiać w kartonach po sześć sztuk” to brief, a “dodaj skrypt do koszyka” to zgadywanie rozwiązania. Podaj swój plan, zainstalowane aplikacje i informację, czy korzystasz z subskrypcji albo B2B. Jedna z odpowiedzi w wątku decyzyjnym dodała nawyk, który warto przejąć:

Zanim się zobowiążesz, zapisz dokładną regułę prostym językiem, z kilkoma przypadkami testowymi.

(u/Muted_Jellyfish_6784, r/shopify, 23 października 2026, tłumaczenie własne)

Poproś, żeby wycena oddzielała budowę od bieżącego utrzymania. Kod motywu, funkcje i rozszerzenia kasy wymagają kogoś, kto je zaktualizuje, gdy Shopify zmieni wersję API.

Jeśli wychodzi praca w motywie, programista Shopify zwykle oszacuje ją na podstawie listy szablonów. Jeśli praca dotyczy kasy, cen albo zakupów realizowanych przez agentów, zmienia też to, jak narzędzia zakupowe AI odczytują twój sklep i kupują w nim, a to sprawdza nasza usługa gotowości na handel z AI. Przewodnik po Universal Commerce Protocol wyjaśnia, jak agenci AI zmieniają sposób, w jaki ludzie kupują w internecie.

Następny krok

Przekuj artykuł w realne wdrożenie

Pod tym wpisem dokładam linki, które domykają intencję użytkownika i prowadzą dalej w strukturze serwisu.

Powiązany klaster

Sprawdź inne usługi WordPress i bazę wiedzy

Wzmocnij swój biznes dzięki profesjonalnemu wsparciu technicznemu w kluczowych obszarach ekosystemu WordPress.

Często zadawane pytania

Najważniejsze odpowiedzi, które pomagają wdrożyć temat w praktyce.

Czy ceny hurtowe w Shopify da się zrobić bez aplikacji#
Często tak. Shopify B2B działa w planach Basic, Grow, Advanced i Plus, a reguły ilościowe, progi cenowe zależne od ilości i odroczone terminy płatności są dostępne we wszystkich czterech. Niższe plany mają limit 3 aktywnych katalogów B2B przypisywanych przez rynki; katalogi bez limitu i bezpośrednie przypisanie do firmy wymagają planu Plus.
Czy do Shopify Functions potrzebny jest Shopify Plus#
Nie, jeśli funkcja przychodzi w publicznej aplikacji z Shopify App Store: według Shopify mogą z nich korzystać sklepy na każdym planie. Plus jest potrzebny, gdy funkcja siedzi w aplikacji własnej, zbudowanej tylko dla twojego sklepu.
Czy można jeszcze edytować checkout.liquid#
Nie. Dokumentacja Shopify podaje, że checkout.liquid nie jest obsługiwany na krokach Information, Shipping i Payment, a na stronach Thank you i Order status wygaszono go 28 sierpnia 2025. Zmiany w kasie wprowadza się teraz przez rozszerzenia UI kasy (checkout UI extensions), piksele, ustawienia brandingu i Functions.
Czy aktualizacja motywu usunie moje zmiany w kodzie#
Może. Strona pomocy Shopify ostrzega, że jeśli zmiany w kodzie nie są zgodne z aktualizacją motywu, w zaktualizowanej kopii zostaną usunięte. Pracuj na duplikacie motywu i prowadź listę wszystkich zmienionych plików.

Potrzebujesz FAQ dopasowanego do branży i rynku? Przygotujemy wersję pod Twoje cele biznesowe.

Porozmawiajmy

Polecane artykuły