S velkou radostí oznamujeme vydání nové verze Shopsys Platform 14.0.0. Tato aktualizace je přímo nabitá inovacemi, na kterých se podílelo 12 vývojářů. Troufáme si tvrdit, že se jedná o jednu z nejvýznamnějších verzí dosud.
Zaměřili jsme se na zpracování zpětné vazby z realizovaných projektů, zejména ohledně práce na našem relativně mladém JavaScriptovém storefrontu. Ani na backendu jsme ale nezaháleli a kompletně jsme přepracovali a zjednodušili systém přepočtů produktů a exportů dat do Elasticsearch. Tyto procesy jsou nyní zpracovávány asynchronně pomocí RabbitMQ. V neposlední řadě jsme se věnovali implementaci funkcionalit, které zákaznici často vyžadují, např. personalizované vyhledávání pomocí služby Luigi’s Box.
Nejvýznamnější novinky v Shopsys Platform 14
Skeleton loadery na storefrontu (#2863, #2906)
Tato změna přináší znatelně příjemnější zážitek při prohlížení webu. Uživateli se při přechodu na jakoukoliv stránku okamžitě zobrazí tzv. skeleton loader, který naznačuje rozložení stránky ještě před načtením skutečných dat.
Vyhledávání pomocí Luigi’s Box (#multiple pull requests)
Luigi’s Box je služba poskytující personalizované našeptávání, hledání, filtrování a doporučování (nejen) produktů na eshopu. Integrací tohoto nástroje do platformy (ve formě vypínacího modulu) jsme vyslyšeli přání velkého množství zákazníků, kteří na svých projektech personalizaci poptávají.
Hreflang (#2970)
Hreflang je důležitá informace pro roboty, která má velký význam v oblasti SEO. Tento meta atribut obsahuje informaci o jazykových mutacích stejné stránky na jiných doménách. V administraci eshopu je nyní možné nastavit, které domény jsou si navzájem jazykovými alternativami, a na základě tohoto nastavení se pak přidávají hreflang meta tagy do domovské stránky, detailu produktu, výpisu kategorie a dalších.
Logování změn nad objednávkou (#2980)
Nově je možné sledovat historii změn objednávky (a dalších entit). Administrátor se tak jednoduše dostane k informaci, kdo, kdy a jakým způsobem objednávku změnil.
GoPay – opakování a změna platby (#2952)
Pokud zákazník platící přes GoPay zavře platební bránu nebo platba skončí chybou, následně na stránce s nedokončenou platbou uvidí možnost platbu opakovat nebo změnit na jinou. V zákaznické sekci pak zákazník vidí u svých objednávek stav platby a i zde má možnost platbu opakovat nebo změnit.
Naposledy navštívené produkty (#2716)
Panel s naposledy navštívenými produkty na každé stránce umožňuje uživatelům rychle se vrátit k produktům, které nedávno prohlíželi. Toto zvyšuje uživatelské pohodlí a usnadňuje navigaci napříč webem.
Asynchronní přepočty a export produktových dat (#2917)
Došlo k významnému zjednodušení celého systému přepočtů viditelnosti a dostupnosti produktů. Vývojář má nyní přímočarou cestu, jak dostat produkt do konzistentního stavu pro prezentaci na storefrontu. Přepočty a export produktových dat jsou nyní zpracovávány asynchronně pomocí RabbitMQ. Přidali jsme i prioritizaci, takže produkty upravené administrátorem jsou ve frontě zpracovány přednostně před jinými změnami způsobenými např. přenosem z informačního systému.
Zavedení frontovacího systému nám navíc otevřelo dveře k využití síly asynchronního zpracování i v jiných oblastech, např. pro odesílání emailů nebo exporty objednávek do služby Heureka. Pro více informací, jak pracovat s frontami, mužete navštívit naši dokumentaci.
imgProxy pro práci s obrázky (#2924)
Implementace imgProxy přináší vývojářům takřka nekonečné možnosti manipulace s obrázky s minimálním úsilím. V základu používáme imgProxy pro dynamické změny velikosti, kdy už není potřeba dopředu definovat používané rozměry obrázků na backendu a storefront si tak může říct o obrázek v libovolné velikosti. Díky imgProxy jsou ale možné další manipulace s obrázky, jako je např. nastavení komprese a kvality nebo přidání vodoznaku.
Nová galerie obrázků (#2995)
Původní řešení pro galerii obrázků na detailu produktu nebylo kompatibilní s výše popsanou imgProxy pro práci s obrázky. Vytvořili jsme tedy vlastní komponentu, kterou mají vývojaři plně pod kontrolou. Nová galerie tak nyní může naplno využívat optimalizovaných obrázků a navíc je načítána dynamicky, což vedlo k další optimalizaci stránky detailu produktu.
Povýšení na PHP 8.3 (#3002)
Nejnovější verze PHP přináší další optimalizace a umožňuje nám psát kvalitnější kód s využitím vylepšení jazyka jako je např. podpora typování konstant nebo atribut #[\Override].
Cypress testy (#3023)
Cypress využíváme pro testování storefrontu. V nové verzi jsme přidali množství nových testů, které pokrývají kritické části aplikace a maximálně jsme zjednodušili způsob lokálního spouštění testů. Navíc jsme přidali vizuální regresní testy, které využívají snímky obrazovky. Takové testy pak vývojáře na projektu dokáží upozornit na nechtěné změny v samotném vzhledu stránek. Nezapomeňte omrknout naši dokumentaci, která práci s tímto nástrojem podrobně vysvětluje.
Zpracování chyb na storefrontu (#2990, #3018, #2871)
Zvláštní pozornost jsme věnovali práci s chybami v rámci JS storefrontu. Přidali jsme kontextové informace a možnost nastavit výřečnost chyb, aby měl vývojář v případě chyby dostatek relevantních informací pro její vyřešení. Způsob práce s chybami byl také řádně zdokumentován.
Univerzální produktové seznamy (#2901)
Přepracovali jsme původní funkce porovnávání a oblíbených produktů do jedné univerzální implementace, což odstranilo duplicity v kódu a do budoucna zjednodušilo údržbu. Zároveň jsme reflektovali požadavky z implementovaných projektů, takže produktové seznamy lze nyní omezit pouze pro přihlášené uživatele, případně je možné jednoduše přidat více seznamů stejného typu.
Otevírací hodiny prodejen (#2977)
Zavedli jsme knihovnu spatie/opening-hours, která poskytuje dobře použitelné API pro práci s otevíracími hodinami prodejen. Díky tomu je nyní jednodušší zjistit, zda má prodejna v daný okamžik otevřeno nebo implementovat např. libovolný počet otevřených intervalů v rámci jednoho dne. Další novinkou je to, že každá doména může nyní mít nastavenou vlastní časovou zónu, která je při zobrazování časových údajů zohledněna na storefrontu.v
Symfony toolbar na JS storefrontu (#2997)
Symfony Profiler, který znají backendoví vývojaři, je nyní v omezené podobě dostupný i na JS storefrontu, a je tak možné se rovnou prokliknout na profily jednotlivých XHR požadavků.
Vylepšené spouštění XML feedů (#2922)
Generování XML feedů lze nyní plánovat podobným způsobem jako spouštění CRON modulů. Pro každý feed může nově vývojář konfigurovat povolené domény a přesný čas, ve který se má feed vygenerovat. Administrátor má také nově možnost vyvolat generování feedu i mimo nakonfigurovaný čas. Podrobné informace o možnostech nastavení generování XML feedů nastudujete v naší dokumentaci.
Výše jsou popsány pouze některé z hlavních změn a novinek, které přináší nová verze Shopsys Platform. Kompletní seznam změn je k dispozici na našem GitHubu a mnoho užitečných informací najdete v naší dokumentaci. Pro další podrobnosti o platformě navštivte webové stránky Shopsys Platform. Pokud máte jakékoliv dotazy nebo návrhy, neváhejte nás kontaktovat prostřednictvím našeho veřejného Slacku nebo diskuzí na GitHub Discussions. Vaše zpětná vazba je pro nás klíčová.
Čtěte také