This Ask Sell with WP question comes from Humayun:

How can I change the sorting of my products in the WooCommerce shop page? I want to show important, sale, or featured products that I choose first without using a separate category for these products.


WooCommerce includes several options in the core plugin for sorting your products on the Shop page. However, most people don’t realize that there’s actually an option for WooCommerce custom product sorting. By default, you’re given 6 options:

  • Default Sorting (custom + name)
  • Popularity (sales)
  • Average rating
  • Most recent
  • Sort by price (ascending)
  • Sort by price (descending)

WooCommerce product sorting settings

We’re going to focus on the first option for setting up a customized order. Under WooCommerce > Settings > Products, change the “Default Product Sorting” to “Default Setting (custom ordering + name)” and we’ll get going from there.

This setting will automatically sort products alphabetically in your store. However, you can also use this setting to create an entirely customized order for your WooCommerce products.

If you click on “Sort Products” at the top of your product listings page, you can start customizing your product order:

WooCommerce Sort Products

This will change the screen to allow you to drag and drop products into an order that you choose for your Shop page. Note that if you start to change product order, you’ll want to completely customize your products into an order that you choose, as alphabetical sorting will now be overridden.

Here’s a tutorial / plugin on adding WooCommerce product sorting options that can help you create a new alphabetical sorting option.

Why is this? Dragging and dropping products will change the “Menu Order” under Product Data > Advanced for each product, and there’s no bulk method to reset all menu orders to 0. If you want to get back to alphabetical sorting, you’ll have to reset the menu order manually for each product to 0, which can be incredibly time consuming for stores with more than a few products.

WooCommerce Product Menu Order

You can also manually edit menu order rather than dragging and dropping if desired under Product Data > Advanced. Products with menu order “0” will be displayed first, then 1, 2, 3, etc. You can use this to create your own ordering, or groups of products that will be ordered together alphabetically. For example, if multiple products have menu order = 1, then they’ll be displayed alphabetically together after any products with menu order = 0 and before those with menu order = 2. The default for all new products is 0.

Does this sound like a pain? You probably have hundreds of products. In that case, I recommend using an automatic sorting option for WooCommerce that lets you “weight” what’s important to you – price, ratings, etc. This creates an entirely customized sorting order automatically without you dragging and dropping every product in your catalog (review here).


Hope that helps! As we mentioned in the article, we also recommend this tutorial at SkyVerge on adding WooCommerce product sorting options.

Have a question of your own? Fill out our contact form and let us know your question!

Articles you may also like:

Posted by Beka Rice

Beka Rice manages the direction of Sell with WP content and writes or edits most of our articles to share her interests in eCommerce. Or she just writes as an excuse to spend more time jamming out to anything from The Clash to Lady Gaga. Who knows.

33 Comments

  1. Very informational post. Thank you.

    My question is with the Product sorting: I have enough products that my product list spans over multiple pages. How do I drop and drag a product from one page to another.

    1. Hey Evan, I’d recommend going to “Screen Options” in the top right and changing the “Products per Page” setting as needed, or using a plugin that does automatic sorting such as WIPS to sort automatically based on ranking criteria.

  2. Perfect! Screen Options worked!

  3. Hi,

    Thanx for the info.

    I was googling to find a way to allow me to have a selected product at the begining of my product list in the “catalog” view. Alphabetical order is fine for me but I needed one product to be displayed first in the list. I tried checking the featured star but it didn’t worked…

    Your article gave me a clue showing the “Product data > Advanced > Menu order” that i haven’t seen yet… So I wanted to share it with you : in this “Menu order” field, you may put a negative order ๐Ÿ™‚ By default all products have a 0 order number. I tried to use -1 as my “featured” product menu order and it worked ! The product is displayed first now ๐Ÿ™‚

    I hope this can help someone ๐Ÿ™‚

    1. Neat, thanks for the heads up!

  4. I want to create sort by brands.. I have installed WooCommerce Brands Plugin now i want to display “brand” in the sorting option. how it can be done…

    1. Hey Kamlesh, this will probably be helpful as I’m guessing you could use the postmeta added by that plugin: http://www.skyverge.com/blog/sort-woocommerce-products-custom-fields/

  5. Thanks – this helped me out as well! (my client wanted his products sorted by price (asc), but (there is always that ‘but’…) he wanted the cheapest article displayed at the end (as it was displaying at the beginning, obviously) – your solution did the trick (I now realize I wouldn’t have had to edit the menu-order of all products – just leave them at ‘0’ and change the cheapest one to ‘1’….).

    I created a page for each category – that way I can add custom text above and underneath the products, add a picture etc. This is the code to be inserted:

    [product_category category=”category-name” columns=”3″ orderby=”title” order=”sac”]

    or:

    [product_category category=”category-name” columns=”3″ orderby=”menuorder” order=”sac”]

    (“sac” should be “asc” of course – still, this works….)

    Anyway, made me think (not being smart enough to code it myself, but also in combination with your other sorting plugin) for creating a plugin that:
    1: let’s you sort products per product-category on price, name etc. (regular sorting);
    2: adds to the selected products a menu-order (starting at 1, but with an interval, say: 1, 4, 7 etc.);

    The zero’s (0’s – if any left) will display first, but after that, products will show according the menu order. Because of the interval, you can move products around by changing their menu-order-number (say, 15 can become 5).

    I haven’t used the dragging method (wasn’t even aware…), but I feel that for larger categories the above method might be faster – you can re-run it each and every time (setting all back to 0/default) and start over – useful if you want to bump-up specific products for a limited time.

    Your thoughts?

  6. I notice sort products is available no matter what default sorting you’ve chosen, so does that mean I can drag and drop in a most recent setting? What about sorting within a specific category? Is the sorting only global?

    1. Hey Jason, sorting is global rather than within a category. Any time your sort products, the order you select will only be applied to he “Default Sorting” option, no matter which is actually set as the default to display to customers.

  7. Just what I was looking for! ๐Ÿ™‚

    And thank you very much for sharing this almost hidden feature.

    1. no problem, glad it’s no longer hidden ๐Ÿ˜‰

  8. HELP!!!
    I have been trying to get this page: http://www.shopbrendabeddome.com/shop-spring-collection/ in order as per her catalog. Everything is defaulted. If i drag them, they look fine, but when i view the page, they are not what i wanted.

    Is there something that hold the sorting in the products page i’m missing?
    This is the first time i’ve had trouble with woocommerce.
    I’m using version 2.2.11, when i upgraded, the site went wonky so i put the previous version it back.

    thanks
    kevin

  9. Wow, you are a lifesaver! I was trying to figure out if I could use the “menu order” feature to sort products, but didn’t notice this tab. THANK YOU!

  10. I wanted the sorting options for the CLIENT choose, like sorting by price, reviews, etc, in the page of the shop and not by the admin in the woocommerce panel. There’s a built-in plugin that put the sorting options in the shop page, for the guest/client??

  11. hi all, how can i sort the order into ID number? i have tried many ways but can not seem to get it.

    1. Hey Dave, sorting by “most recent” (or making this your default) should do the trick, as product IDs will be sequential based on when the product was created.

  12. I found a workaround which may help, depending how many products you have.

    Use Quick Edit to add a sequential number before the name of each product. Then use Sort products which will rearrange them in the order you’ve numbered them. Then use Quick Edit to delete the numbers.

  13. Hello. I have a problem with product sorting. Sorting does not work correct. I mean price sorting at shop page, when I choose some kind of sorting, page refresh but order stay the same. The same situation is and on admin page where is all products. I tryied difference changes in function. php but it didn’t help. Please, give me some advise, I am frustrated with it. Thanks.

  14. Hi, we are still in the building stage of our website but are having a sorting problem. We deal in safety signs so have multiple categories eg Danger, Warning, Mandatory, Hospitality, Laboratory, etc. We often place one sign in multiple categories due to the relevance, so a Danger sign can also go in Laboratory but when we sort using the ‘menu numbering’ system it affects the placement in both categories – which is bad. As we have over 1400 signs, 30 categories (and counting) plus sub-categories is it possible to have both options? Menu numbering and drag and drop.

  15. Hi all!

    I have a related but slightly different sorting question. I wanted to show on a page the result of a product sort. Basically, when a person clicks on the “new product” button on the nav menu, it’ll automatically show a result of all new products within the shop page. That without using the dropdown sort menu. Any ideas? Thanks

  16. Thanks for revealing this useful feature ๐Ÿ™‚

  17. Amit Chaudhari July 10, 2015 at 8:03 am

    Thank you so much. It is too useful for me.

  18. great !!! that saves my day ๐Ÿ™‚

  19. Hello there,

    in my case, I need to show two or three product that are assigned to different category.
    Wouldn’t be possible using the ID of the product write a string that allow to show only the chosen product ?
    Something like:
    http://www.mydomainname.com/product ID 1234 and product id 5678

    Thanks for the help.
    Roc

  20. Hello,
    My client has a requirement that he doesn’t want the on-sale products in product listing page. Means display only that products which are not in sale in product listing page. Please help me out.

  21. Where is the menu order stored in database?

    1. as a column in the WP_Post table (not as meta)

  22. Hello, Beka!

    Recently I was very upset to find that on my new site with WooCommerce plugin products shows incorrectly.
    Normally, I have only 6 product categories, but with hundreds of models of every type.
    I created products as Product_name 1, Product_name 2, Product_name 3 … Product_name 250, etc.
    But when it’s sorted by default, I see Product_name 8 on page with products 80, 81 or I see product 11 on page with products 111, 112.

    WooCommerce sorted them in the same manner as Windows sort and now people must spend a lot of time to find the product they need.

    How to change showing them incorrectly and setup to show on page as Product_name 1, Product_name 2, Product_name 3, … Product_name 10?
    I would be really glad to get your help on this subject!

    1. Afraid that sorting with WP query (what’s used to get products) will work like that — it can sort alphabetically (which gives product 1, product 11, product 110, product 2), numerically, but not both. If you wanted to sort them this way, you could manually sort them as this post describes, which sets the menu order, but otherwise sorting by title will produce what you’ve outlined.

  23. Hi Beka,

    Thank you for your excellent work.
    I still have a problem: I’ve sorted my products with drag&drop method which produced effect in the Shop page. But in the Category page the products remained sorted on the old way. Sorting by “Order number” also do not function in Category page.
    Please help ๐Ÿ™‚

  24. Hi Beka,

    Is there a plugin i can easily sort the products?

    Thanks.

It's been over 2 years since this post was published, so comments have been closed. Thanks for reading!