stack

Home > @infiniteobjects/shopify-data-manager > AdminTypes > Product

AdminTypes.Product interface

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

Properties

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.