Skip to main content

Product

Represents an individual item for sale in the storefront.

type Product implements Node, ObjectWithMetadata {
id: ID!
publicationDate: Date
description: String!
descriptionHtml: String!
externalId: String
externalSource: String
seller: Seller
seoTitle: String
seoDescription: String
productType: ProductType
name: String!
slug: String!
category: Category
currency: String!
updatedAt: DateTime
createdAt: DateTime!
chargeTaxes: Boolean!
weight: Weight
availableForPurchase: Date
visibleInListings: Boolean!
defaultVariant: ProductVariant
overridePrice: Boolean!
overrideCurrency: Boolean!
status: ProductStatus!
subStatus: ProductSubStatus!
isPriceOverrideAllowed: Boolean!
isShippingRequired: Boolean!
isDigital: Boolean!
productSource: ProductProductSource!
allowSellerVariants: Boolean!
privateMetadata: [MetadataItem!]!
metadata: [MetadataItem!]!
thumbnail(
size: Int
): Image
pricing: ProductPricingInfo
isAvailable: Boolean
minimalVariantPrice: Money
taxType: TaxType
attributes: [SelectedAttribute!]!
variantAttributes: [Attribute!]
customFields: [SelectedAttribute!]!
purchaseCost: MoneyRange
margin: Margin
imageById(
id: ID
): ProductImage
variants: [ProductVariant!]
images: [ProductImage!]
countableImages(
before: String
after: String
first: Int
last: Int
): ProductImageCountableConnection
videos: [ProductVideo!]
countableVideos(
before: String
after: String
first: Int
last: Int
): ProductVideoCountableConnection
collections: [Collection!]
isAvailableForPurchase: Boolean
sortOrder: Int
isPublished: Boolean!
warehousesStats: [WarehouseStats!]
actions: [ProductAction!]
documents: [Document!]!
sales: [Sale!]!
saleMessages: [String!]
vouchers: [Voucher!]!
productStatusLogs: [ProductStatusLog!]
dimensions: ProductDimensions
hasVariantOptions: Boolean!
warnings: [WarningMessageItem!]!
hasWarnings: Boolean
webhookHistory(
before: String
after: String
first: Int
last: Int
): ShopifyWebhookTransactionCountableConnection
}
Show more ↓

Fields

Product.id ● ID! non-null scalar

The ID of the object

Product.publicationDate ● Date scalar

Product.description ● String! non-null scalar

Product.descriptionHtml ● String! non-null scalar

Product.externalId ● String scalar

Product.externalSource ● String scalar

Product.seller ● Seller object

Product.seoTitle ● String scalar

Product.seoDescription ● String scalar

Product.productType ● ProductType object

Product.name ● String! non-null scalar

Product.slug ● String! non-null scalar

Product.category ● Category object

Product.currency ● String! non-null scalar

Product.updatedAt ● DateTime scalar

Product.createdAt ● DateTime! non-null scalar

Product.chargeTaxes ● Boolean! non-null scalar

Product.weight ● Weight object

Product.availableForPurchase ● Date scalar

Product.visibleInListings ● Boolean! non-null scalar

Product.defaultVariant ● ProductVariant object

Product.overridePrice ● Boolean! non-null scalar

Product.overrideCurrency ● Boolean! non-null scalar

Product.status ● ProductStatus! non-null enum

Product.subStatus ● ProductSubStatus! non-null enum

Product.isPriceOverrideAllowed ● Boolean! non-null scalar

indicates whether we allow overriding the unit_price of variants in checkout and draft order lines

Product.isShippingRequired ● Boolean! non-null scalar

Product.isDigital ● Boolean! non-null scalar

Product.productSource ● ProductProductSource! non-null enum

Product.allowSellerVariants ● Boolean! non-null scalar

When enabled, other sellers can create their own variants on this product (cross-sell). Requires marketplace-level enable_master_products to be True.

Product.privateMetadata ● [MetadataItem!]! non-null object

List of private metadata items.Requires proper staff permissions to access.

Product.metadata ● [MetadataItem!]! non-null object

List of public metadata items. Can be accessed without permissions.

Product.thumbnail ● Image object

The main thumbnail for a product.

Product.thumbnail.size ● Int scalar

Size of thumbnail.

Product.pricing ● ProductPricingInfo object

Lists the storefront product's pricing, the current price and discounts, only meant for displaying.

Product.isAvailable ● Boolean scalar

Whether the product is in stock and visible or not.

Product.minimalVariantPrice ● Money object

The price of the cheapest variant (including discounts).

Product.taxType ● TaxType object

A type of tax. Assigned by enabled tax gateway

Product.attributes ● [SelectedAttribute!]! non-null object

List of attributes assigned to this product.

Product.variantAttributes ● [Attribute!] list object

Variant attributes of a product.

Product.customFields ● [SelectedAttribute!]! non-null object

List of custom fields assigned to this product.

Product.purchaseCost ● MoneyRange object

Product.margin ● Margin object

Product.imageById ● ProductImage object

Get a single product image by ID.

Product.imageById.id ● ID scalar

ID of a product image.

Product.variants ● [ProductVariant!] list object

List of variants for the product.

Product.images ● [ProductImage!] list object

List of images for the product. With enabled strict_product_image_handling- shows only images that are owned by product owner

Product.countableImages ● ProductImageCountableConnection object

Countable edges of images for the product

Product.countableImages.before ● String scalar

Return the elements in the list that come before the specified cursor.

Product.countableImages.after ● String scalar

Return the elements in the list that come after the specified cursor.

Product.countableImages.first ● Int scalar

Return the first n elements from the list.

Product.countableImages.last ● Int scalar

Return the last n elements from the list.

Product.videos ● [ProductVideo!] list object

List of videos for the product.

Product.countableVideos ● ProductVideoCountableConnection object

Countable edges of videos for the product

Product.countableVideos.before ● String scalar

Return the elements in the list that come before the specified cursor.

Product.countableVideos.after ● String scalar

Return the elements in the list that come after the specified cursor.

Product.countableVideos.first ● Int scalar

Return the first n elements from the list.

Product.countableVideos.last ● Int scalar

Return the last n elements from the list.

Product.collections ● [Collection!] list object

List of collections for the product.

Product.isAvailableForPurchase ● Boolean scalar

Whether the product is available for purchase.

Product.sortOrder ● Int scalar

Product sort order in the specific collection. Make sense only as a part of the parent 'collection(s)' queries.

Product.isPublished ● Boolean! non-null scalar

Whether the product is published.

Product.warehousesStats ● [WarehouseStats!] list object

Product stock stats combining all variants in all warehouses. Requires MANAGE_PRODUCTS permission.

Product.actions ● [ProductAction!] list enum

List of actions that can be performed based on the current state of the product.

Product.documents ● [Document!]! non-null object

List of documents associated with the product.

Product.sales ● [Sale!]! non-null object

List of sales associated with the product.

Product.saleMessages ● [String!] list scalar

List of sale messages for the storefront.

Product.vouchers ● [Voucher!]! non-null object

List of vouchers associated with the product.

Product.productStatusLogs ● [ProductStatusLog!] list object

List of logs for product status changes.

Product.dimensions ● ProductDimensions object

Product dimensions.

Product.hasVariantOptions ● Boolean! non-null scalar

Whether this product allows creating variants.

Product.warnings ● [WarningMessageItem!]! non-null object

List of warnings for this product that needs to be resolved for publishing.

Product.hasWarnings ● Boolean scalar

Displays whether the product has warnings or not.

Product.webhookHistory ● ShopifyWebhookTransactionCountableConnection object

Shopify webhook events related to this product

Product.webhookHistory.before ● String scalar

Return the elements in the list that come before the specified cursor.

Product.webhookHistory.after ● String scalar

Return the elements in the list that come after the specified cursor.

Product.webhookHistory.first ● Int scalar

Return the first n elements from the list.

Product.webhookHistory.last ● Int scalar

Return the last n elements from the list.

Interfaces

Node interface

An object with an ID

ObjectWithMetadata interface

Returned By

product query

Member Of

AttributeAssign object ● AttributeUnassign object ● MenuItem object ● ProductBulkCreate object ● ProductCountableEdge object ● ProductCreate object ● ProductDelete object ● ProductImageBulkCreate object ● ProductImageCreate object ● ProductImageDelete object ● ProductImageReorder object ● ProductImageUpdate object ● ProductReorderVariants object ● ProductSetAvailabilityForPurchase object ● ProductUpdate object ● ProductVariant object ● ProductVariantReportType object ● ProductVariantSetDefault object ● ProductVideoBulkCreate object ● ProductVideoCreate object ● ProductVideoDelete object ● ProductVideoReorder object ● ProductVideoUpdate object ● WishlistItem object

Implemented By

CustomFieldInstance union ● DocumentTargetInstance union

Was this page helpful?