WooCommerce allows for the importation of products with custom fields, which are essential for storing additional product information not covered by standard fields. This capability is crucial for efficiently managing large inventories, as it streamlines the process of adding or updating product data in bulk, ensuring accuracy and saving time.
- Custom fields, or product metadata, enable the storage of extra product information like warranty periods and manufacturer codes.
- The native WooCommerce importer can handle basic custom fields using the "meta:" prefix in CSV headers but is limited for complex imports.
- Advanced importers, such as the Product Import Export Plugin for WooCommerce, offer enhanced mapping options for custom and hidden metadata.
- Preparing a well-structured CSV file is vital for successful imports, including standard product columns and custom-field columns with correct meta keys.
- The export-first method is recommended to create a reliable import template by exporting a manually created product with all desired custom fields.
- After importing, it's essential to verify that the custom fields are correctly displayed and recognized by the relevant plugins or themes.
WooCommerce provides standard fields for product names, prices, descriptions, stock levels, images, and categories. But many stores also need extra details such as warranty periods, manufacturer part numbers, supplier codes, cost of goods, ACF-driven specifications, or metadata added by another WooCommerce plugin. These values are typically stored as custom fields (also called product metadata) separate from WooCommerce’s built-in product data.
Adding this information manually is manageable for a handful of products. It becomes slow and error-prone once you’re creating or updating hundreds of them. A bulk import makes this much easier by letting you prepare the data in a structured CSV and import or update it all at once.
In this guide, we’ll cover how to import WooCommerce products with custom fields, how to structure your import file so metadata maps correctly, and how to handle ACF fields specifically.
A WooCommerce custom field is an extra piece of information stored with a product that is not included in WooCommerce’s default product fields. For example, you could use custom fields to store:
- Warranty period
- Manufacturer code
- Supplier name
- Delivery time
- Material details
- Internal cost
- Technical specifications
Each custom field usually has a meta key, such as warranty_period, and a value, such as 5 years.
Custom fields are also called metadata or meta fields.
Some metadata is visible and intended for store administrators. Other metadata is hidden because its key begins with an underscore, such as _supplier_cost or _wc_cog_cost.
Hidden meta is often created by WooCommerce extensions and third-party plugins. It may control important product behavior, so it should not be renamed or changed without understanding how the related plugin uses it.
Custom Fields vs. Product Attributes
Custom fields and product attributes are sometimes confused, but they have different purposes.
Attributes describe characteristics such as color, size, brand, or material. They can be displayed in the Additional Information section and may be used to create variable products.
Custom fields store additional product-specific data. They do not automatically create variations or appear on the product page.
For example, “Color” is usually an attribute because customers may use it to select a variation. “Internal supplier reference” is better stored as a custom field because it is additional product data that customers do not need to select.
Custom Fields vs. Product Add-ons
Product add-ons collect information from customers as they purchase a product. Examples include gift messages, engraving text, file uploads, and optional extras.
Custom fields, on the other hand, store information about the product itself. An add-on may allow the shopper to enter an engraving message, while a custom field might store the product’s maximum engraving length.
Yes. The native WooCommerce CSV importer can import basic product custom fields.
To import custom metadata, add meta: before the custom-field key in your CSV header. For example, a custom field stored under warranty_period can use the column header:
meta:warranty_period
During column mapping, WooCommerce may recognize the column automatically. When it does not, you can map the column to Import as meta. WooCommerce also allows custom metadata to be included during export by selecting the option to export all custom meta.
The native importer is less suitable for complex imports involving many third-party fields, hidden metadata, custom column names, reusable mappings, selective updates, non-CSV sources, or serialized data.
For these cases, an advanced importer is more practical. The Product Import Export Plugin for WooCommerce provides dedicated mapping for standard fields, taxonomies, attributes, Meta, and Hidden Meta, along with reusable templates and SKU- or ID-based updates.
The import file determines what data is added to your store. Preparing it correctly is the most important part of the import process.
Add the Standard Product Columns
Start with the standard information needed to create or identify the product. A basic file might contain:
Type, SKU, Name, Published, Regular price, Stock
simple,TSHIRT-001,Blue Cotton T-Shirt,1,29.00,40
simple,TSHIRT-002,Black Cotton T-Shirt,1,29.00,35
The exact required columns depend on whether you are creating new products or updating existing ones. For new products, include enough information to create a valid product. At a minimum, this will normally include a product name and other information required by your workflow.
For an update, the most important column is a stable product identifier, such as the SKU or product ID.
Add Custom-field Columns Using meta:field_name
To import a regular product custom field, add the meta: prefix before its key.
For example:
- meta:brand_name
- meta:warranty_period
- meta:manufacturer_code
Here is a sample CSV containing standard and custom fields:
| Type | SKU | Name | Regular price | meta:brand_name | meta:warranty_period | meta:manufacturer_code |
|---|---|---|---|---|---|---|
| Simple | TSHIRT-001 | Blue Cotton T-Shirt | 29.00 | Acme | 12 months | AC-BLU-001 |
| Simple | TSHIRT-002 | Black Cotton T-Shirt | 29.00 | Acme | 12 months | AC-BLK-002 |
The text after meta: must match the field’s database key.
Include Hidden Metadata Carefully
A hidden meta key begins with an underscore. Keep the underscore in the CSV header.
For example: meta:_wc_cog_cost
Do not remove the underscore or replace the key with a more readable name. The plugin that created the field will normally look for the exact original key.
Prepare ACF Field Values
Advanced Custom Fields stores product data as WordPress metadata, so many basic ACF fields can be imported as product meta. Simple fields are usually easiest to import, including:
- Text and text area
- Number
- Email and URL
- True/false
- Basic select fields
Before importing, create the same ACF field group on the destination site and make sure the field names match.
Because ACF also stores hidden references linking values to unique field keys, the safest approach is to create a sample product, enter the ACF values, export it with all custom and hidden metadata, and use that file as the import template. Complex fields such as images, galleries, repeaters, relationships, groups, flexible content, checkboxes, and multi-selects may store IDs, arrays, or serialized data, so preserve the exported structure and test a small batch before importing everything.
Use the Export-first Method
The export-first method is one of the safest ways to prepare a custom-field import file.
Here is how it works:
- Create one product manually.
- Enter values in all the custom fields you need.
- Save or update the product.
- Export the product with custom metadata enabled.
- Open the exported file.
- Use its column headers as your import template.
- Add the remaining product rows.
WooCommerce can export custom meta with a meta: prefix. The WebToffee plugin can include Meta, Attributes, Taxonomies, and Hidden meta during an advanced export.
The following process uses the premium Product Import Export Plugin for WooCommerce because custom Meta and Hidden Meta mapping are premium features.
Install the Product Import Export Plugin for WooCommerce and activate it on your store. After activation, a WebToffee Import Export (Pro) menu will appear in your WordPress dashboard.
Step 1: Select Product as the post type
After you have installed the plugin, go to: WebToffee Import Export (Pro) > Import
Choose Product as the post type and continue.

Step 2: Choose Advanced Import Method
Select Advanced Import.
Advanced Import gives you access to detailed column mapping, update settings, batch options, and reusable templates. Quick Import is more suitable when the file was previously exported by the same plugin and already follows its expected structure.
Upload your CSV, XML, Excel, or supported import file.

Check the delimiter if you are importing a CSV. Continue to the mapping step.
Step 3: Map Meta and Hidden Meta Fields
The mapping screen connects each column in the file to a WooCommerce product field.
The plugin may map recognizable columns automatically, but you should still review every selection. An incorrect mapping can place the value in the wrong WooCommerce field.
Next, locate the mapping sections for:
- Meta, or custom fields
- Hidden meta

Map every custom-field column to the corresponding product metadata key. For example:
| CSV column | Custom-field mapping |
|---|---|
| meta:brand_name | brand_name |
| meta:warranty_period | warranty_period |
| meta:manufacturer_code | manufacturer_code |
The plugin organizes import mapping into Default Fields, Taxonomies, Meta, Attributes, and Hidden Meta.
Review every custom field before continuing. A value mapped to the wrong meta key may be imported successfully but remain invisible to the plugin or template that is supposed to use it.
Step 4: Configure Advanced Import Options
Choose how the importer should handle products that already exist.
You can:
- Skip existing products
- Update existing products
- Match products by ID or SKU
- Skip new products
- Import conflicting IDs as new products
- Configure the import batch size

For most catalog updates, choose Update and match products by SKU.
Avoid settings that delete non-matching products unless you are intentionally synchronizing the entire store and have tested the workflow.
Start the import and wait for it to finish.
The completion screen will show successful, skipped, and failed records. Review the import log before checking the products. Save the configuration as a template when you expect to import files with the same columns again.
You do not need to reimport the complete product catalog just to change custom-field values. Create a smaller CSV containing the SKU and the custom fields you want to update
For example:
| SKU | meta:warranty_period | meta:manufacturer_code |
|---|---|---|
| CHR-1001 | 7 years | MFG-8891-A |
| DSK-1002 | 5 years | MFG-8892-B |
Configure the importer to match products by SKU and update existing products.
Map only the included custom-field columns. Leave prices, descriptions, images, stock, and other unrelated fields unmapped. This reduces the risk of replacing valid data with blank or outdated values.
After the import completes, review the import log for any failed or skipped products. Then open a few imported products from Products > All Products and check whether the custom fields appear with the correct values on the product edit page.
For plugin-generated or hidden metadata, confirm that the related plugin recognizes the imported data and that the expected information or functionality appears on the storefront. You can also export the products again with custom and hidden metadata included, then compare the exported values with the original CSV.
Test different product types and variations before confirming that the full import was successful.
Yes. The native WooCommerce importer supports basic custom metadata through headers such as meta:field_name. An advanced importer provides more control when working with hidden meta, third-party fields, recurring imports, and complex mappings.
Create a sample product with the field completed, export the product with custom metadata enabled, and inspect the exported column header. You may also inspect the product’s post metadata using a database tool or a suitable metadata viewer plugin.
Yes. Basic ACF fields can generally be imported using their field names. Complex fields may require structured values and ACF field references, so they should always be tested before a full import.
Yes. Include the SKU and required custom-field columns in the file. Map those columns only and leave the price fields unmapped.
Saving a custom field does not automatically display it. Your theme, page builder, shortcode, template, or related plugin must retrieve and output the value.
Yes. Keep the complete meta key, including its leading underscore. In WebToffee’s premium importer, map the column under Hidden Meta.
Yes. Custom fields can be assigned to the parent product, individual variations, or both. Each variation should have a unique SKU and the correct parent relationship.
Conclusion
Importing WooCommerce products with custom fields is mainly a matter of using the correct meta keys, value formats, and product identifiers.
For basic metadata, the native WooCommerce importer may be enough. For recurring imports, hidden metadata, ACF data, and fields created by third-party plugins, an advanced importer like the Product Import Export Plugin for WooCommerce provides a more controlled workflow.
Regardless of the method you choose, start by exporting a working product. The exported file gives you the exact field keys and formats used by your store, making the final import more accurate and much easier to troubleshoot.