How do I create WooCommerce custom product sorting?
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:
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.
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.
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.