# ProductInput - admin-graphql - INPUT_OBJECT
Version: 2024-10
## Description
The input fields for creating or updating a product.
### Access Scopes
## Fields
* [category](/docs/api/admin-graphql/2024-10/scalars/ID): ID - The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17)
that's associated with the product.
* [claimOwnership](/docs/api/admin-graphql/2024-10/input-objects/ProductClaimOwnershipInput): 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](/docs/api/admin-graphql/2024-10/scalars/ID): ID - A list of collection IDs to associate with the product.
* [collectionsToLeave](/docs/api/admin-graphql/2024-10/scalars/ID): ID - The collection IDs to disassociate from the product.
* [combinedListingRole](/docs/api/admin-graphql/2024-10/enums/CombinedListingsRole): CombinedListingsRole - The role of the product in a [combined listing](https://shopify.dev/apps/build/product-merchandising/combined-listings).
You can specify this field only when you create a product.
* [descriptionHtml](/docs/api/admin-graphql/2024-10/scalars/String): String - The description of the product, with HTML tags.
For example, the description might include bold `` and italic `` text.
* [giftCard](/docs/api/admin-graphql/2024-10/scalars/Boolean): Boolean - Whether the product is a gift card.
* [giftCardTemplateSuffix](/docs/api/admin-graphql/2024-10/scalars/String): 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](/docs/api/admin-graphql/2024-10/scalars/String): 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](/docs/api/admin-graphql/2024-10/scalars/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](/docs/api/admin-graphql/2024-10/input-objects/MetafieldInput): 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.
* [productOptions](/docs/api/admin-graphql/2024-10/input-objects/OptionCreateInput): OptionCreateInput - A list of product options and option values. Maximum product options: three. There's no limit on the number of option values.
This input is supported only with the [`productCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productCreate)
mutation.
* [productPublications](/docs/api/admin-graphql/2024-10/input-objects/ProductPublicationInput): ProductPublicationInput - A list of the channels where the product is published.
* [productType](/docs/api/admin-graphql/2024-10/scalars/String): String - The [product type](https://help.shopify.com/manual/products/details/product-type)
that merchants define.
* [publications](/docs/api/admin-graphql/2024-10/input-objects/ProductPublicationInput): ProductPublicationInput - A list of the channels where the product is published.
* [publishDate](/docs/api/admin-graphql/2024-10/scalars/DateTime): DateTime - Only products with an active status can be published.
* [publishOn](/docs/api/admin-graphql/2024-10/scalars/DateTime): DateTime - Only products with an active status can be published.
* [published](/docs/api/admin-graphql/2024-10/scalars/Boolean): Boolean - Only products with an active status can be published.
* [publishedAt](/docs/api/admin-graphql/2024-10/scalars/DateTime): DateTime - Only products with an active status can be published.
* [redirectNewHandle](/docs/api/admin-graphql/2024-10/scalars/Boolean): 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](/docs/api/admin-graphql/2024-10/scalars/Boolean): 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](/docs/api/admin-graphql/2024-10/input-objects/SEOInput): SEOInput - The [SEO title and description](https://help.shopify.com/manual/promoting-marketing/seo/adding-keywords)
that are associated with a product.
* [status](/docs/api/admin-graphql/2024-10/enums/ProductStatus): ProductStatus - The [product status](https://help.shopify.com/manual/products/details/product-details-page#product-status),
which controls visibility across all sales channels.
* [tags](/docs/api/admin-graphql/2024-10/scalars/String): 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](/docs/api/admin-graphql/2024-10/scalars/String): String - The [theme template](https://shopify.dev/docs/storefronts/themes/architecture/templates) that's used when customers view a product in a store.
* [title](/docs/api/admin-graphql/2024-10/scalars/String): 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`.
* [vendor](/docs/api/admin-graphql/2024-10/scalars/String): String - The name of the product's vendor.
## Input objects with this input object
* [productCreate](/docs/api/admin-graphql/2024-10/mutations/productCreate)
* [productUpdate](/docs/api/admin-graphql/2024-10/mutations/productUpdate)
## Examples