Skip to main content
connection

An auto-generated type for paginating through multiple Products.

Anchor to Fields with this connectionFields with this connection

•OBJECT

A connection between a Shopify shop and an external selling platform that supports product syndication and optionally order ingestion. Each channel binds a merchant's account on a specific platform — such as Amazon, eBay, Google, or a point-of-sale system — to the shop, establishing the publishing destination for product feeds.

Sales Channel applications use channelCreate to establish channels after merchant authentication, and can manage multiple channel connections per app. Each channel is bound to a channel specification that declares the platform's regional coverage, capabilities, and requirements.

Use channels to manage where catalog items are syndicated, track publication status across platforms, and control Product visibility for different selling destinations.

•OBJECT

The Collection object represents a group of products that merchants can organize to make their stores easier to browse and help customers find related products. Collections serve as the primary way to categorize and display products across online stores, sales channels, and marketing campaigns.

There are two types of collections:

The Collection object provides information to:

  • Organize products by category, season, or promotion.
  • Automate product grouping using rules (for example, by tag, type, or price).
  • Configure product sorting and display order (for example, alphabetical, best-selling, price, or manual).
  • Manage collection visibility and publication across sales channels.
  • Add rich descriptions, images, and metadata to enhance discovery.

Note

Collections are unpublished by default. To make them available to customers, use the publishablePublish mutation after creation.


Collections can be displayed in a store with Shopify's theme system through Liquid templates and can be customized with template suffixes for unique layouts. They also support advanced features like translated content, resource feedback, and contextual publication for location-based catalogs.

Learn about using metafields with smart collections.

•OBJECT

A list of products and product variants that the discount can have as a prerequisite or a list of products and product variants to which the discount can be applied.

•OBJECT

The items to which this price rule applies. This may be multiple products, product variants, collections or combinations of the aforementioned.

•OBJECT

Single or multiple line item products, product variants or collections required for the price rule to be applicable, can also be provided in combination.

•OBJECT

The Product object lets you manage products in a merchant’s store.

Products are the goods and services that merchants offer to customers. They can include various details such as title, description, price, images, and options such as size or color. You can use product variants to create or update different versions of the same product. You can also add or update product media. Products can be organized by grouping them into a collection.

Learn more about working with Shopify's product model, including limitations and considerations.

•OBJECT

The ProductVariant object represents a version of a product that comes in more than one option, such as size or color. For example, if a merchant sells t-shirts with options for size and color, then a small, blue t-shirt would be one product variant and a large, blue t-shirt would be another.

Use the ProductVariant object to manage the full lifecycle and configuration of a product's variants. Common use cases for using the ProductVariant object include:

  • Tracking inventory for each variant
  • Setting unique prices for each variant
  • Assigning barcodes and SKUs to connect variants to fulfillment services
  • Attaching variant-specific images and media
  • Setting delivery and tax requirements
  • Supporting product bundles, subscriptions, and selling plans

A ProductVariant is associated with a parent Product object. ProductVariant serves as the central link between a product's merchandising configuration, inventory, pricing, fulfillment, and sales channels within the GraphQL Admin API schema. Each variant can reference other GraphQL types such as:

Learn more about Shopify's product model.

•OBJECT

A group of products and collections that are published to an app.

Each publication manages which products and collections display on its associated Channel. Merchants can automatically publish products when they're created if autoPublish is enabled, or manually control publication through publication records.

Publications support scheduled publishing through future publish dates for online store channels, allowing merchants to coordinate product launches and promotional campaigns. The catalog field links to pricing and availability rules specific to that publication's context.

•OBJECT

A group of products and collections that are published to an app.

Each publication manages which products and collections display on its associated Channel. Merchants can automatically publish products when they're created if autoPublish is enabled, or manually control publication through publication records.

Publications support scheduled publishing through future publish dates for online store channels, allowing merchants to coordinate product launches and promotional campaigns. The catalog field links to pricing and availability rules specific to that publication's context.

•OBJECT

A selling method that defines how products can be sold through purchase options like subscriptions, pre-orders, or try-before-you-buy. Groups one or more SellingPlan objects that share the same selling method and options.

The group provides buyer-facing labels and merchant-facing descriptions for the selling method. Associates Product and ProductVariant objects with selling plan groups to offer them through these purchase options.


Caution

Selling plan groups and their associated records are automatically deleted 48 hours after a merchant uninstalls the App that created them. Back up these records if you need to restore them later.



Was this section helpful?

Anchor to Queries with this connectionQueries with this connection

•query

Retrieves a list of products in a store. Products are the items that merchants can sell in their store.

Use the products query when you need to:

  • Build a browsing interface for a product catalog.
  • Create product searching, sorting, and filtering experiences.
  • Implement product recommendations.
  • Sync product data with external systems.

The products query supports pagination to handle large product catalogs and saved searches for frequently used product queries.

The products query returns products with their associated metadata, including:

  • Basic product information (for example, title, description, vendor, and type)
  • Product options and product variants, with their prices and inventory
  • Media attachments (for example, images and videos)
  • SEO metadata
  • Product categories and tags
  • Product availability and publishing statuses

Learn more about working with Shopify's product model.

Arguments

•String

The elements that come after the specified cursor.

•String

The elements that come before the specified cursor.

•Int

The first n elements from the paginated list.

•Int

The last n elements from the paginated list.

•String

A filter made up of terms, connectives, modifiers, and comparators.

nametypedescriptionacceptable_valuesdefault_valueexample_use
defaultstringFilter by a case-insensitive search of multiple fields
in a document.- query=Bob Norman
- query=title:green hoodie
barcodestringFilter by the product variant barcode
field.- barcode:ABC-abc-1234
bundlesbooleanFilter by a [product
bundle](https://shopify.dev/docs/apps/build/product-merchandising/bundles).
A product bundle is a set of two or more related products, which are
commonly offered at a discount.- bundles:true
category_idstringFilter by the product category ID
(product.category.id). A product category is the category of a product
from Shopify's Standard Product Taxonomy.
- category_id:sg-4-17-2-17
collection_ididFilter by the collection id
field.- collection_id:108179161409
combined_listing_rolestringFilter by the role of the product in a combined listing.
- parent
- child
- no_role
-
combined_listing_role:parent
created_attimeFilter by the date and time when the product was
created.- created_at:>'2020-10-21T23:39:20Z'
-
created_at:<now
- created_at:<='2024'
delivery_profile_ididFilter by the delivery profile id
field.- delivery_profile_id:108179161409
error_feedbackstringFilter by products with publishing errors.
gift_cardbooleanFilter by the product isGiftCard
field.- gift_card:true
handlestringFilter by a comma-separated list of product handles.
- handle:the-minimal-snowboard
has_only_compositesbooleanFilter by products that have only
composite variants.- has_only_composites:true
has_only_default_variantbooleanFilter by products that have only a
default variant. A default variant is the only variant if no other variants
are specified.- has_only_default_variant:true
has_variant_with_componentsbooleanFilter by products that have
variants with associated components.-
has_variant_with_components:true
ididFilter by id range.- id:1234
- id:>=1234
- id:<=1234
inventory_totalintegerFilter by inventory count.-
inventory_total:0
- inventory_total:>150
-
inventory_total:>=200
is_price_reducedbooleanFilter by products that have a reduced price.
For more information, refer to the CollectionRule
object.- is_price_reduced:true
metafields.{namespace}.{key}mixedFilters resources by metafield
value. Format: metafields.{namespace}.{key}:{value}. Learn more about
querying by metafield value.
- metafields.custom.on_sale:true
-
metafields.product.material:"gid://shopify/Metaobject/43458085"
out_of_stock_somewherebooleanFilter by products that are out of
stock in at least one location.- out_of_stock_somewhere:true
pricebigdecimalFilter by the product variant price
field.- price:100.57
product_configuration_ownerstringFilter by the app
id
field.- product_configuration_owner:10001
product_publication_statusstringFilter by channel approval process
status of the resource on a channel, such as the online store. The value is
a composite of the channel app ID
(Channel.app.id) and one of the valid values. For simple visibility checks, use published_status
instead.- * {channel_app_id}-approved
- `*
{channel_app_id}-rejected<br/> - * {channel_app_id}-needs_action`
-
* {channel_app_id}-awaiting_review
- `*
{channel_app_id}-published<br/> - * {channel_app_id}-demoted<br/> - *
{channel_app_id}-scheduled<br/> - *
{channel_app_id}-provisionally_published`-
product_publication_status:189769876-approved
product_typestringFilter by a comma-separated list of [product
types](https://help.shopify.com/manual/products/details/product-type).
  • product_type:snowboard | | publication_ids | string | Filter by a comma-separated list of publication IDs that are associated with the product. | | | - publication_ids:184111530305,184111694145 | | publishable_status | string | Deprecated: This parameter is deprecated as of 2025-12 and will be removed in a future API version. Use published_status for visibility checks. Filter by the publishable status of the resource on a channel. The value is a composite of the channel app ID (Channel.app.id) and one of the valid status values. | - * {channel_app_id}-unset
    - * {channel_app_id}-pending
    - * {channel_app_id}-approved
    - * {channel_app_id}-not_approved | | - publishable_status:580111-unset
    - publishable_status:580111-pending | | published_at | time | Filter by the date and time when the product was published to the online store and other sales channels. | | | - published_at:>2020-10-21T23:39:20Z
    - published_at:<now
    - published_at:<=2024 | | published_status | string | Filter resources by their visibility and publication state on a channel. Online store channel filtering: - online_store_channel: Returns all resources in the online store channel, regardless of publication status. - published/visible: Returns resources that are published to the online store. - unpublished: Returns resources that are not published to the online store. Channel-specific filtering using a channel ID, channel handle, channel app ID (Channel.app.id), or app handle with suffixes: - {id_or_handle}-published: Returns resources published to the specified channel. - {id_or_handle}-visible: Same as {id_or_handle}-published (kept for backwards compatibility). - {id_or_handle}-intended: Returns resources added to the channel but not yet published. - {id_or_handle}-hidden: Returns resources not added to the channel or not published. Other: - unavailable: Returns resources not published to any channel. | - online_store_channel
    - published
    - visible
  • unpublished
    - * {channel_id_or_handle}-published
    - * {channel_id_or_handle}-visible
    - * {channel_id_or_handle}-intended
    - * {channel_id_or_handle}-hidden
    - * {channel_app_id_or_handle}-published
    - * {channel_app_id_or_handle}-visible
    - * {channel_app_id_or_handle}-intended
    - * {channel_app_id_or_handle}-hidden
    - unavailable | | - published_status:online_store_channel
    - published_status:published
    - published_status:580111-published
  • published_status:580111-hidden
    - published_status:my-channel-handle-published
    - published_status:unavailable | | sku | string | Filter by the product variant sku field. Learn more about SKUs. | | | - sku:XYZ-12345 | | status | string | Filter by a comma-separated list of statuses. You can use statuses to manage inventory. Shopify only displays products with an ACTIVE status in online stores, sales channels, and apps. | - active
    - archived
    - draft | active | - status:active,draft | | tag | string | Filter objects by the tag field. | | | - tag:my_tag | | tag_not | string | Filter by objects that don’t have the specified tag. | | | - tag_not:my_tag | | title | string | Filter by the product title field. | | | - title:The Minimal Snowboard | | tracks_inventory | boolean | Filter by products that have inventory tracking enabled. | | | - tracks_inventory:true | | updated_at | time | Filter by the date and time when the product was last updated. | | | - updated_at:>'2020-10-21T23:39:20Z'
    - updated_at:<now
    - updated_at:<='2024' | | variant_id | id | Filter by the product variant id field. | | | - variant_id:45779434701121 | | variant_title | string | Filter by the product variant title field. | | | - variant_title:'Special ski wax' | | vendor | string | Filter by the origin or source of the product. Learn more about vendors and managing vendor information. | | | - vendor:Snowdevil
    - vendor:Snowdevil OR vendor:Icedevil | You can apply one or more filters to a query. Learn more about Shopify API search syntax.
•Boolean
Default:false

Reverse the order of the underlying list.

•ID

The ID of a saved search. The search’s query string is used as the query argument.

•ProductSortKeys
Default:ID

Sort the underlying list using a key. If your query is slow or returns an error, then try specifying a sort key that matches the field used in the search.



Was this section helpful?

•[ProductEdge!]!
non-null

The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node.

•[Product!]!
non-null

A list of nodes that are contained in ProductEdge. You can fetch data about an individual node, or you can follow the edges to fetch data about a collection of related nodes. At each node, you specify the fields that you want to retrieve.

•PageInfo!
non-null

An object that’s used to retrieve cursor information about the current page.


Was this section helpful?