@wocart/storefront / index / AbandonedCheckoutInputSchema
Variable: AbandonedCheckoutInputSchema
constAbandonedCheckoutInputSchema:z.ZodObject<{communeId:z.ZodOptional<z.ZodString>;communeName:z.ZodOptional<z.ZodString>;customerName:z.ZodString;deliveryType:z.ZodOptional<z.ZodEnum<{home:"home";stop_desk:"stop_desk"; }>>;fbc:z.ZodOptional<z.ZodString>;fbp:z.ZodOptional<z.ZodString>;items:z.ZodOptional<z.ZodArray<z.ZodObject<{productId:z.ZodString;productName:z.ZodString;quantity:z.ZodNumber;unitPrice:z.ZodNumber;variantId:z.ZodOptional<z.ZodNullable<z.ZodString>>;variantLabel:z.ZodOptional<z.ZodNullable<z.ZodString>>; },z.core.$strip>>>;phone:z.ZodString;price:z.ZodOptional<z.ZodNumber>;productId:z.ZodOptional<z.ZodString>;productName:z.ZodOptional<z.ZodString>;sessionId:z.ZodString;variantId:z.ZodOptional<z.ZodNullable<z.ZodString>>;variantLabel:z.ZodOptional<z.ZodNullable<z.ZodString>>;wilayaId:z.ZodOptional<z.ZodNumber>;wilayaName:z.ZodOptional<z.ZodString>; },z.core.$strip>
Runtime schema for the optional abandoned-checkout signal — the body
orders.abandoned.upsert() accepts.
This is the contract, not a convenience: a theme's abandoned-checkout route validates its body with THIS schema rather than a hand-copied twin. Bounds match the server's, with two deliberate client-side differences:
communeIdis capped at 200 (the server has no bound; a commune id isc-01-001, so nothing legitimate is refused and the proxy body stays bounded).variantId/variantLabelaccept an explicitnullas well as omission; the server's top-level fields take omission only, and the tracker strips nulls, so nothing a browser sends reaches that difference.