Master Feed — vlastný WooCommerce feed pre Mergado a Heureku
Vlastný WordPress/WooCommerce plugin, ktorý generuje produktový feed so správnymi hlavnými kategóriami. Rieši problém, kde produkty odchádzali do porovnávačov s nesprávnou kategóriou a výkon kampaní tým ticho trpel.
- Klient
- Vlastný projekt — použiteľný aj pre ďalšie WooCommerce e-shopy s Mergadom
- Rola
- Samostatne (diagnostika, návrh a implementácia)
Použité technológie
- WordPress
- WooCommerce
- PHP 8 (PSR-4)
- XMLWriter streaming
- WP Cron
- Mergado / Heureka feed spec
Dopad
- Čo umožňuje
- Produkty vo feede dostávajú správnu hlavnú kategóriu. Porovnávače a reklamné systémy majú lepší vstup a klient neprichádza o výkon kvôli zle zaradeným produktom.
Diagnostika bugu v Mergado Pack
Súbor: mergado-marketing-pack/src/Feed/Product/ProductFeed.php:773-838
Pôvodný plugin vyberal ako hlavnú kategóriu najhlbšiu vetvu kategórie, nie hlavnú kategóriu nastavenú v SEO plugine. Pri produktoch s viacerými kategóriami to znamenalo, že vo feede skončila nesprávna kategória.
Dôsledok pre klienta: Heureka alebo Google Shopping mohli produkt zaradiť zle. Nebola to viditeľná chyba s hláškou, ale tichý problém, ktorý sa prejaví horším výkonom.
Master Feed plugin
Náhrada za časť pôvodného pluginu, ktorá generuje feed. Výsledkom je vlastný plugin pod kontrolou klienta.
Čo plugin robí
- Zoberie produkty z WooCommerce
- Určí správnu hlavnú kategóriu podľa SEO pluginu
- Vygeneruje XML feed pre Mergado/Heureku
- Uloží ho ako statický súbor, aby sa negeneroval nanovo pri každom stiahnutí
- Vie sa spúšťať automaticky aj ručne z administrácie
Optimalizácie
- Feed sa zapisuje postupne, aby plugin zbytočne nespotreboval veľa pamäte
- Výsledný feed je statický súbor, takže server ho vie rýchlo odovzdať Heureke alebo Mergadu
- Súbor sa prepne až po kompletnom vygenerovaní, aby porovnávač nikdy nedostal napoly zapísaný feed
- Pri hromadnej úprave produktov sa feed negeneruje 100-krát, ale iba raz po dokončení zmien
Bezpečnosť
- Ručné spustenie je dostupné iba používateľom s oprávnením spravovať WooCommerce
- Výstupy v administrácii sú ošetrené
- Adresár s feedom nemá verejný výpis súborov
- Plugin nepoužíva rizikové techniky ako
eval
Čo som sa naučil
- Nie každá chyba sa prejaví hláškou. Niekedy systém funguje, ale posiela zlé dáta.
- Ak plugin neponúka bezpečný spôsob úpravy, pri vážnom probléme je lepšie postaviť vlastný plugin než upravovať cudzí kód, ktorý sa prepíše aktualizáciou.
- Pri feedoch je lepšie generovať statický súbor a až hotový ho sprístupniť. Je to rýchlejšie a bezpečnejšie.