> For the complete documentation index, see [llms.txt](https://jrystudio.gitbook.io/manual-woocommerce/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://jrystudio.gitbook.io/manual-woocommerce/set-up-products/add-and-managing-products/variable-products.md).

# Variable Products

**Variable products** in WooCommerce let you offer a set of variations on a product, with control over prices, stock, image and more for each variation. They can be used for products like **shirts** and **shoes**, where you can offer a large, medium and small and in different colors.

## Adding a Variable Product

To add a variable product, create a new product or edit an existing one.

1. Go to: **WooCommerce >** **Products**.
2. Select the **Add Product** button or **Edit** an existing product. The Product Data displays.
3. Select **Variable product** from the **Product Data** dropdown.

<figure><img src="https://woocommerce.com/wp-content/uploads/2021/03/Creating-a-variable-product-in-WooCommerce.png?w=950" alt=""><figcaption></figcaption></figure>

### Add Attributes to Use for Variations

In the **Attributes** section, add [attributes](/manual-woocommerce/set-up-products/managing-product-categories-and-attributes.md) before creating variations — use global attributes that are site-wide or define custom ones specific to a product.

#### **Global Attributes**

To use a global attribute on your product:

1. First **create** a global attribute.
2. Then you can choose said global attribute from the dropdown and select **Add**.
3. Choose **Select all** to add all values from to the variable product (if applicable).
4. Most importantly select the **Used for variations** checkbox to use these for variations.
5. Select **Save attributes**.

<div><figure><img src="https://woocommerce.com/wp-content/uploads/2020/03/global_attribute.png?w=950" alt=""><figcaption></figcaption></figure> <figure><img src="https://woocommerce.com/wp-content/uploads/2020/03/global_attribute_2.png?w=950" alt=""><figcaption></figcaption></figure></div>

**Custom Attributes**

To add a new attribute specific to this product:

1. Select **Custom product attribute** and click **Add**.
2. Name the attribute (e.g., Size).
3. Set values separated by a vertical pipe, `|` (e.g., **Small | Medium | Large**).
4. Make sure that the **Used for variations checkbox** is checked. (Note: If your creating the first attribute for the variable product, it can also be done from the “Variations” tab. However, here the “**Used for variations**” checkbox will be checked and cannot be disabled)
5. Select **Save attributes**.

<figure><img src="https://woocommerce.com/wp-content/uploads/2020/03/custom_attribute.png?w=950" alt=""><figcaption><p><em>Adding a custom attribute</em></p></figcaption></figure>

<figure><img src="https://woocommerce.com/wp-content/uploads/2020/03/custom_attribute_2.png?w=950" alt=""><figcaption><p><em>Adding custom attribute values</em></p></figcaption></figure>

### Add Variations

With attributes created and saved to add a variation, go to the **Variations** section in the **Product data** meta box.

**Manually Add a Variation**

1. Select **Add variation** from the dropdown menu, and select **Go**.
2. Select attributes for your variation. To change additional data, click the triangle icon to expand the variation.
3. Edit any available data. The only required field is **Regular Price.**
4. Select **Save changes**.

**Creating All Possible Variations**

Select **Create variations from all attributes** to have WooCommerce create every possible combination of variations from your attributes and their values and select **Go**:

<figure><img src="https://woocommerce.com/wp-content/uploads/2020/03/create_all_variations-1.png?w=950" alt=""><figcaption></figcaption></figure>

It will create a new variation for each and every possible combination of variation attributes. For example, if you have two attributes – color (with values blue and green) and size (with values large and small) it creates the following variations:

* Large Blue
* Large Green
* Small Blue
* Small Green

{% hint style="warning" %}
**Note:** If you later add additional attributes, it may require the variables to be redefined for the variation combinations to work correctly.
{% endhint %}

### Editing Many Variations <a href="#editing-many-variations" id="editing-many-variations"></a>

If you have more than 15 variations, use the buttons to navigate forward and backward through the list. Each time you navigate to a new set of variations, the previous set is saved. This ensures that all changes are saved.

<figure><img src="https://woocommerce.com/wp-content/uploads/2020/03/variations_15.png?w=950" alt=""><figcaption></figcaption></figure>

<figure><img src="https://woocommerce.com/wp-content/uploads/2020/03/default_variations.png?w=950" alt=""><figcaption><p><em>Set defaults you prefer on variations</em></p></figcaption></figure>

If you want a certain variation already selected when a user visits the product page, choose the default form values. This also enables the Add to Cart button to appear automatically on variable product pages.

{% hint style="danger" %}
Please note that setting default form values on variations may affect the original display on the product page. Look for web developer if you need assistance.
{% endhint %}

<figure><img src="https://woocommerce.com/wp-content/uploads/2020/03/variation.png?w=950" alt=""><figcaption><p><em>General</em></p></figcaption></figure>

The variation data is basically the same as you can see from other [product types](/manual-woocommerce/set-up-products/add-and-managing-products.md).

<details>

<summary>General</summary>

* **Enabled** – Enable or disable the variation.
* **Downloadable** – If this a downloadable variation.
* **Virtual** – If this product isn’t physical or shipped, shipping settings are removed.
* **Regular Price** (required) – Set the price for this variation.
* **Sale Price** (optional) – Set a price for this variation when on sale.
* **Tax status** – Taxable, shipping only, none.
* **Tax class** – Tax class for this variation. Useful if you are offering variations spanning different tax bands.
* **Stock quantity** – Shows if **Manage stock?** is selected. Allows to set the current stock level for the variation.
* **Allow backorders?** – Shows if **Manage stock?** is selected. Allows to set if backorders are allowed for the variation; if enabled, stock can go below zero.
* **Low stock threshold** – Shows if **Manage stock?** is selected. When the stock for the variation reaches this level you will get a notification email. If not set, the product-wide threshold will be used (see *Inventory Management* below).
* **Downloadable Files** – Shows if **Downloadable** is selected. Add file(s) for customers to download.
* **Download Limit** – Shows if **Downloadable** is selected. Set how many times a customer can download the file(s). Leave blank for unlimited.
* **Download Expiry** – Shows if **Downloadable** is selected. Set the number of days before a download expires after purchase.

**Inventory Management**

</details>

Сhoose how to manage stock by toggling **Enable stock management at product level** on the Inventory tab:

<figure><img src="https://woocommerce.com/wp-content/uploads/2020/03/stock_at_product_level.png?w=950" alt=""><figcaption><p><em>Inventory Management</em></p></figcaption></figure>

<details>

<summary>Inventory</summary>

* **SKU** – If you use SKUs, set the SKU or leave blank to use the product’s SKU.
* **Manage Stock?** – Tick the box to manage stock at the variation level.
* **Stock Quantity** – Shows if Manage Stock is selected. Input the quantity. Stock for the specific variation, or left blank to use the product’s stock settings.
* **Allow Backorders** – Choose how to handle backorders.
* **Low stock threshold** – When the stock for the variation reaches this level you will get a notification email.
* **Sold Individually?** – Allow only one to be sold in one order. (This setting is used for the product itself. You cannot set a specific variation to only be sold once per order)

</details>

**Set Stock Status** can be applied to all variations at once to **In stock** or **Out of stock**. Bulk-update under **Variations**:

<figure><img src="https://woocommerce.com/wp-content/uploads/2020/03/bulk_edit.png?w=950" alt=""><figcaption><p><em>Bulk Update Stock Status</em></p></figcaption></figure>

<details>

<summary><strong>Shipping</strong></summary>

* **Weight** – Weight for the variation, or left blank to use the product’s weight.
* **Dimensions** – Height, width and length for the variation, or left blank to use the product’s dimensions.
* **Shipping class** – Shipping class can affect shipping. Set this if it differs from the product.

</details>

<details>

<summary>Linked Products</summary>

* **Upsells**
* **Cross-sells**
* **Grouped**

</details>

{% hint style="warning" %}
If the SKU, weight, dimensions, and stock fields are not set, then it inherits values assigned to the variable product. **Price fields must be set per variation**.
{% endhint %}

### Add an Image to the Variation

1. **Expand** the variation.
2. **Click** the blue image placeholder (screenshot).
3. **Select** the image you wish to use.
4. **Save**.

<figure><img src="https://woocommerce.com/wp-content/uploads/2020/03/variation_image.png?w=950" alt=""><figcaption><p><em>Variations</em></p></figcaption></figure>

### Bulk Editing Variations

You can bulk-edit variations by selecting the specific piece of data you want from the dropdown. In this example, I want to edit prices for all variations:

<figure><img src="https://woocommerce.com/wp-content/uploads/2020/03/bulkedit_2.png?w=950" alt=""><figcaption><p><em>How to Bulk Editing</em></p></figcaption></figure>

## What Customers See

On the frontend, when viewing a variable product, the user is presented with dropdown boxes to select variation options. Selecting options will reveal information about the variation, including available stock and price.

<figure><img src="https://woocommerce.com/wp-content/uploads/2020/03/example_variable.png?w=931" alt=""><figcaption><p><em>Example of Product page</em></p></figcaption></figure>

{% hint style="info" %}
**Note:** This is just a general example/demo, the display of the variation options could be different due to different designs and layouts of your website.<br>
{% endhint %}
