Paste a shopify webhook JSON payload and get a Zod z.object schema you can run inside your handler. Same shape walker as the TypeScript-mode page, but the output is a runtime-validated schema with .optional() on missing fields and z.union for nullables.
Shopify webhook payloads change as the merchant enables apps, fulfillment services, or markets — a parse at /webhooks/orders-create catches a missing line_items[0].variant_id (yes, this happens) before the rest of the handler tries to charge the wrong SKU.
Shopify handlers are usually long-running on Heroku, Render, or Fly — Zod's slightly larger bundle is a non-issue and you get the chained .refine() / .transform() ergonomics for the frequent post-validation business rules (e.g. enforcing financial_status in a fixed enum). The output is a copy-paste-runnable z.object using only standard Zod primitives (z.string, z.number, z.array, z.union, .optional). Drop it into your handler, run schema.parse(body), and the rest of your code consumes a strongly typed value with no ambient unknowns.