Products and Collections APIs

Access and manipulate a store's catalog using product and collection APIs.

In this section

  • Channel — A channel represents an app where you sell a group of products and collections. A channel can be a platform or marketplace such as Facebook or Pinterest, an online store, or POS.

  • Collection — Represents a collection of products.

  • CollectionDeleteInput — Specifies the collection to delete.

  • CollectionInput — Specifies the input fields required to create a collection.

  • CollectionPublication — Represents the publications where a collection is published.

  • CollectionPublicationInput — Specifies the publications to which a collection will be published.

  • CollectionPublishInput — Specifies a collection to publish and the sales channels to publish it to.

  • CollectionRule — Represents at rule that’s used to assign products to a collection.

  • CollectionRuleColumn — Specifies the property of a product being used to populate the smart collection.

  • CollectionRuleConditions — Collections may use rules to automatically include the matching products. This defines restrictions for a type of rule.

  • CollectionRuleInput — Specifies a rule to associate with a collection.

  • CollectionRuleRelation — Specifies the relationship between the column and the condition.

  • CollectionRuleSet — The set of rules that are used to determine which products are included in the collection.

  • CollectionRuleSetInput — Specifies a rule set for the collection.

  • CollectionSortKeys — The set of valid sort keys for the Collection query.

  • CollectionSortOrder — Specifies the sort order for the products in the collection.

  • CollectionUnpublishInput — Specifies the collection to unpublish and the sales channels to remove it from.

  • CreateMediaInput — Specifies the input fields required to create a media object.

  • ExternalVideo — Represents a video hosted outside of Shopify.

  • Media — An auto-generated type for paginating through multiple Media.

  • MediaContentType — The possible content types for a media object.

  • MediaHost — Host for a Media Resource.

  • MediaImage — Represents a Shopify hosted image.

  • MediaPreviewImage — Represents the preview image for a media.

  • MediaPreviewImageStatus — The possible statuses for a media preview image.

  • MediaStatus — The possible statuses for a media object.

  • Model3d — Represents a Shopify hosted 3D model.

  • Model3dSource — Represents a source for a Shopify hosted 3d model.

  • MoveInput — An individual move to perform of an object to a position.

  • OnlineStorePreviewable — Online Store preview URL of the object.

  • PriceList — Represents a price list, including information about related prices and eligibility rules. You can use price lists to specify either fixed prices or adjusted relative prices that override initial product variant prices. Price lists are applied to customers using context rules, which determine price list eligibility. For more information on price lists, refer to Support different pricing models using the price list API.

  • PriceListAdjustment — Represents the type and value of price list adjustments.

  • PriceListAdjustmentInput — Provides the fields and values to use when updating a price list parent adjustment.

  • PriceListAdjustmentType — Represents a percentage price adjustment type.

  • PriceListContext — Represents a set of facts about the customer used to determine price list eligibility. For example, you can specify the country code so that the price list only applies to customers visiting from a specific country.

  • PriceListContextRule — Represents a set of facts about the customer used to determine price list eligibility.

  • PriceListContextRuleInput — The context that the price list applies to.

  • PriceListCreateInput — Provides the fields and values to use when creating a price list.

  • PriceListParent — Represents relative adjustments from one price list to other prices. You can use a PriceListParent to specify an adjusted relative price using a percentage-based adjustment. Adjusted prices work in conjunction with exchange rules and rounding. Adjustment types support both percentage increases and decreases.

  • PriceListParentCreateInput — Provides the fields and values to use when creating a price list parent adjustment.

  • PriceListParentUpdateInput — Relative adjustments to other prices.

  • PriceListPrice — Represents information about pricing for a product variant as defined on a price list, such as the price, compare at price, and origin type. You can use a PriceListPrice to specify a fixed price for a specific product variant.

  • PriceListPriceInput — Provides the fields and values to use when creating or updating a fixed price list price.

  • PriceListPriceOriginType — Represents the origin of a price, either fixed (defined on the price list) or relative (calculated using an adjustment via a price list parent configuration).

  • PriceListSortKeys — The set of valid sort keys for the PriceList query.

  • PriceListUpdateInput — Provides the fields and values to use when updating a price list.

  • Product — Represents a product, including information about related collections and product variants.

  • ProductAppendImagesInput — Specifies product images to append.

  • ProductCollectionSortKeys — The set of valid sort keys for the ProductCollection query.

  • ProductDeleteInput — Specifies the product to delete.

  • ProductImageSortKeys — The set of valid sort keys for the ProductImage query.

  • ProductInput — Specifies the input fields required to create a product.

  • ProductMediaSortKeys — The set of valid sort keys for the ProductMedia query.

  • ProductOption — Product property names like 'Size', 'Color', and 'Material'. Variants are selected based on permutations of these options. 255 characters limit each.

  • ProductPriceRange — The price range of the product.

  • ProductPriceRangeV2 — The price range of the product.

  • ProductPublication — Represents the channels where a product is published.

  • ProductPublicationInput — Specifies a publication to which a product will be published.

  • ProductPublishInput — Specifies a product to publish and the channels to publish it to.

  • ProductSortKeys — The set of valid sort keys for the Product query.

  • ProductStatus — The possible product statuses.

  • ProductUnpublishInput — Specifies a product to unpublish from a channel and the sales channels to unpublish it from.

  • ProductVariant — Represents a product variant.

  • ProductVariantAppendMediaInput — Specifies the input fields required to append media to a single variant.

  • ProductVariantDetachMediaInput — Specifies the input fields required to detach media from a single variant.

  • ProductVariantInput — Specifies a product variant to create or update.

  • ProductVariantInventoryManagement — The method of inventory tracking for a product variant.

  • ProductVariantInventoryPolicy — The inventory policy for a product variant controls whether customers can continue to buy the variant when it is out of stock. When the value is continue, customers are able to buy the variant when it’s out of stock. When the value is deny, customers can’t buy the variant when it’s out of stock.

  • ProductVariantPositionInput — Represents a product variant position.

  • ProductVariantPricePair — The compare-at price and price of a variant sharing a currency.

  • ProductVariantSortKeys — The set of valid sort keys for the ProductVariant query.

  • ProductVariantsBulkInput — Specifies a product variant to create as part of a variant bulk mutation.

  • PublicationInput — Specifies the input fields required to publish a resource.

  • Publishable — Represents a resource that can be published to a channel. A publishable resource can be either a Product or Collection.

  • ResourcePublication — A resource publication represents that a resource has been published to a publication.

  • ResourcePublicationV2 — A resource publication represents that a resource either has been published or will be published to a publication.

  • SelectedOption — Properties used by customers to select a product variant. Products can have multiple options, like different sizes or colors.

  • SellingPlan — Represents how a product can be sold and purchased. Selling plans and associated records (selling plan groups and policies) are deleted 48 hours after a merchant uninstalls their subscriptions app. We recommend backing up these records if you need to restore them later. For more information on selling plans, refer to Creating and managing selling plans.

  • SellingPlanAnchor — Represents a selling plan policy anchor.

  • SellingPlanAnchorInput — Specifies the input fields required to create or update a selling plan anchor.

  • SellingPlanAnchorType — Represents the anchor type.

  • SellingPlanBillingPolicy — Represents the billing frequency associated to the selling plan (for example, bill every week, or bill every three months). The selling plan billing policy and associated records (selling plan groups, selling plans, pricing policies, and delivery policy) are deleted 48 hours after a merchant uninstalls their subscriptions app. We recommend backing up these records if you need to restore them later.

  • SellingPlanBillingPolicyInput — Specifies the input fields required to create or update a billing policy type.

  • SellingPlanDeliveryPolicy — Represents the delivery frequency associated to the selling plan (for example, deliver every month, or deliver every other week). The selling plan delivery policy and associated records (selling plan groups, selling plans, pricing policies, and billing policy) are deleted 48 hours after a merchant uninstalls their subscriptions app. We recommend backing up these records if you need to restore them later.

  • SellingPlanDeliveryPolicyInput — Specifies the input fields to create or update a delivery policy.

  • SellingPlanFixedPricingPolicy — Represents a fixed selling plan pricing policy.

  • SellingPlanFixedPricingPolicyInput — Specifies the input fields required to create or update a fixed selling plan pricing policy.

  • SellingPlanGroup — Represents a selling method (for example, 'Subscribe and save' or 'Pre-paid'). Selling plan groups and associated records (selling plans and policies) are deleted 48 hours after a merchant uninstalls their subscriptions app. We recommend backing up these records if you need to restore them later.

  • SellingPlanGroupInput — Specifies the input fields required to create or update a selling plan group.

  • SellingPlanGroupResourceInput — Specifies resource association with a Selling Plan Group.

  • SellingPlanGroupSortKeys — The set of valid sort keys for the SellingPlanGroup query.

  • SellingPlanInput — Specifies the input fields to create or update a selling plan.

  • SellingPlanInterval — Represents valid selling plan interval.

  • SellingPlanPricingPolicy — Represents the type of pricing associated to the selling plan (for example, a $10 or 20% discount that is set for a limited period or that is fixed for the duration of the subscription). Selling plan pricing policies and associated records (selling plan groups, selling plans, billing policy, and delivery policy) are deleted 48 hours after a merchant uninstalls their subscriptions app. We recommend backing up these records if you need to restore them later.

  • SellingPlanPricingPolicyAdjustmentType — Represents a selling plan pricing policy adjustment type.

  • SellingPlanPricingPolicyAdjustmentValue — Represents a selling plan pricing policy adjustment value type.

  • SellingPlanPricingPolicyBase — Represents selling plan pricing policy common fields.

  • SellingPlanPricingPolicyInput — Specifies the input fields required to create or update a selling plan pricing policy.

  • SellingPlanPricingPolicyPercentageValue — Represents the percentage value of a selling plan pricing policy percentage type.

  • SellingPlanPricingPolicyValueInput — Specifies the input fields required to create or update a pricing policy adjustment value.

  • SellingPlanRecurringBillingPolicy — Represents a recurring selling plan billing policy.

  • SellingPlanRecurringBillingPolicyInput — Specifies the input fields required to create or update a recurring billing policy.

  • SellingPlanRecurringDeliveryPolicy — Represents a recurring selling plan delivery policy.

  • SellingPlanRecurringDeliveryPolicyInput — Specifies the input fields to create or update a recurring delivery policy.

  • SellingPlanRecurringDeliveryPolicyIntent — Possible intentions of a Delivery Policy.

  • SellingPlanRecurringDeliveryPolicyPreAnchorBehavior — Possible fulfillment or delivery behaviors of the first fulfillment when the orderis placed before the anchor.

  • SellingPlanRecurringPricingPolicy — Represents a recurring selling plan pricing policy.

  • SellingPlanRecurringPricingPolicyInput — Specifies the input fields required to create or update a recurring selling plan pricing policy.

  • StagedMediaUploadTarget — Staged media target information.

  • UpdateMediaInput — Specifies the input fields required to update a media object.

  • Video — Represents a Shopify hosted video.

  • VideoSource — Represents a source for a Shopify hosted video.

  • Weight — Represents weight unit and value.

  • WeightInput — Specifies the weight unit and value inputs.

  • WeightUnit — Units of measurement for weight.

  • collectionAddProducts — Adds products to a collection.

  • collectionCreate — Creates a collection.

  • collectionDelete — Deletes a collection.

  • collectionPublish — Publishes a collection to a channel.

  • collectionRemoveProducts — Removes a set of products from a given collection. It can take a long time to run. Instead of returning a collection it returns a job, which should be polled.

  • collectionReorderProducts — Asynchronously reorders a set of products from a given collection.

  • collectionUnpublish — Unpublishes a collection.

  • collectionUpdate — Updates a collection.

  • priceListCreate — Create a price list. You can use the priceListCreate mutation to create a new price list for a country. This lets you sell your products with international pricing.

  • priceListDelete — Delete a price list. You can use the priceListDelete mutation to delete a price list, so that it no longer applies for products in that country. To delete a price list, you need to specify the price list ID.

  • priceListFixedPricesAdd — Creates or updates fixed prices on a price list. You can use the priceListFixedPricesAdd mutation to set a fixed price for specific product variants. This lets you change product variant pricing on a per country basis. Any existing fixed price list prices for these variants will be overwritten.

  • priceListFixedPricesDelete — Deletes specific prices from a price list using a product variant ID. You can use the priceListFixedPricesDelete mutation to delete a partial set of prices on a price list. After deletion, the prices no longer apply for products in the country.

  • priceListUpdate — Update a price list. You can update a price list to make changes to percentage-based price adjustments. You can use the priceListUpdate mutation to update an existing price list for a country. This lets you change product pricing on a per country basis. As part of the mutation, you can change the name, percentage-based adjustment, currency, and country.

  • productAppendImages — Appends images to a product.

  • productChangeStatus — Change status of a product.

  • productCreate — Creates a product. Products that are sold exclusively on subscription (requiresSellingPlan: true) can only be created on online stores.

  • productCreateMedia — Creates media for a product.

  • productDelete — Deletes a product.

  • productDeleteImages — Removes a product images from the product.

  • productDeleteMedia — Deletes media for a product.

  • productDuplicate — Duplicates a product.

  • productImageUpdate — Updates an image of a product.

  • productJoinSellingPlanGroups — Adds multiple selling plan groups to a product.

  • productLeaveSellingPlanGroups — Removes multiple groups from a product.

  • productPublish — Publishes a product. Products that are sold exclusively on subscription (requiresSellingPlan: true) can only be published on online stores.

  • productReorderImages — Asynchronously reorders a set of images for a given product.

  • productReorderMedia — Asynchronously Reoders the media attached to a product.

  • productUnpublish — Unpublishes a product.

  • productUpdate — Updates a product. If you update a product, and only some variants are included in the update, then any variants not included will be deleted. If you want to update a single variant, then use productVariantUpdate. Products that are sold exclusively on subscription (requiresSellingPlan: true) can be updated only on online stores. If you update a product to be sold only on a subscription, then the product is unpublished from all channels except the online store.

  • productUpdateMedia — Updates media for a product.

  • productVariantAppendMedia — Appends media from a product to variants of the product.

  • productVariantCreate — Creates a product variant.

  • productVariantDelete — Deletes a product variant.

  • productVariantDetachMedia — Deletes media from product variants.

  • productVariantJoinSellingPlanGroups — Adds multiple selling plan groups to a product variant.

  • productVariantLeaveSellingPlanGroups — Remove multiple groups from a product variant.

  • productVariantUpdate — Updates a product variant.

  • productVariantsBulkCreate — Creates product variants in bulk.

  • productVariantsBulkDelete — Deletes product variants in bulk.

  • productVariantsBulkReorder — Bulk reorder product variants.

  • productVariantsBulkUpdate — Updates product variants in bulk.

  • publishablePublish — Publishes a resource to a channel. If the resource is a product, then it’s visible in the channel only if the product status is active. Products that are sold exclusively on subscription (requiresSellingPlan: true) can be published only on online stores.

  • publishablePublishToCurrentChannel — Publishes a resource to current channel. If the resource is a product, then it’s visible in the channel only if the product status is active. Products that are sold exclusively on subscription (requiresSellingPlan: true) can be published only on online stores.

  • publishableUnpublish — Unpublishes a resource from a channel. If the resource is a product, then it’s visible in the channel only if the product status is active.

  • publishableUnpublishToCurrentChannel — Unpublishes a resource from the current channel. If the resource is a product, then it’s visible in the channel only if the product status is active.

  • sellingPlanGroupAddProductVariants — Adds multiple product variants to a selling plan group.

  • sellingPlanGroupAddProducts — Adds multiple products to a selling plan group.

  • sellingPlanGroupCreate — Creates a Selling Plan Group.

  • sellingPlanGroupDelete — Delete a Selling Plan Group.

  • sellingPlanGroupRemoveProductVariants — Removes multiple product variants from a selling plan group.

  • sellingPlanGroupRemoveProducts — Removes multiple products from a selling plan group.

  • sellingPlanGroupUpdate — Update a Selling Plan Group.