boxcart.dev

Import / Export

Import and export your products and categories via CSV files with built-in validation, error reporting, and support for WooCommerce and Shopify formats.

Overview

BoxCart includes a full CSV import and export system that lets you bulk-manage your product catalogue. You can export your existing products to a CSV file, edit them in a spreadsheet application, and re-import them to apply changes. The importer validates every row, reports errors by line number, and provides a summary of created, updated, skipped, and failed rows.

The import/export page is found at BoxCart → Import / Export in your WordPress admin. It supports two data types:

Screenshot: Import/Export page showing import form with file upload and update mode options

Exporting Products

To export your products, navigate to BoxCart → Import / Export and click the Export Products button. BoxCart will generate a CSV file named boxcart-products-YYYY-MM-DD.csv and download it to your computer.

The exported CSV includes the following columns:

ColumnDescription
IDThe internal product ID (used for matching on re-import)
SKUStock keeping unit code
NameProduct name / title
DescriptionProduct description
CategoriesComma-separated categories, using > for hierarchies (e.g. Vegetables > Tomatoes)
Image URLURL of the featured image
Stock Statusin_stock, out_of_stock, or disabled
Sort OrderNumeric display order
Published1 for published, 0 for draft
PriceProduct base price (included when prices are enabled)
Qty Type columnsUp to 5 quantity types with label, price, step, min, max, and decimal settings
Quantity Types JSONComplete quantity type data as JSON for lossless round-tripping

You can also export categories separately by clicking Export Categories. The categories CSV includes ID, Name, Slug, Parent, and Sort Order columns.

Tip

Export your products first to get a ready-made template with all the correct columns. You can then modify the data in a spreadsheet and re-import it.

CSV Format

When preparing a CSV file for import, use the following column specifications. The first row must contain the column headers.

Column NameTypeRequiredDescription
NameStringRequiredThe product name. Must not be empty.
SKUStringOptionalStock keeping unit. Used to match existing products on import. Duplicate SKUs will update the existing product when update mode is enabled.
PriceNumberOptionalBase price as a decimal number (e.g. 3.50). Included when prices are enabled in settings.
CategoriesStringOptionalComma-separated category names. Use > for parent-child hierarchies (e.g. Vegetables > Tomatoes). Missing categories are created automatically.
Stock StatusStringOptionalOne of in_stock, out_of_stock, or disabled. Defaults to in_stock if omitted.
Stock QuantityNumberOptionalNumeric stock quantity (when quantity-based stock tracking is used).
DescriptionStringOptionalProduct description text.
Image URLURLOptionalFull URL to the product's featured image. The image will be downloaded and imported into the WordPress media library.
Sort OrderIntegerOptionalNumeric display order. Lower numbers appear first.

BoxCart also recognises columns from WooCommerce and Shopify CSV exports, including Regular price, Sale price, Handle, Title, Body (HTML), and Variant SKU. The importer auto-detects the format and maps columns accordingly.

Tip

You can download a sample CSV template from the import page by clicking Download Sample CSV. This includes example rows that demonstrate categories, quantity types, and all supported columns.

Importing Products

Follow these steps to import products from a CSV file.

  1. Prepare your CSV file

    Create or edit your CSV file in a spreadsheet application (Excel, Google Sheets, Numbers). Ensure the first row contains column headers matching the names listed in the CSV Format section above. Save the file in CSV (UTF-8) format.

  2. Navigate to Import / Export

    In your WordPress admin, go to BoxCart → Import / Export. Select the Import tab if it is not already active.

  3. Upload your file

    Select Products or Categories as the import type. Choose your update mode: Skip existing (leaves matching products unchanged) or Update existing (overwrites matching products with the CSV data). Click Choose File, select your CSV, and click Import.

  4. Review validation results

    BoxCart validates every row before processing. If there are errors (such as missing required fields or invalid data types), they will be listed with the specific row number and error message. Review these carefully.

  5. Confirm import results

    After the import completes, a summary shows the number of products created, updated, skipped, and any errors. Check your product list at BoxCart → Products to verify the imported data.

Screenshot: CSV import results showing created, updated, skipped, and error counts with per-row error details

Validation Rules

The importer validates each row of your CSV before creating or updating products. The following checks are performed:

CheckDetails
Required fieldsThe Name column is required for every row. Rows with an empty name are rejected and counted as errors.
Data typesPrice values must be valid numbers. Sort order must be a non-negative integer. Stock status must be one of the recognised values.
Duplicate SKUsIf a product with the same SKU already exists, the behaviour depends on your update mode. In skip mode, the row is skipped. In update mode, the existing product is overwritten with the CSV data.
Product ID matchingIf an ID column is present (from a previous BoxCart export), the importer first tries to match by ID. If no ID match is found, it falls back to SKU matching.
Category matchingCategories referenced in the CSV are matched by name. If a category does not exist, it is created automatically, including any parent categories in a hierarchy (e.g. Vegetables > Tomatoes creates both).
Image URLsImage URLs are validated. If an image cannot be downloaded, a warning is added but the product is still imported without the image.
File validationThe uploaded file must be a valid CSV with a .csv extension, a recognised MIME type, and must not exceed 5 MB in size.

Error Handling

BoxCart processes every row in your CSV and provides detailed feedback on the outcome.

To fix and retry failed rows, export the error details, correct the issues in your CSV, and re-import. Set the update mode to Skip existing so that successfully imported products are not modified again.

Tips

Export first as a template

If you already have products in BoxCart, export them first. The exported CSV serves as a perfect template with all the correct column headers and example data. You can add new rows to this file and re-import it.

Back up before importing

Always back up your WordPress database before running a large import, especially when using Update existing mode. Updates overwrite existing product data and cannot be undone.

Test with a small batch first

Before importing hundreds of products, test with a small CSV containing 3–5 rows. Verify that names, prices, categories, and images all import correctly. Once you are confident in the format, import the full file.

Save as UTF-8

When saving your CSV from Excel or Google Sheets, choose CSV UTF-8 format. BoxCart handles the UTF-8 BOM (byte order mark) automatically, ensuring special characters in product names and descriptions are preserved.

Migrating from WooCommerce or Shopify

BoxCart automatically detects WooCommerce and Shopify CSV formats and maps their columns to BoxCart fields. You can export from your existing platform and import directly into BoxCart without reformatting the file. WooCommerce variable products with variations are collapsed into BoxCart quantity types.