Skip to main content
Product Taxonomy lets you describe the relationships between your products so customers can file a claim against a single part of a product (a component) or a single item within a bundle — rather than the entire purchase. You define these relationships by downloading a CSV template, filling in the relationship columns (by hand or with an AI assistant), and re-uploading it.

Why use Product Taxonomy

By default, a claim is filed against a product as a whole. Taxonomy adds structure so customers can be more specific about what went wrong:
  • Components — Parts that make up a single product. For example, a bed frame might have a headboard, side rails, and hardware kit as components. If only the headboard arrives damaged, the customer can file a claim against just that part.
  • Bundles — Separate products sold together as a set or kit. For example, a skincare bundle might contain a cleanser, toner, and moisturizer. If only the toner leaks in transit, the customer can file a claim against just that item.
Taxonomy can also describe variants — versions of the same product, like sizes or colors. Variants from Shopify sync automatically, so you only need to add variants that your platform doesn’t sync.

Why granular claims matter

When a customer can claim against a single part instead of the entire purchase, both sides of the claim get better outcomes:
  • Faster, more accurate resolutions. When the customer tells you exactly which part failed, there’s no back-and-forth to figure out what’s wrong. Your team can approve and fulfill the right replacement immediately.
  • Less waste and fewer unnecessary refunds. A single failed part no longer forces a full-product refund or a duplicate reshipment of items the customer already has.
  • Better product insight. Claims tagged to specific components or bundle items show you which parts fail most often — so you can fix a recurring issue at the source (a supplier, a packaging problem, a fragile clasp) instead of just eating the cost.
  • A clearer customer experience. Customers feel understood when the claim form reflects the real problem. Picking “the clasp broke” is far more intuitive than filing a vague claim against the whole necklace.
Customer choosing which part of a product has an issue In the example above, a customer with a Sterling Chain Necklace can pinpoint the Lobster Clasp as the part that failed — rather than claiming the entire necklace — so you can reship just the clasp.

Before you start: sync your product catalog

The taxonomy template is built from the product catalog Order Protection has for your store, so your products need to be in the dashboard before you download it. Open the Products page. If it shows No products found, sync your catalog first:
1

Turn on Product Sync

Ask your Customer Success Manager or your shared Slack channel to turn on the Product Sync capability for your store — an Order Protection admin can turn it on for you. Once your store is live, Product Sync also refreshes your catalog automatically twice a day.
2

Sync your products

On the Products page, click Sync Products to pull in your catalog now instead of waiting for the next automatic sync. When the sync finishes, your products appear in the list and the time of the last sync shows next to the button.
Sync Products pulls your catalog from Shopify, and you need permission to edit products to see it. If the button doesn’t appear after Product Sync is turned on, or your store is on another platform, ask your Customer Success Manager to get your catalog loaded.

Where to find it

1

Open Claims settings

From the dashboard, go to Settings → Claims.
2

Find the Product Taxonomy card

Scroll to the Product Taxonomy card. Here you’ll find the Download Template and Upload Catalog buttons.Product Taxonomy card in Claims settings
Don’t see the Product Taxonomy card? It only appears for team members with permission to edit products. If you have that permission and still don’t see it, ask your Customer Success Manager to turn on Product Taxonomy for your store.

How to upload your taxonomy

1

Download the template

Click Download Template on the Product Taxonomy card. This downloads a Product Taxonomy.csv file with a row for every product in your catalog, plus a row for each of its variants, so you have the correct IDs to work from. Any relationships you’ve uploaded before are already filled in.
2

Export your full product catalog

Export your full catalog from your ecommerce platform. The template only has each product’s name, SKU, price, status, and image. Your platform’s export adds the descriptions, product types, tags, and options that show which products are bundles and what they include.In Shopify, go to Products → Export, choose All products and Plain CSV file, then click Export products. Shopify emails you the file.
3

Map the relationships

For each product that is a component, bundle item, or variant, fill in the parent_source_product_id and relationship_type columns to point it at its parent product. The fastest way is to have an AI assistant map them from both files. You can also edit the template by hand in a spreadsheet. (See CSV structure below.)
4

Upload the catalog

Back on the Product Taxonomy card, click Upload Catalog and select your edited CSV. You’ll see a confirmation summarizing how many relationships were mapped, how many parent products they cover, any new products that were created, and any rows that were skipped.
Product IDs are long numbers. When Excel saves a CSV, it can turn them into scientific notation (like 7.05046E+12), which breaks them. If you edit the file by hand, use Google Sheets or Numbers — or don’t save it from Excel.

Map relationships with an AI assistant

Mapping relationships by hand is slow for a big catalog. An AI assistant that can read and create files, such as Claude or ChatGPT, can do the first pass for you from the template and your catalog export. You review what it sends back, then upload it.
1

Attach both files

Start a new chat and attach your Product Taxonomy.csv template and your catalog export.
2

Paste the prompts

Paste the base prompt, then paste the goal prompt for what you’re setting up — bundles, components, or variants — below it. To set up more than one at a time, add each goal prompt you need.
3

Review the result

The assistant sends back a CSV file, a summary of the relationships it added, and a list of anything it wasn’t sure about. Before you upload, check that:
  • Every parent has all of its parts or items. The upload replaces each parent’s relationships with the ones in the file.
  • The IDs match the template exactly.
  • Part names read the way a customer would describe them. Customers see these names when they file a claim.
  • Everything on the “not sure” list is resolved. Fix it in the file, or ask the assistant to.
4

Upload the file

Upload the file with Upload Catalog on the Product Taxonomy card. Then open the Products page and check the Relationship column to confirm each parent shows its parts or items.
Setting up bundles and components in separate chats? Download a fresh template before each one. The fresh template includes what you’ve already uploaded, so the assistant keeps it and your next upload doesn’t overwrite it.
Both files contain product information only — no customer or order data. If your export includes columns you’d rather not share, like Cost per item, delete them before you attach the file. For a very large catalog, export and map one product type or collection at a time.

Base prompt

Start every chat with this prompt. It tells the assistant how the template works and what to send back. Replace anything in [square brackets] with your own details.

Goal prompts

Paste the prompt for each thing you’re setting up below the base prompt.

Example prompt script

Here’s a complete prompt for a Shopify store that’s adding components to a necklace and mapping two bundles. It’s the base prompt followed by the Components and Bundles goal prompts, with the details filled in.
The assistant sends back a file like the one below, along with its summary and its “not sure” list — for example, a note that the 13-Piece Pan Set’s description doesn’t say which pans it includes. The file doesn’t need rows for the parent products themselves; they’re already in your catalog.

CSV structure

Each row in the CSV represents one product or one variant. A row becomes a component, bundle item, or variant by pointing it at a parent product using the last columns. The template has the columns below, in this order. Don’t delete or rename any of them — the upload needs the source_product_id, parent_source_product_id, and relationship_type columns even when most of their values are blank.

How rows are interpreted

  • Parent / top-level rows — Leave parent_source_product_id and relationship_type blank. These rows simply describe a product and act as the parent that components, bundle items, or variants attach to.
  • Relationship rows — A row with a relationship_type must also include a valid parent_source_product_id. This is what links the child to its parent:
    • COMPONENT — The row is a part of the parent product.
    • BUNDLE — The row is an item included in the parent bundle.
    • VARIANT — The row is a version of the parent product, like a size or color. Use the product’s own ID as both the source_product_id and the parent_source_product_id, and fill in the variant’s source_variant_id.
  • Variant rows — Rows that share a source_product_id and have a source_variant_id are that product’s variants. To make one specific variant a component or bundle item (say, only the 8 oz size of a toner), put the relationship on that variant’s row.
If a source_product_id in your CSV isn’t in your catalog yet — like a part that isn’t sold on its own — it’s created automatically as a new product using the name, sku, price, status, and product_image values from the row. A VARIANT row does the same for the variant it names, as long as its product already exists. A parent must already be in your catalog or have its own row in the file.

Example

In this example, the Bed Frame has two components (Headboard, Side Rails) that aren’t sold on their own, so they get new IDs. The Skincare Bundle contains two products you already sell (Cleanser, Toner), and the Water Bottle Sling has two variants (Black, Tan). A customer could file a claim against just the Headboard or just the Toner.

Sample CSV

Download a filled-in sample showing a component relationship (Sterling Chain Necklace), a bundle relationship (Skincare Bundle), and variants (Adventure Water Bottle Sling) to use as a starting point.

Rules & limitations

Keep these constraints in mind to avoid skipped rows or unexpected results.
  • One level of nesting only. A product can be a parent or a child, but not both. A component or bundle item cannot itself have its own components. If a file lists the same product as both, the whole upload is rejected.
  • A child has one parent. Each product can be linked to a single parent product.
  • Uploads replace each parent’s relationships. When you upload a CSV, the components/bundle items listed for a given parent replace that parent’s existing links, and a product you list under a new parent is moved off its old one. To make a change, re-download the current template, edit it, and re-upload.
  • Blanking out rows does not remove links. Removing all of a parent’s relationship rows from the CSV will not clear its existing components or bundle items. To remove a relationship entirely, contact your Customer Success Manager.
  • Synced variants aren’t affected. Variants that sync from Shopify don’t show up as relationships in the template, and uploads never change them.
  • Some errors reject the whole file. Nothing is saved if the file is missing the source_product_id, parent_source_product_id, or relationship_type column, if a relationship_type is anything other than COMPONENT, BUNDLE, or VARIANT, if a relationship row is missing its source_product_id or parent_source_product_id, or if an ID contains ::. The error message names the row to fix — Row 1 is the first row under the header.
  • Rows that can’t be matched are skipped. If a row’s product or parent can’t be found — for example, a parent_source_product_id that isn’t in your catalog and doesn’t have a row of its own — that row is skipped, the rest of the file is saved, and the upload summary shows how many rows were skipped.
  • CSV format only. The upload accepts .csv files up to 5 MB. The file name must end in .csv.

Keeping your taxonomy up to date

Your taxonomy is only as valuable as it is accurate. Your catalog changes over time — you launch new products, redesign a bundle, rename a part, or discontinue an item — and each of those changes should be reflected in your taxonomy so customers always see the right parts to claim against. You can review each product’s relationships on the Products page, where the Relationship column shows whether a product is a parent (e.g., Parent · 3 Parts), a component, or a set of variants. With Product Sync on, a live store’s catalog refreshes twice a day, and Sync Products pulls in the latest changes on demand. Products dashboard showing component relationships Keeping your taxonomy current matters because:
  • New products default to whole-item claims. Until a newly launched product’s components or bundle items are mapped, customers can only claim against the entire product — which means higher-cost resolutions on exactly the products you know least about.
  • Stale mappings confuse customers. A renamed or removed part that still appears (or a new part that’s missing) makes the claim form inaccurate and erodes trust.
  • Your failure data stays meaningful. Accurate component mapping is what lets you trust the “which parts fail most often” insight — outdated taxonomy skews it.
Make updating your taxonomy part of your product-launch and catalog-cleanup routine. Whenever you add or restructure products, sync your catalog, download a fresh template, and map the new products — by hand or with the AI prompts — so granular claims work from day one.

The customer experience

Once your taxonomy is uploaded, customers filing a claim will see a Which part is affected? dropdown when describing their issue. It defaults to Whole item, with each mapped component or bundle item listed as an option. This lets the customer pinpoint exactly which part has the issue.
The Which part is affected? selector appears when the issue type is Damaged or Defective. Missing is also available for bundle items — a bundle can arrive with one of its items missing — but not for components, since a component is part of a single product and can’t go missing on its own. For all other issue types, the claim is filed against the whole item.
Customer selecting an affected part during claim filing After the claim is filed, the selected part is carried through to the claim itself. The affected component or bundle item appears under Includes: on the line item, so your team can see exactly which part the customer is claiming against. Filed claim showing the affected part In the claim detail view, the affected part is listed under Item Issue(s) with its issue type and the customer’s description — in this example, the Lobster Clasp component is flagged as Damaged (“Lobster clasp won’t lock”). Claim detail showing the affected part under Item Issues If you have questions about setting up your product taxonomy, reach out to your Customer Success Manager or your shared Slack channel.