[**@wocart/storefront v3.1.0**](../../README)

***

[@wocart/storefront](../../README) / [index](../README) / ProductSchema

# Variable: ProductSchema

> `const` **ProductSchema**: `z.ZodObject`\<\{ `category`: `z.ZodNullable`\<`z.ZodObject`\<\{ `createdAt`: `z.ZodString`; `description`: `z.ZodNullable`\<`z.ZodString`\>; `id`: `z.ZodString`; `image`: `z.ZodNullable`\<`z.ZodObject`\<\{ `height`: `z.ZodNullable`\<`z.ZodNumber`\>; `key`: `z.ZodString`; `url`: `z.ZodString`; `width`: `z.ZodNullable`\<`z.ZodNumber`\>; \}, `z.core.$strip`\>\>; `metaDescription`: `z.ZodNullable`\<`z.ZodString`\>; `metaKeywords`: `z.ZodNullable`\<`z.ZodString`\>; `metaTitle`: `z.ZodNullable`\<`z.ZodString`\>; `name`: `z.ZodString`; `parentId`: `z.ZodNullable`\<`z.ZodString`\>; `position`: `z.ZodNumber`; `slug`: `z.ZodString`; `updatedAt`: `z.ZodString`; \}, `z.core.$strip`\>\>; `categoryId`: `z.ZodNullable`\<`z.ZodString`\>; `compareAtPrice`: `z.ZodNullable`\<`z.ZodNumber`\>; `currency`: `z.ZodString`; `description`: `z.ZodNullable`\<`z.ZodString`\>; `descriptionFormat`: `z.ZodEnum`\<\{ `html`: `"html"`; `text`: `"text"`; \}\>; `descriptionPlain`: `z.ZodNullable`\<`z.ZodString`\>; `handle`: `z.ZodString`; `hasVariants`: `z.ZodBoolean`; `id`: `z.ZodString`; `images`: `z.ZodArray`\<`z.ZodObject`\<\{ `altText`: `z.ZodNullable`\<`z.ZodString`\>; `height`: `z.ZodNullable`\<`z.ZodNumber`\>; `id`: `z.ZodString`; `key`: `z.ZodString`; `position`: `z.ZodNumber`; `url`: `z.ZodString`; `width`: `z.ZodNullable`\<`z.ZodNumber`\>; \}, `z.core.$strip`\>\>; `inventory`: `z.ZodNumber`; `lowStockThreshold`: `z.ZodNumber`; `metaDescription`: `z.ZodNullable`\<`z.ZodString`\>; `metaTitle`: `z.ZodNullable`\<`z.ZodString`\>; `name`: `z.ZodString`; `offers`: `z.ZodArray`\<`z.ZodObject`\<\{ `discountType`: `z.ZodEnum`\<\{ `free`: `"free"`; `free_shipping`: `"free_shipping"`; \}\>; `id`: `z.ZodString`; `name`: `z.ZodString`; `rewardProductId`: `z.ZodNullable`\<`z.ZodString`\>; `rewardProductName`: `z.ZodString`; `rewardQuantity`: `z.ZodNumber`; `rewardUnitPrice`: `z.ZodNullable`\<`z.ZodNumber`\>; `rewardVariantId`: `z.ZodNullable`\<`z.ZodString`\>; `rewardVariantLabel`: `z.ZodNullable`\<`z.ZodString`\>; `triggerQuantity`: `z.ZodNumber`; `triggerVariantId`: `z.ZodNullable`\<`z.ZodString`\>; \}, `z.core.$strip`\>\>; `price`: `z.ZodNumber`; `quantityPricing`: `z.ZodNullable`\<`z.ZodObject`\<\{ `name`: `z.ZodString`; `offerId`: `z.ZodString`; `tiers`: `z.ZodArray`\<`z.ZodObject`\<\{ `freeShipping`: `z.ZodBoolean`; `price`: `z.ZodNumber`; `quantity`: `z.ZodNumber`; \}, `z.core.$strip`\>\>; `triggerVariantId`: `z.ZodNullable`\<`z.ZodString`\>; \}, `z.core.$strip`\>\>; `reviewStats`: `z.ZodNullable`\<`z.ZodObject`\<\{ `avgRating`: `z.ZodNumber`; `reviewCount`: `z.ZodNumber`; \}, `z.core.$strip`\>\>; `sku`: `z.ZodNullable`\<`z.ZodString`\>; `tags`: `z.ZodArray`\<`z.ZodString`\>; `trackInventory`: `z.ZodBoolean`; `type`: `z.ZodEnum`\<\{ `DIGITAL`: `"DIGITAL"`; `PHYSICAL`: `"PHYSICAL"`; \}\>; `variantOptions`: `z.ZodNullable`\<`z.ZodArray`\<`z.ZodObject`\<\{ `name`: `z.ZodString`; `values`: `z.ZodArray`\<`z.ZodObject`\<\{ `hexColor`: `z.ZodDefault`\<`z.ZodNullable`\<...\>\>; `value`: `z.ZodString`; \}, `z.core.$strip`\>\>; \}, `z.core.$strip`\>\>\>; `variants`: `z.ZodArray`\<`z.ZodObject`\<\{ `compareAtPrice`: `z.ZodNullable`\<`z.ZodNumber`\>; `id`: `z.ZodString`; `imageId`: `z.ZodNullable`\<`z.ZodString`\>; `inventory`: `z.ZodNumber`; `isDefault`: `z.ZodBoolean`; `lowStockThreshold`: `z.ZodNumber`; `price`: `z.ZodNumber`; `sku`: `z.ZodNullable`\<`z.ZodString`\>; `variations`: `z.ZodRecord`\<`z.ZodString`, `z.ZodString`\>; \}, `z.core.$strip`\>\>; \}, `z.core.$strip`\>

A product's page: every photo, variant and offer, and its category.
