Goal: Build and maintain Shopify combined listings - single storefront listings that join several separate products together under a shared option such as color or model - using a Products spreadsheet. You will learn how to create a listing, add a new child, remove a single child, and dissolve a listing entirely.
Prerequisites:
You have Altera installed on your Shopify store
Your store is on Shopify Plus (combined listings are currently a Plus-only feature)
The child products you want to combine already exist, or are included in the same import file
How combined listings are structured
A combined listing has two parts:
A parent product - the listing customers see. It holds no inventory and isn't purchased directly. Each of its option values (for example
Color: Grey) points to one child product.One or more child products - ordinary products with their own variants, prices, and images. A product becomes a child automatically when it's attached to a parent, and its
Combined Listing Roleshows asCHILDon export.
You define the whole structure in a normal Products sheet using three extra columns: Combined Listing Role, Combined Listing Child, and Combined Listing Child ID.
Step 1 - Create a combined listing
Add one parent row per option value, and point each row at the child product that fills it. The example below builds a "Modular Sofa" listing from a grey sofa and a blue sofa.
Handle | Command | Combined Listing Role | Title | Status | Option1 Name | Option1 Value | Combined Listing Child |
|
|
| Modular Sofa |
|
|
|
|
|
|
|
|
|
|
| |
|
| Grey Sofa |
|
|
| ||
|
| Blue Sofa |
|
|
|
The parent's Combined Listing Role is PARENT. The child rows are ordinary products and need no combined listing columns. Note that the role can only be set when a product is first created - you cannot turn an existing product into a parent.
Step 2 - Add a child to an existing listing
To offer another option, add a new parent row with a new option value and point it at the new child. Use MERGE so the children already in the listing are kept.
Handle | Command | Combined Listing Role | Option1 Name | Option1 Value | Combined Listing Child |
|
|
|
|
|
|
With MERGE, you only need to list the children you are adding or changing. Children you don't mention stay attached.
Step 3 - Remove a single child
To detach one child without disturbing the rest, add a Variant Command column and set it to DELETE on that child's parent row. This works under a normal MERGE and leaves the parent product otherwise unchanged.
Handle | Command | Variant Command | Combined Listing Role | Option1 Name | Option1 Value | Combined Listing Child |
|
|
|
|
|
|
|
The detached product is not deleted - it reverts to a normal standalone product. A Variant Command of IGNORE on a row skips it entirely, neither attaching nor detaching that child.
Step 4 - Dissolve a listing
A combined listing must always keep at least one child. Removing the last child is blocked with error PRD068, because Shopify would otherwise leave the parent as an empty, force-drafted listing rather than a normal product.
To dissolve a listing completely, delete the parent product instead - import a row for the parent with the Command column set to DELETE. Its former children remain on your store as standalone products.
Outcome
After importing, open the parent product in your Shopify admin. You should see the combined listing with each option value linked to its child product. Removed children appear as standalone products again, and a dissolved listing's parent no longer exists.
Next Steps
See the Product Fields reference for the full list of combined listing columns and the
combined_listing_roleexport filter.Use the
combined_listing_roleexport filter (with bothparentandchildselected) to export every product involved in your combined listings at once.
