Importing WooCommerce products with custom fields in bulk eliminates the need for manual data entry of product details such as specs, warranty periods, and internal product codes. WooCommerce's built-in importer handles basic custom fields only when every CSV header follows its specified meta:key format.
WP All Import imports WooCommerce products with custom fields from CSV, XML, XLS, XLSX, and JSON files with any column naming. Its Automatic Setup maps those columns to the matching product fields before the import runs. This guide walks through that process, then covers value translation and custom field updates on existing products.
How WooCommerce Stores Product Custom Fields
WooCommerce stores product custom fields as post meta: key-value pairs saved in the WordPress wp_postmeta table and linked to each product by its ID. Each variation of a variable product is a separate post with its own meta, so variation-level custom fields belong to the variation, not the parent product. WooCommerce product custom fields fall into three groups:
- Visible meta: keys such as warranty_period or supplier_code, shown in the Custom Fields box on the product edit screen.
- Hidden meta: keys that begin with an underscore, such as _sku or _regular_price. WordPress hides these from the Custom Fields box, and the plugins that create them read the exact key.
- Plugin-managed fields: fields created with ACF, Meta Box, or JetEngine. These store values as post meta by default but apply their own value formats. ACF also saves a hidden reference key for every field value.
An import must write the correct key in the format the owning plugin expects, or the data saves to the database but never displays.
Native WooCommerce Importer vs. WP All Import
WooCommerce's native product importer imports custom fields only from CSV files with column headers rewritten in the meta:key format. It has no built-in way to translate values or handle ACF, Meta Box, or JetEngine field structures. For a clean CSV built to those specific rules, the free importer does the job, including updating existing products matched by ID or SKU.
The limits, however, appear in more practical scenarios when the import file comes from a supplier, another platform, or a store running custom field plugins:
| Capability | Native WooCommerce importer | WP All Import |
|---|---|---|
| File formats | CSV only | CSV, XML, JSON, Excel |
| Column naming | Headers must follow meta:key | Any column maps to any custom field |
| Value translation | Requires custom PHP hooks | Built-in value mapping and PHP functions |
| ACF, Meta Box, JetEngine | Raw meta only | Dedicated add-ons for each |
| Scheduled imports | Not available | Cron jobs or Automatic Scheduling |
The same WP All Import workflow imports a two-column CSV that updates just one custom field and a supplier XML feed carrying dozens of plugin-managed fields.
How to Import WooCommerce Products with Custom Fields
WP All Import's Automatic Setup maps custom field columns to WooCommerce product meta in the same pass as titles, SKUs, and prices, so products and their custom fields import together from a single file.
Before starting, install and activate WP All Import and the WooCommerce Import Add-On. For ACF, Meta Box, or JetEngine fields, also activate the matching WP All Import add-on so those fields import in their plugin-specific formats.
Step 1: Launch Automatic Setup and Select the Import File
Go to All Import › New Import and click the Set up automatically callout at the top of the screen.

The Automatic Setup window opens on Step 1: Select Your Import File, with four ways to load product data:
- Upload File: drag in or browse to a file on your computer
- Download from URL: pull a file from a direct link, or from a custom function that returns one
- Existing File: reuse a file from a previous import
- FTP/SFTP: fetch the file from a remote server
Automatic Setup accepts XML, CSV, JSON, TXT, ZIP, and GZ files up to 256 MB.

Step 2: Choose WooCommerce Products and Add Setup Instructions
On Step 2: Choose What to Import, select WooCommerce, then Products. This option covers simple, variable, and grouped products.
Expand Add Setup Instructions to include details directing columns that don't share a name with their destination field. Supplier files often use internal headers, and one plain instruction settles the match. For example:
"Import the lead_time column into the delivery_estimate custom field."

Click Start Automatic Setup. WP All Import reads the file and maps its columns to WooCommerce product fields, custom fields, and supported plugin fields.
Step 3: Review the Custom Field Mappings
The Your Import Is Ready screen reports how many fields were mapped from the file and how many records will be imported. Expand Field Mappings to see each mapping, grouped by destination:
- Core WordPress Fields: product title and description
- WooCommerce Import Add-On: product type, SKU, prices, and other WooCommerce product data
- Plugin add-on groups: fields for plugins such as JetEngine, each listed under its own add-on name
- Custom Fields: all other product meta keys
Each row pairs the destination field with its source, either a file column such as {sku[1]} or a fixed value such as yes.

To change a mapping, translate values, or add custom fields, click Manual Setup to open the full drag-and-drop editor. The next section covers those options.
Step 4: Run the Import
Click Run Import. When processing finishes, the Import Complete screen shows how many products were created, updated, and skipped.

Click Done, then open a few products under Products › All Products to confirm the custom field values saved correctly.
Refine Custom Field Values in Manual Setup
WP All Import imports values into any product meta key, whether that key already exists on the site or is created by the import itself. Clicking Manual Setup switches to the manual import workflow. There, the Custom Fields section of the Drag & Drop screen gives field-level control over every custom field.
Detect Existing Custom Fields
Click See Detected Fields to list the custom fields already in use on the site, along with their stored values. WP All Import detects a custom field only when at least one published product uses it. If a field is missing from the list, publish one product with that field filled in, then return to the import.
Each Value box accepts a typed value, a value selected from the field's existing values, or an element dragged in from the import file.

Add New Custom Fields
To import into a field that doesn't exist yet, enter its key in the Name box and drag the matching column into Value. Hidden meta keys keep their leading underscore.
Translate and Transform Values
Supplier files often store values differently from the store. WP All Import changes them during the import in three ways:
- Mapping: under Field Options, select Mapping and pair each value In Your File with its Translated To replacement. For example, a supplier's Y/N flag becomes yes/no.
- PHP functions: wrap any element in a function for changes a fixed list can't cover. For example, [str_replace("cm", "", {length[1]})] strips the unit label from every value. Custom functions are saved in the Function Editor.
- Serialized: select Serialized under Field Options to build the key-value arrays that multi-value fields require.

Update Custom Fields on Existing Products
WP All Import updates custom field values on existing WooCommerce products without changing their prices, stock, or descriptions. Automatic Setup matches each record to an existing product by SKU, so a file of revised values updates the matching products instead of creating duplicates.
To limit an update to custom fields only, click Manual Setup and continue to the Import Settings screen:
- Select Update existing posts with changed data in your file.
- Select Choose which data to update, then deselect every option except Custom Fields.
- Choose Update only these Custom Fields, leave the rest alone, and enter the keys to change.
The import rewrites only those keys and leaves all other product data as it was.

To edit custom field values in a spreadsheet before re-importing them, see How to Bulk Edit WooCommerce Products.
Final Thoughts
Every custom field value in a WooCommerce product import must reach its exact meta key, in the format the owning plugin expects. WooCommerce's native importer meets that requirement only for CSV files with meta:key headers and values already in their final form. Supplier feeds, exports from other platforms, and ACF, Meta Box, or JetEngine data rarely arrive in that shape.
WP All Import's Automatic Setup maps custom field columns alongside titles, SKUs, and prices from a single file, regardless of how the columns are named. Manual Setup adds field-level control through detected fields, new keys, value mapping, PHP functions, and serialized field support. Updates use the same import, with the option to limit a re-import to custom fields only.
A store adding a warranty field to twenty products follows the same four steps as a store migrating a full catalog with ACF specification fields. WP All Import handles both imports without restructuring the source file.
Importing WooCommerce Products with Custom Fields — FAQs
How do I import ACF fields into WooCommerce products?
You can import ACF fields into WooCommerce products with WP All Import and its ACF Import Add-On:
- Activate WP All Import, the WooCommerce Import Add-On, and the ACF Import Add-On.
- Go to All Import › New Import and click Set up automatically.
- Select your import file, then choose WooCommerce › Products.
- Click Start Automatic Setup, then click Manual Setup to open the Drag & Drop screen.
- Expand the Advanced Custom Fields section, select the field group, and drag each column into its matching ACF field.
- Complete the import settings and run the import.
Can I import custom fields to WooCommerce product variations?
Yes. WP All Import imports custom fields to WooCommerce product variations through the same Custom Fields section used for parent products. Each value saves to its variation rather than the parent product. This works with every setup option in the Variations tab except files that nest variations as child XML elements, which require custom code.
How do I bulk update custom fields in WooCommerce?
To bulk update custom fields in WooCommerce, import a file containing each product's SKU and its new custom field values with WP All Import. On the Import Settings screen, select Update existing posts with changed data in your file, then Choose which data to update, and limit the update to Custom Fields. WP All Import rewrites only the listed custom field keys and leaves prices, stock, and descriptions unchanged.
How do I export WooCommerce product custom fields?
You can export WooCommerce product custom fields with WP All Export:
- Go to All Export › New Export and select WooCommerce Products as the post type.
- Click Customize Export File.
- In the Available Data panel, expand Custom Fields and drag the fields you need into the column area.
- Under Export Type, choose Spreadsheet (CSV or Excel) or Feed (XML).
- Click Continue, then Confirm & Run Export, and download the finished file.
Importing WooCommerce Products with Custom Fields — Related Information

