Shopify Next Generation Events: granulární webhooky s GraphQL
Next Generation Events v Shopify Admin GraphQL API nově definují kontrakt mezi vaším systémem a Shopify. Přinášejí granulární kontrolu nad triggery, payloady a změněnými poli – klíčové pro vysokoobjemové integrace.
Problém tradičních webhooků Shopify
Každý, kdo postavil ERP nebo PIM integraci na Shopify, zná tento problém: pokaždé, když se aktualizuje produkt, webhook odešle celý payload – i když se změnil pouze irelevantní tag nebo metafield, který přijímající systém vůbec nepotřebuje.
To způsobuje tři konkrétní neefektivity:
- Vysoký objem nedoručitelných událostí, které zbytečně zatěžují síťové i výpočetní prostředky
- Strukturální over-fetching, kdy se při každé události přenášejí nepotřebná pole
- Aplikační diff logika, nutná k zjištění, co se oproti předchozímu stavu skutečně změnilo
Next Generation Events, nyní dostupné v developer preview na Shopify Admin GraphQL API, řeší tyto tři problémy přímo.
Tři dimenze granulární kontroly
Nový systém zavádí kontrolu na třech odlišných úrovních: co spustí doručení, co payload obsahuje a co se změnilo.
1. Triggery na úrovni polí
S Next Generation Events lze definovat subscription na konkrétní cestu, například product.variants.price. Subscription nakonfigurovaná tímto způsobem se nespustí při změně názvu, tagů ani jiných polí – aktivuje se výhradně tehdy, když se změní cena variant.
To eliminuje kategorii nežádoucích doručení přímo u zdroje, bez nutnosti filtrování na straně aplikace.
2. Vlastní payload přes GraphQL dotaz
Místo pevného payloadu určeného Shopify si v novém systému sami definujete GraphQL dotaz, který každou doručenou událost naplní. Výsledkem je, že každá událost obsahuje přesně ta pole potřebná ke zpracování – žádná nadbytečná data a žádné dodatečné API volání pro doplnění chybějících informací.
Pro integrace, které dnes používají vzor webhook + obohacující API volání, to znamená čisté snížení počtu požadavků na Shopify API.
3. Pole fields_changed
Každá doručená událost nyní obsahuje pole fields_changed s explicitním výčtem změněných cest, včetně úplné cesty a ID entity. Tím se stává jakákoli diff logika porovnávající předchozí stav v aplikačním kódu zbytečnou.
Místo udržování lokálního snímku entity a výpočtu diffu při každé události může přijímající systém přímo přečíst, která pole se změnila, a podle toho reagovat.
query_filter: omezení nedoručitelných událostí
Dalším kontrolním mechanismem je query_filter, který umožňuje filtrovat doručení podle aktuálního stavu entity v okamžiku události. Typický příklad: doručovat události pouze pro produkty se statusem ACTIVE a ignorovat koncepty i archivované produkty.
V kombinaci s triggery na úrovni polí umožňuje query_filter vytvářet velmi přesné subscription, které snižují provoz na přijímacích endpointech na zlomek dnešního objemu.
Config as code pomocí shopify.app.toml
Subscription Next Generation Events se konfigurují přímo v souboru shopify.app.toml, společně s ostatní konfigurací aplikace. To znamená, že definice událostí je:
- Verzovatelná v repozitáři projektu
- Přezkoumatelná v procesu code review
- Reprodukovatelná v různých prostředích bez manuální konfigurace
Pro týmy spravující více prostředí (vývoj, staging, produkce) nebo praktikující GitOps tento přístup odstraňuje závislost na ručně spravovaných konfiguracích v dashboardu Shopify.
Praktický dopad pro ERP a PIM integrace
Pro vysokoobjemové katalogy má součet těchto změn měřitelný dopad na výkon i náklady:
- Snížení počtu přijatých doručení díky přesným triggerům a
query_filter - Snížení průměrné velikosti payloadů díky vlastním GraphQL dotazům
- Eliminace obohacujících API volání po doručení události
- Zjednodušení aplikačního kódu díky
fields_changed
Integrace, které dnes zpracovávají tisíce událostí denně s nízkou mírou akceschopnosti, z této architektury profitují nejvíce.
Doporučení pro ty, kdo začínají dnes
Systém je v současnosti v developer preview na unstable API Shopify, s podporou témat Product a Customer. Než se rozhodnete pro jeho nasazení:
- Analyzujte svůj aktuální provoz: identifikujte webhooky s vysokým objemem a nízkou užitečností payloadu – to jsou prioritní kandidáti na migraci
- Testujte v preview: validujte očekávané chování na tématech Product a Customer, která jsou dnes dostupná
- Nahraďte diff logiku: proveďte refactoring existujících consumerů s využitím
fields_changed - Nakonfigurujte query_filter: definujte kritéria filtrování podle aktuálního stavu a eliminujte nedoručitelné události
- Plánujte migraci: API je na unstable větvi a není vhodné pro produkci bez plánu migrace na stabilní verzi
Pokud stavíte nebo rozvíjíte vlastní integrace na Shopify Plus a chcete posoudit architekturu nejvhodnější pro váš objem a požadavky, informace o našich vývojářských službách najdete na stránce věnované Shopify vývoji.
Závěr
Next Generation Events nejsou jen vylepšením výkonu webhooků – nově definují model integrace se Shopify a přesouvají granulární kontrolu na stranu vývojáře. Pro ty, kdo budují seriózní integrace na vysokoobjemových katalozích, stojí za to prozkoumat tento vzor již nyní, dříve než dosáhne stability a stane se očekávaným standardem.
Pubblicato originariamente su LinkedIn
Ti servono sviluppatori senior Shopify, React o WordPress?
Najít talent