Import & Export
Option Sets can be exported to CSV and imported from CSV, making it easy to back up configurations, duplicate them across stores, or build Option Sets in a spreadsheet.
Exporting
Export all Option Sets
On the Option Sets list page, click Export all in the top-right header. This downloads a single CSV file containing every Option Set for your store.
Export a single Option Set
On the Option Sets list page, find the row for the Option Set you want and click the download icon (↓) on the right side of that row. This downloads a CSV file containing only that one Option Set.
Exported CSVs use the full 17-column format and can be re-imported as-is.
Importing
Opening the import modal
On the Option Sets list page, click Import CSV in the top-right header. A modal dialog opens.
The import process
- Optionally enter a name for the new Option Set (defaults to “Imported Option Set”)
- Click Choose file and select your
.csvfile - The app parses the CSV immediately in the browser and shows either:
- A green preview listing the element types and label detected, plus the total value count
- A red error list if any required columns are missing or rows have invalid values
- If the preview is green, click Import — the app creates the Option Set and redirects to its editor
Importing always creates a new Option Set. It does not overwrite an existing one.
Sample CSV
If you’re building a CSV from scratch, click Download sample CSV inside the import modal. The sample includes all 17 columns with example rows for Text, Dropdown, Color Swatch, Switch, Checkboxes, and Heading elements.
CSV format
Columns
| Column | Required | Description |
|---|---|---|
element_ref | ✓ | A grouping key you choose (e.g. 1, color, size-dropdown). All rows sharing the same element_ref become one element with multiple values. Not a database ID — you invent it. |
option_type | ✓ | The element type in any case (e.g. text, DROPDOWN, Color_Swatch). See valid types below. |
option_label | ✓ | The customer-visible label for the element. Only needed on the first row for each element_ref. |
option_name | ✓ | Internal/merchant-facing name. Falls back to option_label if left empty. |
required | ✓ | Yes or No |
hidden | Yes or No (default No) | |
hide_label | Yes or No (default No) | |
placeholder | Placeholder text for text inputs | |
help_text | Helper text shown below the element | |
default_value | Pre-filled or default value (used by Hidden Field, Switch, etc.) | |
option_value | One value label per row. Leave empty for elements with no values (Text, Switch, Heading, etc.). | |
value_price_mode | FLAT, EXISTING_PRODUCT, or GENERATED_PRODUCT (default FLAT). Use FLAT for a fixed price, EXISTING_PRODUCT to link to an existing catalog product’s price, or GENERATED_PRODUCT to create a hidden product to track this add-on separately. See Add-On Pricing for details. | |
value_price_amount | Decimal price modifier for this value. Negative values apply discounts. | |
swatch_color | Hex color code for Color Swatch values (e.g. #FF0000) | |
swatch_image_url | Image URL for Image Swatch values | |
out_of_stock | SHOW_NORMALLY, BLUR, STRIKETHROUGH, or HIDE (default SHOW_NORMALLY) | |
products | all to apply to all products, or semicolon-separated product IDs (e.g. 77;80;142). Read from the first row where it appears; only needs to be on one row. To find a product’s ID, go to your BigCommerce admin → Products → click the product — the ID appears in the page URL. |
How element_ref works
The element_ref column is the key to the multi-row format. Elements with multiple selectable values (Dropdown, Color Swatch, Checkboxes, etc.) need one row per value, all sharing the same element_ref:
element_ref,option_type,option_label,...,option_value,value_price_amount,...
dropdown-1,dropdown,Wood Finish,...,"Natural Oak",0,...
dropdown-1,dropdown,Wood Finish,...,"Dark Walnut",10,...
dropdown-1,dropdown,Wood Finish,...,"Painted Black",5,...Those three rows produce one Dropdown element called “Wood Finish” with three values.
Elements with no selectable values (Text, Switch, Heading, Divider, etc.) need only one row, with option_value left empty:
element_ref,option_type,option_label,...,option_value,...
text-1,text,Engraving Text,,...,...Valid element types
text, textarea, number, phone, email, hidden_field, file_upload, color_picker, switch, range_slider, dropdown, image_dropdown, color_dropdown, radio_buttons, checkboxes, button_group, color_swatch, image_swatch, font_picker, redirect_link, heading, divider, paragraph, raw_html, size_chart, tab, option_group, accordion
Case-insensitive — TEXT, Text, and text are all accepted.
For users migrating from an older version of this app
Old CSV files using
option_idinstead ofelement_refandaddoninstead ofvalue_price_amount(the previous 8-column format) are still accepted. The importer detects the column names automatically.
What is not captured by CSV
The following settings are not included in the CSV format and must be configured in the dashboard after import:
- Type-specific settings (such as personalizer layer position, slider minimum and maximum values, and text length limits)
- Conditional logic (show/hide rules between elements)
- Design overrides (per-element design tab settings)
- Translations (multi-language labels and values). You can configure translations per element from the element settings panel after importing.
- Size charts (linked size guide content)