Proč WooCommerce blokuje kompatibilitu se stala otázkou Make or Break pro propagační pluginy
Koncem roku 2023 společnost Automattic oznámila, že WooCommerce Blocks přešly z volitelné funkce opt-in na doporučenou výchozí architekturu pro nové obchody WooCommerce. Oznámení bylo pozoruhodné méně tím, co říkalo, než tím, co implikovalo. WooCommerce byl postaven v průběhu desetiletí a půl na klasické hierarchii šablon WordPress – soubory PHP v adresářích témat, které pluginy rozšiřovaly pomocí háčků a filtrů, přičemž šablony košíků, pokladen a produktů žily na předvídatelných místech, s nimiž se vývojáři pluginů naučili pracovat. Architektura Blocks nahradila tuto strukturu šablon blokovým systémem řízeným JavaScript, ve kterém je celá zkušenost se zákazníky vykreslována prostřednictvím editoru bloků WordPress a rozhraní Storefront API založeného na Reactu, nikoli prostřednictvím starších šablon PHP. Přechod je spíše pozvolný než náhlý, ale jeho trajektorie je jednoznačná a důsledky pro ekosystém propagačních pluginů WooCommerce stále absorbují obchodníci, kteří postavili své obchody na starší architektuře.
Otázka kompatibility není akademická. Obchodník, jehož obchod běží na košíku a pokladně založené na Blocks – což je stále častěji výchozí nastavení pro obchody postavené po roce 2023 – zjistí, že propagační pluginy navržené pro klasickou hierarchii šablon WooCommerce se často nedaří integrovat do nové architektury. Zprávy na straně košíku, které fungovaly ve starém systému, se nedaří vykreslit. Výpočty slev, které byly správně spuštěny prostřednictvím háků PHP, nekomunikují s košíkem založeným na blocích. Vizuální prvky, jako jsou ukazatele průběhu, prahové zprávy a zobrazení odznaků, které byly navrženy pro starší šablony, vytvářejí při vykreslování bloků prázdný prostor nebo přerušená rozvržení. Obchodník, který nedávno vybudoval svůj obchod a vybral si WooCommerce propagační plugin, aniž by ověřil kompatibilitu s Blocks, pracuje s architektonickým nesouladem, který se zhoršuje, protože Automattic pokračuje v migraci větší části povrchu určeného zákazníkům do rámce Blocks.
Co vlastně přechod na WooCommerce blokuje, se mění
Architektonická změna, která je základem přechodu Blocks, je smysluplná způsoby, které ovlivňují vývojáře pluginů více, než obchodníci přímo vnímají. Klasická hierarchie šablon WooCommerce vykreslovala stránky košíku a pokladny prostřednictvím souborů PHP, které by pluginy mohly přepsat umístěním náhradních šablon do jejich adresáře pluginů. Propagační plugin, který chtěl přidat ukazatel průběhu košíku, jednoduše zaregistroval příslušné přepsání šablony a nakladač šablon WooCommerce se postaral o zbytek. Vzor nebyl elegantní – přepisy šablon byly častým zdrojem konfliktů mezi tématy a pluginy – ale vývojáři pluginů mu rozuměli a jeho chování bylo předvídatelné. Data o opuštění košíku z Baymard Institute, získaná z padesáti samostatných studií opuštění košíku agregovaných do celosvětového průměru 70,22 procenta, soustavně identifikovala nekonzistence vykreslování pokladny jako významný přispěvatel k opuštění, díky čemuž je architektonický přechod viditelnější pod novým akademickým zájmem o vykreslování pluginů pro obchodníky.
Architektura Blocks vykresluje košík a pokladnu prostřednictvím komponent React, které komunikují s backendem WooCommerce prostřednictvím Storefront API. Šablony PHP jsou v obchodech s povolenými bloky zcela vynechány. Pluginy, které se chtějí podílet na vykreslování košíku a pokladny, musí registrovat rozšíření bloků, která se integrují do stromu komponent React, komunikovat příslušná data prostřednictvím rozhraní Storefront API a zpracovávat změny stavu prostřednictvím životního cyklu React spíše než pomocí háčků PHP. Architektonický posun není jemný. Plugin, který se správně vykresluje pod klasickými šablonami, může v košíku vykresleném bloky zcela chybět, protože vykreslovací plochy jsou zásadně odlišné cesty kódu.
Důsledky pro ekosystém pluginů WooCommerce jsou nerovnoměrné. Výzkum Forrester zaměřený na ekonomiku migrace platforem důsledně zjistil, že přechody ekosystému tohoto rozsahu vytvářejí stratifikační efekt – pluginy, které byly aktivně udržovány vývojářskými týmy sledujícími novou architekturu, mají tendenci provést přechod čistě, zatímco pluginy, které byly pasivně udržovány, mají tendenci zaostávat způsobem, který se sdružuje v dalších verzích platforem. Výzkum ceny a personalizace společnosti McKinsey samostatně zjistil, že maloobchodníci provozující architektonicky zastaralou propagační infrastrukturu mají tendenci nedostatečně investovat do širší propagační zpravodajské práce, která zajišťuje trvalé zlepšení marže, částečně proto, že provozní náklady na práci kolem zastaralé infrastruktury spotřebovávají kapacitu, která by jinak byla věnována strategické práci. Kombinovaným efektem je, že obchodníci, kteří si vybrali propagační pluginy z nedostatečně udržované úrovně ekosystému, nyní zjišťují, že jejich propagační infrastruktura stále více neodpovídá architektuře WooCommerce, kterou provozují.
Proč některé propagační pluginy selhaly při přechodu bloků
Režimy selhání jsou rozděleny do několika kategorií, které odrážejí různé architektonické kompromisy v původním návrhu pluginu. První kategorií jsou pluginy, které se při vykreslování silně spoléhaly na přepisy šablon motivů. Klasický zavaděč šablon WooCommerce respektoval přepsání pluginů, což znamenalo, že propagační plugin mohl vložit své vizuální prvky přepsáním šablony cart-totals.php nebo podobných starších souborů. V části Bloky jsou tyto přepisy šablon jednoduše vynechány. Vizuální prvky pluginu se nikdy nevykreslují a obchodník, který plugin nasadil, nevidí žádnou chybovou zprávu, protože se spustí základní kód PHP – vykreslený výstup prostě chybí v košíku řízeném bloky.
Druhou kategorií jsou zásuvné moduly, které se agresivně zahákly do staršího kanálu výpočtu košíku, spíše než aby se integrovaly s datovou vrstvou WooCommerce. Starší potrubí probíhalo přes specifické PHP filtrové háčky (woocommerce_cart_calculate_fees, woocommerce_before_calculate_totals a podobně) v předvídatelných bodech výpočtu košíku. Pluginy, které registrovaly zpětná volání proti těmto háčkům a spoléhaly se na řazení háčků a načasování, měly tendenci pracovat správně pod klasickými šablonami, ale produkovaly nekonzistentní výsledky v rámci bloků, kde se stejné háky mohou spouštět v různých bodech životního cyklu vykreslování nebo v různých sekvencích. Výpočty slevy se mohou spustit správně, ale nedokážou sdělit výsledný stav na displeji košíku založeném na Reactu, čímž vzniknou vozíky, kde sleva platí při placení, ale je pro zákazníka neviditelná během kroku kontroly košíku.
Třetí kategorií jsou pluginy, které obsahovaly vlastní JavaScript určené pro klasické stránky košíku. Starší košík WooCommerce byla serverem vykreslená HTML stránka s relativně předvídatelnou strukturou DOM, kterou mohly pluginy vylepšit pomocí jQuery nebo vanilla JavaScript. V části Blocks je košík vykreslován prostřednictvím komponent React s dynamickým DOM, který se často a nepředvídatelně mění podle interakce zákazníka. Plugin JavaScript, který fungoval na základě výběru konkrétních prvků DOM a jejich úprav, má tendenci selhat v části Blocks, protože prvky buď neexistují v očekávané podobě, nebo jsou odpojeny a znovu připojeny během životního cyklu React způsobem, který porušuje předpoklady stavu pluginu.
Čtvrtou kategorií jsou pluginy, které zpracovávaly události košíku prostřednictvím mechanismů načítání stránek, spíše než prostřednictvím živého streamu událostí, který produkují aplikace založené na Reactu. Starší košík spouštěl samostatné načítání stránky, když zákazníci přidali nebo odebrali položky, což znamenalo, že se pluginy mohly inicializovat při každém načtení stránky a předvídatelně zkontrolovat stav košíku. Bloky se aktualizují bez načítání stránek prostřednictvím systému stavu React, což znamená, že pluginy spoléhající na inicializaci načítání stránky se jednoduše nikdy znovu neinicializují, když se košík změní. Zákazník, který přidá položku do košíku Blocks, neuvidí propagační odznaky ani aktualizace ukazatele průběhu, dokud stránku ručně znovu nenačte, což většina zákazníků neudělá.
Co vlastně vyžaduje kompatibilita nativních bloků
Propagační plugin WooCommerce, který se správně integruje s bloky, musí zvládnout několik netriviálních architektonických požadavků, které starší pluginy často podceňují. Prvním je integrace vykreslování se samotným editorem bloků, takže správci obchodů, kteří konfigurují stránky košíku a pokladny, mohou vedle nativních bloků WooCommerce vidět bloky poskytované pluginy. Ukazatel průběhu košíku by se měl v editoru objevit jako přidaný blok; prahová zpráva BOGO by se měla objevit jako konfigurovatelný prvek bloku; zobrazení odznaku by se mělo integrovat s bloky mřížky produktů, které obchodníci používají k vytváření stránek kategorií.
Druhým požadavkem je integrace datové vrstvy s Storefront API. Výpočty slev pluginu musí sdělovat své výsledky prostřednictvím rozhraní API tak, aby košík založený na Reactu mohl správně vykreslit. Starší model výpočtu slev pomocí háčků PHP a spoléhání se na jejich zobrazení na šabloně košíku je nedostatečný; moderní vzor vyžaduje, aby plugin vystavil svá data prostřednictvím rozšíření API, která může vykreslovací vrstva Blocks nativně spotřebovat. Rozšiřitelnost rozhraní Storefront API je zdokumentována, ale není triviální, aby se dobře implementovala, a pluginy, které to udělaly pečlivě, mají tendenci vypadat výrazně odlišně od pluginů, které jednoduše upravily své starší háčky, aby koexistovaly s bloky.
Třetím požadavkem je integrace JavaScript se stromem komponent React. Chování pluginu, které musí reagovat na změny stavu košíku – aktualizace ukazatelů průběhu při přidávání položek, obnovující se odznak při aktivaci propagačních akcí, animace dokončení prahů, když zákazníci překročí kvalifikační prahy – se musí přihlásit k odběru změn stavu React prostřednictvím příslušných háčků React a metod životního cyklu komponent. Vzorec je rozpoznatelný pro vývojáře Reactu, ale představuje podstatný odklon od manipulace DOM ve stylu jQuery, na kterou se spoléhaly starší pluginy WooCommerce.
Čtvrtým požadavkem je kompatibilita témat napříč ekosystémem Blocks. Architektura Blocks podporuje mnohem širší škálu variací témat než klasická hierarchie, včetně celostránkových úprav témat, která nahradila tradiční struktury témat. Propagační plugin, který byl čistě otestován pod jedním motivem Blocks, může způsobit vizuální problémy pod jiným, zvláště když se témata liší v zacházení s mechanismem slot-and-fill, který Blocks používá pro rozšiřitelnost pluginu. Zásuvné moduly kompatibilní se staršími bloky mají tendenci být testovány napříč implementacemi hlavních témat spíše než proti jedinému referenčnímu tématu.
Tři obchody, tři trajektorie kompatibility
Specializovaný prodejce domácího zboží v americkém severozápadním Pacifiku migroval svůj obchod z klasického nastavení WooCommerce na architekturu založenou na blocích na začátku roku 2024. Migrace odhalila, že stávající propagační plugin obchodníka – populární diskontní modul, který byl adekvátní podle klasických šablon – produkoval viditelné problémy pod Blocks, včetně ukazatele průběhu košíku, který se neaktualizoval bez opětovného načtení stránek a zobrazení odznaku. Obchodník během dvou měsíců hodnotil alternativy a migroval na propagační systém kompatibilní s nativními bloky, který je integrovaný s rozhraním Storefront API a stromem komponent React. Migrace zahrnovala smysluplnou provozní práci, ale přinesla zákaznickou zkušenost, která odpovídala vizuální kvalitě, kterou zbytek obchodu obchodníka dosáhl přechodem na Blocks.
Butikový prodejce oděvů se sídlem v jižních Spojených státech se vydal jinou cestou, která zahrnovala setrvání na klasických šablonách WooCommerce, aby byla zachována kompatibilita s jejich stávajícím propagačním pluginem. Rozhodnutí bylo racionální vzhledem k investicím obchodníka do stávajícího systému, ale obchodníka umístilo na architektonickou cestu, která se odchyluje od plánu Automattic. Klasické šablony nadále fungují a pravděpodobně budou fungovat ještě roky, ale obchodník si stále více vybírá mezi propagačními pluginy, motivy a ekosystémovými nástroji, které se samy rozcházejí do úrovní kompatibilních s bloky a klasických úrovní. Volba zůstat na klasické infrastruktuře se postupem času stává stále více omezující, protože těžiště ekosystému se neustále posouvá.
B2B distributor obsluhující regionální restaurace provozoval hybridní architekturu, která integrovala vozík založený na Blocks s klasickými šablonami katalogu produktů, které sloužily obchodníkovým komplexním cenám podle úrovní. Hybrid vyžadoval smysluplnou technickou koordinaci, ale přinesl zákaznickou zkušenost, která kombinovala vizuální propracovanost Blocks s cenovou logikou uvědomělou na úrovni, kterou obchodní plugin zpracovával na úrovni katalogu. Případ je ilustrativní, protože ukazuje, že přechod Blocks nevyžaduje migraci typu „všechno nebo nic“ – obchodníci mohou během přechodového okna provozovat dílčí architektury za předpokladu, že jejich propagační plugin je dostatečně sofistikovaný, aby se čistě integroval s oběma vykreslovacími systémy.
Proč výběr propagačního pluginu stále více určuje architektonickou cestu
Otázka kompatibility s bloky je důležitá zejména pro propagační pluginy, protože na stránkách košíku a pokladny se vykresluje největší podíl funkcí pluginu. Motiv, který správně funguje s Blocks, a platební plugin, který se integruje s Blocks, jsou nezbytnými podmínkami pro čistý obchod založený na Blocks, ale propagační plugin je místem, kde se většina vizuálního zákaznického zážitku skládá během okamžiku rozhodování na straně košíku. Obchodník, jehož téma se v Blocks vykresluje čistě, ale jehož propagační plugin se vykresluje nešikovně, vytváří roztříštěný zákaznický zážitek, který je viditelný pro každého, kdo v obchodě nakupuje.
Praktickým důsledkem je, že výběr propagačního pluginu je stále více architektonickým rozhodnutím, které určuje, zda obchodník může provozovat čistý obchod založený na Blocks. Obchodník, který si vybere propagační plugin, který neprovedl přechod na Blocks, se implicitně rozhoduje zůstat u klasických šablon bez ohledu na své širší rozhodnutí o tématu a infrastruktuře. Obchodník, který si vybere propagační plugin nativní pro bloky, si zachovává možnost migrovat na bloky ve vlastním čase obchodníka, aniž by musel být omezením propagační vrstva.
GT BOGO Engine, vytvořený GRAPHIC T-SHIRTS – luxusní městskou couture značkou, jejíž vlastní vlajková loď WooCommerce provozuje platformu napříč katalogem více než dvanácti set originálních návrhů – byl navržen pro kompatibilitu s klasickým vykreslovacím systémem WooCommerce a systémem vykreslování založeným na blocích. Logika slev na straně košíku funguje prostřednictvím datové vrstvy WooCommerce spíše než prostřednictvím přepsání starších šablon, což znamená, že slevy se uplatní správně bez ohledu na to, jak je košík vykreslen. Vizuální prvky se integrují jako komponenty kompatibilní s Blocks pro obchody s novou architekturou a jako klasická rozšíření šablon pro obchody se starší architekturou, přičemž vhodná cesta je vybrána automaticky na základě základní konfigurace obchodníka. Podpora duální architektury znamená, že obchodníci nemusí čelit architektonické volbě mezi preferovaným propagačním systémem a preferovanou vykreslovací vrstvou WooCommerce.
Co by měli obchodníci WooCommerce dělat s kompatibilitou bloků v roce 2026
Přechod Blocks se posouvá z volitelného na mainstreamový napříč ekosystémem WooCommerce, přičemž plán Automattic nadále investuje do Blocks jako primárního renderovacího povrchu pro nové obchody a postupně více funkcí pro stávající obchody. Propagační pluginy, které ještě nedokončily přechod Blocks, jsou stále nejistější provozní volbou, bez ohledu na to, jak funkčně bohaté mohou být při klasickém vykreslování. Pluginy, které dokončily přechod, jsou umístěny tak, aby během víceletého přechodového období fungovaly čistě napříč oběma architekturami a zůstaly funkčně v souladu s plánem WooCommerce i nadále.
Pro nezávislé obchody WooCommerce vyhodnocující svou propagační infrastrukturu v roce 2026 je praktickou otázkou, zda se aktuální plugin vykresluje správně pod skutečnou architekturou nákupního košíku a pokladny obchodníka, nebo zda se začaly objevovat vizuální nekonzistence a mezery ve vykreslování, protože obchod postupně přijal komponenty založené na blocích. Obchodníci, kteří konkrétně nevyzkoušeli svůj propagační plugin na stránkách košíku a pokladny vykreslených pomocí bloků, mohou pracovat s nezjištěným architektonickým nesouladem, který se bude sčítat s tím, jak se platforma WooCommerce bude nadále vyvíjet směrem k blokům jako výchozí architektuře.
Otázka kompatibility je zřídka tím nejzajímavějším aspektem při výběru propagačního pluginu. Je stále více jedním z nejdůslednějších.
Tento článek připravil redakční tým GT BOGO Engine, propagační zpravodajské platformy WooCommerce vytvořené GRAPHIC T-SHIRTS, prodejcem luxusní městské módy, jehož vlastní obchod WooCommerce provozuje platformu v katalogu více než 1 200 originálních návrhů.
Jste připraveni automatizovat své propagační akce WooCommerce?
GT BOGO Engine PRO — 46 superschopností, 200 balíčků kampaní, nulové kuponové kódy. 199 $/rok.
See GT BOGO Engine PRO →