Przejdź do treści

Ustawienia plików cookie

Prosimy wybrać, na które rodzaje plików cookie Państwo zezwalają. Wybór można zmienić w dowolnym momencie w Ustawieniach plików cookie na dole każdej strony. Polityka prywatności

Niezbędne

Zawsze włączone

Potrzebne do logowania, zachowania koszyka i zapamiętania wyborów. Są zawsze włączone.

Jakie pliki cookie?
  • weboke_sessie, weboke_klant, weboke_remember: sesja i pozostanie zalogowanym
  • weboke_basket: koszyk
  • wkBtwIncl: wyświetlanie cen z VAT lub bez VAT
  • wok_cookies: wybór dotyczący plików cookie, 12 miesięcy

Mierzą, która reklama prowadzi do odwiedzin lub zamówienia, abyśmy nie płacili za reklamy, które nic nie dają.

Jakie pliki cookie?
  • Google Ads przez Google Tag Manager (_gcl_au, _gcl_aw), do 90 dni
  • OpenAI Ads, reklamy w ChatGPT
  • wok_aff: przez którego partnera trafili Państwo do nas (program partnerski), 60 dni

4,6

Kraj i język

Każdy kraj ma własną stronę z cenami i stawką VAT tego kraju.

Wyświetl

Jak działa WooCommerce

Moduł 1: Zanim Państwo zaczną · Czas czytania: 10 min

Cel lekcji: Po tej lekcji będą Państwo w stanie wyjaśnić, jak WooCommerce działa w WordPressie i gdzie znajdują się produkty, zamówienia, koszyk oraz zaplanowane zadania.

Kluczowe pojęcia: typ produktu, typ wpisu product, zamówienia (HPOS), strony sklepu, sesja i koszyk, Store API, REST API, Action Scheduler, e-maile transakcyjne, rozszerzenia

Wtyczka, która zamienia stronę w sklep

W kursie WordPressa (lekcja 1.2 i 1.3) widzieli Państwo, jak powstaje strona: serwer WWW przekazuje żądanie do PHP, PHP wczytuje WordPressa, wtyczki i motyw, pobiera dane z bazy danych i tworzy z nich HTML. WooCommerce włącza się w ten proces jako duża wtyczka. Wnosi cztery elementy:

  1. Dane: produkty, zamówienia, klientów, stawki podatkowe, strefy wysyłki.
  2. Strony: sklep, koszyk, składanie zamówienia i Moje konto.
  3. Procesy: koszyk dla każdego odwiedzającego, płatności przez operatora płatności, e-maile, aktualizację stanów magazynowych, zaplanowane zadania.
  4. Punkty dostępu dla programów: Store API i REST API.

Kto wie, gdzie znajdują się te elementy, później znacznie szybciej znajdzie błąd. Dlatego omówimy je teraz po kolei.

Produkty: własny typ wpisu

WordPress zna typy wpisów: strony i wpisy to dwa z nich (kurs WordPressa, lekcja 4.2). WooCommerce dodaje typ wpisu product. Produkt znajduje się więc, tak jak strona, w tabeli z wpisami, a jego dodatkowe dane (cena, SKU, stan magazynowy, waga) są zapisane jako metadane. Kategorie i tagi produktów to osobne taksonomie, niezależne od kategorii i tagów Państwa bloga.

Każdy produkt ma typ produktu. W podstawowej wersji są to: produkt prosty, grupowy, zewnętrzny (link do innego sklepu) i z wariantami. Można przy tym zaznaczyć opcje Wirtualny (nic do wysłania) i Do pobrania (plik po zapłacie). Produkt z wariantami ma warianty, na przykład dzbanek do herbaty w trzech kolorach; każdy wariant jest osobną pozycją z własną ceną i stanem magazynowym. Moduł 3 omawia to dokładniej.

Zamówienia: własne tabele (HPOS)

Dawniej WooCommerce przechowywał zamówienia również jako wpisy. W sklepach z dużym ruchem działało to wolno, ponieważ zamówienia i wpisy na blogu dzieliły tę samą dużą tabelę. Dlatego powstał HPOS (High-Performance Order Storage): zamówienia we własnych tabelach, takich jak wc_orders, wc_order_addresses i wc_orders_meta (poprzedzonych prefiksem tabel Państwa strony). Od WooCommerce 8.2 (październik 2023) HPOS jest włączony w każdej nowej instalacji. Starszy sklep pozostaje przy dawnym sposobie przechowywania, dopóki nie przełączą go Państwo samodzielnie w WooCommerce > Ustawienia > Zaawansowane > Funkcje.

Dlaczego warto to wiedzieć? Z trzech powodów:

  • Kopie zapasowe: zamówienia nie znajdują się w plikach, lecz w bazie danych. Kopia zapasowa bez bazy danych jest dla sklepu bezwartościowa (lekcja 6.2).
  • Rozszerzenia: starsze rozszerzenie, które nadal odczytuje zamówienia jako wpisy, nie działa prawidłowo z HPOS. WooCommerce ostrzega przy wtyczce, jeśli nie jest ona zgodna.
  • Przywracanie: jeśli przywrócą Państwo kopię zapasową z wczoraj, znikną dzisiejsze zamówienia. W sklepie jest to znacznie poważniejsze niż w blogu (lekcja 6.2).

Koszyk: inny dla każdego odwiedzającego

Zwykła strona jest taka sama dla każdego odwiedzającego. Koszyk nie. Gdy tylko odwiedzający doda coś do koszyka, WooCommerce rozpoczyna sesję: plik cookie (wp_woocommerce_session_, a po nim kod) w przeglądarce oraz wiersz w tabeli sesji w bazie danych. Dzięki temu przy kolejnym żądaniu sklep wie, który koszyk należy do tego odwiedzającego.

Dwie konsekwencje, do których wrócimy później:

  • Koszyk, składanie zamówienia i Moje konto nigdy nie mogą trafić do pamięci podręcznej stron, w przeciwnym razie jeden odwiedzający zobaczy koszyk innego. WooCommerce sam wysyła na tych stronach nagłówki, które zabraniają buforowania (lekcja 6.4).
  • Sklep, który rozpoczyna sesję dla każdego odwiedzającego, także bez koszyka, sprawia, że pamięć podręczna stron całej witryny staje się bezużyteczna. To częsty błąd motywów i rozszerzeń.

Strony sklepu i bloki

Podczas instalacji WooCommerce tworzy cztery strony: Sklep, Koszyk, Zamówienie i Moje konto. Od wersji 8.3 (listopad 2023) nowe instalacje używają dla koszyka i składania zamówienia bloków; starsze sklepy często nadal korzystają z shortcode'ów. Oba rozwiązania działają. Różnica jest ważna dla rozszerzeń: rozszerzenie, które dodaje coś do procesu składania zamówienia, musi obsługiwać wariant, którego Państwo używają. Lekcja 2.2 pokazuje, jak to sprawdzić.

Dwa punkty dostępu dla programów: Store API i REST API

WooCommerce ma dwa programowalne punkty dostępu, a różnica między nimi jest ważna dla bezpieczeństwa:

Store APIREST API
Adres/wp-json/wc/store/v1/.../wp-json/wc/v3/...
Dla kogoSam sklep (bloki w przeglądarce) i inne fronty sklepuIntegracje: księgowość, magazyn, aplikacje
Czy potrzebny jest klucz?Nie, publiczne: każdy może odczytać produkty i cenyTak, Klucz API z uprawnieniami do odczytu lub zapisu
Co zawieraProdukty, ceny, stan dostępności, koszyk bieżącego odwiedzającegoRównież zamówienia, klientów, raporty

To, że Store API jest publiczne, nie jest wyciekiem: pokazuje dokładnie to, co każdy odwiedzający widzi w sklepie, tylko w formie czytelnej dla programów. Prosimy wypróbować to na własnym sklepie: proszę otworzyć https://shop.example.com/wp-json/wc/store/v1/products w przeglądarce (z adresem własnego sklepu), a zobaczą Państwo swoje produkty w formacie JSON. REST API natomiast powinno być bez klucza zamknięte. Lekcja 2.4 sprawdza oba.

Za kulisami: Action Scheduler i e-maile

Wiele pracy w sklepie nie odbywa się w chwili, gdy klient czeka, lecz później. WooCommerce używa do tego Action Scheduler: kolejki zaplanowanych zadań, takich jak anulowanie nieopłaconego zamówienia po ustawionym czasie, wysyłanie webhooków czy aktualizacja raportów. Kolejkę można zobaczyć w WooCommerce > Status > Zaplanowane działania. Te zadania działają na WP-Cron, który uruchamia się tylko wtedy, gdy na stronie są odwiedzający. W sklepie z małym ruchem praca może więc czekać; lekcja 7.3 pokazuje, jak rozwiązuje to prawdziwy cron.

Ponadto WooCommerce wysyła e-maile transakcyjne: wiadomość do Państwa przy nowym zamówieniu oraz wiadomości do klienta przy przyjęciu zamówienia, wysyłce, zwrocie pieniędzy lub utworzeniu nowego konta. Jeśli nie docierają, klient myśli, że coś poszło nie tak. Lekcja 6.1 zajmuje się dostarczalnością.

W praktyce: tak to wygląda w WooCommerce

W panelu WordPressa sklepu Theehuis Example po instalacji pojawiają się trzy nowe menu: WooCommerce (zamówienia, klienci, ustawienia, status), Produkty i Analityka (w nowszych wersjach czasem w menu WooCommerce). W WooCommerce > Status znajdą Państwo środowisko serwera, tabele bazy danych, zaplanowane działania i dzienniki. Ten ekran będzie Państwu wkrótce często potrzebny. Kroki są takie same u każdego dostawcy hostingu, ponieważ są częścią samego WordPressa.

Podsumowanie

  • WooCommerce wnosi dane, strony, procesy i dwa programowalne punkty dostępu.
  • Produkty to własny typ wpisu; zamówienia w nowych sklepach znajdują się we własnych tabelach (HPOS, domyślnie od wersji 8.2).
  • Koszyk działa dzięki sesji dla każdego odwiedzającego; dlatego koszyk, składanie zamówienia i Moje konto nie mogą trafić do pamięci podręcznej.
  • Store API jest publiczne i pokazuje to, co widzi każdy odwiedzający; REST API powinno być bez klucza zamknięte.
  • Zaplanowane zadania działają przez Action Scheduler i WP-Cron; e-maile są częścią procesu zamówienia.

Quiz

1. Gdzie znajdują się zamówienia nowego sklepu WooCommerce z HPOS?



2. Dlaczego WooCommerce rozpoczyna sesję, gdy odwiedzający doda coś do koszyka?



3. Ktoś otwiera /wp-json/wc/store/v1/products Państwa sklepu bez logowania i widzi produkty z cenami. Co to oznacza?



4. W sklepie z małym ruchem nieopłacone zamówienie zostaje anulowane dopiero wiele godzin później, a nie po ustawionym czasie. Jaka jest prawdopodobna przyczyna?



Zadanie

Zadanie A1.2: Czy ta strona działa na WooCommerce? Prosimy wpisać domenę, wybrać tak lub nie i zapisać, jaki dowód Państwo zauważyli (na przykład "generator" lub "wc/store/v1"). Program pobiera stronę główną, odczytuje indeks REST (/wp-json/, tylko listę przestrzeni nazw) i wysyła żądanie /wp-json/wc/store/v1/products?per_page=1. Rozpoznaje WooCommerce po meta generator z WooCommerce, przestrzeni nazw wc/store/v1 w indeksie REST, działającym Store API, plikach z /wp-content/plugins/woocommerce/ lub klasie body woocommerce. Zielony: Państwa wybór jest prawidłowy, a dowód występuje w nagłówkach, w HTML, w indeksie REST lub w odpowiedzi Store API; widzą Państwo wtedy również liczbę produktów i walutę. Pomarańczowy: Państwa wybór jest prawidłowy, ale nie znajdujemy podanego dowodu. Czerwony: Państwa wybór jest nieprawidłowy. Prosimy spróbować najpierw na własnym sklepie, a potem na sklepie, który Państwo znają. Nic nie jest dodawane do koszyka ani nic nie jest wysyłane.

Zadanie A1.2: Czy ta strona działa na WooCommerce?




Wprowadzone dane i wyniki sprawdzania nie są zapisywane. Przeglądarka zapamiętuje udzielone odpowiedzi oraz informację, czy zadanie zostało zaliczone. Po zalogowaniu w Moje kursy zapisywana jest jedynie informacja, że zadanie zostało zaliczone (lub prawie zaliczone); tam można ją również usunąć.

Dalsza lektura

Jeśli opisano kroki w panelu, dotyczą one WebOké; u innych dostawców działa to podobnie.

Chwileczkę…

Konfiguracja domen

Dla każdej domeny można ustawić serwery nazw, powiązanie z hostingiem oraz to, kto zostanie właścicielem.

Wczytywanie domen…