--- title: Product merchandising description: >- Learn how to build apps that help merchants organize, display, and sell their products effectively using the GraphQL Admin API. source_url: html: 'https://shopify.dev/docs/apps/build/product-merchandising' md: 'https://shopify.dev/docs/apps/build/product-merchandising.md' --- # Product merchandising Product merchandising encompasses the strategies and tools that help merchants organize, display, and sell their products more effectively. The [GraphQL Admin API](https://shopify.dev/docs/api/admin-graphql) provides comprehensive tools for building apps that enhance merchandising capabilities. This guide introduces the different merchandising capabilities available in Shopify and helps you understand which approach fits your use case. *** ## How it works Shopify provides several ways to help merchants merchandise their products: * **Products and collections**: The foundation of product merchandising. Create and manage products with options and variants, sync data from external sources, manage media, and organize products into collections. * **Product bundles**: Group multiple products together and sell them as a single unit. Shopify offers fixed bundles (predefined groupings) and customized bundles (dynamic selections powered by Shopify Functions). * **Combined listings**: Bring together multiple products that share a common attribute and display them as a single product with up to six options instead of three. Available only on Shopify Plus. * **Nested cart lines**: Display grouped products with parent-child relationships in the cart. Useful for bundles, gift sets, and other product groupings. * **Unlisted products**: Hide products from search engines, sitemaps, and recommendations while keeping them purchasable through direct links. *** ## Get started Explore these guides to learn about each merchandising capability. [Products and collections\ \ ](https://shopify.dev/docs/apps/build/product-merchandising/products-and-collections) [Create and manage products with options and variants, sync data from external sources, and organize products into collections.](https://shopify.dev/docs/apps/build/product-merchandising/products-and-collections) [Product bundles\ \ ](https://shopify.dev/docs/apps/build/product-merchandising/bundles) [Help merchants group multiple products together and sell them as a single unit to increase average order value.](https://shopify.dev/docs/apps/build/product-merchandising/bundles) [Combined listings\ \ ](https://shopify.dev/docs/apps/build/product-merchandising/combined-listings) [Display multiple related products as a single listing with extended options. Available only on Shopify Plus.](https://shopify.dev/docs/apps/build/product-merchandising/combined-listings) [Nested cart lines\ \ ](https://shopify.dev/docs/apps/build/product-merchandising/nested-cart-lines) [Display bundle components and grouped products with parent-child relationships in the cart.](https://shopify.dev/docs/apps/build/product-merchandising/nested-cart-lines) [Unlisted products\ \ ](https://shopify.dev/docs/apps/build/product-merchandising/unlisted-products) [Hide products from public discovery while keeping them purchasable through direct links.](https://shopify.dev/docs/apps/build/product-merchandising/unlisted-products) *** ## Requirements To build product merchandising apps, you need: * An app that can make [authenticated requests](https://shopify.dev/docs/api/admin-graphql#authentication) to the GraphQL Admin API. * The `write_products` [access scope](https://shopify.dev/docs/api/usage/access-scopes). Some features require additional scopes like `write_files` for media or `write_metaobjects` for taxonomy linking. Learn how to [configure your access scopes using Shopify CLI](https://shopify.dev/docs/apps/build/cli-for-apps/app-configuration). *** ## API resources The following GraphQL Admin API resources are commonly used for product merchandising: | Resource | Description | | - | - | | [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) | Represents an individual product with title, description, and vendor information. | | [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) | Represents a specific purchasable SKU with price, inventory, and barcode. | | [`ProductOption`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOption) | Represents customizable options like color or size. | | [`Collection`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection) | Represents a grouping of products for organization and browsing. | | [`File`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/File) | Interface for files (images, videos, 3D models) that can be associated with products. | *** ## Developer tools and resources [GraphQL Admin API reference\ \ ](https://shopify.dev/docs/api/admin-graphql) [Explore the complete GraphQL Admin API reference documentation for all available objects, queries, mutations, and enums.](https://shopify.dev/docs/api/admin-graphql) [Dev MCP server\ \ ](https://shopify.dev/docs/apps/build/devmcp) [Use AI-powered assistance to generate GraphQL operations, convert REST to GraphQL, and get interactive help with Shopify's MCP server.](https://shopify.dev/docs/apps/build/devmcp) [Custom data\ \ ](https://shopify.dev/docs/apps/build/custom-data) [Learn about metafields and metaobjects for storing additional product information and taxonomy data.](https://shopify.dev/docs/apps/build/custom-data) ***