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

Cron, Action Scheduler a staging

Modul 7: Vyhledatelnost a hosting · Doba čtení: 10 minut

Cíl lekce: Po této lekci dokážete vysvětlit, jak WooCommerce provádí úlohy na pozadí. Naplánované akce umíte zkontrolovat a při problémech opravit. Testovací prostředí (staging) pro e-shop umíte nastavit tak, aby nebyli ohroženi skuteční zákazníci a nevznikaly skutečné platby ani objednávky.

Klíčové pojmy: WP-Cron, skutečný cron, DISABLE_WP_CRON, Action Scheduler, naplánované akce, čekající, dokončené, neúspěšné, čištění, staging pro e-shop, testovací režim poskytovatele plateb, vypnutá pošta, webhooky, propojení, neobnovovat databázi přes produkci

Co se děje, když se nikdo nedívá

E-shop dělá spoustu práce, která přímo nesouvisí s kliknutím návštěvníka:

  • ruší nezaplacené objednávky, když uplyne doba pro držení zásob (lekce 3.4);
  • odesílá e-maily po změně stavu a webhooky do propojených systémů;
  • aktualizuje přehledy a statistiky v administraci;
  • čistí vypršené relace a dočasná data;
  • uplatňuje doby uchovávání z nastavení Účty a soukromí (lekce 2.3);
  • u předplatného nebo propojení s účetnictvím strhává platby a předává data.

K tomu WordPress používá WP-Cron a WooCommerce navíc Action Scheduler. Pokud nefungují správně, nepoznáte to hned. Poznáte to, až nezaplacené objednávky dál blokují zásoby, přehledy zůstávají prázdné nebo je propojení o několik dní pozadu.

WP-Cron a skutečný cron

Jak WP-Cron funguje a proč je lepší skutečná úloha cron, popisuje kurz WordPressu v lekci 6.3: WP-Cron se spouští při návštěvách, ne podle hodin. Při malém počtu návštěvníků je proto nespolehlivý a při velkém počtu zatěžuje server. Řešení: DISABLE_WP_CRON v souboru wp-config.php a úloha cron ve Vašem hostingovém panelu, která každých pár minut spustí wp-cron.php.

Pro e-shop to není optimalizace, ale nutnost:

  • V noci, kdy je návštěvnost nízká, se nezaplacené objednávky stejně musí zrušit včas.
  • Při velké akci naopak nechcete, aby se náročná úloha na pozadí přidala k požadavku zákazníka, který právě chce zaplatit.

U WebOké takovou úlohu vytvoříte v DirectAdminu v části Naplánované úlohy (DA 15.1, KB 48) s cestou k PHP /usr/local/bin/php. U jiných poskytovatelů hostingu to funguje podobně v jejich nastavení cronu. Pro e-shop zvolte interval jedna až pět minut, raději než deset. Úloha, která běží každou minutu a nemá co dělat, nestojí téměř nic.

Action Scheduler: fronta WooCommerce

Action Scheduler je fronta úloh na pozadí, která se dodává s WooCommerce a kterou používá i řada dalších pluginů (předplatné, propojení s účetnictvím, e-mailový marketing). Každá úloha je akce s časem a stavem. Fronta se zpracovává pomocí úlohy WP-Cron (action_scheduler_run_queue), takže i zde platí: bez spolehlivého cronu je fronta pozadu.

Vše najdete v části WooCommerce > Stav > Naplánované akce (Scheduled Actions). Pro každý stav je tam samostatná záložka:

StavVýznamCo uděláte
Čekající (Pending)Teprve se má spustitPokud jich jsou stovky s časem v minulosti, fronta je pozadu: zkontrolujte cron
Probíhá (In-progress)Právě běžíPokud akce dlouho visí, podívejte se do protokolu vedle ní
Dokončeno (Complete)HotovoNic; automaticky se odstraňují
Selhalo (Failed)Skončila chybouPřečtěte si chybovou zprávu ve sloupci Protokol; často jde o plugin nebo nedostupné propojení
Zrušeno (Canceled)Záměrně neprovedenoObvykle nic

Podle zdrojového kódu Action Scheduler ve výchozím nastavení odstraňuje dokončené a zrušené akce po jednom měsíci, neúspěšné po třech měsících. Pokud tabulka přesto rychle roste, nejspíš běží mnoho akcí, které stále znovu selhávají nebo se znovu vytvářejí. Místo pouhého vyprázdnění tabulky zjistěte, který plugin je vytváří (pomůže sloupec Skupina a název hooku).

Příklad z praxe u Theehuis Example: propojení s účetním programem po změně hesla řadilo každou objednávku do fronty jako neúspěšnou akci. Po týdnu bylo ve frontě 400 neúspěšných akcí a chybělo 60 faktur (lekce 5.6). Po opravě propojení mohl správce akce jednotlivě znovu spustit tlačítkem Spustit nyní (Run).

Staging pro e-shop

Co je staging, jak ho vytvoříte a jak ho zabezpečíte (heslo, noindex), popisuje kurz WordPressu v lekci 8.3. U WebOké k tomu slouží klonování v Installatronu (DA 13.7, KB 232) a složka chráněná heslem (DA 15.9); jiní poskytovatelé mají podobné nástroje. U e-shopu je potřeba myslet na několik věcí navíc, protože kopie e-shopu obsahuje skutečné údaje zákazníků a může provádět skutečné akce.

Hned po naklonování, dříve než uděláte cokoli jiného:

  1. Poskytovatel plateb v testovacím režimu, s testovacími klíči. Staging s ostrými klíči může přijímat skutečné platby nebo provádět vrácení peněz.
  2. Pošta vypnutá nebo přesměrovaná. Jinak kopie posílá skutečným zákazníkům potvrzení, upomínky a e-maily o opuštěném košíku. Použijte plugin, který veškerou poštu zadrží nebo ji pošle na jednu testovací adresu.
  3. Propojení a webhooky vypnuté. Účetnictví, synchronizace zásob, přepravní štítky, e-mailový marketing: jinak staging zaúčtuje faktury nebo odešle balíky. Zkontrolujte také WooCommerce > Nastavení > Pokročilé > Webhooky a klíče API.
  4. Projít naplánované akce. Fronta se zkopírovala s ostatními daty. Čekající akce (e-mail s upomínkou, platba předplatného) by se jinak na stagingu spustily ještě jednou.
  5. Omezit osobní údaje. Pokud k testování skutečné údaje zákazníků nepotřebujete, na stagingu je smažte nebo anonymizujte. Staging spadá pod GDPR a bývá hůře zabezpečený (lekce 5.5).

A nejdůležitější pravidlo při přenosu zpět: nikdy nepřepisujte databázi běžícího e-shopu databází ze stagingu. Mezi naklonováním a přenosem zpět přibyly objednávky, zákazníci, pohyby zásob a platby; ty byste ztratili. Změny proveďte znovu na produkci (už víte, že fungují), nebo synchronizujte jen soubory. Pokud to s databází jinak nejde, dělejte to jen s e-shopem v režimu údržby, hned po čerstvé záloze a s nástrojem, který objednávky a zákazníky vynechá.

Test aktualizace na stagingu

Typický postup u velké aktualizace WooCommerce nebo platebního pluginu:

  1. Vytvořte čerstvý staging (klon produkce) a nastavte pět výše uvedených bodů.
  2. Proveďte aktualizaci na stagingu a spusťte aktualizaci databáze, pokud o ni WooCommerce požádá.
  3. Udělejte testovací objednávku v testovacím režimu: zaplacení, neúspěšná platba, vrácení peněz (lekce 4.5).
  4. Zkontrolujte v Naplánovaných akcích a v protokolu chyb, zda nevznikly nové chyby.
  5. Poté aktualizujte produkci v klidné době, těsně předtím se zálohou (lekce 6.2).

Shrnutí

  • WooCommerce dělá spoustu práce na pozadí; běží přes WP-Cron a Action Scheduler.
  • Pro e-shop vždy používejte skutečnou úlohu cron (každou jednu až pět minut) místo WP-Cronu spouštěného návštěvami.
  • Kontrolujte WooCommerce > Stav > Naplánované akce: mnoho opožděných čekajících nebo neúspěšných akcí je znamením, že nefunguje cron nebo některé propojení.
  • Na stagingu: poskytovatel plateb v testovacím režimu, pošta a propojení vypnuté, projít naplánované akce, omezit osobní údaje.
  • Nikdy nepřepisujte běžící e-shop databází ze stagingu; změny proveďte znovu na produkci.

Kvíz

1. Proč je skutečná úloha cron pro e-shop důležitější než pro blog?



2. V Naplánovaných akcích je 2000 čekajících akcí s časem ze včerejška. Jaká je nejpravděpodobnější příčina?



3. Co na novém stagingu e-shopu nastavíte jako první?



4. V pondělí jste vytvořili staging a v pátek chcete změny nasadit naostro. Proč databázi prostě nepřenesete zpět?



Úkol

Úkol A7.3: Je Vaše testovací prostředí (staging) chráněné? Jde o stejnou kontrolu jako úkol A8.3 z kurzu WordPressu. Nejprve potřebujete doklad o vlastnictví Vaší domény (záznam TXT _weboke-cursus.<domein> nebo soubor /.well-known/weboke-cursus-<code>.txt s kódem, který obdržíte). Poté zadejte adresu svého e-shopu a adresu svého stagingu (host pod stejnou doménou). Program načte domovskou stránku stagingu bez přihlašovacích údajů a domovskou stránku produkce. Zelená: staging vyžaduje heslo (401), nebo má noindex a používá vlastní adresu (vstupní bod REST ukazuje na host stagingu), přičemž produkce noindex nemá. Oranžová: staging má noindex, ale nemá heslo, nebo nemá platný certifikát. Červená: staging je otevřený a indexovatelný, staging stále ukazuje na adresu produkce, nebo má produkce omylem noindex.

Otázky pro Vás (nekontrolují se): Je poskytovatel plateb na Vašem stagingu v testovacím režimu? Je pošta vypnutá nebo přesměrovaná? Jsou propojení a webhooky vypnuté? Kolik čekajících a neúspěšných akcí je teď v Naplánovaných akcích na produkci?

Úkol A7.3: Je Vaše testovací prostředí (staging) chráněné?

Tato kontrola zjišťuje cesty, které necháte ověřit pouze u svého vlastního e-shopu. Nejprve klikněte na „Zobrazit můj kód“ a vložte tento kód jako TXT záznam na _weboke-cursus.<Vaše doména> nebo jako soubor na svůj web (viz vysvětlení u kódu).



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í

Tyto články popisují postup v panelech WebOké; v jiných panelech 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…