# Product Describes a product with comprehensive details including variants, images, reviews, and related product information. ## Type Definition ```graphql type Product { handle: String seoDescription: String seoTitle: String seoKeywords: String id: Int combinedListing: CombinedListing firstAvailableVariant: ProductVariant hasOnlyDefaultVariant: Boolean variants: [ProductVariant] options: [String] optionsWithValues: [ProductOption] optionsByHandle: [ProductOption] defaultOrSelectedVariant: ProductVariant tags: [String] customFields: [CustomField] inPreview: Boolean isAvailable: Boolean isDirectlyBuyable: Boolean title: String manufacturer: Manufacturer shortDescription: String description: String images: [Image] videos: [Video] featuredImage: Image featuredVideo: Video compatible: [Product] similar: [Product] related: [Product] deliverer: Deliverer productGroups: [ProductGroup] returnPolicyTimeLimit: Int rating: Float reviewCount: Int maxRating: Int reviews: [Review] attachments: [Attachment] reviewsAreEnabled: Boolean reviewsRequireAccount: Boolean reviewsRequirePurchase: Boolean reviewsRequireApproval: Boolean taxonomy: ProductTaxonomy createdAt: String updatedAt: String rate: String inCustomersWishlist: String customerHasReviewed: String customerCanReview: String customerHasPurchased: String } ``` ## Fields | Field | Type | Description | |-------|------|-------------| | handle | String | Returns the handle. | | seoDescription | String | Returns description for search engines. | | seoTitle | String | Returns title for search engines. | | seoKeywords | String | Returns keywords for search engines. | | id | Int | Returns the id. | | combinedListing | CombinedListing | Returns the combined listing. | | firstAvailableVariant | ProductVariant | Returns the first available variant. | | hasOnlyDefaultVariant | Boolean | Returns true if product has only default variant. | | variants | [ProductVariant] | Returns the variants. | | options | [String] | Returns the options handles. | | optionsWithValues | [ProductOption] | Returns array of options. | | optionsByHandle | [ProductOption] | Returns array of options indexed by handle. | | defaultOrSelectedVariant | ProductVariant | Return the selected variant or the default one if none is selected. | | tags | [String] | Returns product tags. | | customFields | [CustomField] | Returns product custom fields as CustomFieldDrop objects. | | inPreview | Boolean | Returns true if product is in preview. | | isAvailable | Boolean | Returns true if product is available for purchase. | | isDirectlyBuyable | Boolean | Returns true if product can be bought without selecting any attributes. | | title | String | Returns the title. | | manufacturer | Manufacturer | Returns the manufacturer. | | shortDescription | String | Returns the short description. | | description | String | Returns the description. | | images | [Image] | Returns the images. | | videos | [Video] | Returns the videos. | | featuredImage | Image | Returns product featured (first available) image. | | featuredVideo | Video | Returns the featured (first available) video. | | compatible | [Product] | Returns the compatible products. | | similar | [Product] | Returns the similar products. | | related | [Product] | Returns the related products. | | deliverer | Deliverer | Returns the deliverer. | | productGroups | [ProductGroup] | Returns the associated product groups. | | returnPolicyTimeLimit | Int | Returns the product return policy time limit in days. | | rating | Float | Returns the rating. | | reviewCount | Int | Returns the review count. | | maxRating | Int | Returns the maximum rating. | | reviews | [Review] | Returns the reviews. | | attachments | [Attachment] | Returns the product attachments as AttachmentDrop objects. | | reviewsAreEnabled | Boolean | Returns true if reviews are enabled for this product. | | reviewsRequireAccount | Boolean | Returns true if creating a review for this product requires an account. | | reviewsRequirePurchase | Boolean | Returns true if product must be purchased before review can be made. | | reviewsRequireApproval | Boolean | Returns true if reviews are approved before published. | | taxonomy | ProductTaxonomy | Returns the taxonomy. | | createdAt | String | Returns the creation date. | | updatedAt | String | Returns the last updated date. | | rate | String | Returns the tax rate. | | inCustomersWishlist | String | Returns true if product is in customers wishlist. | | customerHasReviewed | String | Returns true if customer has reviewed the product. | | customerCanReview | String | Returns true if customer can review the product. | | customerHasPurchased | String | Returns true if customer has purchased the product. | ## Relationships The `Product` type represents a core entity in the storefront catalog. It maintains relationships with: - **Variants**: Products contain multiple `ProductVariant` objects that represent different configurations or SKUs - **Images and Videos**: Rich media content is associated through `Image` and `Video` types - **Related Products**: Links to compatible, similar, and related products for product discovery - **Reviews**: Customer feedback through `Review` objects with configurable approval workflows - **Taxonomy**: Product categorization through `ProductTaxonomy` - **Manufacturer**: Product source information - **Deliverer**: Shipping and fulfillment details - **ProductGroups**: Product grouping and organization - **CustomFields and Attachments**: Extended product metadata ## Example ```graphql { product(id: 12345) { id title handle description shortDescription isAvailable isDirectlyBuyable rating reviewCount featuredImage { url } variants { id title } optionsWithValues { handle name } manufacturer { name } reviews { id title rating } taxonomy { category } } } ``` ## Implements This type does not implement any interfaces. ## Related Types - [CombinedListing](/reference/storefront/v1/objects/combined-listing) - [ProductVariant](/reference/storefront/v1/objects/product-variant) - [ProductOption](/reference/storefront/v1/objects/product-option) - [CustomField](/reference/storefront/v1/objects/custom-field) - [Manufacturer](/reference/storefront/v1/objects/manufacturer) - [Image](/reference/storefront/v1/objects/image) - [Video](/reference/storefront/v1/objects/video) - [Deliverer](/reference/storefront/v1/objects/deliverer) - [ProductGroup](/reference/storefront/v1/objects/product-group) - [Review](/reference/storefront/v1/objects/review) - [Attachment](/reference/storefront/v1/objects/attachment) - [ProductTaxonomy](/reference/storefront/v1/objects/product-taxonomy)