Skip to content
GPLWP Guides

How to let customers order multiple product variations in WooCommerce

WooCommerce Time About 30 minutes with a plugin, or several hours for custom development 6 steps Updated 1 Sep 2026

The short answer

WooCommerce lets customers add a selected variation to the cart, but it does not provide a native single-form bulk order table for one variable product. Customers can repeat the normal process, or you can add a custom form or plugin that submits several valid variations and quantities together.

The route
  1. 01Check the product structure
  2. 02Use the built-in route first
  3. 03Plan a custom bulk form
  4. 04Handle the common failure points
  5. 05Install the faster option
  6. 06Place an order and verify it

What you need

  • A WooCommerce store with a variable product
  • At least two configured variations with prices
  • Product and variation stock information
  • Administrator access

Check the product structure

Open Products and edit the variable product. Confirm that its attributes, terms, and variation combinations are already set up. Every variation that customers can order must have a valid combination of attributes, a price, and the correct stock settings. WooCommerce uses the variation record, rather than just the parent product, when adding a variable item to the cart.

If you changed the attributes after creating the variations, review the combinations again. Changing attribute values can leave the product with missing or invalid variation combinations.

Use the built-in route first

Without an extension, a customer selects one variation, enters its quantity, and adds it to the cart. They then return to the product page, select another variation, and repeat the process. The cart can contain several variations of the same parent product, but each variation has to be submitted separately through the normal form.

This is acceptable when customers usually buy one or two options. It becomes frustrating for wholesale buyers or anyone ordering many sizes and colours, because there is no native bulk-selection table in WooCommerce.

Plan a custom bulk form

For a code-based solution, create a form that lists the product's valid variations, with a quantity field beside each one. The form should submit the variation identifier and requested quantity only for rows above zero. A small site-specific plugin is safer than editing WooCommerce files or a parent theme.

On the server, validate the request, nonce, variation identifier, attribute combination, purchasability, and stock before adding each selected variation to the customer's WooCommerce cart. Add the rows one at a time through WooCommerce's cart process, then return the cart response. Do not trust prices, stock values, or variation data posted by the browser.

Handle the common failure points

Test unavailable, out-of-stock, backordered, and individually managed variations. A bulk form must reject a row that cannot be purchased without preventing valid rows from being added, or clearly report which rows failed. Check quantity limits, minimum quantities, sold-individually products, tax display, shipping classes, and cart item data.

Also test logged-out customers, mobile screens, caching, the cart page, and checkout. AJAX can make the form feel faster, but it adds another place for nonce, session, response, and caching problems to appear. WooCommerce's cart item data and add-to-cart events still need to be handled for every variation.

Install the faster option

If you do not want to build and maintain the form, install WooCommerce Bulk Variation Forms from your plugin provider through Plugins in WordPress. Upload the plugin ZIP if necessary, activate it, and open its settings or product configuration area.

Enable the bulk form for the products that need it, choose the variation attributes to display, and save the settings. The customer should then be able to enter quantities for several variations and add the selected rows to the cart in one action. Check the plugin's supported product structure before using it; its documentation specifies products with exactly two variation attributes.

Place an order and verify it

Open the product as a customer, enter quantities for at least two variations, and use the bulk add control. Confirm that the cart shows separate lines for each selected variation, with the right attributes, quantities, prices, and stock deductions.

Complete a test checkout using both guest and logged-in accounts if your store supports both. If one row disappears, the wrong variation appears, or stock is not checked, disable the form until the product data and extension settings have been reviewed.

The fast route

Let WooCommerce Bulk Variation Forms do it

Single-form bulk selection for variable products, ideal when customers need to add many sizes, colors, or attributes at once.

Get WooCommerce Bulk Variation Forms

Sources

  1. woocommerce.com /document/variable-product/?utm_source=openai
  2. github.com /woocommerce/woocommerce/blob/trunk/plugins/woocommerce/clie…
  3. woocommerce.com /document/woocommerce-bulk-variation-forms/?utm_source=opena…

Questions

Can WooCommerce add several variations from one product page by default?
No, WooCommerce's standard variable-product form submits one selected variation at a time. Customers can add another variation by returning to the product page and repeating the process, and the cart can hold the resulting variation lines. A single table with quantities for many variations requires custom development or an extension that adds bulk variation selection.
Can I use grouped products instead of a bulk variation form?
Sometimes, but grouped products are a different product model. They are useful when each selectable item is a separate product, while size and colour combinations normally belong to one variable product. Converting every variation into separate products can make inventory, catalogues, URLs, and reporting harder to manage, so use that approach only when the products genuinely need separate records.
Why does a bulk variation order add the wrong item or fail?
The usual causes are incomplete variation data, a mismatch between attribute terms and the variation record, missing prices, unavailable stock, or a form that sends the parent product ID instead of the selected variation ID. Review the variation combinations first, then inspect the browser request and server-side validation. Never rely on browser-submitted prices or stock values.
Does each variation keep its own stock quantity?
Yes, when stock is managed at variation level, each variation can have its own quantity and stock status. A bulk form must validate every selected variation separately, so one out-of-stock size does not silently become another size. Test stock reduction, backorders, quantity limits, and two customers ordering the same variation at the same time.
Is a plugin better than custom code for bulk variation orders?
A plugin is usually better when you need a working customer-facing form quickly and do not want to maintain custom JavaScript, cart handling, stock checks, and compatibility fixes. Custom code is reasonable when you need a highly specific layout or business rule, but you must maintain it as WooCommerce, the theme, payment extensions, and checkout blocks change.