WooCommerce Up-Sells and Cross-Sells

WooCommerce Up-Sells and Cross-Sells Explained

WooCommerce makes it easy to setup an unlimited number of up-sells and cross-sells.  Up-sells and cross-sells are essential to developing a long-term profitable eCommerce site because they help to increase the Average Order Size.  You’ve most likely heard the term “up-sells and cross-sells” many times, however, you might not know the difference between the two.  Let’s start by distinguishing the main difference between them now…WooCommerce Up-Sells and Cross-Sells Explained

Difference between Up-Sells and Cross-Sells

Essentially, up-sells and cross-sells are designed to do the same thing, increase the average order size.  Up-sells and cross-sells are items that one would associate with, or would go well with the main product.  The only difference between the two is that up-sells display on the product detail page and cross-sells display in the shopping cart after the main item has been added.

For example, the main product in our tutorial video is a United States Soccer t-shirt.  The up-sells and cross-sells that we choose to associate with our main product were other soccer related t-shirts.  Basically, we choose other shirts from the same product category.

If you have an eCommerce site that sells coffee, good up-sells would be things like coffee bean grinders, coffee mugs and any other coffee related accessories.  Or, let’s say you have a site that sells heat press machines which are used for making t-shirts.  Examples of good up-sells and cross-sells would be things that go well with heat presses such as; heat transfer paper, printers, blank t-shirts and vinyl cutters.  Another example would be an eCommerce site that sells smart phone cases for the iPhone and Android phones.  Good up-sells and cross-sells for a cell phone cases site would be things such as; chargers, data cables, stylus, screen protectors and much more.

The point is that up-sells and cross-sells help your WordPress eCommerce site make more money.  Anything that helps to increase the average order size is worth the time needed to setup.  Hopefully you now have a good understanding of the differences between up-sells and cross-sells as well as why they are so important.  Now it’s time to get into the details of how to setup WooCommerce up-sells and cross-sells…

How to Setup WooCommerce Up-Sells and Cross-Sells

WooCommerce makes it easy to control product up-sells and cross-sells.   Here’s how to set them up…

In your WordPress admin go to Products > click on the main product that you want to associate up-sells and cross-sells with > on the product update page, scroll down to the “Product Data” section > click on the “Related Products” tab > in the Up-Sells text box key in the name of the product(s) that you want to show up on the product detail page as Upsells > WooCommerce will automatically search for the product (based on product name) > do the same for the Cross-Sells text box > key in the names of the products that you want to display in the shopping cart as cross-sells when the main product is added to the cart > click Update when finished.

Important Notes on WooCommerce Up-Sells and Cross-Sells

  • Up-Sells display on the Product Detail page
  • Cross-Sells display in the Shopping Cart after the main product has been added to the cart
  • You can associate an unlimited number of up-sells and cross-sells for each main product
  • Up-Sells and Cross-Sells help to increase your Average Order Size

32 thoughts on “WooCommerce Up-Sells and Cross-Sells

  1. Thank you, Great article.
    Is there a way to upsell/related each other product with woocommerce?
    like: P1 -> upsell with P2,P3 and automaticaly P2-> upsell with P3, P1 and P3 -> P2, P1


    • Hi Matt – thanks for your question and for your complements on the article. I believe what you’re asking is as follows…

      Is there an automatic way to setup Up-Sells and Cross-Sells in WooCommerce? In other words, I have 3 similar products that I always want associated with each other (P1, P2, P3) when site visitors are on their product detail pages and/or when any of the products are in their shopping carts. And instead of having to manually set this up in the WordPress admin by clicking on the Related Products tab for each product as shown in the tutorial, just have it happen automatically.

      To the best of my knowledge, that type of functionality does not currently exist out of the box with WooCommerce. I can definitely see how that would be very helpful if you have a large product catalog. I would recommend checking out the WooCommerce Extensions to see if there is an extension that could quickly add that type of functionality for product up-sells and cross-sells. Please let me know if I interpreted your question correct and if this helps.



  2. Hey Adam,

    Can you help me out with setting up downloadable products as well as physical products. I sell music online, but I’m not able to have 1 item with the two different options for the customers without creating two separate products. I would like to have a drop down of options: 1. Buy MP3 and 2. Buy CD all in one.

    Also, how can I get my home page to not have the featured items there?

    Thank you for your help with the woo set up.


    • Hi Frankie – Thanks for your question. After testing WooCommerce Attributes and Variations for a while I think I have a solution. Here’s how to setup a downloadable product and physical product in the same SKU…

      In your WordPress admin go to Products > click on the product you want to update > scroll down to Product Data > set the product as a Variable Product > click on the Attributes tab > Add an Attribute called “MP3 or CD” > give it the following Values: Buy MP3|Buy CD > check the Visible on the product page and Used for variations check-boxes > click Update Product > after Updating the product the product Attribute has been created > go back to Product Data > click on the Variations tab > Add Variation > select “Buy MP3” from drop-down > check Enabled, Downloadable and Virtual check-boxes > enter a File Path (the URL to download the MP3) > give it a download limit of 1 > give it a price > click Add Variation > select “Buy CD” from drop-down > check Enabled check-box > give it a Price > click Update to update the product > go out to your site and it should now be setup so that your customers can buy the MP3, CD or both in the same product SKU.

      The screen captures below show you how I setup this up in the WordPress admin…

      Downloadable Product Attribute Example

      WooCommerce Downloadable Product and Physical Product Variation Setup

      Your potential site visitors now have the option of purchasing an instant download, a physical CD or both.

      To make a product Featured or not featured click on the product you need to edit > look at the right-hand-side of your screen in the Publish widget section > click on Catalog Visibility Edit > you’ll see the Featured Product check-box

      How to disable featured products in WooCommerce

      Please let me know if this helps answer your questions and good luck with your site!

      p.s. here’s the link to view the live example on our demo site WorldCupTees.com – https://www.worldcuptees.com/shop/download-and-physical-product/

      • Big problem with this is that you are left with no available shipping methods when you have a digital and physical product in the same cart.
        Try it on your demo.

        I’ve tried this with table rate shipping plugin by adding a weight to an mp3 and still get the same problem.

        Any ideas?

        • Hi Steve,

          There is an issue with WooCommerce 2.0.5 shipping that seems to cause the “No shipping methods available” error message. We found what seems to be a viable workaround for the issue and created a tutorial video for it. Here is the video…

          Let me know if this video helps.


      • Thanks Teddy,

        This is exactly what I was looking for and your instructions were dead on. I appreciate you providing this for us.

        I noticed on your screen shots for your download path you had /?attachment after your domain name instead of a direct link to a file on your server. Let me know how or why that is done, I feel there is something for me to learn there about downloads. Is it a plugin or technique that you know of?

        thanks again


        • Hi Norman,

          I’m glad to hear that this WooCommerce Up-sells tutorial was helpful. Your positive feedback is very much appreciated. In regards to your question on the download path of our screen shots… I’m not sure I’m completely understanding your question. Are you referring to screen shots on UploadWP.com or in our tutorial videos? Please provide more info.



      • Hi Adam!

        I too want to give my clients the same option that Frankie wanted to give above. I followed all your instructions and it does give me both options however the Cart won’t show up unless both options are selected. It also only shows the digital download price when both are selected.
        You can view it here: https://homeschoollegacy.com/product/christmas-comes-to-america/
        The digital download version is $12.00 and the regular paperback version is $17.95.
        Any advice??

    • Hi everyone, Teddy your solution is slightly wrong but I have the solution.
      To set a product up as a physicl product and as a downloadable product you do this:

      1. Create the product then assign it as a variable.
      2. Enter one attribute of “Choose format”.
      3. Save attributes or save product depending on your version of WooCommerce.
      4. Give it one variation of Buy CD (for the physical for an eg)
      5. Then give another variation of Buy MP3 (for the downloadable version)
      6. Fill out the physical with the weights/dimensions, and the downloadable with the file to be downloaded and it’s download rules.
      7. Save the product – now you should have a product that sells as a download and as a physical product.

  3. Couple of things I really hope you can help with, I sell whole house fans, when i sell whole house fans, I want to sell options for these fans, ex: they may need a timer for the fan, maybe a switch also, maybe a winter grille cover, also may want a vertical wall adaptor and also maybe a remote control system instead. My issue is, how can I create options that can manually choose or add to the product. I tried doing it on cross sells and upon clicking add to cart, they were forced to the shopping cart , then the options are below the checkout, well, my issue now is only 3 items show up under that, when I might have 6 to 7 options to choose from and someone might want all 7 of those items. 2 scenarios here, either a option to add more cross sells than 3, or being able to use attributes on the single product page.

    This is a big part of my site, Please help if you have can. Thank you

    This is my original site thats being upgraded to wordpress https://www.QuietCoolFan.net

    This is the temp url for the wordpress site

    • Hi John,

      Thanks for your question and nice work on your new site thus far. My guess is there are other people with the same or similar question. My recommendation would be to use additional attributes for each product like you did with the QuietCool QC 1500 Whole House Fan…

      I think your approach with the QuiteCool QC 1500 Whole House Fan works well and gives your customers the option to “add on” additional accessories or to just purchase the fan. As you know, the issue with cross-sells is that it’s difficult to control the number of cross-sells that appear in the cart because the quantity of cross-sells that show seems to depend on the the specific theme being used.

      Thanks again for your comment and best of luck with your site,


  4. I’ve been pulling my hair out for a day and a half over this way (and I didn’t have any excess to begin with) and I can’t find my way out of this problem. I am using Up Sell in a unique way on my website. I want people to be able to click on a generic group (such as QuoteBooks) and, rather than that being the product, to see the individual titles listed as a link to on the sales page. It seems like it will work just fine, but I need to edit the Up Sell header to read “Quotebook Titles” rather than “You May Also Like”. I know how to do this — I already did it on the Home page, so it reads “The Books” rather than “Featured Items” . If I look at the source code from the sales web page it’s staring me right in the face. However, I cannot find the file to edit, using either WP Dashboard or the Woocommerce tools. I believe the file is up-sell.php. The homepage was easy — I just edited index.php. So I guess the short version of my question is “Where the heck do I find and open up-sell.php?” Or am I completely wrong in thinking this is what I need to do?

  5. Okay, I pulled out a few more hairs and figured it out. Don’t know if this was the best way, but it worked. After searching forever and determining there was nothing I could do from my WP Dashboard, and knowing the files were NOT stored on my computer, I had a flash of inspiration and went to my CPanel on HostGator. After a bit of hunting around, I did indeed find up-sell.php, went in, changed the text and it worked like a charm.

  6. Hello Teddy,
    Once again thanks a lot for your video tutorials that are very clear and helps a lot!!
    I have a question concerning the display of upsells products. I want them to display inline. Now they are showing vertically.
    I tryed to change the CSS of woocommerce. But havn’t found a solution.
    Would you have any idea?
    Thanks a lot

  7. I found the solution to my upsell display pb thanks to a forum
    The pb was with the upgrade of woocommerce 2.02
    So I changed the woocommerce.css
    .woocommerce .products ul, .woocommerce ul.products, .woocommerce-page .products ul, .woocommerce-page ul.products {width:100%;}
    .woocommerce ul.products li.product, .woocommerce-page ul.products li.product {width:40%;clear:none;}
    In cas someone needs it…

  8. Hi Teddy Nice work; we create page to sell Download file (psd .jpg ) But we get error like this ( Concierto 2
    Fatal error: Call to undefined method WC_Order::get_downloadable_file_url() in /home/content/28/11173028/html/tienda/wp-content/themes/humbleshop/emails/email-order-items.php on line 35>
    To processing order complet; The page site was sample mode Not Acive.
    can you help me please!!

  9. Hi, just a quick question i am trying to add cross sells to some of my products but they do not appear on the cart page. Is there a general setting in Woocommerce or the theme that 'turns off' cross sells etc? Thanks Tony

  10. Hi Teddy,

    Do you know if there is a way to configure cross-sells based on the chosen variation? I'd like to offer different cross-sells depending on the item that was added to the cart.

    Alternatively, is it possible to restrict the number of variations in a cross-sell depending on the product (or variation) that was added to the cart?



    • Thanks for your question Michael. Most likely it is possible to configure cross-sells based on the chosen variation. It will probably require the use of a plugin / extension for WooCommerce. To better help you and others that have similar questions, please join the Upload WP Forums here… https://uploadwp.com/community/index.php

      It's free and easy to join our forums. We have many active forum members that are more than willing to help point you in the right direction in terms of restricting the number of variations in a cross-sell.

      Thanks and I'll see ya in the forums.

      • Hey Teddy!

        Is there any a solution now? I didn’t find an answer at the forum. Google didn’t give me an answer too 😉 It would be very helpful right now 🙂

        Best regards,


  11. Hi Teddy,

    After some Googling I think you may be best placed to answer a question I have.

    Do you know if it’s possible for customers to enter quantity numbers on the up-sell items in the cart? It would be handy if they could just enter the quantity of an up-sell item and it simply refreshes the cart with the added product and quantity, instead of the 2 options of either visiting the product page or adding only 1 of the product to the cart.

    Any assistance would be most appreciated!



Leave a Comment