Plugin Directory

Woocommerce CSV importer

Import products into woocommerce.

future development

  • schedule options ( in progress )
  • sorting of headers
  • add-ons versions will be visible in add-ons part and upgrade notices
  • export options
  • support for xls, xml, feeds
  • localised.


  • add total_sales to new products so some themes that use this for sorting show the products.
  • utf-8 support for header preview
  • trim meta values to loose spaces
  • added a check to prevent an error that could happen in preview mode when a wrong separator is choosen
  • starting refactoring files for future scheduling options
  • fixed bug when merging and using the ID to find products
  • use WP functions to upload and handle images with url's


  • change if statement in import preview to help out old php versions
  • add a setting to use CURLOPT_FOLLOWLOCATION, it can give warnings when safe_mode or open_basedir is used.


  • fixed var_dump issue :-(


  • add skip option, if skip is set to true during runtime, the product will not be imported.
  • fixed bug for image import using url's


  • convert to UTF-08 during import setting
  • added progress bar during import
  • each imports creates a batch to track it's progress. needed for future scheduling option and fire and forget option.
  • use wc_delete_product_transients if the function is available
  • [BUGFIX] beter support for special characters in URL when you import images
  • add redirect option in Curl when using import images with the filename


  • multiple headers
  • speed optimisation
  • complete rebuild of plugin, hooks and filters
  • settings part
  • documentation part
  • add-on part
  • special chars allowed in url for images. (htmlspecialchars added to parse url)
  • convert to UTF-08 during import setting


  • redirect to header tab if no header is present


  • changes the shipping class import a bit more to be more inline with categories


  • fixed bug if shipping class was empty or contained spaces


  • if merging keep current tags, attributes and shipping class.
  • change the way how to validate an url. Not all url's where validated and therefor not all images where uploaded
  • solved a bug when spaces or %20 where in filenames of urls. Added sanitize_file_name and url_decode to to clean the name.
  • solved the header preview, showed row 2 3 times
  • add add-on section and preparations for version control


  • fixed an issue when images have the same name and are stored in the same location. The image was overridden instead of appending -X to the filename
  • if an image is uploaded with an URL and does not have an extension use CURLINFO_CONTENT_TYPE to determine the mime type
  • language support dutch,english
  • added some smartness when mapping header fields
  • added post_author field
  • price is not supported anymore. Use regular_price and/or sale_price


  • fixed an issue in the roles


  • Added role support. admin's can now select which roles are allowed to import
  • fixed a bug with merging and prices


  • fixed an error while deleting trancients (credits: Stephen Weir)


  • allow prices to be 0
  • added prefix for options table when deleting trancients (credits: Olivier Sazos)


  • fixed typo in parsing of visibility data "catelog must be catalog"
  • check if a wc_delete_product_transients exists or not to prevent error on older installs of Woocommerce


  • small bug when price in the header but is empty. It was set to 0 now it will be empty again.
  • added notify to backorder parsing array as allow value


  • added change_stock field. You can now add a stick adjustment and it will calculate the stock for an existing product.
  • bug fix for parsing of post title field for variable products (they do not need a title)


  • you can use post_title as well to find products. Order is look for ID, look by SKU, look by post_title. It takes the lowest product it can find if there are mutliple
  • fix for updating by ID first field in the csv was deleted


  • added parsing of data. It checks a lot of values and correct them if they are wrong
  • changed the price functionality to use regular or sales price and not price anymore
  • fixed a terrible bug with featured image importing
  • changes the JS to give feedback on every row and not on the last raw of the current block
  • a lot of tweaks for deleting cache stuff
  • added the ID field, you can now use the current ID of a product to update it.
  • added ping_status and menu_order fields


  • add some hooks for future add-on (import custom taxonomies like brands)


  • typo's
  • changed the way the filename is used. Windows users experienced problems.
  • lot's of improvements


  • if you use globals.....make them global


  • delete transients during import


  • Solved a bug with new products (thanks Niall Walsh)


  • solved another image by name problem! Now use get_posts to retreive image instead of query.


  • Solve image problem by using cURL to get the images with an URL, file_get_contents is sometimes disabled on certain servers
  • Start chaging some file names to be more in the wordpress standard
  • Added some hooks and filters
  • Some minor improvments
  • added comment_status


  • added some info about the max file size
  • warning for ini_set resolved
  • solved bug that product gallery was not shown when images field was used.
  • solved bug that did not find images from the media manager that contain spaces


  • Change position for menu, sometimes it confilicts with other plugins
  • Added setting to merge products
  • Added new image fields for featured image and product gallery. They used to be both in the images field.
  • Added more info, descriptions and help texts.
  • Mayor code, speed and memory improvements
  • Added post_name support
  • Added shipping_class support
  • Added options for category handling
  • Added support for multi-site


  • fixed a bug with the multiple categories. Now all categories are linked to the product instead of the last


  • fixed a bug with the sales price. Was a typo in the fields. Now sales prices should be imported correct!
  • If you have no SKU or leave it empty, a new post is created. but remember no SKU no updating!!!!


This is a mayor revision of the plugin. A lot of small and larger bugfixes are done! Thanks to some help from the forum and code suggestions.

  • ajaxurl in javascript instead of hard link to ajax page (solves the problem that a header or the settings could not be saved!)
  • added option to enable/disable adding images to gallery
  • bug fixes for IE
  • header and settings are not saved anymore through ajax.


  • fixed a possible bug when saving settings


  • add the product by default to simple term


  • add ob_get_clean() to prevent errors from stopping the script


  • solved bug with upload not working on windows machine!
  • better handling images


  • added support for product gallery. the last image is set as thumbnail! (thanks to Fahad Mahmood)


  • add more options for number of rows to process in the same run to prevent timeouts


  • add manage stock to field list


  • Admin warnings only show on plugin page
  • get rid of some old functions


  • Complete new importer. With AJAX calls, custom headers and add-ons to import custom fields and attributes. BAckup your old stuff before trying this one!


  • add option to import custom fields. In your CSV file add extra columns with the prefix cf_ . For example if you want the custom field colour, you add cf_colour in your header.


  • fix a small bug. Menu was not visible because other plugin used the same menu order.


  • fix some bugs (thanks to fransberns)


  • fix for wordpress 3.5 wp_update_post does not insert anymore :-(


  • fixed header already sent bug when activating


  • added experimental schedule function. Can be enabled for fixed imports in the settings page.
  • solved some bugs related to empty fields in import
  • solved some bugs related to check if a file is there and if it is valid


  • added setting to convert a comma to a dot in the prices


  • added a setting to use auto_detect_line_endings to solve the problem that the import is seen as ONE big file :D


  • added tax functionality. You can now import tax related stuff. You can now import tax status ( taxable, shipping, none ) and the tax class. The tax class is somehow a but strange. If you have a tax class called 10 RATE it is stored like 10-rate.



  • small bug fixes because of header already sent when updating plugin


  • categories can now have children. In the category column you can now do like this: cat1->subcat1->subsubcat1|cat2->subcat2|cat3
  • added an option in the settings page to select a field separator
  • made a function to check the options on init


  • tags can be imported now as well. You can add one or multiple. In the tag column of the import do like this: tag1|tag2|tag3. Now the product will have 3 tags.
  • added the example CSV to the settings page



  • add setting to handle image imports. You can now choose to delete current images before importing new ones or append the image to the already existing ones
  • add the possibility to have multiple images. In the column you can do image1.jpg|image2.jpg|image3.jpg
  • solved some minor bugs added some additional checks


  • added a setting page where you can create the csvimport directory
  • fixed a css bug


first version.

Requires: 4.0 or higher
Compatible up to: 4.2.5
Last Updated: 4 months ago
Active Installs: 20,000+


4.3 out of 5 stars


1 of 12 support threads in the last two months have been resolved.

Got something to say? Need help?


Not enough data

1 person says it works.
0 people say it's broken.

100,1,1 100,1,1 100,1,1 100,2,2 100,1,1 100,1,1 100,1,1 100,2,2
100,1,1 100,2,2
33,3,1 100,1,1
100,2,2 100,5,5
100,1,1 100,4,4
50,2,1 100,1,1 100,1,1