How do I create WooCommerce custom product sorting?

This Ask Jilt 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)

We’re going to focus on the first option for setting up a customized order. If you go to Appearance > Customize in your WordPress admin, you can change some of your display settings.

In the Customizer, go to WooCommerce then Product catalog change the “Default product sorting” to “Default sorting (custom ordering + name)” and we’ll get going from there. (See a gif of how to access this).

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 “Sorting” at the top of your product listings page, you can start customizing your product order:

WooCommerce sort products manually

This will change the screen to allow you to drag and drop products into an order that you choose for your Shop page.

💡 Need to see more products? Adjust your screen options and change the number of products per page.

WooCommerce sorting products per 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.

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.

💡 Need more sorting options? Here’s a tutorial + plugin for adding WooCommerce product sorting options that can help you create a new alphabetical sorting option.

Beka Rice
Beka Rice is the Head of Product at Jilt. She works on app improvements, integration plugins, helping merchants improve recovery campaigns, and shares tutorials on reducing abandonment or improving recovery on our blog.


  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. 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 :)

  3. 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”]


    [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?

    1. thanks for that. just a note, if anyone is having trouble getting orderby=”menuorder” working that’s because it’s missing an underscore, so orderby=”menu_order”

  4. 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.

  5. HELP!!!
    I have been trying to get this page: 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.


  6. 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!

  7. 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??

  8. 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.

  9. 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.

  10. 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.

  11. 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.

  12. 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

  13. 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: ID 1234 and product id 5678

    Thanks for the help.

  14. 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.

  15. 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.

  16. 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 :)

<em>Hmm, looks like this article is quite old! Its content may be outdated, so comments are now closed.</em>