---
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#write_products). 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)

[Shopify AI Toolkit\
\
](https://shopify.dev/docs/apps/build/ai-toolkit)

[Use AI-powered assistance to generate GraphQL operations, convert REST to GraphQL, and get help building Shopify apps.](https://shopify.dev/docs/apps/build/ai-toolkit)

[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)

***
