Radius BundlesHelp Center

Managing bundles

Import and Export Bundles

9 min read

Export your bundle configuration to a CSV for backup, bulk editing, or moving bundles to another store. Import reads that file (or a file from another bundle app or spreadsheet) and creates bundles from it.

#Where to find it

On the Bundles page, click Import/Export in the header. The dropdown shows two options:

  • Export CSV: download all your bundles as a spreadsheet.
  • Import: open the import wizard.
Radius Bundles
Import/Export dropdown menu in the Bundles page header showing Export CSV and Import options
Import/Export dropdown menu in the Bundles page header showing Export CSV and Import options

#Exporting

Clicking Export CSV downloads a file to your computer. It includes every bundle in your store (all statuses: draft, active, paused, archived, scheduled), up to 1,000 bundles. The file is named bundles-{your-store}-{today's date}.csv.

The file does not include analytics data (views, revenue). Those are on the Analytics page.

#CSV structure

One row = one bundle. Products are stored as parallel pipe-separated lists within that row: the third handle, third SKU, and third quantity all belong to the same product. In a spreadsheet, each row is one complete bundle.

#Column reference

ColumnWhat it holdsAccepted values
Bundle NameThe bundle's nameAny text
DescriptionInternal descriptionAny text
Bundle TypeThe type of bundleFixed Bundle, Buy X Get Y, BOGO, Volume Discount, Mix And Match
StatusCurrent status (read-only on import)Arrives as Draft regardless; see Defaults on import
Cart PresentationHow components appear in the cartGrouped, Separate
PriorityNumeric priority for overlapping bundlesNumber
Priority TypeHow the priority is appliedIndex Based, Discount Based
Discount TypeHow the discount is calculatedPercentage, Fixed Amount, Custom Price, No Discount, Quantity Breaks
Discount ValueThe discount amount or percentageNumber
Discount ApplicationWhat the discount applies toBundle, Products
Min Order ValueMinimum cart total before the discount appliesNumber
Max Discount AmountCap on the total discountNumber
Free ShippingWhether the bundle includes free shippingYes, No
Volume TiersTiered discounts as min:discount pairs, pipe-separatede.g. 3:10|5:15
Volume Discount TypeWhether Volume Tiers are percentages or amountsPercentage, Fixed Amount
Uses Per Order LimitTimes this discount can apply per orderNumber
Buy QuantityQuantity to buy (Buy X Get Y and BOGO)Number
Get QuantityQuantity to receive free (Buy X Get Y and BOGO)Number
Minimum ItemsMinimum items a shopper must selectNumber
Maximum ItemsMaximum items a shopper may selectNumber
Allow Mix And MatchWhether mix-and-match selection is enabledYes, No
Mix And Match PriceFixed price for a mix-and-match setNumber
Start DateDate the bundle becomes activeYYYY-MM-DD
End DateDate the bundle is pausedYYYY-MM-DD
ProductsProduct handles, pipe-separatede.g. blue-hoodie|red-hoodie
Product SKUsVariant SKUs, pipe-separatede.g. HOODIE-BL|HOODIE-RD
Variant IDsShopify variant GIDs, pipe-separatedUseful when re-importing into the same store
Product TitlesProduct titles (for reference)Any text
Variant TitlesVariant titles; blank for products with no variantsAny text
QuantitiesPer-product quantities, pipe-separatede.g. 1|2
RolesPer-product roles, pipe-separatedTrigger, Reward, Included, Optional, Group Option
Product GroupsGroup each product belongs to, pipe-separatedAny text
Custom PricesPer-product price override, pipe-separatedNumber
RequiredWhether each product is required, pipe-separatedYes, No
Allow Variant ChoiceWhether shoppers choose a variant, pipe-separatedYes, No
Min QuantitiesPer-product minimum quantity, pipe-separatedNumber
Max QuantitiesPer-product maximum quantity, pipe-separatedNumber
Group NamesMix-and-match group names, pipe-separatedAny text
Group Min SelectionsMinimum selections per group, pipe-separatedNumber
Group Max SelectionsMaximum selections per group, pipe-separatedNumber
Group SourcesHow each group's products are sourced, pipe-separatedProducts, Collection
Group CollectionsCollection handle for collection-backed groups, pipe-separatedAny text
Bundle Product IDShopify product ID of the bundle-as-productRead-only
Bundle Variant IDShopify variant ID of the bundle-as-productRead-only
Parent VariantsBundle-as-product variant configurationRead-only

Volume Discount Type matters when your volume tiers use fixed amounts rather than percentages. Without it, a fixed-amount ladder re-imports as a percentage ladder. Files exported from this app always include it.

#Importing step by step

The wizard has four steps, shown across the top: Choose file, Match columns, Review and Done. Nothing is written to your store until you confirm on the Review step.

#Step 1: Choose file

Click Import from the Import/Export menu. Drag your CSV onto the drop zone, or click Choose CSV file. Only .csv files are accepted.

The file loads in your browser. The wizard then shows the file name with its row count, column count and size. Click Replace to pick a different file, or Continue to proceed.

Three links sit under the drop zone:

  • Download a sample CSV: a two-bundle file showing the layout the importer expects.
  • Export your current bundles: the same file as Export CSV, handy as a starting point.
  • How importing works: opens this page.
Radius Bundles
Import wizard Step 1 showing the drop zone with the Choose CSV file button
Import wizard Step 1 showing the drop zone with the Choose CSV file button

#Step 2: Match columns

Group rows into bundles by. The blue panel at the top asks which column says two rows belong to the same bundle. It starts on the column holding the bundle name, which is right for files exported from this app. Beside it, the wizard shows what the choice produces, for example 142 rows → 71 bundles. If your file has one row per product (common in exports from other apps), check that this is the bundle name column. Pick the wrong one and every row becomes its own bundle.

Matched columns. The line 39 columns matched lists what the matched columns cover: bundle details, discount, products, groups. Click Review to open the table:

  • Your column: the header as it appears in your CSV.
  • Imports as: the field it will write. Change it with the dropdown, or choose Ignore this column to skip it.
  • First value: the first value from that column. For a list column it shows the first entry and a badge such as 3 values.

The first eight columns show at once; click + N more matched columns for the rest.

Read but not imported. Two columns are read and never written: Status (every bundle arrives as a draft) and Bundle Product ID (created by the app when you turn on bundle as product).

Ignored columns. Click Show N ignored columns to see the columns the wizard could not match. Click one to add it to the table and choose what it imports as.

Two fields are required: Bundle name and Bundle type. The wizard will not let you continue until both are mapped.

Click Continue to review. The wizard matches your products against this store before showing the review.

Radius Bundles
Import wizard Step 2 showing the grouping panel and the matched columns list
Import wizard Step 2 showing the grouping panel and the matched columns list

#Step 3: Review

When the Review step opens, it checks your bundles against your store. Three counts appear at the top:

  • New bundles: names your store does not have yet.
  • Already in your store: names that match an existing bundle.
  • Can't be imported: bundles with a problem, shown in red.

When names already exist, choose what happens to them:

  • Skip them (default): your existing bundles stay exactly as they are.
  • Replace them: their products and discount are overwritten with the file's. See When a bundle name already exists.
  • Import as copies: both are kept, and the new one gets (Copy) added to its name ((Copy 2) if that is taken too).

Bundles that can't be imported are listed under a red heading with the reason, for example a product handle or SKU that is not in this store. Fix them in your file and import again, or click download the problem list for a CSV of every problem.

Bundles in this file lists every bundle, problems first, with a badge: Will import, Already exists (when skipping) or Will skip. Click Show to open it. Untick bundles to leave them out, or use Select all and Select none. Importing five or ten first is a good way to try a new file.

Click Import {n} bundles. The count is what will actually be written. A confirmation appears before anything is written; if you chose Replace them, it warns that this cannot be undone.

While the import runs, a progress bar counts the bundles as they finish. Keep the window open until it is done.

Radius Bundles
Import wizard Review step with the counts and the problem list for bundles that cannot be imported
Import wizard Review step with the counts and the problem list for bundles that cannot be imported

#Step 4: Done

The results screen shows four counts:

  • Created: new bundles added, including copies.
  • Replaced: existing bundles whose products and discount were overwritten.
  • Skipped (already exist): bundles left alone because the name existed and you chose to skip.
  • Not imported: bundles that could not be created. Each is listed with its reason.

Click Show all to see each bundle's result on screen, or Download import report (CSV) for the same list as a file.

New bundles land as drafts. Click View imported drafts to open the Bundles page on the Draft tab, then activate the ones you want live.

Radius Bundles
Import wizard Step 4 showing the Created, Replaced, Skipped and Not imported counts
Import wizard Step 4 showing the Created, Replaced, Skipped and Not imported counts

#When a bundle name already exists

With Skip them, an existing bundle is left untouched. With Replace them, the existing bundle's products and discount are replaced by the file's version. Everything else (images, schedule, priority, cart presentation, and whether the bundle is currently live) is kept exactly as it is. A live bundle stays live and shoppers see the new products and discount immediately. With Import as copies, the existing bundle is left alone and the file's version is created as a new draft named Original name (Copy).

Name matching ignores upper and lower case.

#Moving bundles between stores

Products in the CSV travel by SKU and handle, not by internal ID. For each product the app uses its SKU when the row has one, and its handle otherwise.

  • If a SKU or handle matches nothing in the new store, the whole bundle is skipped and the Review step explains which term was not found.
  • If a SKU matches more than one variant (Shopify does not require unique SKUs), the bundle is skipped with an "ambiguous" message. Make that SKU unique in Shopify, then import again.

The app does not create products for you. Products must already exist in the destination store.

#Defaults on import

WhatDefaultWhy
StatusDraftImported bundles start as drafts so nothing goes live without your review, whatever the file's Status column says.
LayoutThe type's default layoutThe same starting layout a brand-new bundle of that type gets.
Bundle as ProductOffA bundle-as-product's Shopify product ID points at a specific store. Import does not re-create that connection; turn on Create product for bundle in the bundle after importing.

#Limits

LimitValue
Bundles exported per file1,000
Rows per import file5,000

The hourly rate limit for creating bundles applies to the whole import as one operation, not per bundle. A 35-bundle import counts as one action.

#Errors and where they appear

Match columns step. Mapping-level problems: a required column unmapped, two columns mapped to the same field, an unrecognised value in a typed field, a grouping column that makes every row its own bundle. Fix these before continuing.

Review step. Per-bundle problems: product not found, unsupported bundle type, product columns of different lengths. These bundles are counted under Can't be imported and are left out of the import. Download the problem list, correct the file and import it again.

#Common mistakes

Wrong grouping column when the file has one row per product. If ten rows all belong to "Winter Kit" and you leave the grouping column set to a SKU, you get ten one-product bundles. The Review step shows the count. Go back and choose the column that holds the bundle name.

Editing product lists in a spreadsheet and deleting one entry. Products in a row span parallel columns: handles, SKUs, quantities, roles. Deleting one handle without deleting the matching SKU and quantity shifts every product after it onto the wrong values. The Review step flags rows where those lists are different lengths.

Expecting Replace to draft a live bundle. Replace them replaces products and discount but does not change whether the bundle is live. An active bundle stays active and shoppers see the change right away.