WooCommerce od zera — konfiguracja sklepu, płatności i wysyłki krok po kroku

Jak skonfigurować WooCommerce od zera: produkty, płatności, wysyłka, podatki, REST API, HPOS i checklista przed startem sprzedaży.

Opublikowano

6 marca 2025 09:00

Czytanie

7 min czytania

Aktualizacja

15 kwietnia 2026 11:52

WooCommerce to najczęstsza odpowiedź WordPressa na e-commerce, stworzona specjalnie dla małych i średnich sklepów. Potrafi dowieźć naprawdę bardzo wiele, ale tylko wtedy, gdy konfiguracja płatności, wysyłki, podatków i całego checkoutu jest zrobiona od początku do końca dokładnie.

W tym artykule przeprowadzę Cię przez konfigurację sklepu od zera do działającego MVP.

Krótka odpowiedź: WooCommerce to popularna wtyczka WordPress, która zamienia każdą stronę w sklep internetowy. Kluczowe kroki konfiguracji to ustawienie waluty i podatków (VAT 23% dla Polski), dodanie stref oraz metod wysyłki, podłączenie bramki płatności (w Polsce Przelewy24 lub PayU), dodanie produktów odpowiedniego typu oraz weryfikacja wszystkich stron (koszyk, checkout, konto), przed startem sprzedaży koniecznie przetestuj cały proces zamówienia w trybie testowym.

Instalacja

WooCommerce to wtyczka WordPress, instalujesz standardowo:

Code
Panel WP → Wtyczki → Dodaj nową → Szukaj "WooCommerce" → Zainstaluj → Aktywuj

Po aktywacji uruchamia się kreator, który możesz pominąć — pokażę konfigurację manualną, która daje więcej kontroli nad całością.

Struktura WooCommerce

Po instalacji pojawią się:

Code
wp-content/
├── plugins/
│   └── woocommerce/           # Core wtyczki
└── uploads/
    └── woocommerce_uploads/   # Pliki do pobrania, logi

Oraz nowe strony:

StronaShortcodeFunkcja
Sklep(brak shortcode)Ustawiana w WooCommerce → Ustawienia → Zaawansowane
Koszyk[woocommerce_cart]Koszyk zakupowy
Zamówienie[woocommerce_checkout]Finalizacja
Moje konto[woocommerce_my_account]Panel klienta

Uwaga: Strona sklepu nie wymaga shortcode — WooCommerce obsługuje ją przez własne query. [products] to osobny shortcode do wyświetlania produktów na dowolnej podstronie (np. landing page). Od WooCommerce 8.3+ dostępne są też bloki natywne: Cart Block i Checkout Block, które zastępują shortcode w edytorze bloków i są domyślne na nowych instalacjach.

Podstawowe ustawienia

Wszystko w: WooCommerce → Ustawienia

Zakładka: Ogólne

Code
Adres sklepu:
├── Kraj: Polska
├── Województwo: (domyślne dla wysyłki)
└── Lokalizacje sprzedaży: Sprzedaż do wszystkich krajów
                           lub: Sprzedaż do wybranych krajów

Opcje walutowe:
├── Waluta: Polski złoty (zł)
├── Pozycja waluty: Prawo ze spacją (100 zł)
├── Separator tysięcy: (spacja)
└── Separator dziesiętny: ,

Zakładka: Produkty

Code
Strony sklepu:
├── Strona sklepu: Sklep (stworzona automatycznie)
└── Przekierowanie do koszyka: ❌ (lepszy UX bez przekierowania)

Wymiary:
├── Jednostka wagi: kg
└── Jednostka wymiarów: cm

Recenzje:
├── Włącz recenzje: ✓
├── Tylko zweryfikowani: ✓ (kupili produkt)
└── Oceny gwiazdkowe: ✓

Zakładka: Podatki

Dla Polski podatek VAT:

Code
Włącz podatki: ✓

Ceny z podatkiem:
├── "Tak, będę wprowadzać ceny z podatkiem"
└── Wyświetlaj ceny: "Z podatkiem"

Stawki standardowe:
| Kod kraju | Stawka | Nazwa  | Priorytet | Zastosowanie                      |
|-----------|--------|--------|-----------|-----------------------------------|
| PL        | 23     | VAT    | 1         | Standardowa                       |
| PL        | 8      | VAT 8% | 1         | Usługi budowlane, gastronomia     |
| PL        | 5      | VAT 5% | 1         | Żywność nieprzetworzona, książki, leki |

Zakładka: Wysyłka

Code
Strefy wysyłki:
├── Polska
│   ├── Kurier: 15 zł (stała stawka)
│   ├── Paczkomat: 12 zł
│   └── Darmowa wysyłka: powyżej 200 zł
└── Europa
    └── Kurier międzynarodowy: 50 zł

Zakładka: Płatności

Wbudowane metody:

MetodaProdukcja?Uwagi
Przelew bankowyZamówienia oczekujące
Płatność przy odbiorzePobranie
CzekiNieużywane w PL

Dla prawdziwych płatności online potrzebujesz wtyczki:

  • Przelewy24 — najpopularniejszy w PL,
  • PayU — BLIK, karty,
  • Stripe — międzynarodowo, karty,
  • PayPal — dla klientów zagranicznych.
Code
// Przykład: Po instalacji wtyczki Przelewy24
WooCommerce → Ustawienia → Płatności → Przelewy24
├── Włącz: ✓
├── ID sprzedawcy: XXXXX
├── CRC: YYYYY
└── Tryb testowy: ✓ (na start)

Produkty — typy i konfiguracja

WooCommerce obsługuje różne typy produktów:

Produkt prosty

Code
Tytuł: Koszulka Basic
Opis: Bawełniana koszulka...
Cena regularna: 79 zł
Cena promocyjna: 59 zł (opcjonalnie)

Dane produktu:
├── Ogólne: Ceny
├── Magazyn: SKU, stan magazynowy
├── Wysyłka: Waga, wymiary
├── Powiązane: Upsells, cross-sells
└── Zaawansowane: Notatka, kolejność menu

Produkt z wariantami

Code
Tytuł: Koszulka Basic
Atrybuty:
├── Rozmiar: S, M, L, XL (używane do wariantów: ✓)
└── Kolor: Czarny, Biały, Szary (używane do wariantów: ✓)

Warianty (generowane automatycznie):
├── S/Czarny: 79 zł, SKU: KB-S-BLK
├── S/Biały: 79 zł, SKU: KB-S-WHT
├── M/Czarny: 79 zł, SKU: KB-M-BLK
└── ...

Produkt wirtualny (cyfrowy)

Code
Tytuł: E-book "Frontend dla początkujących"
Wirtualny: ✓ (brak wysyłki)
Do pobrania: ✓

Pliki do pobrania:
├── Nazwa: E-book PDF
└── URL: /wp-content/uploads/woocommerce_uploads/ebook.pdf

Limit pobrań: 3
Wygaśnięcie: 30 dni

Produkt zewnętrzny/afiliacyjny

Code
Tytuł: Laptop XYZ
URL produktu: https://partner.pl/laptop-xyz
Tekst przycisku: "Kup na Partner.pl"
Cena: 3499 zł

Produkt grupowany

Zestaw kilku osobnych produktów wyświetlanych na jednej stronie, a klient dodaje je do koszyka indywidualnie.

Code
Tytuł: Zestaw kuchenny
Produkty w zestawie:
├── Nóż szefa kuchni (osobny produkt prosty)
├── Deska do krojenia (osobny produkt prosty)
└── Ostrzałka (osobny produkt prosty)

Każdy produkt w zestawie ma własną cenę i SKU — produkt grupowany sam w sobie nie ma ceny.

REST API WooCommerce

WooCommerce ma rozbudowane API, czyli Application Programming Interface, definiuje sposób komunikacji między aplikacjami lub modułami., które jest idealne do headless:

Włączenie API

Code
WooCommerce → Ustawienia → Zaawansowane → REST API → Dodaj klucz
├── Opis: Frontend App
├── Użytkownik: admin
└── Uprawnienia: Odczyt/Zapis

Otrzymujesz:

  • Consumer Key: ck_xxxxx
  • Consumer Secret: cs_xxxxx

Przykłady zapytań

Code
// lib/woocommerce.ts
const WOO_URL = 'https://twojsklep.pl/wp-json/wc/v3'
const CONSUMER_KEY = process.env.WC_CONSUMER_KEY
const CONSUMER_SECRET = process.env.WC_CONSUMER_SECRET
 
async function wooFetch(endpoint: string) {
  // btoa() dostępne globalnie od Node.js 16+
  // alternatywnie: Buffer.from(`${CONSUMER_KEY}:${CONSUMER_SECRET}`).toString('base64')
  const credentials = btoa(`${CONSUMER_KEY}:${CONSUMER_SECRET}`)
  const response = await fetch(`${WOO_URL}${endpoint}`, {
    headers: {
      Authorization: `Basic ${credentials}`,
    },
  })
  return response.json()
}
 
// Pobierz produkty
const products = await wooFetch('/products?per_page=10')
 
// Pobierz kategorie
const categories = await wooFetch('/products/categories')
 
// Pobierz zamówienia
const orders = await wooFetch('/orders?status=processing')

Popularne endpointy

EndpointMetodaOpis
/productsGETLista produktów
/products/{id}GETSzczegóły produktu
/ordersGET/POSTZamówienia
/customersGET/POSTKlienci
/couponsGET/POSTKupony
/shipping/zonesGETStrefy wysyłki

Jeśli budujesz headless storefront, pamiętaj o ważnym rozróżnieniu:

  • REST API to styl projektowania interfejsów oparty na zasobach, metodach HTTP i bezstanowej komunikacji. świetnie nadaje się do integracji administracyjnych, ERP, synchronizacji katalogu i operacji backendowych.
  • Store API lepiej pasuje do frontendu sklepu, koszyka i checkoutu w architekturze headless.

To detal, o którym łatwo zapomnieć na początku, a później kończy się przepisywaniem połowy integracji.

HPOS i kompatybilność wtyczek

Nowoczesne sklepy WooCommerce powinny brać pod uwagę High-Performance Order Storage (HPOS), czyli nowy model przechowywania zamówień w dedykowanych tabelach. Dla większych sklepów to ważny krok w stronę lepszej wydajności i przewidywalności.

Przed uruchomieniem HPOS sprawdź jednak:

  • czy bramka płatności go wspiera,
  • czy integracje księgowe i magazynowe są kompatybilne,
  • czy custom pluginy nie zakładają starego modelu danych w wp_posts i wp_postmeta.

Od WooCommerce 8.2+ HPOS jest domyślnie włączone na nowych instalacjach — nie musisz go ręcznie aktywować. W praktyce to jeden z najważniejszych punktów checklisty: jeśli masz starszy sklep lub niekompatybilną wtyczkę, możesz HPOS tymczasowo wyłączyć, ale na nowych instalacjach zostaw domyślne ustawienie.

Customizacja — hooks WooCommerce

WooCommerce rozszerza system hooks WordPressa:

Popularne akcje

Code
// Przed formularzem koszyka
add_action('woocommerce_before_cart', function() {
    echo '<div class="free-shipping-notice">';
    echo 'Darmowa wysyłka od 200 zł!';
    echo '</div>';
});
 
// Po dodaniu do koszyka
add_action('woocommerce_add_to_cart', function($cart_item_key, $product_id, $quantity) {
    // Tracking, analytics...
    error_log("Dodano produkt $product_id x$quantity");
}, 10, 3);
 
// Po złożeniu zamówienia
add_action('woocommerce_thankyou', function($order_id) {
    $order = wc_get_order($order_id);
    // Integracja z CRM, email marketing...
});

Popularne filtry

Code
// Modyfikacja ceny wyświetlanej
add_filter('woocommerce_get_price_html', function($price, $product) {
    if ($product->is_on_sale()) {
        return '<span class="sale-badge">SALE</span> ' . $price;
    }
    return $price;
}, 10, 2);
 
// Dodanie pola do checkout
add_filter('woocommerce_checkout_fields', function($fields) {
    $fields['billing']['billing_nip'] = [
        'label'       => 'NIP (opcjonalnie)',
        'placeholder' => '000-000-00-00',
        'required'    => false,
        'priority'    => 35,
    ];
    return $fields;
});
 
// Modyfikacja tekstu przycisku
add_filter('woocommerce_product_single_add_to_cart_text', function() {
    return 'Dodaj do koszyka 🛒';
});

Szablony WooCommerce

Aby nadpisać szablon WooCommerce w swoim motywie:

Code
wp-content/themes/moj-motyw/
└── woocommerce/           # Folder z nadpisanymi szablonami
    ├── single-product.php # Strona produktu
    ├── archive-product.php # Listing produktów
    ├── cart/
    │   └── cart.php       # Koszyk
    └── checkout/
        └── form-checkout.php # Formularz zamówienia

Oryginały znajdziesz w:

Code
wp-content/plugins/woocommerce/templates/

Przykład nadpisania

Code
<!-- woocommerce/single-product.php -->
<?php get_header(); ?>
 
<main class="product-page">
    <?php while (have_posts()) : the_post(); ?>
        <?php wc_get_template_part('content', 'single-product'); ?>
    <?php endwhile; ?>
</main>
 
<?php get_footer('shop'); ?>

Najczęstsze problemy

1. Strona koszyka nie działa

Sprawdź, czy strony są poprawnie przypisane:

Code
WooCommerce → Ustawienia → Zaawansowane → Ustawienia stron

2. Brak płatności

Sprawdź, czy metoda płatności jest włączona w ustawieniach oraz czy strona ma certyfikat SSL — WooCommerce wymaga HTTPS do płatności online.

3. Złe ceny (podatki)

Code
Ustawienia → Podatki → Ceny podawane z podatkiem

Ustawienie musi być spójne z tym, jak wprowadzasz ceny produktów — albo wszędzie z VAT, albo wszędzie bez.

4. Problemy z wariantami

Atrybuty muszą być oznaczone jako "Używane do wariantów" przed wygenerowaniem kombinacji — możesz to ustawić w zakładce Atrybuty w edytorze produktu.

Checklist przed startem całości

Code
□ SSL (HTTPS) skonfigurowany,
□ Dane firmy (adres, NIP) uzupełnione,
□ Podatki skonfigurowane dla PL,
□ Minimum 1 metoda płatności aktywna,
□ Minimum 1 metoda wysyłki aktywna,
□ Strony (koszyk, checkout, konto) poprawnie przypisane,
□ Emaile transakcyjne działają,
□ Polityka prywatności i regulamin,
□ Backup bazy danych,
□ Tryb testowy płatności → Produkcja,

Co sprawdzić przed startem sprzedaży

Konfiguracja produktów i płatności to dopiero początek, ponieważ przed odpaleniem sklepu musisz sprawdzić jeszcze:

  • emaile transakcyjne i ich dostarczalność,
  • podatki i stawki wysyłki dla realnych scenariuszy,
  • statusy zamówień po płatności i zwrocie,
  • kopie zapasowe i środowisko stagingowe,
  • wydajność checkoutu na mobile,
  • zgodność regulaminów, polityki prywatności i checkboxów zgód z lokalnymi wymaganiami.

FAQ

Czy WooCommerce jest darmowy?

Sama wtyczka WooCommerce jest bezpłatna i dostępna w repozytorium WordPress.org, natomiast koszty pojawiają się przy bramkach płatności (prowizje od transakcji lub miesięczna opłata za wtyczkę), rozszerzeniach premium (np. zaawansowane opcje wysyłki czy subskrypcje) oraz hostingu odpowiednim do e-commerce. Poza hostingiem, który jest płatny, dla większości małych sklepów podstawowa konfiguracja jest możliwa bez dodatkowych kosztów.

Jaką bramkę płatności wybrać dla polskiego sklepu WooCommerce?

Najpopularniejsze opcje w Polsce to Przelewy24 (obsługuje BLIK, przelewy bankowe, karty) oraz PayU (również BLIK i karty). Oba mają oficjalne wtyczki do WooCommerce i są dobrze znane polskim klientom. Stripe sprawdza się przy sprzedaży międzynarodowej, a PayPal warto dodać jako opcję dodatkową dla klientów zagranicznych. Każda bramka wymaga zawartej umowy z dostawcą.

Jak skonfigurować podatek VAT w WooCommerce?

W zakładce WooCommerce → Ustawienia → Podatki, włącz podatki i zdecyduj, czy wprowadzasz ceny z podatkiem czy też bez, ponieważ ta decyzja musi być spójna dla wszystkich produktów. Stosujemy stawkę standardową 23% (VAT) dla kodu kraju PL oraz stawkę 8% dla produktów objętych obniżoną stawką. Ważne, byś pamiętał, by ustawienie „Ceny z podatkiem" w sklepie odpowiadało temu, jak wpisujesz ceny produktów.

Czym różni się REST API od Store API w WooCommerce?

REST API WooCommerce jest przeznaczone do integracji administracyjnych i backendowych — zarządzania produktami, zamówieniami i klientami z zewnętrznych systemów (ERP, PIM). Store API to nowszy interfejs zoptymalizowany pod headless storefront — obsługuje koszyk, checkout i operacje frontendowe. Jeśli budujesz sklep headless z React/Next.js, Store API będzie lepszym wyborem do frontendu.

Co to jest HPOS w WooCommerce i czy powinienem to włączyć?

High-Performance Order Storage (HPOS) to nowy system przechowywania zamówień w dedykowanych tabelach bazy danych zamiast w tabelach wp_posts i wp_postmeta, poprawia wydajność przy dużej liczbie zamówień. Przed włączeniem sprawdź kompatybilność wszystkich używanych wtyczek — bramek płatności, integracji z księgowością i niestandardowych rozszerzeń. Na nowych sklepach warto włączyć od razu.

Jak nadpisać szablony WooCommerce w motywie?

Skopiuj plik szablonu z wp-content/plugins/woocommerce/templates/ do odpowiadającej ścieżki w folderze wp-content/themes/twoj-motyw/woocommerce/ - przykładowo szablon koszyka to woocommerce/cart/cart.php w folderze motywu. WooCommerce automatycznie wykryje i użyje Twojej wersji zamiast domyślnej, poza tym używaj wyłącznie child theme, żeby zmiany nie zostały naruszone przez aktualizacje motywu.

Jakie są najczęstsze problemy przy uruchamianiu sklepu WooCommerce?

Najczęstsze problemy to brak SSL (wymagany do płatności online), nieprawidłowe przypisanie stron koszyka i checkout (sprawdź WooCommerce → Ustawienia → Zaawansowane), niespójna konfiguracja podatków (ceny z lub bez VAT muszą być konsekwentne), brakujące potwierdzenia emailowe (sprawdź dostarczalność maili transakcyjnych) oraz warianty produktów, które nie działają, bo atrybuty nie są zaznaczone jako „używane do wariantów".

Podsumowanie

WooCommerce to potężne narzędzie, ale wymaga przemyślanej konfiguracji:

  • Produkty — wybierz odpowiedni typ (prosty, z wariantami, wirtualny),
  • Płatności — mogą to być np Przelewy24 lub PayU (dla PL),
  • Wysyłka — strefy oraz metody,
  • Podatki — VAT 23% jako domyślny,
  • Customizacja — przez hooks oraz nadpisywanie szablonów,
  • Headless — REST API do integracji z React/Next.js.

Podstawowa konfiguracja to 1-2 godziny, a zaawansowany sklep z integracjami — kilka dni, ale framework daje bardzo solidne fundamenty.

Źródła i dokumentacja


Chcesz poznać WordPress głębiej? Sprawdź WordPress od zera — instalacja, architektura i podstawy działania lub naucz się tworzyć własną wtyczkę.

Pracuję z tym zawodowo.

Jeśli chcesz dobrze poukładać WordPressa, WooCommerce albo headless setup jeszcze przed wdrożeniem, skontaktuj się ze mną. Pomagam ocenić trade-offy techniczne, redakcyjne i biznesowe, zanim projekt zacznie generować kosztowny chaos.

O autorze

Maciej Sala

Maciej Sala — project manager i frontendowiec z doświadczeniem w marketingu internetowym. Na co dzień pracuję z Reactem, Next.js i TypeScriptem, łącząc perspektywę produktową z praktycznym podejściem do kodu. Przez kilka lat związany z branżą gier wideo jako project manager i game designer.

Absolwent historii na Uniwersytecie Jagiellońskim i studiów podyplomowych z marketingu internetowego na Akademii Górniczo-Hutniczej w Krakowie. Poza pracą trenuje na siłowni, maluje figurki i realizuje własne projekty.

Biblioteka wiedzy

Czytaj dalej

Zobacz więcej wpisów
Astro.js vs Next.js — które narzędzie wybrać w 2026 roku?

Astro.js vs Next.js — które narzędzie wybrać w 2026 roku?

Fachowe porównanie Astro.js i Next.js z perspektywy developera pracującego na co dzień w Next.js. Architektura, wydajność, SEO, DX, koszty i konkretne use case — z benchmarkami i przykładami kodu.

Maciej Sala

Maciej Sala

Founder Strivelab