Variation Upsells WooCommerce

User
This feature is great, but the current issue is that we can only select 'simple' products to upsell and can not select a specific 'variation' product.

Therefore e.g. for our Vitality CBD variable product, we are currently unable to up-sell any variation of this product as it comes in different 'dosages' and 'flavour' so the system does not allow us to select one in the back-end.

It would be good and beneficial if in the back-end, we are able to select and up-sell any variable product where we simply select the variation that is simply being up-sold.
woocommerce

Assistant
You're absolutely right — by default, **WooCommerce only allows you to add _simple_ products or _variable parents_ as upsells**, not individual _product variations_. This is a limitation in the UI and database model of WooCommerce.

However, there's a way to **enable variation-level upsells**, which requires a bit of customization.

### ✅ Problem
– In **WooCommerce**, product **upsells** (`_upsell_ids`) only accept product IDs — typically only for **simple products** or **variable parent products**.
– **Product variations** are stored as **children** of variable products and aren't available in the product selector UI.

### ✅ Solution

To allow selecting specific **product variations** as upsells:

#### 1. **Make variations appear in the Upsells selector dropdown**
Use a plugin or code snippet to **modify the product selector** in the back-end so you can choose variations.

##### Option A: Use a Plugin
Use a plugin like:

🔹 **“Product Variations as Simple Products for WooCommerce”**
This plugin makes variations behave like individual products and shows them in selectors.

Or:

🔹 **“WC Product Add-Ons Ultimate”** (premium, includes upsell improvements)

##### Option B: Custom Code to Modify Upsell Selector

Here’s a basic filter to allow variations to appear in the backend selectors (e.g., via the `select2` AJAX search):

add_filter( 'woocommerce_json_search_found_products', 'include_variations_in_upsells', 10, 2 );
function include_variations_in_upsells( $found_products, $term ) {
    $args = array(
        'post_type'      => 'product_variation',
        'posts_per_page' => 10,
        's'              => $term,
    );
    $variations = get_posts( $args );
    foreach ( $variations as $variation ) {
        $product = wc_get_product( $variation->ID );
        if ( $product ) {
            $label = wc_get_formatted_variation( $product, true, false, true );
            $found_products[ $product->get_id() ] = $label;
        }
    }
    return $found_products;
}

> This will make variations visible and selectable in WooCommerce search fields (like upsell product selectors). You may need to also adjust JS if you're using a custom admin interface.

#### 2. **Display Variation on Frontend**
If you attach a variation ID to the upsells, you must ensure it’s correctly handled on the product page (like adding the correct “Add to Cart” behavior).

WooCommerce generally hides variations in the catalog and doesn’t link directly to them. You may need to:
– Use a plugin like **“Show Single Variations”** (IconicWP).
– Or manually link to the parent product with pre-selected attributes (via URL parameters).

### ✅ Recommended Approach

If you want a **clean and supported** solution:

**🔧 Use this plugin**:
– [Iconic Show Single Variations](https://iconicwp.com/products/show-single-variations/)
– It allows **variation-level upsells**, shows them in the catalog, and makes them directly purchasable — no coding required.

### ✅ Summary

| Task | Approach |
|—————————–|————————————————|
| Select variation as upsell | Use plugin OR custom filter (above) |
| Show variation in catalog | Plugin like *Show Single Variations* |
| Add to cart for variation | Ensure variation is purchasable directly |

Would you like a code-ready setup or plugin recommendation based on your theme/setup (e.g., Flatsome, Astra, custom)?

User
Is their any plugin
Assistant
Yes — there **are plugins** that allow you to select and upsell **product variations** in WooCommerce. Here are the **best plugins** to handle that:

### ✅ 1. [**Show Single Variations by Iconic**](https://iconicwp.com/products/show-single-variations/)

**⭐ Most Recommended**

This plugin does exactly what you need:
– Treats **variations as individual products**
– Allows **variation-level upsells**
– Shows them in the catalog/search/cart like simple products
– Works seamlessly with upsell and cross-sell sections

> **Price:** Paid (Starts at ~$79/year)
> **Why it's worth it:** Full compatibility with WooCommerce + auto add-to-cart functionality for variations.

### ✅ 2. [**WooCommerce Mix and Match Products**](https://woocommerce.com/products/woocommerce-mix-and-match-products/)

– Not exactly for upsells, but allows you to **group variations** and sell them as a package.
– Could be used creatively to upsell variations if you're creating grouped/mix bundles.

### ✅ 3. [**Product Bundles by WooCommerce**](https://woocommerce.com/products/product-bundles/)

– Lets you upsell **specific variations** inside a bundle.
– Customers can select variation-specific options as part of the bundle.

### ✅ 4. [**Smart Offers by StoreApps**](https://www.storeapps.org/product/smart-offers/)

– Adds **smart upsell offers**, **post-purchase offers**, and **targeted variation upsells**.
– More of a **sales funnel plugin**, but it gives you full control over which variation to upsell and when.

### ✅ Summary

| Plugin Name | Variation Upsells | Price | Notes |
|——————————-|——————-|———–|————————————–|
| **Show Single Variations** | ✅ Yes | Paid | Best option, variation becomes visible everywhere |
| Product Bundles | ✅ With logic | Paid | Variation as part of a bundle |
| Smart Offers | ✅ Advanced | Paid | Add upsell offers with variation |

### ✅ Free Option (Limited)

No **fully free plugin** reliably allows variation-level upsells like the paid ones, but you could try:

**[Variation Swatches for WooCommerce by CartFlows](https://wordpress.org/plugins/woo-variation-swatches/)** — Doesn’t give full upsell control, but improves how variations are displayed and may be paired with other logic.

Would you like me to help you set up “Show Single Variations” or suggest a workaround using code if you don’t want a paid plugin?

User
https://woocommerce.com/document/up-sells-cross-sells-for-variations/
Assistant
Yes, there *is* a **WooCommerce extension** specifically built to let you assign **up-sells and cross-sells at the variation level**, exactly what you need for your Vitality CBD variable product.

### ✅ Plugin: **Up‑Sells and Cross‑Sells for Variations**

– Developed by **HighAddons** and sold through WooCommerce Marketplace.
– Allows you to **select different upsells or cross-sells for each product variation**—e.g., upsell the 50 mg strawberry flavor to one set of products, and the 100 mg mint flavor to another citeturn0search0turn0search8.
– Once installed, you get **new Upsells/Cross‑Sells panels** within each variation’s edit screen. You can search and link whichever product you want citeturn0search1.
– On the frontend, when a user selects a variation, only the upsells/cross‑sells assigned to that variation will display—inline on the single product page and in the cart citeturn0search0.

### 📋 Key Features

– Variation-specific upsells and cross-sells
– Configure order, column count, labels for each section
– Option to fallback to parent product’s upsells if none are set at variation level citeturn0search0turn0search1

### 🚀 How to Install & Setup

1. Purchase "Up‑Sells and Cross‑Sells for Variations" from WooCommerce Marketplace.
2. Upload and activate via: `Plugins → Add New → Upload Plugin` citeturn0search1.
3. Go to any product variation under **Products → Your Variable Product → Variations tab**.
4. You’ll see new fields for **Upsells** and **Cross‑sells** on each variation. Search/select the specific products.
5. Save, and test the selection on the front end.

### ✅ Benefits for Your Use Case

– Lets you thumb-select *exactly* which variation gets upsold and to *which* products (e.g., 10 mg peppermint upsells versus 50 mg vanilla)
– Fully integrated: no need for custom code or confusing workarounds
– Seamless presentation on product pages and in the cart

**Bottom line:** This plugin solves your issue perfectly—letting you choose upsells at the variation level in the backend and displaying them conditionally on the front end.

Would you like help finding alternatives, or a walkthrough once you've installed it?

Leave a Comment

Your email address will not be published. Required fields are marked *