@chordcommerce/analytics
Version:
Chord Commerce event tracking
1,337 lines (1,336 loc) • 63.8 kB
JavaScript
// Generated by ts-to-zod
import { z } from 'zod';
export const cartSharedProductSchema = z.record(z.any()).and(z.object({
name: z.string(),
product_id: z.string(),
}));
export const cartViewedProductSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
brand: z.string().optional(),
bundle: z.boolean().optional(),
category: z.string().optional(),
coupon: z.string().optional(),
description: z.string().optional(),
image_url: z.string().optional(),
line_item_id: z.string().optional(),
name: z.string(),
option_values: z.array(z.string()).optional(),
position: z.number().optional(),
price: z.number().optional(),
product_id: z.string(),
quantity: z.number().optional(),
sku: z.string().optional(),
slug: z.string().optional(),
url: z.string().optional(),
variant: z.string().optional(),
}));
export const checkoutAbandonedProductSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
brand: z.string().optional(),
bundle: z.boolean().optional(),
category: z.string().optional(),
coupon: z.string().optional(),
description: z.string().optional(),
image_url: z.string().optional(),
line_item_id: z.string().optional(),
name: z.string().optional(),
option_values: z.array(z.string()).optional(),
position: z.number().optional(),
price: z.number().optional(),
product_id: z.string().optional(),
quantity: z.number().optional(),
sku: z.string().optional(),
slug: z.string().optional(),
url: z.string().optional(),
variant: z.string().optional(),
}));
export const checkoutStartedProductSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
brand: z.string().optional(),
bundle: z.boolean().optional(),
category: z.string().optional(),
coupon: z.string().optional(),
description: z.string().optional(),
image_url: z.string().optional(),
line_item_id: z.string().optional(),
name: z.string(),
option_values: z.array(z.string()).optional(),
position: z.number().optional(),
price: z.number().optional(),
product_id: z.string(),
quantity: z.number().optional(),
sku: z.string().optional(),
slug: z.string().optional(),
url: z.string().optional(),
variant: z.string().optional(),
}));
export const checkoutStepCompletedSchema = z.record(z.any()).and(z.object({
checkout_id: z.string().optional(),
payment_method: z.string().optional(),
shipping_method: z.string().optional(),
step: z.number(),
}));
export const checkoutStepViewedSchema = z.record(z.any()).and(z.object({
checkout_id: z.string().optional(),
payment_method: z.string().optional(),
shipping_method: z.string().optional(),
step: z.number(),
}));
export const collectionClickedSchema = z.record(z.any()).and(z.object({
brand: z.string().optional(),
collection_id: z.string().optional(),
description: z.string().optional(),
image_url: z.string().optional(),
slug: z.string().optional(),
title: z.string().optional(),
url: z.string().optional(),
}));
export const couponAppliedSchema = z.record(z.any()).and(z.object({
cart_id: z.string().optional(),
coupon_id: z.string().optional(),
coupon_name: z.string().optional(),
discount: z.number().optional(),
order_id: z.string().optional(),
}));
export const couponDeniedSchema = z.record(z.any()).and(z.object({
cart_id: z.string().optional(),
coupon_id: z.string().optional(),
coupon_name: z.string().optional(),
order_id: z.string().optional(),
reason: z.string().optional(),
}));
export const couponEnteredSchema = z.record(z.any()).and(z.object({
cart_id: z.string().optional(),
coupon_id: z.string().optional(),
coupon_name: z.string().optional(),
order_id: z.string().optional(),
}));
export const couponRemovedSchema = z.record(z.any()).and(z.object({
cart_id: z.string().optional(),
coupon_id: z.string().optional(),
coupon_name: z.string().optional(),
discount: z.number().optional(),
order_id: z.string().optional(),
}));
export const emailCapturedSchema = z.record(z.any()).and(z.object({
email: z.string().optional(),
placement_component: z.string().optional(),
placement_page: z.string().optional(),
}));
export const giftCardAppliedSchema = z.record(z.any()).and(z.object({
gift_card_id: z.string().optional(),
gift_card_last_characters: z.string().optional(),
}));
export const giftCardDeniedSchema = z.record(z.any()).and(z.object({
gift_card_last_characters: z.string().optional(),
reason: z.string().optional(),
}));
export const giftCardEnteredSchema = z.record(z.any()).and(z.object({
gift_card_last_characters: z.string().optional(),
}));
export const giftCardRemovedSchema = z.record(z.any()).and(z.object({
gift_card_id: z.string().optional(),
gift_card_last_characters: z.string().optional(),
}));
export const itemRestockedSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
backorderable: z.boolean().optional(),
brand: z.string().optional(),
bundle: z.boolean().optional(),
category: z.string().optional(),
coupon: z.string().optional(),
currency: z.string().optional(),
description: z.string().optional(),
email: z.string().optional(),
image_url: z.string().optional(),
name: z.string().optional(),
option_values: z.array(z.string()).optional(),
position: z.number().optional(),
price: z.number().optional(),
product_id: z.string().optional(),
quantity: z.number().optional(),
sku: z.string().optional(),
slug: z.string().optional(),
stock_request_id: z.string().optional(),
total_on_hand: z.number().optional(),
url: z.string().optional(),
variant: z.string().optional(),
variant_id: z.string().optional(),
}));
export const loginStartedSchema = z.record(z.any()).and(z.object({
email: z.string().optional(),
}));
export const navigationClickedSchema = z.record(z.any()).and(z.object({
category: z.string().optional(),
label: z.string().optional(),
navigation_placement: z.string().optional(),
navigation_title: z.string().optional(),
navigation_url: z.string().optional(),
}));
export const orderCancelledProductSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
brand: z.string().optional(),
bundle: z.boolean().optional(),
bundle_size: z.number().optional(),
category: z.string().optional(),
coupon: z.string().optional(),
cross_sold_quantity: z.number().optional(),
description: z.string().optional(),
image_url: z.string().optional(),
line_item_id: z.string().optional(),
name: z.string(),
option_values: z.array(z.string()).optional(),
position: z.number().optional(),
price: z.number(),
product_id: z.string(),
quantity: z.number(),
sku: z.string(),
slug: z.string().optional(),
url: z.string().optional(),
variant: z.string().optional(),
variant_metadata: z.record(z.any()).optional(),
}));
export const orderCancelledShippingMethodDetailsSchema = z.record(z.any()).and(z.object({
shipping_code: z.string().optional(),
shipping_method: z.string().optional(),
}));
export const orderCompletedProductSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
brand: z.string().optional(),
bundle: z.boolean().optional(),
bundle_size: z.number().optional(),
category: z.string().optional(),
coupon: z.string().optional(),
cross_sold_quantity: z.number().optional(),
description: z.string().optional(),
image_url: z.string().optional(),
line_item_id: z.string().optional(),
name: z.string(),
option_values: z.array(z.string()).optional(),
position: z.number().optional(),
price: z.number(),
product_id: z.string(),
quantity: z.number(),
revenue: z.number(),
sku: z.string(),
slug: z.string().optional(),
url: z.string().optional(),
variant: z.string().optional(),
variant_metadata: z.record(z.any()).optional(),
}));
export const orderCompletedShippingMethodDetailsSchema = z.record(z.any()).and(z.object({
shipping_code: z.string().optional(),
shipping_method: z.string().optional(),
}));
export const orderRefundedProductSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
brand: z.string().optional(),
bundle: z.boolean().optional(),
bundle_size: z.number().optional(),
category: z.string().optional(),
coupon: z.string().optional(),
cross_sold_quantity: z.number().optional(),
description: z.string().optional(),
image_url: z.string().optional(),
line_item_id: z.string().optional(),
name: z.string(),
option_values: z.array(z.string()).optional(),
position: z.number().optional(),
price: z.number(),
product_id: z.string(),
quantity: z.number(),
sku: z.string(),
slug: z.string().optional(),
url: z.string().optional(),
variant: z.string().optional(),
variant_metadata: z.record(z.any()).optional(),
}));
export const orderRefundedShippingMethodDetailsSchema = z.record(z.any()).and(z.object({
shipping_code: z.string().optional(),
shipping_method: z.string().optional(),
}));
export const orderUpdatedProductSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
brand: z.string().optional(),
bundle: z.boolean().optional(),
bundle_size: z.number().optional(),
category: z.string().optional(),
coupon: z.string().optional(),
cross_sold_quantity: z.number().optional(),
description: z.string().optional(),
image_url: z.string().optional(),
line_item_id: z.string().optional(),
name: z.string(),
option_values: z.array(z.string()).optional(),
position: z.number().optional(),
price: z.number(),
product_id: z.string(),
quantity: z.number(),
sku: z.string(),
slug: z.string().optional(),
url: z.string().optional(),
variant: z.string().optional(),
variant_metadata: z.record(z.any()).optional(),
}));
export const orderUpdatedShippingMethodDetailsSchema = z.record(z.any()).and(z.object({
shipping_code: z.string().optional(),
shipping_method: z.string().optional(),
}));
export const passwordResetCompletedSchema = z.record(z.any()).and(z.object({
email: z.string().optional(),
user_id: z.string().optional(),
}));
export const passwordResetStartedSchema = z.record(z.any()).and(z.object({
email: z.string().optional(),
}));
export const paymentInfoEnteredProductSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
brand: z.string().optional(),
bundle: z.boolean().optional(),
category: z.string().optional(),
coupon: z.string().optional(),
description: z.string().optional(),
image_url: z.string().optional(),
line_item_id: z.string().optional(),
name: z.string().optional(),
option_values: z.array(z.string()).optional(),
position: z.number().optional(),
price: z.number().optional(),
product_id: z.string().optional(),
quantity: z.number().optional(),
sku: z.string().optional(),
slug: z.string().optional(),
url: z.string().optional(),
variant: z.string().optional(),
}));
export const productAddedProductSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
brand: z.string().optional(),
bundle: z.boolean().optional(),
category: z.string().optional(),
coupon: z.string().optional(),
description: z.string().optional(),
image_url: z.string().optional(),
line_item_id: z.string().optional(),
name: z.string(),
option_values: z.array(z.string()).optional(),
position: z.number().optional(),
price: z.number(),
product_id: z.string(),
quantity: z.number(),
sku: z.string().optional(),
slug: z.string().optional(),
url: z.string().optional(),
variant: z.string().optional(),
}));
export const productAddedToWishlistSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
brand: z.string().optional(),
bundle: z.boolean().optional(),
category: z.string().optional(),
coupon: z.string().optional(),
currency: z.string().optional(),
description: z.string().optional(),
image_url: z.string().optional(),
name: z.string(),
option_values: z.array(z.string()).optional(),
position: z.number().optional(),
price: z.number().optional(),
product_id: z.string(),
quantity: z.number().optional(),
sku: z.string().optional(),
slug: z.string().optional(),
url: z.string().optional(),
value: z.number().optional(),
variant: z.string().optional(),
wishlist_id: z.string().optional(),
wishlist_name: z.string().optional(),
}));
export const productClickedProductSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
brand: z.string().optional(),
bundle: z.boolean().optional(),
category: z.string().optional(),
coupon: z.string().optional(),
description: z.string().optional(),
image_url: z.string().optional(),
line_item_id: z.string().optional(),
name: z.string(),
option_values: z.array(z.string()).optional(),
position: z.number().optional(),
price: z.number().optional(),
product_id: z.string(),
quantity: z.number().optional(),
sku: z.string().optional(),
slug: z.string().optional(),
url: z.string().optional(),
variant: z.string().optional(),
}));
export const productDetailsClickedSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
brand: z.string().optional(),
bundle: z.boolean().optional(),
category: z.string().optional(),
coupon: z.string().optional(),
description: z.string().optional(),
image_url: z.string().optional(),
name: z.string().optional(),
option_values: z.array(z.string()).optional(),
position: z.number().optional(),
price: z.number().optional(),
product_id: z.string().optional(),
quantity: z.number().optional(),
sku: z.string().optional(),
slug: z.string().optional(),
title: z.string().optional(),
url: z.string().optional(),
variant: z.string().optional(),
}));
export const filterSchema = z.record(z.any()).and(z.object({
type: z.string().optional(),
value: z.string().optional(),
}));
export const productListFilteredProductSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
brand: z.string().optional(),
bundle: z.boolean().optional(),
category: z.string().optional(),
coupon: z.string().optional(),
currency: z.string().optional(),
description: z.string().optional(),
image_url: z.string().optional(),
name: z.string(),
option_values: z.array(z.string()).optional(),
position: z.number().optional(),
price: z.number().optional(),
product_id: z.string(),
quantity: z.number().optional(),
sku: z.string().optional(),
slug: z.string().optional(),
url: z.string().optional(),
variant: z.string().optional(),
}));
export const sortSchema = z.record(z.any()).and(z.object({
type: z.string().optional(),
value: z.string().optional(),
}));
export const productListViewedProductSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
brand: z.string().optional(),
bundle: z.boolean().optional(),
category: z.string().optional(),
coupon: z.string().optional(),
currency: z.string().optional(),
description: z.string().optional(),
image_url: z.string().optional(),
name: z.string(),
option_values: z.array(z.string()).optional(),
position: z.number().optional(),
price: z.number().optional(),
product_id: z.string(),
quantity: z.number().optional(),
sku: z.string().optional(),
slug: z.string().optional(),
url: z.string().optional(),
variant: z.string().optional(),
}));
export const productRemovedProductSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
brand: z.string().optional(),
bundle: z.boolean().optional(),
category: z.string().optional(),
coupon: z.string().optional(),
description: z.string().optional(),
image_url: z.string().optional(),
line_item_id: z.string().optional(),
name: z.string(),
option_values: z.array(z.string()).optional(),
position: z.number().optional(),
price: z.number(),
product_id: z.string(),
quantity: z.number(),
sku: z.string().optional(),
slug: z.string().optional(),
url: z.string().optional(),
variant: z.string().optional(),
}));
export const productRemovedFromWishlistSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
brand: z.string().optional(),
bundle: z.boolean().optional(),
category: z.string().optional(),
coupon: z.string().optional(),
description: z.string().optional(),
image_url: z.string().optional(),
name: z.string(),
option_values: z.array(z.string()).optional(),
position: z.number().optional(),
price: z.number().optional(),
product_id: z.string(),
quantity: z.number().optional(),
sku: z.string().optional(),
slug: z.string().optional(),
url: z.string().optional(),
variant: z.string().optional(),
wishlist_id: z.string().optional(),
wishlist_name: z.string().optional(),
}));
export const productReviewedSchema = z.record(z.any()).and(z.object({
product_id: z.string(),
rating: z.string().optional(),
review_body: z.string().optional(),
review_id: z.string().optional(),
}));
export const productSharedSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
brand: z.string().optional(),
bundle: z.boolean().optional(),
category: z.string().optional(),
coupon: z.string().optional(),
description: z.string().optional(),
image_url: z.string().optional(),
name: z.string(),
option_values: z.array(z.string()).optional(),
position: z.number().optional(),
price: z.number().optional(),
product_id: z.string(),
quantity: z.number().optional(),
recipient: z.string().optional(),
share_message: z.string().optional(),
share_via: z.string().optional(),
sku: z.string().optional(),
slug: z.string().optional(),
url: z.string().optional(),
variant: z.string().optional(),
}));
export const productViewedProductSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
brand: z.string().optional(),
bundle: z.boolean().optional(),
category: z.string().optional(),
coupon: z.string().optional(),
description: z.string().optional(),
image_url: z.string().optional(),
line_item_id: z.string().optional(),
name: z.string(),
option_values: z.array(z.string()).optional(),
position: z.number().optional(),
price: z.number().optional(),
product_id: z.string(),
quantity: z.number().optional(),
sku: z.string().optional(),
slug: z.string().optional(),
url: z.string().optional(),
variant: z.string().optional(),
}));
export const productsSearchedSchema = z.record(z.any()).and(z.object({
currency: z.string().optional(),
price: z.number().optional(),
product_id: z.string().optional(),
quantity: z.number().optional(),
query: z.any().optional(),
}));
export const promotionClickedSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
brand: z.string().optional(),
bundle: z.boolean().optional(),
category: z.string().optional(),
coupon: z.string().optional(),
creative: z.string().optional(),
currency: z.string().optional(),
description: z.string().optional(),
name: z.string(),
option_values: z.array(z.string()).optional(),
position: z.string().optional(),
price: z.number().optional(),
product_id: z.string().optional(),
promotion_id: z.string(),
quantity: z.number().optional(),
slug: z.string().optional(),
variant: z.string().optional(),
}));
export const promotionViewedSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
brand: z.string().optional(),
bundle: z.boolean().optional(),
category: z.string().optional(),
coupon: z.string().optional(),
creative: z.string().optional(),
currency: z.string().optional(),
description: z.string().optional(),
name: z.string(),
option_values: z.array(z.string()).optional(),
position: z.string().optional(),
price: z.number().optional(),
product_id: z.string().optional(),
promotion_id: z.string(),
quantity: z.number().optional(),
slug: z.string().optional(),
variant: z.string().optional(),
}));
export const purpleAddressSchema = z.record(z.any()).and(z.object({
address1: z.string().optional(),
address2: z.string().optional(),
city: z.string().optional(),
company: z.string().optional(),
country: z.string().optional(),
name: z.string().optional(),
phone: z.string().optional(),
state: z.string().optional(),
zipcode: z.string().optional(),
}));
export const purpleProductSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
brand: z.string().optional(),
bundle: z.boolean().optional(),
category: z.string().optional(),
coupon: z.string().optional(),
description: z.string().optional(),
image_url: z.string().optional(),
line_item_id: z.string().optional(),
name: z.string().optional(),
option_values: z.array(z.string()).optional(),
position: z.number().optional(),
price: z.number().optional(),
product_id: z.string().optional(),
quantity: z.number().optional(),
sku: z.string().optional(),
slug: z.string().optional(),
url: z.string().optional(),
variant: z.string().optional(),
variant_metadata: z.record(z.any()).optional(),
}));
export const fluffyAddressSchema = z.record(z.any()).and(z.object({
address1: z.string().optional(),
address2: z.string().optional(),
city: z.string().optional(),
company: z.string().optional(),
country: z.string().optional(),
name: z.string().optional(),
phone: z.string().optional(),
state: z.string().optional(),
zipcode: z.string().optional(),
}));
export const fluffyProductSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
brand: z.string().optional(),
bundle: z.boolean().optional(),
category: z.string().optional(),
coupon: z.string().optional(),
description: z.string().optional(),
image_url: z.string().optional(),
line_item_id: z.string().optional(),
name: z.string().optional(),
option_values: z.array(z.string()).optional(),
position: z.number().optional(),
price: z.number().optional(),
product_id: z.string().optional(),
quantity: z.number().optional(),
sku: z.string().optional(),
slug: z.string().optional(),
url: z.string().optional(),
variant: z.string().optional(),
variant_metadata: z.record(z.any()).optional(),
}));
export const signedInSchema = z.record(z.any()).and(z.object({
email: z.string().optional(),
method: z.string().optional(),
}));
export const signedOutSchema = z.record(z.any()).and(z.object({
email: z.string().optional(),
}));
export const signedUpSchema = z.record(z.any()).and(z.object({
email: z.string().optional(),
method: z.string().optional(),
}));
export const stockRequestCreatedSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
brand: z.string().optional(),
bundle: z.boolean().optional(),
cart_id: z.string().optional(),
category: z.string().optional(),
coupon: z.string().optional(),
currency: z.string().optional(),
description: z.string().optional(),
email: z.string().optional(),
image_url: z.string().optional(),
name: z.string().optional(),
option_values: z.array(z.string()).optional(),
position: z.number().optional(),
price: z.number().optional(),
product_id: z.string().optional(),
quantity: z.number().optional(),
sku: z.string().optional(),
slug: z.string().optional(),
url: z.string().optional(),
variant: z.string().optional(),
}));
export const subscriptionAddressUpdatedAddressSchema = z.record(z.any()).and(z.object({
address1: z.string().optional(),
address2: z.string().optional(),
city: z.string().optional(),
company: z.string().optional(),
country: z.string().optional(),
name: z.string().optional(),
phone: z.string().optional(),
state: z.string().optional(),
zipcode: z.string().optional(),
}));
export const purplePartSchema = z.record(z.any()).and(z.object({
name: z.string().optional(),
options_text: z.string().optional(),
}));
export const subscriptionAutoRenewedAddressSchema = z.record(z.any()).and(z.object({
address1: z.string().optional(),
address2: z.string().optional(),
city: z.string().optional(),
company: z.string().optional(),
country: z.string().optional(),
name: z.string().optional(),
phone: z.string().optional(),
state: z.string().optional(),
zipcode: z.string().optional(),
}));
export const fluffyPartSchema = z.record(z.any()).and(z.object({
name: z.string().optional(),
options_text: z.string().optional(),
}));
export const subscriptionCancelledAddressSchema = z.record(z.any()).and(z.object({
address1: z.string().optional(),
address2: z.string().optional(),
city: z.string().optional(),
company: z.string().optional(),
country: z.string().optional(),
name: z.string().optional(),
phone: z.string().optional(),
state: z.string().optional(),
zipcode: z.string().optional(),
}));
export const tentacledPartSchema = z.record(z.any()).and(z.object({
name: z.string().optional(),
options_text: z.string().optional(),
}));
export const subscriptionCreatedAddressSchema = z.record(z.any()).and(z.object({
address1: z.string().optional(),
address2: z.string().optional(),
city: z.string().optional(),
company: z.string().optional(),
country: z.string().optional(),
name: z.string().optional(),
phone: z.string().optional(),
state: z.string().optional(),
zipcode: z.string().optional(),
}));
export const stickyPartSchema = z.record(z.any()).and(z.object({
name: z.string().optional(),
options_text: z.string().optional(),
}));
export const subscriptionExpiredAddressSchema = z.record(z.any()).and(z.object({
address1: z.string().optional(),
address2: z.string().optional(),
city: z.string().optional(),
company: z.string().optional(),
country: z.string().optional(),
name: z.string().optional(),
phone: z.string().optional(),
state: z.string().optional(),
zipcode: z.string().optional(),
}));
export const indigoPartSchema = z.record(z.any()).and(z.object({
name: z.string().optional(),
options_text: z.string().optional(),
}));
export const subscriptionOrderSkippedAddressSchema = z.record(z.any()).and(z.object({
address1: z.string().optional(),
address2: z.string().optional(),
city: z.string().optional(),
company: z.string().optional(),
country: z.string().optional(),
name: z.string().optional(),
phone: z.string().optional(),
state: z.string().optional(),
zipcode: z.string().optional(),
}));
export const indecentPartSchema = z.record(z.any()).and(z.object({
name: z.string().optional(),
options_text: z.string().optional(),
}));
export const subscriptionPausedAddressSchema = z.record(z.any()).and(z.object({
address1: z.string().optional(),
address2: z.string().optional(),
city: z.string().optional(),
company: z.string().optional(),
country: z.string().optional(),
name: z.string().optional(),
phone: z.string().optional(),
state: z.string().optional(),
zipcode: z.string().optional(),
}));
export const hilariousPartSchema = z.record(z.any()).and(z.object({
name: z.string().optional(),
options_text: z.string().optional(),
}));
export const subscriptionPaymentFailedAddressSchema = z.record(z.any()).and(z.object({
address1: z.string().optional(),
address2: z.string().optional(),
city: z.string().optional(),
company: z.string().optional(),
country: z.string().optional(),
name: z.string().optional(),
phone: z.string().optional(),
state: z.string().optional(),
zipcode: z.string().optional(),
}));
export const ambitiousPartSchema = z.record(z.any()).and(z.object({
name: z.string().optional(),
options_text: z.string().optional(),
}));
export const subscriptionReminderSentAddressSchema = z.record(z.any()).and(z.object({
address1: z.string().optional(),
address2: z.string().optional(),
city: z.string().optional(),
company: z.string().optional(),
country: z.string().optional(),
name: z.string().optional(),
phone: z.string().optional(),
state: z.string().optional(),
zipcode: z.string().optional(),
}));
export const cunningPartSchema = z.record(z.any()).and(z.object({
name: z.string().optional(),
options_text: z.string().optional(),
}));
export const subscriptionResumedAddressSchema = z.record(z.any()).and(z.object({
address1: z.string().optional(),
address2: z.string().optional(),
city: z.string().optional(),
company: z.string().optional(),
country: z.string().optional(),
name: z.string().optional(),
phone: z.string().optional(),
state: z.string().optional(),
zipcode: z.string().optional(),
}));
export const magentaPartSchema = z.record(z.any()).and(z.object({
name: z.string().optional(),
options_text: z.string().optional(),
}));
export const userAddressAddedSchema = z.record(z.any()).and(z.object({
address1: z.string().optional(),
address2: z.string().optional(),
address_id: z.string().optional(),
city: z.string().optional(),
company: z.string().optional(),
country: z.string().optional(),
email: z.string().optional(),
name: z.string().optional(),
phone: z.string().optional(),
state: z.string().optional(),
zipcode: z.string().optional(),
}));
export const userAddressRemovedSchema = z.record(z.any()).and(z.object({
address1: z.string().optional(),
address2: z.string().optional(),
address_id: z.string().optional(),
city: z.string().optional(),
company: z.string().optional(),
country: z.string().optional(),
email: z.string().optional(),
name: z.string().optional(),
phone: z.string().optional(),
state: z.string().optional(),
zipcode: z.string().optional(),
}));
export const userAddressUpdatedSchema = z.record(z.any()).and(z.object({
address1: z.string().optional(),
address2: z.string().optional(),
address_id: z.string().optional(),
city: z.string().optional(),
company: z.string().optional(),
country: z.string().optional(),
email: z.string().optional(),
name: z.string().optional(),
phone: z.string().optional(),
state: z.string().optional(),
zipcode: z.string().optional(),
}));
export const userCreatedBillAddressSchema = z.record(z.any()).and(z.object({
address1: z.string().optional(),
address2: z.string().optional(),
alternative_phone: z.string().optional(),
city: z.string().optional(),
company: z.string().optional(),
country: z.string().optional(),
created_at: z.string().optional(),
name: z.string().optional(),
phone: z.string().optional(),
state: z.string().optional(),
updated_at: z.string().optional(),
zipcode: z.string().optional(),
}));
export const userCreatedShipAddressSchema = z.record(z.any()).and(z.object({
address1: z.string().optional(),
address2: z.string().optional(),
alternative_phone: z.string().optional(),
city: z.string().optional(),
company: z.string().optional(),
country: z.string().optional(),
created_at: z.string().optional(),
name: z.string().optional(),
phone: z.string().optional(),
state: z.string().optional(),
updated_at: z.string().optional(),
zipcode: z.string().optional(),
}));
export const userUpdatedBillAddressSchema = z.record(z.any()).and(z.object({
address1: z.string().optional(),
address2: z.string().optional(),
alternative_phone: z.string().optional(),
city: z.string().optional(),
company: z.string().optional(),
country: z.string().optional(),
created_at: z.string().optional(),
name: z.string().optional(),
phone: z.string().optional(),
state: z.string().optional(),
updated_at: z.string().optional(),
zipcode: z.string().optional(),
}));
export const userUpdatedShipAddressSchema = z.record(z.any()).and(z.object({
address1: z.string().optional(),
address2: z.string().optional(),
alternative_phone: z.string().optional(),
city: z.string().optional(),
company: z.string().optional(),
country: z.string().optional(),
created_at: z.string().optional(),
name: z.string().optional(),
phone: z.string().optional(),
state: z.string().optional(),
updated_at: z.string().optional(),
zipcode: z.string().optional(),
}));
export const variantClickedSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
brand: z.string().optional(),
bundle: z.boolean().optional(),
cart_id: z.string().optional(),
category: z.string().optional(),
coupon: z.string().optional(),
currency: z.string().optional(),
description: z.string().optional(),
image_url: z.string().optional(),
line_item_id: z.string().optional(),
name: z.string().optional(),
option_values: z.array(z.string()).optional(),
position: z.number().optional(),
price: z.number().optional(),
product_id: z.string().optional(),
quantity: z.number().optional(),
sku: z.string().optional(),
slug: z.string().optional(),
url: z.string().optional(),
variant: z.string().optional(),
variant_id: z.string().optional(),
}));
export const wishlistProductAddedToCartSchema = z.record(z.any()).and(z.object({
brand: z.string().optional(),
bundle: z.boolean().optional(),
category: z.string().optional(),
coupon: z.string().optional(),
description: z.string().optional(),
image_url: z.string().optional(),
name: z.string(),
option_values: z.array(z.string()).optional(),
position: z.number().optional(),
price: z.number().optional(),
product_id: z.string(),
quantity: z.number().optional(),
sku: z.string().optional(),
slug: z.string().optional(),
url: z.string().optional(),
variant: z.string().optional(),
wishlist_id: z.string().optional(),
wishlist_name: z.string().optional(),
}));
export const callbackSchema = z.function().args().returns(z.void());
export const violationHandlerSchema = z
.function()
.args(z.record(z.any()), z.array(z.any()))
.returns(z.void());
export const cartSharedSchema = z.record(z.any()).and(z.object({
cart_id: z.string().optional(),
products: z.array(cartSharedProductSchema).optional(),
recipient: z.string().optional(),
share_message: z.string().optional(),
share_via: z.string().optional(),
}));
export const cartViewedSchema = z.record(z.any()).and(z.object({
cart_id: z.string().optional(),
currency: z.string().optional(),
products: z.array(cartViewedProductSchema),
value: z.number().optional(),
}));
export const checkoutAbandonedSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
checkout_type: z.string().optional(),
coupon: z.string().optional(),
currency: z.string().optional(),
discount: z.number().optional(),
discounted_order_cart_url: z.string().optional(),
email: z.string().optional(),
order_cart_url: z.string().optional(),
order_id: z.string().optional(),
order_name: z.string().optional(),
phone: z.string().optional(),
products: z.array(checkoutAbandonedProductSchema).optional(),
revenue: z.number().optional(),
shipping: z.number().optional(),
tax: z.number().optional(),
value: z.number().optional(),
}));
export const checkoutStartedSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
checkout_type: z.string().optional(),
coupon: z.string().optional(),
currency: z.string().optional(),
discount: z.number().optional(),
order_id: z.string().optional(),
order_name: z.string().optional(),
products: z.array(checkoutStartedProductSchema),
revenue: z.number().optional(),
shipping: z.number().optional(),
tax: z.number().optional(),
value: z.number().optional(),
}));
export const orderCancelledSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
campaign_id: z.number().optional(),
channel: z.string().optional(),
checkout_type: z.string().optional(),
coupon: z.string().optional(),
currency: z.string().optional(),
discount: z.number().optional(),
email: z.string().optional(),
first_name: z.string().optional(),
has_subscription: z.boolean().optional(),
is_recurring: z.boolean().optional(),
last_name: z.string().optional(),
metadata: z.record(z.any()).optional(),
order_date: z.string().optional(),
order_id: z.string(),
phone: z.string().optional(),
products: z.array(orderCancelledProductSchema),
purl_link: z.string().optional(),
referral_identifier_id: z.string().optional(),
revenue: z.number(),
shipping: z.number().optional(),
shipping_city: z.string().optional(),
shipping_country: z.string().optional(),
shipping_method_details: orderCancelledShippingMethodDetailsSchema.optional(),
shipping_state: z.string().optional(),
shipping_zipcode: z.string().optional(),
tax: z.number().optional(),
template_id: z.number().optional(),
total: z.number(),
tracking_ids: z.record(z.any()).optional(),
}));
export const orderCompletedSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
campaign_id: z.number().optional(),
category: z.string().optional(),
channel: z.string().optional(),
checkout_id: z.string().optional(),
checkout_type: z.string().optional(),
coupon: z.string().optional(),
currency: z.string(),
discount: z.number().optional(),
email: z.string().optional(),
first_name: z.string().optional(),
has_subscription: z.boolean().optional(),
is_recurring: z.boolean().optional(),
last_name: z.string().optional(),
metadata: z.record(z.any()).optional(),
order_date: z.string(),
order_id: z.string(),
phone: z.string().optional(),
products: z.array(orderCompletedProductSchema),
purl_link: z.string().optional(),
referral_identifier_id: z.string().optional(),
repeat: z.boolean().optional(),
revenue: z.number(),
shipping: z.number().optional(),
shipping_city: z.string().optional(),
shipping_country: z.string().optional(),
shipping_method_details: orderCompletedShippingMethodDetailsSchema.optional(),
shipping_state: z.string().optional(),
shipping_zipcode: z.string().optional(),
subtotal: z.number().optional(),
tax: z.number().optional(),
template_id: z.number().optional(),
total: z.number(),
tracking_ids: z.record(z.any()).optional(),
}));
export const orderRefundedSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
campaign_id: z.number().optional(),
channel: z.string().optional(),
checkout_type: z.string().optional(),
coupon: z.string().optional(),
currency: z.string().optional(),
discount: z.number().optional(),
email: z.string().optional(),
first_name: z.string().optional(),
has_subscription: z.boolean().optional(),
is_recurring: z.boolean().optional(),
last_name: z.string().optional(),
metadata: z.record(z.any()).optional(),
order_date: z.string().optional(),
order_id: z.string(),
phone: z.string().optional(),
products: z.array(orderRefundedProductSchema),
purl_link: z.string().optional(),
referral_identifier_id: z.string().optional(),
revenue: z.number().optional(),
shipping: z.number().optional(),
shipping_city: z.string().optional(),
shipping_country: z.string().optional(),
shipping_method_details: orderRefundedShippingMethodDetailsSchema.optional(),
shipping_state: z.string().optional(),
shipping_zipcode: z.string().optional(),
tax: z.number().optional(),
template_id: z.number().optional(),
total: z.number(),
tracking_ids: z.record(z.any()).optional(),
}));
export const orderUpdatedSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
campaign_id: z.number().optional(),
channel: z.string().optional(),
checkout_type: z.string().optional(),
coupon: z.string().optional(),
currency: z.string().optional(),
discount: z.number().optional(),
email: z.string().optional(),
first_name: z.string().optional(),
has_subscription: z.boolean().optional(),
is_recurring: z.boolean().optional(),
last_name: z.string().optional(),
metadata: z.record(z.any()).optional(),
order_date: z.string().optional(),
order_id: z.string(),
phone: z.string().optional(),
products: z.array(orderUpdatedProductSchema),
purl_link: z.string().optional(),
referral_identifier_id: z.string().optional(),
revenue: z.number().optional(),
shipping: z.number().optional(),
shipping_city: z.string().optional(),
shipping_country: z.string().optional(),
shipping_method_details: orderUpdatedShippingMethodDetailsSchema.optional(),
shipping_state: z.string().optional(),
shipping_zipcode: z.string().optional(),
tax: z.number().optional(),
template_id: z.number().optional(),
total: z.number(),
tracking_ids: z.record(z.any()).optional(),
}));
export const paymentInfoEnteredSchema = z.record(z.any()).and(z.object({
checkout_id: z.string().optional(),
coupon: z.string().optional(),
currency: z.string().optional(),
order_id: z.string().optional(),
payment_method: z.string().optional(),
products: z.array(paymentInfoEnteredProductSchema),
shipping_method: z.string().optional(),
step: z.number(),
value: z.number().optional(),
}));
export const productAddedSchema = z.record(z.any()).and(z.object({
actionable_date: z.string().optional(),
affiliation: z.string().optional(),
brand: z.string().optional(),
bundle: z.boolean().optional(),
cart_id: z.string().optional(),
category: z.string().optional(),
coupon: z.string().optional(),
currency: z.string().optional(),
description: z.string().optional(),
end_date: z.string().optional(),
image_url: z.string().optional(),
installment_count: z.number().optional(),
interval_length: z.number().optional(),
interval_units: z.string().optional(),
line_item_id: z.string().optional(),
name: z.string(),
option_values: z.array(z.string()).optional(),
position: z.number().optional(),
prepaid: z.boolean().optional(),
price: z.number(),
product_id: z.string(),
products: z.array(productAddedProductSchema),
quantity: z.number().optional(),
sku: z.string(),
slug: z.string().optional(),
total: z.number(),
url: z.string().optional(),
value: z.number(),
variant: z.string().optional(),
}));
export const productClickedSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
brand: z.string().optional(),
bundle: z.boolean().optional(),
cart_id: z.string().optional(),
category: z.string().optional(),
coupon: z.string().optional(),
currency: z.string().optional(),
description: z.string().optional(),
image_url: z.string().optional(),
item_list_id: z.string().optional(),
item_list_name: z.string().optional(),
line_item_id: z.string().optional(),
name: z.string(),
option_values: z.array(z.string()).optional(),
position: z.number().optional(),
price: z.number().optional(),
product_id: z.string(),
products: z.array(productClickedProductSchema).optional(),
quantity: z.number().optional(),
sku: z.string().optional(),
slug: z.string().optional(),
url: z.string().optional(),
variant: z.string().optional(),
}));
export const productListFilteredSchema = z.record(z.any()).and(z.object({
category: z.string().optional(),
filters: z.array(filterSchema).optional(),
item_list_id: z.string().optional(),
item_list_name: z.string().optional(),
list_id: z.string().optional(),
products: z.array(productListFilteredProductSchema).optional(),
sorts: z.array(sortSchema).optional(),
}));
export const productListViewedSchema = z.record(z.any()).and(z.object({
category: z.string().optional(),
item_list_id: z.string().optional(),
item_list_name: z.string().optional(),
list_id: z.string().optional(),
products: z.array(productListViewedProductSchema),
}));
export const productRemovedSchema = z.record(z.any()).and(z.object({
actionable_date: z.string().optional(),
affiliation: z.string().optional(),
brand: z.string().optional(),
bundle: z.boolean().optional(),
cart_id: z.string().optional(),
category: z.string().optional(),
coupon: z.string().optional(),
currency: z.string().optional(),
description: z.string().optional(),
end_date: z.string().optional(),
image_url: z.string().optional(),
installment_count: z.number().optional(),
interval_length: z.number().optional(),
interval_units: z.string().optional(),
line_item_id: z.string().optional(),
name: z.string(),
option_values: z.array(z.string()).optional(),
position: z.number().optional(),
prepaid: z.boolean().optional(),
price: z.number().optional(),
product_id: z.string(),
products: z.array(productRemovedProductSchema),
quantity: z.number().optional(),
sku: z.string().optional(),
slug: z.string().optional(),
total: z.number(),
url: z.string().optional(),
value: z.number().optional(),
variant: z.string().optional(),
}));
export const productViewedSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
brand: z.string().optional(),
bundle: z.boolean().optional(),
cart_id: z.string().optional(),
category: z.string().optional(),
coupon: z.string().optional(),
currency: z.string().optional(),
description: z.string().optional(),
image_url: z.string().optional(),
item_list_id: z.string().optional(),
item_list_name: z.string().optional(),
line_item_id: z.string().optional(),
name: z.string(),
option_values: z.array(z.string()).optional(),
position: z.number().optional(),
price: z.number(),
product_id: z.string(),
products: z.array(productViewedProductSchema).optional(),
quantity: z.number().optional(),
sku: z.string(),
slug: z.string().optional(),
url: z.string().optional(),
value: z.number().optional(),
variant: z.string().optional(),
}));
export const shipmentDeliveredShipmentSchema = z.record(z.any()).and(z.object({
additional_tax_total: z.number().optional(),
address: purpleAddressSchema.optional(),
adjustment_total: z.number().optional(),
carrier: z.string().optional(),
cost: z.number().optional(),
external_tracking_url: z.string().optional(),
fulfilled_by: z.string().optional(),
included_tax_total: z.number().optional(),
label_url: z.string().optional(),
number: z.string().optional(),
products: z.array(purpleProductSchema).optional(),
promo_total: z.number().optional(),
pushed: z.boolean().optional(),
state: z.string().optional(),
tracking: z.string().optional(),
tracking_detail: z.string().optional(),
}));
export const shipmentShippedShipmentSchema = z.record(z.any()).and(z.object({
additional_tax_total: z.number().optional(),
address: fluffyAddressSchema.optional(),
adjustment_total: z.number().optional(),
carrier: z.string().optional(),
cost: z.number().optional(),
external_tracking_url: z.string().optional(),
fulfilled_by: z.string().optional(),
included_tax_total: z.number().optional(),
label_url: z.string().optional(),
number: z.string().optional(),
products: z.array(fluffyProductSchema).optional(),
promo_total: z.number().optional(),
pushed: z.boolean().optional(),
state: z.string().optional(),
tracking: z.string().optional(),
tracking_detail: z.string().optional(),
}));
export const subscriptionAddressUpdatedProductSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),
brand: z.string().optional(),
bundle: z.boolean().optional(),
category: z.string().optional(),
coupon: z.string().optional(),
description: z.string().optional(),
image_url: z.string().optional(),
line_item_id: z.string().optional(),
name: z.string().optional(),
option_values: z.array(z.string()).optional(),
parts: z.array(purplePartSchema).optional(),
position: z.number().optional(),
price: z.number().optional(),
product_id: z.string().optional(),
quantity: z.number().optional(),
sku: z.string().optional(),
slug: z.string().optional(),
url: z.string().optional(),
variant: z.string().optional(),
}));
export const subscriptionAutoRenewedProductSchema = z.record(z.any()).and(z.object({
affiliation: z.string().optional(),