The input fields for creating or updating a product.
Access Scopes
Fields
bodyHtml:
String -
A description of the product. Supports HTML formatting.
claimOwnership:
ProductClaimOwnershipInput -
The input field to enable an app to provide additional product features.
For example, you can specify
[`bundles: true`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/ProductClaimOwnershipInput#field-bundles)
in the `claimOwnership` field to let an app add a
[product configuration extension](https://shopify.dev/docs/apps/build/product-merchandising/bundles/add-merchant-config-ui).
collectionsToJoin:
ID -
A list of collection IDs to associate with the product.
collectionsToLeave:
ID -
The collection IDs to disassociate from the product.
customProductType:
String -
The [custom product type](https://help.shopify.com/manual/products/details/product-type)
that merchants define.
descriptionHtml:
String -
The description of the product, with HTML tags.
For example, the description might include bold `<strong></strong>` and italic `<i></i>` text.
giftCard:
Boolean -
Whether the product is a gift card.
giftCardTemplateSuffix:
String -
The [theme template](https://shopify.dev/docs/storefronts/themes/architecture/templates) that's used when customers view a gift card in a store.
handle:
String -
A unique, human-readable string of the product's title. A handle can contain letters, hyphens (`-`), and numbers, but no spaces.
The handle is used in the online store URL for the product.
For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`.
id:
ID -
The product's ID.
If you're creating a product, then you don't need to pass the `id` as input to the
[`productCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productCreate) mutation.
If you're updating a product, then you do need to pass the `id` as input to the
[`productUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productUpdate) mutation
to identify which product you want to update.
metafields:
MetafieldInput -
The [custom fields](https://shopify.dev/docs/apps/build/custom-data) to associate with the product
for the purposes of adding and storing additional information.
options:
String -
List of custom product options (maximum of 3 per product).
privateMetafields:
PrivateMetafieldInput -
The private metafields to associate with this product.
productCategory:
ProductCategoryInput -
The product category in the Shopify product taxonomy.
productPublications:
ProductPublicationInput -
A list of the channels where the product is published.
productType:
String -
The [product type](https://help.shopify.com/manual/products/details/product-type)
that merchants define.
publications:
ProductPublicationInput -
A list of the channels where the product is published.
publishDate:
DateTime -
Only products with an active status can be published.
publishOn:
DateTime -
Only products with an active status can be published.
published:
Boolean -
Only products with an active status can be published.
publishedAt:
DateTime -
Only products with an active status can be published.
redirectNewHandle:
Boolean -
Whether a redirect is required after a new handle has been provided.
If `true`, then the old handle is redirected to the new one automatically.
requiresSellingPlan:
Boolean -
Whether the product can only be purchased with
a [selling plan](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/selling-plans).
Products that are sold on subscription (`requiresSellingPlan: true`) can be updated only for online stores.
If you update a product to be subscription-only (`requiresSellingPlan:false`), then the product is unpublished from all channels except the online store.
seo:
SEOInput -
The [SEO title and description](https://help.shopify.com/manual/promoting-marketing/seo/adding-keywords)
that are associated with a product.
standardizedProductType:
StandardizedProductTypeInput -
The standardized product type in the Shopify product taxonomy.
status:
ProductStatus -
The [product status](https://help.shopify.com/manual/products/details/product-details-page#product-status),
which controls visibility across all sales channels.
tags:
String -
A comma-separated list of searchable keywords that are
associated with the product. For example, a merchant might apply the `sports`
and `summer` tags to products that are associated with sportwear for summer.
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:
String -
The [theme template](https://shopify.dev/docs/storefronts/themes/architecture/templates) that's used when customers view a product in a store.
title:
String -
The name for the product that displays to customers. The title is used to construct the product's handle.
For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`.
variants:
ProductVariantInput -
A list of variants associated with the product.
vendor:
String -
The name of the product's vendor.