Hello reader. I don’t know how you found this blog, but perhaps by some extraordinary chance you are someone who is currently trying to build a website store with WooCommerce and you are struggling because you have a very large number of variable products. WooCommerce is great when you only have a few simple products, but if you have 50+ products with multiple variations it can quickly become tedious to edit all those products manually. So you have gone ahead and purchased ELEX’s Bulk Edit plugin but you are still having troubles.
Gather round as I share a tale of my frustration and struggle. Step-by-step, I’ll go over the decisions I made to solve this problem. I can’t call these instructions; the word ‘instructions’ implies something authoritative, definitive, written by someone who knows what they are doing. Instead, I merely call this “A Method” for doing things.
I am not a computer expert – I’m just a guy who sometimes writes things. There is probably a better way to do this. I share this story not because I look forward to being lambasted by the internet for my idiocy but for the hope that maybe someone out there will know a better way to accomplish this or know of a better plugin to use.
But maybe, by some insane chance, you too are a beleaguered web designer who found this blog and are currently struggling to set up variable prices with Bulk Edit. Then come, follow me! I’ve been through this maze before and I know where the exit is. It took me going down every single dead-end path there is to find it.
For three exhaustive days, I was using ELEX’s Bulk Edit plugin for WooCommerce to create variations and variable prices for a client. This was the first time I was using this plugin so much of my time was spent working out how to use it. Even after I worked out a procedure, Bulk Edit was not going to make my life easy.
The client’s site contained a product list of 84 unique variable products, all of which needed multiple variations:
Pricing was dependant on Type and Size, with 33 different price combinations in all:
|Type 1||Type 1||Type 2||Type 2||Type 3||Type 3|
|XS – $30||XXL – $35||XS – $30||XXL – $40||XS – $55||XXL – $65|
|S – $30||2X – $35||S – $35||2X – $40||S – $55||2X – $65|
|M – $30||3X – $35||M – $35||3X – $40||M – $55||3X – $65|
|L – $30||4X – $35||L – $35||4X – $40||L – $55||4X – $65|
|XL – $30||5X – $35||XL – $35||5X – $40||XL – $55||5X – $65|
|6X – $35||6X – $40||6X – $65|
The Bulk Edit Plugin
Bulk Edit is like a temperamental donkey. It is a useful tool, it can do a lot of different things. Technically, it’s faster than not using it, without it I’d still be plugging in numbers, but it’s really slow. This donkey moves at its own speed and will bite or kick you or do what it wants for literally no reason.
At first, I assumed bulk edit was going to be a simple matter of plugging in the Size, Type, and Color variations I wanted and then running the program. But with 84 products and creating many variations, this did not work at all.
The Infinite Spinning Circle of Purgatory
It would continue spinning forever and have to be canceled. Despite canceling, I still checked the product pages. There would be edits to the products, but only the first 500 edits would be completed.
Running an edit of only 462 items would still grant me the Infinite Spinning Circle and I’d have to cancel the edit. Even though the edits were getting completed, canceling is not ideal because it requires you to input every form on bulk edit again, whereas normally the last thing you edited is saved. If you are doing a lot of the same functions repeatedly this is annoying.
Working around this hard limit of 500 edits and a soft limit of 462 meant I was going to have to get creative with my long list of products and do everything in stages.
If Bulk Edit is working fine for you, then you can ignore half of the steps in this method. If anyone out there has any insight into why Bulk Edit was breaking down for me I’d love to know why!
But I was under deadline and this was the tool I had to work with. During my procedures, I kept my edits under 398 items in a single run and Bulk Edit would complete with no issues, taking 40-60 seconds to complete.
Edits under 100 items worked fine and took no more than 10 seconds to complete the update.
Step 1: Preparing the Batch
Because there were so many products and variations, I knew I was going to have to do these in batches. After I got going I generally did these in batches of 10. Since there are natively 20 items listed on a single page of the products list this is neatly split into two batches per page. I knew since each product needed 33 variations, each batch would require 330 item edits, well below the soft limit.
A few complications. The client had initially given us around 40 products to put in the store and then had to add an additional 40, and a few edits to the pricing structure. The prices were adjusted slightly, and two additional attribute categories had to be added, Color and Type. As well as adding an additional size value “2X.” This meant there was a confusing mess of pre-existing variations on about half the products that had to be changed.
After rounds of testing, I found that adding variations from bulk edit tended to throw up new variations on top of the old variations and make a mess, leaving a bunch of extraneous variations. I could have edited them, but deleting them and recreating them took fewer steps. As far as I can tell, you can use Bulk Edit to remove attributes but not variations. You can create variations from attributes but not change values on existing ones or delete them. That meant manually going through every single product page and deleting them.
Step 2: Creating the Variations
This was a tangled problem that took a long time to sort out. Putting all three attributes Type, Size, and Color into bulk edit will create a variation for every single combination. [3x11x14=462]. This was far more variations than I needed. Initially, I tried to roll with it but this is where I discovered the soft limit of 462. With a 500 edit item limit, doing only one product at a time was going to take way too long. Since adding the Colors with the Size and Type was causing problems, I came up with a two-step process for dealing with this. First, create the Size and Type Variations and then add the Colors.
How to create Variations in Bulk Edit. First is the Filter settings in Bulk Edit. Set product type to Variable [parent] at this stage, we don’t want variations in this list.
I set the Stock Status to “Out of Stock”. Having removed the existing variations, WooCommerce defaults to setting these products as Out of Stock. Once a price is added to the variations WooCommerces automatically changes it to In stock. I exploited this as a way to filter out the products that I had already finished editing.
Set the category to the category you’re working with. After that, you click Preview Filtered Products.
Next, you get the Preview screen here:
I clicked the check box at the top to uncheck all the products and then I went through the list checking the 10 products that were going to be in this “batch.” This is one of the places where bulk edit is a painfully slow donkey. Each time you click a checkbox, it could take anywhere from 1-20 seconds for it to load. Once each product is selected, click continue at the bottom and tell it to proceed. The continue button is also very slow to react, taking 5-15 seconds.
Edit the products. Now you are on the next page. Scroll until you find the Global Attributes section. Change to Add New Values. Then add Type and Size, and then add in each value. I eventually found out that the order that you add the Attributes will determine the order the variations will appear on the product edit page. So if you want the variations listed type-size-color that is the order you should enter them. Finally, make sure you enable the bottom two boxes.
Next scroll to the section called create variations. Tick the enable box and then I set the price to $11. What this does is set the price for all variations being created. Setting this $11 placeholder price will become very important for later! I will explain my crazy logic for doing this in Stage 4.
Finally click continue, on the next screen to confirm the update. Don’t worry about naming the update. I can see how this could be useful if you have regularly repeated tasks to perform, but for my purposes here I didn’t feel like I needed it. You can also create a log file but it was too much code-gibberish for a lay-computer person like me to understand and so it’s not very useful.
Step 3: Add the Colors
Adding the Type, Size, and Color all together resulted in two variations, I had to do this in a two-step process. I ended up adding the Colors manually in WooCommerce, but upon reflecting back I realize now I could have probably repeated the previous step in Bulk Edit, adding only the colors and this would have worked. But if you don’t know how to add variations in Woocommerce here is a refresher course:
Once the bulk edit update is complete we move back over to Products List and the edit Product pages. First, scroll down and click on Variations, confirming that the size and type variations were added properly.
Next click on Attributes. Add Color, Select All, and check [Used for variations] and then Save.
Click Variations. Now if you are not creating really complicated variable products with dozens of Variation combinations this is really simple. All you have to do is click the drop-down box [Create variations from all Attributes].
Note: When creating variations, WordPress can only make 50 variations at a time. So if you needed a hundred variations you would have to use something like Bulk Edit. Or do it manually…
Creating the variations manually. You could click [Add variation] and then use the drop-down boxes on every single one. Filling out [type 3] [6X] [Any Color], [type 3] [5X] [Any Color], [type 2] [XS] [Any Color], and so on. It’s not hard to do, but doing that 33 times on every single product would take too much clicking.
In my situation, after having already created the Size and Type variations, I went back and added the colors in attributes, saved them. Then clicked over to Variations to make sure the changes propagated. If you have done things correctly the variations page should look like this. (The type or size might be switched around but I’m not going to worry about that.) The most important thing is that there are 33 variations for each type in every size combination with a [any color] box. Next, update the product page and then repeat this step nine more times to complete the Batch of ten you are currently working on.
Step 4: Price Edits
With the colors added, we move back to Bulk Edit to update the prices. (There is no reason you can’t do the Prices first and then add the colors, this is just the order I decided to do this.)
This was the hardest stage of the process to work out. As far I can tell there is no way to create different prices for different variations on the Edit Products screen. All you can do is set one price for all variations. Not useful at all in my current predicament.
The only way to set prices for specific variations is to filter the specific variations I want and edit their prices. So I broke down the variations into six price categories. This meant it was going to take six rounds of edits to change all the prices.
This is where Bulk Edits filter functions are completely insufficient for my purposes in this situation.
I knew I could use OR and AND with the Product Attributes to filter one price set, such as [Type 1, XS, Small Medium, Large, XL] but there was still a problem, filtering it like this would include all of the products I had done from the previous batches and I still couldn’t exceed my 500 item limit. Since each round had 50-60 items in this set it was too impractical to go down the list and click on each one as I did before with the parent products. Clicking 50-60 checkboxes is annoying enough but adding to the fact that Bulk Edit is very slow made doing it this way too impractical.
When I was initially testing things I simply solved this problem using the Product Title box, filtering by name. This worked great if I was only doing one product. I needed a way to do a bunch and with all these products at once, with all of them having different names. Using product tags and descriptions was equally useless. Using the Stock Status trick I used before didn’t work here because I’d get other products mixed in. And once WooCommerce has a price listed for a product it automatically changes the stock status from “Out of Stock” to “In Stock.”
Using the Exclusions in the filter but this isn’t helpful at all. You have to Exclude by product ID; those random little numbers that are tied to each product. This can be done by manually typing (or copy-paste) into a box, but each variation has a unique product ID so I’d have to include hundreds of IDs in the exclusions.
The $11 Breakthrough. What I needed was a unique variable I could control and filter for, but there was nothing I could use. After repeatedly bashing my head against my desk I had my big brain moment. I picked a random number, 11, for two reasons:
Because it didn’t fall between 30 and 65 (which is what all these products are supposed to be priced at).
There was nothing else in the store with that price tag.
I set the filter to only search for products equal to $11 and put the attributes values in the price group I wanted. Now only items from the current batch would appear!
The filter should look something like this:
Of course, Bulk Edit still wouldn’t make things too easy. I think this is a bug, sometimes Bulk Edit forgets what an AND command means and would filter sizes of all types. So it is important to always do the math and make sure the number of the filtered results is what it is supposed to be. In this case, the results needed to be 50 or 60 items. I think it matters the order you click the type and size tick boxes. Make sure type comes before size to avoid this problem.
Although sometimes even when I did put it in order, type then size, it still would spit out sizes of all types. So I’d go back uncheck the boxes and recheck them again and add in the values I wanted.
On the next page, confirm you have the correct items and numbers of items filtered and continue to the Update the Products page.
On this page scroll to the Price sections and change it to the correct price for each grouping.
Bulk Edit remembers the last edit you performed under the Global Attributes sections. Make sure you change [Add New Values] to <No Change> and uncheck the [Enable to Create Variations] box.
Complete the Update and once that is done, do this stage 5 more times for each of the price groupings.
After many hours of work I successfully got all the client’s products done. Dear reader, if you’ve made it this far I sincerely hope you are able to take away something from my suffering that will make your life a little bit easier. As for Bulk Edit, I can’t say I’ll use it again. It is a powerful tool, and technically better than not having anything. But for a $79 plugin, I would expect a tool that works more reliably with fewer bugs. Bulk Edit, you donkey, you are a pain in my ass.
Note: Some items in screenshots are blocked out to protect client privacy.