CSV (Comma-Separated Values) files are by far the most popular way to pass data from product suppliers to WooCommerce store owners, mostly because they're simple and easily read by humans:
Value 1, Value 2, etc.
The problem is that, sometimes, you get import files with multiple values between the commas, like this:
Value 1, Image 1 | Image 2 | Image 3, Value 3
In this case, the pipe character ("|") is used to separate the sub-values.
This situation will certainly occur with WooCommerce products, which have several multi-value fields, including images and attributes. For example, here is a not-so-readable representation of product attribute values contained in a single field:
Try interpreting that at a single glance!
Hopefully, most of your product suppliers will use common sense when generating their product files and not make your imports too difficult.
But if someone does send you more complicated values, you'll need a good import plugin to untangle them. In this article, we'll examine the five best plugins to handle complications that can occur during WooCommerce product imports from a CSV file. If you want more general information on the product import capabilities of the plugins on this list, see The 5 Best WooCommerce Product Import Plugins.
WP All Import is the top WooCommerce / WordPress import plugin for all file formats, including CSV.
When it comes to handling product images, this plugin offers a great deal of flexibility for handling different image scenarios just through the interface alone (click to see an expanded image):
Note how it lets you a) drag the incoming imageurl field into the edit box on the left and b) specify a character to use as the divider between sub-values contained in that field.
It actually goes a step further than this. When images are contained in separate fields, and there are a variable number of images per product, like this:
WP All Import is intelligent enough to ignore any image fields not used by a specific product.
It offers the same built-in flexibility when handling variable products:
Our point in showing you these interfaces is that if your suppliers send you product files with different and even complicated data formats, you should be able to use this plugin to handle most situations just by dragging & dropping values and clicking options.
But here is this plugin's real ace up its sleeve. Let's say that a supplier sends you only wholesale prices, and you want to transform these into retail prices without having to manually change the price for every product. In this case, WP All Import provides you with a function editor where you can create a simple function to adjust the price:
You can then apply this function as part of the import process, no manual edits required!
This same built-in function editor can also be used to handle any data format oddities, no matter how challenging. For example, if a supplier sends you multiple product images in a field, with each image URL separated not only by a | character but also enclosed in quotes, you can use the function editor to strip away the quotes with just a few minutes of work!
This is the gold standard for handling all possible CSV data formatting issues. For more information on this plugin, see Import WooCommerce Products from CSV, XML, or Excel.
This plugin was #3 in our general article on The 5 Best WooCommerce Product Import Plugins, but we've moved it up to #2 for handling product imports from a CSV file. Our first reason for doing this is that Woo Import Export uses a similar approach to WP All Import when it comes to handling images:
This means you can handle a lot of image issues directly through the interface.
Woo Import Export also provides equivalent support for importing variable products. The screens are so similar to those of WP All Import that we won't show them here, but the functionality is definitely present.
Finally, Woo Import Export helps you import custom fields that contain multiple values, often called "serialized fields":
This feature allows you to break the serialized data into key/value pairs. Note, WP All Import has the same feature, but we wanted to show it just once so we don't repeat ourselves.
Two of the main reasons why Woo Import Export is not ranked #1 for handling CSV files are:
For additional information, see Woo Import Export.
This plugin was ranked #4 for our general article on The 5 Best WooCommerce Product Import Plugins, but we've moved it up to #3 for handling product imports from a CSV file.
We've done this because this plugin does offer some level of interface support for importing images:
And also some support for importing variable products, though we don't have a great image of that.
The problem is that they don't have the same level of support for custom serialized fields as WP All Import or Woo Import Export. Nor do they offer an embedded function feature. As a result, you are more likely to run into limitations with this plugin than you are with the two preceding plugins.
To learn more, see Product Importer Deluxe.
This plugin drops from our #2 rank in The 5 Best WooCommerce Product Import Plugins list to number #4 when it comes to handling CSV files.
Again, the issue is an inability to handle data format complexities. For example, you can use this plugin to map incoming data elements to product attributes:
But what happens if the incoming data doesn't line up on a one-to-one basis with the product attribute structure in your store? There is no built-in ability to modify the format of incoming data to match the target fields, i.e., no interface options to handle the most common attribute data structures, and no embedded function feature to handle everything else.
The same is true for handling custom fields that contain multiple values. Webtoffee itself states: "It is to be noted that the system accepts metadata only in the same formats as it is stored in the database. So the best practice would be to export the data first and then use the exported spreadsheet for importing products. This method will help in reducing the compatibility issues considerably."
That's substantially less convenient than fixing your problems during the import itself.
Their image handling capabilities are somewhat more complete but still fall short of the capabilities offered by both WP All Import and Woo Import Export.
To learn more, see Product Import Export for WooCommerce.
This is the weakest of the five plugins on this list, as it was in our general list of The 5 Best WooCommerce Product Import Plugins.
The main reason for this low ranking is that this plugin does a very poor job of handling any CSV formatting problems. It is, in fact, premised on the idea that you will create your own input CSV file according to the exact specifications set out by the plugin. They even give you a sample CSV file to copy and modify.
This means that you can't handle any oddities in incoming product image or attribute/variation data. As the plugin's documentation states, you can't import serialized data at all. And there is no embedded function capability to bail you out in case you run into something truly unexpected.
Should you have six product suppliers who send you information that doesn't conform to this plugin's specification, you can therefore expect to manually edit six product import files, likely using a spreadsheet.
So, why do we have this plugin on the list at all? Because if you're just trying to import products from a data source you control, where you can strictly enforce the formatting rules, this becomes a simple, cost-effective way of importing WooCommerce products, and using the CSV file format is the most logical way to exchange the information.
For additional information, see Product CSV Import Suite.
When it comes to picking WooCommerce or WordPress plugins, the devil is always in the details. The devil here is not importing products from a CSV file format. Every plugin on this list can handle that, as can every product import plugin in the world.
The devil here is what to do when someone sends you a CSV file that contains WooCommerce product data in a challenging or unexpected format.
If you own WP All Import, the solution to that problem is just to use its interface features, including the embedded function editor, and you should never encounter a problem you can't solve.
After that, you'll find yourself in the trade-off zone. The further you go down this list, the fewer exceptions you'll be able to handle.
We hope this article will help you pick the best solution for you.