Product Connection
An auto-generated type for paginating through multiple Products.
Anchor to Fields with this connectionFields with this connection
- •OBJECT
An authenticated link to an external platform that supports syndication and optionally order ingestion, such as Facebook, Pinterest, an online store, or Point of Sale (POS).
Each channel provides access to its underlying
App, published products and collections, andPublicationsettings, as well as what features of the platform it supports such as scheduled publishing. Use channels to manage where catalog items appear, track publication status across platforms, and controlProductvisibility for different customer touchpoints.- •OBJECT
The
Collectionobject 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:
- Custom (manual) collections: You specify the products to include in a collection.
- Smart (automated) collections: You define rules, and products matching those rules are automatically included in the collection.
The
Collectionobject 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.
NoteCollections 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
Productobject 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
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
object to manage the full lifecycle and configuration of a product's variants. Common use cases for using theobject 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
is associated with a parentProductobject.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:: Used for inventory trackingImage: Used for variant-specific images: Used for subscriptions and selling plans
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 ifis 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
catalogfield 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 ifis 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
catalogfield 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
objects that share the same selling method and options.The group provides buyer-facing labels and merchant-facing descriptions for the selling method. Associates
Productandobjects with selling plan groups to offer them through these purchase options.CautionSelling plan groups and their associated records are automatically deleted 48 hours after a merchant uninstalls the
Appthat created them. Back up these records if you need to restore them later.- •OBJECTDeprecated
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
productsquery 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
productsquery supports pagination to handle large product catalogs and saved searches for frequently used product queries.The
productsquery 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.
- Anchor to firstfirst•Int
The first
nelements from the paginated list.- Anchor to afterafter•String
The elements that come after the specified cursor.
- Anchor to lastlast•Int
The last
nelements from the paginated list.- Anchor to beforebefore•String
The elements that come before the specified cursor.
- Anchor to reversereverse•BooleanDefault:false
Reverse the order of the underlying list.
- Anchor to sortKeysort•Product
Key Sort Keys 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.
- Anchor to queryquery•String
A filter made up of terms, connectives, modifiers, and comparators. You can apply one or more filters to a query. Learn more about Shopify API search syntax.
- Anchor to default•string
Filter by a case-insensitive search of multiple fields in a document.
query=Bob Normanquery=title:green hoodie- Anchor to bundles•boolean
Filter by a product bundle. A product bundle is a set of two or more related products, which are commonly offered at a discount.
bundles:true- Anchor to category_id•string
Filter 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- Anchor to combined_listing_role•string
Filter by the role of the product in a combined listing.
parentchildno_rolecombined_listing_role:parent- Anchor to created_at•time
Filter by the date and time when the product was created.
created_at:>'2020-10-21T23:39:20Z'created_at:<nowcreated_at:<='2024'- Anchor to delivery_profile_id•id
Filter by the delivery profile
idfield.delivery_profile_id:108179161409- Anchor to error_feedback•string
Filter by products with publishing errors.
- Anchor to handle•string
Filter by a comma-separated list of product handles.
handle:the-minimal-snowboard- Anchor to has_only_composites•boolean
Filter by products that have only composite variants.
has_only_composites:true- Anchor to has_only_default_variant•boolean
Filter 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- Anchor to has_variant_with_components•boolean
Filter by products that have variants with associated components.
has_variant_with_components:true- Anchor to inventory_total•integer
Filter by inventory count.
inventory_total:0inventory_total:>150inventory_total:>=200- Anchor to metafields.{namespace}.{key}•mixed
Filters resources by metafield value. Format:
metafields.{namespace}.{key}:{value}. Learn more about querying by metafield value.metafields.custom.on_sale:truemetafields.product.material:"gid://shopify/Metaobject/43458085"- Anchor to out_of_stock_somewhere•boolean
Filter by products that are out of stock in at least one location.
out_of_stock_somewhere:true- Anchor to product_configuration_owner•string
Filter by the app
idfield.product_configuration_owner:10001- Anchor to product_publication_status•string
Filter by channel approval process status of the resource on a channel, such as the online store. The value is a composite of the channel
appID (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* {channel_app_id}-needs_action* {channel_app_id}-awaiting_review* {channel_app_id}-published* {channel_app_id}-demoted* {channel_app_id}-scheduled* {channel_app_id}-provisionally_publishedproduct_publication_status:189769876-approved- Anchor to product_type•string
Filter by a comma-separated list of product types.
product_type:snowboard- Anchor to publication_ids•string
Filter by a comma-separated list of publication IDs that are associated with the product.
publication_ids:184111530305,184111694145- Anchor to 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
appID (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_approvedpublishable_status:580111-unsetpublishable_status:580111-pending- Anchor to 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:20Zpublished_at:<nowpublished_at:<=2024- Anchor to published_status•string
Filter resources by their visibility and publication state on a channel. Online store channel filtering: -
: 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 the channelappID (Channel.app.id) with suffixes: -: Returns resources published to the specified channel. -: Same as(kept for backwards compatibility). -: Returns resources added to the channel but not yet published. -: Returns resources not added to the channel or not published. Other: -unavailable: Returns resources not published to any channel.online_store_channelpublishedvisibleunpublished* {channel_app_id}-published* {channel_app_id}-visible* {channel_app_id}-intended* {channel_app_id}-hiddenunavailablepublished_status:online_store_channelpublished_status:publishedpublished_status:580111-publishedpublished_status:580111-hiddenpublished_status:unavailable- Anchor to sku•string
Filter by the product variant
skufield. Learn more about SKUs.sku:XYZ-12345- Anchor to status•string
Filter by a comma-separated list of statuses. You can use statuses to manage inventory. Shopify only displays products with an
status in online stores, sales channels, and apps.activeDefaultarchiveddraftstatus:active,draft- Anchor to tag_not•string
Filter by objects that don’t have the specified tag.
tag_not:my_tag- Anchor to updated_at•time
Filter by the date and time when the product was last updated.
updated_at:>'2020-10-21T23:39:20Z'updated_at:<nowupdated_at:<='2024'- Anchor to variant_title•string
Filter by the product variant
titlefield.variant_title:'Special ski wax'- Anchor to vendor•string
Filter by the origin or source of the product. Learn more about vendors and managing vendor information.
vendor:Snowdevilvendor:Snowdevil OR vendor:Icedevil
Example:
Example:
Example:
Valid values:
Example:
Example:
Example:
Example:
Example:
Example:
Example:
Example:
Example:
Example:
Example:
Valid values:
Example:
Example:
Example:
Valid values:
Example:
Example:
Valid values:
Example:
Example:
Valid values:
Example:
Example:
Example:
Example:
Example:
- Anchor to savedSearchIdsaved•ID
Search Id The ID of a saved search. The search’s query string is used as the query argument.
Arguments
Anchor to Possible returnsPossible returns
- Anchor to edgesedges•[Product
Edge!]! non-null The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node.
- Anchor to nodesnodes•[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.
- Anchor to pageInfopage•Page
Info Info! non-null An object that’s used to retrieve cursor information about the current page.