Home > @infiniteobjects/shopify-data-manager > AdminTypes > Product
The Product resource lets you manage products in a merchant’s store. You can use [ProductVariants](https://shopify.dev/api/admin-graphql/latest/objects/productvariant) to create or update different versions of the same product. You can also add or update product [Media](https://shopify.dev/api/admin-graphql/latest/interfaces/media). Products can be organized by grouping them into a [Collection](https://shopify.dev/api/admin-graphql/latest/objects/collection).
Signature:
export interface Product extends HasMetafieldDefinitions, HasMetafields, HasPublishedTranslations, LegacyInteroperability, Navigable, Node, OnlineStorePreviewable, Publishable
Extends: HasMetafieldDefinitions, HasMetafields, HasPublishedTranslations, LegacyInteroperability, Navigable, Node, OnlineStorePreviewable, Publishable
Property | Modifiers | Type | Description |
---|---|---|---|
availablePublicationCount | Scalars[‘Int’][‘output’] | The number of publications a resource is published to without feedback errors. | |
bodyHtml? | Maybe<Scalars[‘String’][‘output’]> | (Optional) The description of the product, complete with HTML formatting. | |
collections | CollectionConnection | A list of the collections that include the product. | |
compareAtPriceRange? | Maybe<ProductCompareAtPriceRange> | (Optional) The compare-at price range of the product in the default shop currency. | |
contextualPricing | ProductContextualPricing | The pricing that applies for a customer in a given context. | |
createdAt | Scalars[‘DateTime’][‘output’] | The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) when the product was created. | |
customProductType? | Maybe<Scalars[‘String’][‘output’]> | (Optional) The custom product type specified by the merchant. | |
defaultCursor | Scalars[‘String’][‘output’] | A default cursor that returns the single next record, sorted ascending by ID. | |
description | Scalars[‘String’][‘output’] | A stripped description of the product, single line with HTML tags removed. | |
descriptionHtml | Scalars[‘HTML’][‘output’] | The description of the product, complete with HTML formatting. | |
descriptionPlainSummary | Scalars[‘String’][‘output’] | Stripped description of the product, single line with HTML tags removed. Truncated to 60 characters. | |
featuredImage? | Maybe<Image> | (Optional) The featured image for the product. | |
featuredMedia? | Maybe<Media> | (Optional) The featured media for the product. | |
feedback? | Maybe<ResourceFeedback> | (Optional) Information about the product that’s provided through resource feedback. | |
giftCardTemplateSuffix? | Maybe<Scalars[‘String’][‘output’]> | (Optional) The theme template used when viewing the gift card in a store. | |
handle | Scalars[‘String’][‘output’] | A unique human-friendly string of the product’s title. | |
hasOnlyDefaultVariant | Scalars[‘Boolean’][‘output’] | Whether the product has only a single variant with the default option and value. | |
hasOutOfStockVariants | Scalars[‘Boolean’][‘output’] | Whether the product has out of stock variants. | |
hasVariantsThatRequiresComponents | Scalars[‘Boolean’][‘output’] | Determines if at least one of the product variant requires components. The default value is false . |
|
id | Scalars[‘ID’][‘output’] | A globally-unique ID. | |
images | ImageConnection | The images associated with the product. | |
inCollection | Scalars[‘Boolean’][‘output’] | Whether the product is in a given collection. | |
isGiftCard | Scalars[‘Boolean’][‘output’] | Whether the product is a gift card. | |
legacyResourceId | Scalars[‘UnsignedInt64’][‘output’] | The ID of the corresponding resource in the REST Admin API. | |
media | MediaConnection | The media associated with the product. This can include images, 3D models, or videos. | |
mediaCount | Scalars[‘Int’][‘output’] | Total count of media belonging to a product. | |
metafield? | Maybe<Metafield> | (Optional) Returns a metafield by namespace and key that belongs to the resource. | |
metafieldDefinitions | MetafieldDefinitionConnection | List of metafield definitions. | |
metafields | MetafieldConnection | List of metafields that belong to the resource. | |
onlineStorePreviewUrl? | Maybe<Scalars[‘URL’][‘output’]> | (Optional) The online store preview URL. | |
onlineStoreUrl? | Maybe<Scalars[‘URL’][‘output’]> | (Optional) The online store URL for the product. A value of null indicates that the product isn’t published to the Online Store sales channel. |
|
options | Array<ProductOption> | A list of product options. The limit is specified by Shop.resourceLimits.maxProductOptions. | |
priceRange | ProductPriceRange | The price range of the product. | |
priceRangeV2 | ProductPriceRangeV2 | The price range of the product with prices formatted as decimals. | |
privateMetafield? | Maybe<PrivateMetafield> | (Optional) Returns a private metafield by namespace and key that belongs to the resource. | |
privateMetafields | PrivateMetafieldConnection | List of private metafields that belong to the resource. | |
productCategory? | Maybe<ProductCategory> | (Optional) The product category specified by the merchant. | |
productPublications | ProductPublicationConnection | A list of the channels where the product is published. | |
productType | Scalars[‘String’][‘output’] | The product type specified by the merchant. | |
publicationCount | Scalars[‘Int’][‘output’] | The number of publications a resource is published on. | |
publications | ProductPublicationConnection | A list of the channels where the product is published. | |
publishedAt? | Maybe<Scalars[‘DateTime’][‘output’]> | (Optional) The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) when the product was published to the Online Store. | |
publishedInContext | Scalars[‘Boolean’][‘output’] | Whether or not the product is published for a customer in the given context. | |
publishedOnChannel | Scalars[‘Boolean’][‘output’] | Check to see whether the resource is published to a given channel. | |
publishedOnCurrentChannel | Scalars[‘Boolean’][‘output’] | Check to see whether the resource is published to the calling app’s channel. | |
publishedOnCurrentPublication | Scalars[‘Boolean’][‘output’] | Check to see whether the resource is published to the calling app’s publication. | |
publishedOnPublication | Scalars[‘Boolean’][‘output’] | Check to see whether the resource is published to a given publication. | |
requiresSellingPlan | Scalars[‘Boolean’][‘output’] | Whether the product can only be purchased with a selling plan (subscription). Products that are sold on subscription (requiresSellingPlan: true ) can be updated only for online stores. If you update a product to be subscription only, then the product is unpublished from all channels except the online store. |
|
resourcePublicationOnCurrentPublication? | Maybe<ResourcePublicationV2> | (Optional) The resource that’s either published or staged to be published to the calling app’s publication. Requires the read_product_listings scope. |
|
resourcePublications | ResourcePublicationConnection | The list of resources that are published to a publication. | |
resourcePublicationsV2 | ResourcePublicationV2Connection | The list of resources that are either published or staged to be published to a publication. | |
sellingPlanGroupCount | Scalars[‘Int’][‘output’] | Count of selling plan groups associated with the product. | |
sellingPlanGroups | SellingPlanGroupConnection | A list of all selling plan groups defined in the current shop associated with the product either directly or through any of its variants. | |
seo | Seo | SEO information of the product. | |
standardizedProductType? | Maybe<StandardizedProductType> | (Optional) The standardized product type in the Shopify product taxonomy. | |
status | ProductStatus | `${ProductStatus}` | The product status. This controls visibility across all channels. | |
storefrontId | Scalars[‘StorefrontID’][‘output’] | <p>The Storefront GraphQL API ID of the Product .</p><p>As of the 2022-04 version release, the Storefront GraphQL API will no longer return Base64 encoded IDs to match the behavior of the Admin GraphQL API. Therefore, you can safely use the id field’s value instead.</p> |
|
tags | Array<Scalars[‘String’][‘output’]> | A comma separated list of tags associated with the product. Updating tags overwrites any existing tags that were previously added to the product. To add new tags without overwriting existing tags, use the [tagsAdd](https://shopify.dev/api/admin-graphql/latest/mutations/tagsadd) mutation. |
|
templateSuffix? | Maybe<Scalars[‘String’][‘output’]> | (Optional) The theme template used when viewing the product in a store. | |
title | Scalars[‘String’][‘output’] | The title of the product. | |
totalInventory | Scalars[‘Int’][‘output’] | The quantity of inventory in stock. | |
totalVariants | Scalars[‘Int’][‘output’] | The number of variants that are associated with the product. | |
tracksInventory | Scalars[‘Boolean’][‘output’] | Whether inventory tracking has been enabled for the product. | |
translations | Array<Translation> | The translations associated with the resource. | |
unpublishedChannels | ChannelConnection | The list of channels that the resource is not published to. | |
unpublishedPublications | PublicationConnection | The list of publications that the resource is not published to. | |
updatedAt | Scalars[‘DateTime’][‘output’] | The date and time when the product was last modified. A product’s updatedAt value can change for different reasons. For example, if an order is placed for a product that has inventory tracking set up, then the inventory adjustment is counted as an update. |
|
variants | ProductVariantConnection | A list of variants associated with the product. | |
vendor | Scalars[‘String’][‘output’] | The name of the product’s vendor. |