Přejít na obsah

Nastavení cookies

Zvolte, které druhy cookies povolíte. Svou volbu můžete kdykoli změnit přes Nastavení cookies v dolní části každé stránky. Prohlášení o ochraně osobních údajů

Nezbytné

Vždy zapnuté

Potřebné pro přihlášení, uchování košíku a zapamatování vašich voleb. Jsou vždy zapnuté.

Které cookies?
  • weboke_sessie, weboke_klant, weboke_remember: vaše relace a trvalé přihlášení
  • weboke_basket: váš košík
  • wkBtwIncl: zobrazení cen s DPH nebo bez DPH
  • wok_cookies: vaše volba cookies, 12 měsíců

Měří, která reklama vede k návštěvě nebo objednávce, abychom neplatili za reklamy, které nic nepřinášejí.

Které cookies?
  • Google Ads přes Google Tag Manager (_gcl_au, _gcl_aw), až 90 dní
  • OpenAI Ads, reklamy v ChatGPT
  • wok_aff: partner, který vás k nám doporučil (partnerský program), 60 dní

4,6

Země a jazyk

Každá země má vlastní web s cenami a DPH dané země.

Zobrazit

Jak WooCommerce funguje

Modul 1: Než začnete · Doba čtení: 10 minut

Cíl lekce: Po této lekci dokážete vysvětlit, jak WooCommerce ve WordPressu funguje a kde se nacházejí produkty, objednávky, košík a naplánované úlohy.

Klíčové pojmy: typ produktu, typ příspěvku product, objednávky (HPOS), stránky obchodu, relace a košík, Store API, REST API, Action Scheduler, transakční e-maily, rozšíření

Plugin, který z Vašeho webu udělá obchod

V kurzu WordPressu (lekce 1.2 a 1.3) jste viděli, jak vzniká stránka: webový server předá požadavek PHP, PHP načte WordPress, pluginy a šablonu, získá data z databáze a vytvoří z nich HTML. WooCommerce se do tohoto procesu zapojí jako velký plugin. Přináší čtyři věci:

  1. Data: produkty, objednávky, zákazníky, daňové sazby, doručovací zóny.
  2. Stránky: obchod, košík, pokladnu a Můj účet.
  3. Procesy: košík pro každého návštěvníka, platby přes poskytovatele plateb, e-maily, aktualizaci skladu, naplánované úlohy.
  4. Vstupy pro programy: Store API a REST API.

Kdo ví, kde tyto části jsou, najde později chybu mnohem rychleji. Proto se na ně teď podíváme jednu po druhé.

Produkty: vlastní typ příspěvku

WordPress zná typy příspěvků: stránky a příspěvky jsou dva z nich (kurz WordPressu, lekce 4.2). WooCommerce přidává typ příspěvku product. Produkt je tedy, stejně jako stránka, uložen v tabulce s příspěvky a jeho další údaje (cena, SKU, sklad, hmotnost) jsou uloženy jako metadata. Kategorie a štítky produktů jsou samostatné taxonomie, oddělené od kategorií a štítků Vašeho blogu.

Každý produkt má typ produktu. V základu jsou to jednoduchý, seskupený, externí (odkaz na jiný obchod) a variabilní. K tomu můžete zapnout zaškrtávací políčka virtuální (nic se neodesílá) a ke stažení (soubor po zaplacení). Variabilní produkt má varianty, například konvici na čaj ve třech barvách; každá varianta je samostatná položka s vlastní cenou a vlastním skladem. Podrobněji se tomu věnuje modul 3.

Objednávky: vlastní tabulky (HPOS)

Dříve WooCommerce ukládal objednávky také jako příspěvky. U vytížených obchodů to bylo pomalé, protože objednávky a příspěvky blogu sdílely tutéž velkou tabulku. Proto vzniklo HPOS (High-Performance Order Storage): objednávky ve vlastních tabulkách, například wc_orders, wc_order_addresses a wc_orders_meta (s předponou tabulek Vašeho webu na začátku). Od WooCommerce 8.2 (říjen 2023) je HPOS zapnuté u každé nové instalace. Starší obchod zůstává u původního úložiště, dokud sami nepřepnete v WooCommerce > Nastavení > Pokročilé > Vlastnosti.

Proč to potřebujete vědět? Ze tří důvodů:

  • Zálohy: objednávky nejsou ve Vašich souborech, ale v databázi. Záloha bez databáze je pro e-shop bezcenná (lekce 6.2).
  • Rozšíření: starší rozšíření, které objednávky stále čte jako příspěvky, nefunguje s HPOS správně. WooCommerce u pluginu upozorní, pokud není kompatibilní.
  • Obnovit: obnovíte-li včerejší zálohu, zmizí dnešní objednávky. U e-shopu je to mnohem horší než u blogu (lekce 6.2).

Košík: pro každého návštěvníka jiný

Běžná stránka je pro všechny návštěvníky stejná. Košík ne. Jakmile návštěvník vloží něco do košíku, WooCommerce spustí relaci: cookie (wp_woocommerce_session_ následované kódem) v prohlížeči a řádek v tabulce relací v databázi. Díky tomu e-shop při dalším požadavku ví, který košík patří tomuto návštěvníkovi.

Dva důsledky, se kterými se později znovu setkáte:

  • Košík, pokladna a Můj účet se nikdy nesmí dostat do mezipaměti stránek, jinak jeden návštěvník uvidí košík jiného. WooCommerce na těchto stránkách sám posílá hlavičky, které ukládání do mezipaměti zakazují (lekce 6.4).
  • E-shop, který spouští relaci u každého návštěvníka, i bez košíku, činí mezipaměť stránek celého webu zbytečnou. To je častá chyba šablon a rozšíření.

Stránky obchodu a bloky

Při instalaci vytvoří WooCommerce čtyři stránky: Obchod, Košík, Pokladna a Můj účet. Od verze 8.3 (listopad 2023) používají nové instalace pro košík a pokladnu bloky; starší obchody často ještě používají shortcody. Funguje obojí. Rozdíl je důležitý pro rozšíření: rozšíření, které něco přidává do pokladny, musí podporovat variantu, kterou používáte. Lekce 2.2 ukazuje, jak to ověřit.

Dva vstupy pro programy: Store API a REST API

WooCommerce má dva programovatelné vstupy a rozdíl mezi nimi je důležitý pro bezpečnost:

Store APIREST API
Adresa/wp-json/wc/store/v1/.../wp-json/wc/v3/...
Pro kohoSamotný obchod (bloky v prohlížeči) a jiné prodejní frontendyPropojení: účetnictví, sklad, aplikace
Je potřeba klíč?Ne, je veřejné: produkty a ceny může číst kdokoliAno, API klíč s právy pro čtení nebo zápis
Co obsahujeProdukty, ceny, stav skladu, košík aktuálního návštěvníkaTaké objednávky, zákazníky, přehledy

To, že je Store API veřejné, není únik dat: je to přesně to, co každý návštěvník vidí v obchodě, jen ve formě, kterou umí číst programy. Vyzkoušejte to na svém e-shopu: otevřete v prohlížeči https://shop.example.com/wp-json/wc/store/v1/products (se svou vlastní adresou) a uvidíte své produkty jako JSON. REST API by naopak mělo být bez klíče uzavřené. Lekce 2.4 kontroluje obojí.

V zákulisí: Action Scheduler a e-maily

Mnoho práce v e-shopu neprobíhá, zatímco zákazník čeká, ale později. WooCommerce k tomu používá Action Scheduler: frontu naplánovaných úloh, například zrušení nezaplacené objednávky po nastavené době, odesílání webhooků nebo aktualizaci přehledů. Frontu najdete v WooCommerce > Stav > Naplánované akce. Tyto úlohy běží na WP-Cron, který se spouští jen tehdy, když jsou na webu návštěvníci. U klidného e-shopu tak může práce zůstat nevyřízená; lekce 7.3 ukazuje, jak to vyřeší skutečný cron.

Kromě toho WooCommerce odesílá transakční e-maily: e-mail Vám při nové objednávce a e-maily zákazníkovi při přijetí, odeslání, vrácení peněz nebo založení nového účtu. Pokud nedorazí, zákazník si myslí, že je něco v nepořádku. Lekce 6.1 řeší doručitelnost.

V praxi: takto to vypadá ve WooCommerce

V administraci WordPressu Theehuis Example se po instalaci objeví tři nové nabídky: WooCommerce (objednávky, zákazníci, nastavení, stav), Produkty a Analytika (v novějších verzích někdy pod WooCommerce). V WooCommerce > Stav najdete serverové prostředí, databázové tabulky, naplánované akce a protokoly. Tuto obrazovku budete brzy potřebovat často. Postup je u každého poskytovatele hostingu stejný, protože je součástí samotného WordPressu.

Shrnutí

  • WooCommerce přináší data, stránky, procesy a dva programovatelné vstupy.
  • Produkty jsou vlastní typ příspěvku; objednávky jsou u nových obchodů ve vlastních tabulkách (HPOS, výchozí od verze 8.2).
  • Košík funguje s relací pro každého návštěvníka; proto košík, pokladna a Můj účet nesmí být v mezipaměti.
  • Store API je veřejné a ukazuje to, co vidí každý návštěvník; REST API má být bez klíče uzavřené.
  • Naplánované úlohy běží přes Action Scheduler a WP-Cron; e-maily jsou součástí objednávkového procesu.

Kvíz

1. Kde jsou uloženy objednávky nového obchodu WooCommerce s HPOS?



2. Proč WooCommerce spustí relaci, když návštěvník vloží něco do košíku?



3. Někdo otevře /wp-json/wc/store/v1/products Vašeho e-shopu bez přihlášení a vidí Vaše produkty s cenami. Co to je?



4. Nezaplacená objednávka se u klidného e-shopu zruší až o několik hodin později, místo po nastavené době. Jaká je pravděpodobná příčina?



Úkol

Úkol A1.2: Běží tento web na WooCommerce? Zadejte doménu, zvolte ano nebo ne a napište, jaký důkaz jste viděli (například "generator" nebo "wc/store/v1"). Program načte domovskou stránku, přečte index REST (/wp-json/, pouze seznam jmenných prostorů) a vyžádá si /wp-json/wc/store/v1/products?per_page=1. WooCommerce pozná podle meta generator s WooCommerce, jmenného prostoru wc/store/v1 v indexu REST, funkčního Store API, souborů z /wp-content/plugins/woocommerce/ nebo třídy body woocommerce. Zelená: Vaše volba je správná a Váš důkaz se objevuje v hlavičkách, v HTML, v indexu REST nebo v odpovědi Store API; uvidíte pak také počet produktů a měnu. Oranžová: Vaše volba je správná, ale Váš důkaz jsme nenašli. Červená: Vaše volba není správná. Vyzkoušejte to nejprve na svém e-shopu a potom na e-shopu, který znáte. Nic se nevkládá do košíku a nic se neodesílá.

Úkol A1.2: Běží tento web na WooCommerce?




Co vyplníte a co zjistíme, neukládáme. Váš prohlížeč si pamatuje Vaše odpovědi a to, zda jste úkol splnili. Pokud jste přihlášeni, ukládáme v sekci Moje kurzy pouze to, že jste úkol měli (téměř) správně; i to tam můžete odstranit.

Další čtení

Kde jsou uvedeny kroky v panelu, platí pro WebOké; u jiných poskytovatelů to funguje podobně.

Chvíli strpení…

Nastavení vašich domén

U každé domény nastavte jmenné servery, propojení s hostingem a to, kdo bude držitelem.

Načítání vašich domén…