{"id":288667,"date":"2026-03-25T07:49:30","date_gmt":"2026-03-25T07:49:30","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/smart-product-sort\/"},"modified":"2026-08-21T11:47:52","modified_gmt":"2026-08-21T11:47:52","slug":"smart-product-sort","status":"publish","type":"plugin","link":"https:\/\/tr.wordpress.org\/plugins\/smart-product-sort\/","author":23386640,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.3.0","stable_tag":"1.3.0","tested":"7.1","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"Smart Product Sort","header_author":"plgnplay","header_description":"Advanced product sorting rules for WooCommerce \u2014 per-category, priority-based, toggle on\/off instantly.","assets_banners_color":"211563","last_updated":"2026-08-21 11:47:52","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":4.5,"author_block_rating":0,"active_installs":10,"downloads":464,"num_ratings":2,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"plgnplay","date":"2026-03-25 08:06:05"},"1.0.1":{"tag":"1.0.1","author":"plgnplay","date":"2026-03-29 15:49:46"},"1.1.0":{"tag":"1.1.0","author":"plgnplay","date":"2026-04-07 08:22:13"},"1.3.0":{"tag":"1.3.0","author":"plgnplay","date":"2026-08-21 11:47:52"}},"upgrade_notice":{"1.3.0":"<p>Fixes variable products appearing twice when sorting by price. Stock, review and sale-price sorting are now free; adds scheduled rules and custom field \/ ACF sorting to Pro.<\/p>","1.1.0":"<p>Pro features: In-Stock First sorting, On-Sale First, Reviews, rule duplication, import\/export.<\/p>","1.0.1":"<p>Redesigned admin interface with a cleaner, modern look.<\/p>","1.0.0":"<p>Initial release of Smart Product Sort.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":1,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3493891,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3493891,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3501435,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3501435,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.1.0","1.3.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3658930,"resolution":"1","location":"assets","locale":"","width":2874,"height":1564},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3658930,"resolution":"2","location":"assets","locale":"","width":2880,"height":1584},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3658930,"resolution":"3","location":"assets","locale":"","width":2880,"height":1558}},"screenshots":{"1":"Smart Product Sort admin dashboard \u2014 clean card-based layout with all sort rules at a glance.","2":"Add Sort Rule modal \u2014 choose sort criteria, category, priority, and activate with a toggle switch.","3":"Edit Sort Rule modal \u2014 modify existing rules with pre-filled fields and save instantly."}},"plugin_section":[],"plugin_tags":[276815,276816,37973,50436,286],"plugin_category":[45],"plugin_contributors":[78154,258578],"plugin_business_model":[],"class_list":["post-288667","plugin","type-plugin","status-publish","hentry","plugin_tags-catalog-sorting","plugin_tags-default-sorting","plugin_tags-product-sorting","plugin_tags-sort-order","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-freemius","plugin_contributors-plgnplay","plugin_committers-plgnplay"],"banners":{"banner":"https:\/\/ps.w.org\/smart-product-sort\/assets\/banner-772x250.png?rev=3501435","banner_2x":"https:\/\/ps.w.org\/smart-product-sort\/assets\/banner-1544x500.png?rev=3501435","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/smart-product-sort\/assets\/icon-128x128.png?rev=3493891","icon_2x":"https:\/\/ps.w.org\/smart-product-sort\/assets\/icon-256x256.png?rev=3493891","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/smart-product-sort\/assets\/screenshot-1.png?rev=3658930","caption":"Smart Product Sort admin dashboard \u2014 clean card-based layout with all sort rules at a glance."},{"src":"https:\/\/ps.w.org\/smart-product-sort\/assets\/screenshot-2.png?rev=3658930","caption":"Add Sort Rule modal \u2014 choose sort criteria, category, priority, and activate with a toggle switch."},{"src":"https:\/\/ps.w.org\/smart-product-sort\/assets\/screenshot-3.png?rev=3658930","caption":"Edit Sort Rule modal \u2014 modify existing rules with pre-filled fields and save instantly."}],"raw_content":"<!--section=description-->\n<p>Smart Product Sort is a free WooCommerce plugin that changes the default order products appear in on your shop page and product category pages. You create sorting rules in the WordPress admin \u2014 sort by price, name, date, popularity, rating, stock status, review count, sale price, menu order or random \u2014 and apply each rule to your whole shop or to one product category. No theme edits and no code are required.<\/p>\n\n<p>WooCommerce only lets you set one default catalog order for the entire store. Smart Product Sort replaces that single setting with per-category rules, so your Sale category can lead with discounts while your New In category leads with the newest arrivals.<\/p>\n\n<p><strong>The Problem<\/strong><\/p>\n\n<p>WooCommerce's built-in sorting is limited. Store owners often need to:<\/p>\n\n<ul>\n<li>Show newest products first in one category<\/li>\n<li>Show best sellers first in another<\/li>\n<li>Prioritize higher-priced items in premium collections<\/li>\n<li>Apply a consistent default sort across the entire shop<\/li>\n<li>Change sorting quickly without editing theme files<\/li>\n<\/ul>\n\n<p>Smart Product Sort solves all of this through a straightforward admin interface.<\/p>\n\n<p><strong>Features<\/strong><\/p>\n\n<ul>\n<li><strong>10 sort criteria<\/strong> \u2014 Name, price, popularity, rating, date, random, menu order, stock status, review count, and sale price.<\/li>\n<li><strong>Up to 3 sort rules<\/strong> \u2014 Create up to three rules on the free plan. Pro removes the limit.<\/li>\n<li><strong>Global or per-category<\/strong> \u2014 Apply a rule to the whole shop or assign it to a specific product category. Category rules override global ones automatically.<\/li>\n<li><strong>Priority system<\/strong> \u2014 Lower number means higher importance. When multiple rules exist, the priority system determines which one wins \u2014 no conflicts.<\/li>\n<li><strong>On\/off toggle<\/strong> \u2014 Activate or deactivate any rule instantly. Test changes or handle seasonal sorting without deleting anything.<\/li>\n<li><strong>Customer choice preserved<\/strong> \u2014 When a customer manually selects a sort option from the WooCommerce dropdown, their choice always takes priority.<\/li>\n<li><strong>Lightweight<\/strong> \u2014 Runs a single database query per page load. No heavy operations, no performance impact.<\/li>\n<li><strong>HPOS compatible<\/strong> \u2014 Fully compatible with WooCommerce High-Performance Order Storage.<\/li>\n<\/ul>\n\n<p><strong>How It Works<\/strong><\/p>\n\n<ol>\n<li>Navigate to <strong>WooCommerce &gt; Smart Product Sort<\/strong> in your admin dashboard.<\/li>\n<li>Click <strong>Add Sort Rule<\/strong>.<\/li>\n<li>Choose the sort criteria (price, name, date, popularity, rating, random, menu order, stock status, review count, or sale price).<\/li>\n<li>Optionally assign the rule to a specific product category.<\/li>\n<li>Set a priority number and activate the rule.<\/li>\n<\/ol>\n\n<p>Sorting applies automatically on the frontend from that point on. Category-specific rules take precedence over global rules. When a customer visits a category with its own rule, that rule applies. Otherwise, the global rule is used as a fallback.<\/p>\n\n<p><strong>Pro Features<\/strong><\/p>\n\n<ul>\n<li><strong>Unlimited sort rules<\/strong> \u2014 No cap on how many rules you create.<\/li>\n<li><strong>Scheduled rules<\/strong> \u2014 Give a rule a start time, an end time, or both. Ideal for sales and seasonal merchandising.<\/li>\n<li><strong>Auto-expiring rules<\/strong> \u2014 Rules deactivate themselves once their end time passes.<\/li>\n<li><strong>Custom field \/ ACF sorting<\/strong> \u2014 Sort by any product meta key, with text or numeric ordering.<\/li>\n<li><strong>Tiebreaker sorting<\/strong> \u2014 Add a secondary criterion that decides order when products tie on the primary sort.<\/li>\n<li><strong>Rule duplication<\/strong> \u2014 Clone an existing rule as a starting point.<\/li>\n<li><strong>Import \/ export<\/strong> \u2014 Move rules between sites as JSON.<\/li>\n<\/ul>\n\n<p><strong>Free vs Pro at a glance<\/strong><\/p>\n\n<p>The free version includes 3 sort rules, all 10 sort criteria, per-category rules, the priority system and the on\/off toggle. Pro adds unlimited rules, scheduled and auto-expiring rules, custom field and ACF sorting, tiebreaker sorting, rule duplication, and rule import\/export. Nothing in the free version is time limited, and your rules stay in your own database either way.<\/p>\n\n<p><strong>Use Cases<\/strong><\/p>\n\n<ul>\n<li>Sort out-of-stock products to the bottom of every category page<\/li>\n<li>Show discounted products first in a Sale category during a promotion<\/li>\n<li>Lead a New In category with the newest arrivals while the rest of the shop sorts by popularity<\/li>\n<li>Rank products by a custom field such as a margin, badge or ACF priority value<\/li>\n<li>Schedule a Black Friday or seasonal sort order that turns itself off afterwards<\/li>\n<li>Give a large catalog a different sort order in each of its categories<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>smart-product-sort<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate through <strong>Plugins &gt; Installed Plugins<\/strong>.<\/li>\n<li>Make sure WooCommerce is installed and active.<\/li>\n<li>Go to <strong>WooCommerce &gt; Smart Product Sort<\/strong> to add your first rule.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20change%20the%20default%20product%20sorting%20in%20woocommerce%3F\"><h3>How do I change the default product sorting in WooCommerce?<\/h3><\/dt>\n<dd><p>WooCommerce sets one default catalog order for the whole store under WooCommerce &gt; Settings &gt; Products. Smart Product Sort replaces that with rules: go to WooCommerce &gt; Smart Product Sort, click Add Sort Rule, pick a sort criterion, and either leave the rule global or assign it to a single product category. The new order applies to your shop and category pages immediately.<\/p><\/dd>\n<dt id=\"can%20i%20use%20a%20different%20sort%20order%20for%20each%20product%20category%3F\"><h3>Can I use a different sort order for each product category?<\/h3><\/dt>\n<dd><p>Yes. Each rule can target one product category, and a category rule always overrides the global rule. Categories without their own rule fall back to the global one. The free version includes up to 3 rules; Pro removes that limit.<\/p><\/dd>\n<dt id=\"how%20many%20sort%20rules%20can%20i%20create%20in%20the%20free%20version%3F\"><h3>How many sort rules can I create in the free version?<\/h3><\/dt>\n<dd><p>The free version allows 3 sort rules. Existing rules keep working if you have more than 3 from an earlier version \u2014 you simply cannot add new ones until you remove one or upgrade to Pro, which has no limit.<\/p><\/dd>\n<dt id=\"what%20can%20i%20sort%20products%20by%3F\"><h3>What can I sort products by?<\/h3><\/dt>\n<dd><p>The free version sorts by 10 criteria: date, price, name, popularity, rating, random, menu order, stock status, review count and sale price. Pro adds sorting by any custom field, including Advanced Custom Fields (ACF) values.<\/p><\/dd>\n<dt id=\"can%20i%20sort%20out-of-stock%20products%20to%20the%20bottom%20of%20the%20page%3F\"><h3>Can I sort out-of-stock products to the bottom of the page?<\/h3><\/dt>\n<dd><p>Yes, and this is free. Create a rule with Stock Status as the sort criterion. Products are reordered so in-stock items lead \u2014 out-of-stock products are moved down the page, never hidden or removed from the catalog.<\/p><\/dd>\n<dt id=\"can%20i%20sort%20woocommerce%20products%20by%20an%20acf%20field%3F\"><h3>Can I sort WooCommerce products by an ACF field?<\/h3><\/dt>\n<dd><p>Yes, with Pro. Choose \"Custom Field \/ ACF\" as the sort criterion and enter the field key. ACF stores its values as ordinary post meta, so any ACF field works. Pick \"Number\" as the field type for numeric fields so that 100 sorts above 20 rather than below it. Products that do not have the field are placed last and are never hidden.<\/p><\/dd>\n<dt id=\"can%20i%20schedule%20a%20sort%20rule%20for%20a%20sale%20or%20a%20season%3F\"><h3>Can I schedule a sort rule for a sale or a season?<\/h3><\/dt>\n<dd><p>Yes, with Pro. Any rule can be given a start time, an end time, or both. The rule begins sorting at its start time and stops at its end time on its own, so a Black Friday order can go live and retire itself without anyone changing a setting. Expired rules are automatically marked inactive.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20a%20customer%20chooses%20a%20sort%20option%20themselves%3F\"><h3>What happens if a customer chooses a sort option themselves?<\/h3><\/dt>\n<dd><p>The customer's choice always wins. Smart Product Sort only controls the default order shown before a shopper picks anything from the WooCommerce sorting dropdown.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20hide%20or%20filter%20any%20products%3F\"><h3>Does this plugin hide or filter any products?<\/h3><\/dt>\n<dd><p>No. Smart Product Sort only changes the order of products, never which products appear. Every product that WooCommerce would normally show is still shown, including products missing the field a rule sorts by \u2014 those are placed last rather than removed.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20variable%20products%3F\"><h3>Does it work with variable products?<\/h3><\/dt>\n<dd><p>Yes. Variable products are sorted by their price range, using the lowest price when sorting ascending and the highest when sorting descending, and each product appears exactly once.<\/p><\/dd>\n<dt id=\"how%20does%20the%20priority%20system%20work%3F\"><h3>How does the priority system work?<\/h3><\/dt>\n<dd><p>Each rule has a priority number, and a lower number means higher importance. When more than one rule could apply, the rule with the lowest priority number wins. This keeps sorting predictable instead of leaving conflicting rules to chance.<\/p><\/dd>\n<dt id=\"will%20this%20plugin%20slow%20down%20my%20store%3F\"><h3>Will this plugin slow down my store?<\/h3><\/dt>\n<dd><p>No. Smart Product Sort runs one lightweight query to find the active rule, caches the result, and then modifies the ordering of the query WooCommerce already runs. It does not add extra product queries to the page.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20require%20woocommerce%3F\"><h3>Does this plugin require WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. Smart Product Sort extends WooCommerce catalog sorting and requires WooCommerce to be installed and active. It does nothing on a site without WooCommerce.<\/p><\/dd>\n<dt id=\"is%20it%20compatible%20with%20woocommerce%20hpos%3F\"><h3>Is it compatible with WooCommerce HPOS?<\/h3><\/dt>\n<dd><p>Yes. The plugin declares full compatibility with High-Performance Order Storage (custom order tables).<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20translation%20ready%3F\"><h3>Is the plugin translation ready?<\/h3><\/dt>\n<dd><p>Yes. All strings use the <code>smart-product-sort<\/code> text domain and a .pot file is included in the <code>languages<\/code> folder.<\/p><\/dd>\n<dt id=\"do%20i%20lose%20my%20rules%20if%20i%20upgrade%20to%20pro%20or%20downgrade%20to%20free%3F\"><h3>Do I lose my rules if I upgrade to Pro or downgrade to free?<\/h3><\/dt>\n<dd><p>No. Rules are stored in your own database and are untouched by licence changes. If you downgrade, rules that use Pro-only criteria simply stop applying until you upgrade again.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Free: Stock status, review count, and sale price sorting moved from Pro into the free plan \u2014 10 sort criteria in total.<\/li>\n<li>Free: The 3-rule limit on the free plan is now enforced, with a rule counter in the admin header.<\/li>\n<li>Pro: Scheduled rules \u2014 set a start time, an end time, or both on any rule.<\/li>\n<li>Pro: Auto-expiring rules \u2014 an hourly job deactivates rules once their end time passes.<\/li>\n<li>Pro: Custom field \/ ACF sorting \u2014 sort by any product meta key, as text or as a number. Products missing the field sort last and are never hidden.<\/li>\n<li>Fixed: Sorting by a meta-backed criterion could show the same product more than once. WooCommerce stores one <code>_price<\/code> row per variation price, so variable products were duplicated in the catalog \u2014 most visibly when price was used as a tiebreaker. Meta values are now aggregated per product before sorting.<\/li>\n<li>Fixed: A rule saved with a tiebreaker but no explicit tiebreaker direction stored an empty sort order instead of DESC, and emitted deprecation notices on PHP 8.1+.<\/li>\n<li>Improved: Rule caches are now namespaced and invalidated as a group, so edits take effect immediately even with a persistent object cache.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Pro: Multi-criteria sorting \u2014 add a secondary tiebreaker that decides order when products tie on the primary sort.<\/li>\n<li>Added an automatic database upgrade routine so new columns are applied on plugin update.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Pro: In-Stock First sorting \u2014 push out-of-stock products to the bottom automatically.<\/li>\n<li>Pro: On-Sale First sorting \u2014 show discounted products first.<\/li>\n<li>Pro: Reviews sorting \u2014 sort by number of reviews.<\/li>\n<li>Pro: Rule duplication \u2014 clone any rule with one click.<\/li>\n<li>Pro: Rule import\/export \u2014 export rules as JSON, import from file.<\/li>\n<li>Pro: Upgrade to Pro teaser for free users.<\/li>\n<li>Improved sort order labels for clarity.<\/li>\n<li>Freemius SDK integration for Pro licensing and updates.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Redesigned admin interface with enterprise-grade UI.<\/li>\n<li>Improved table layout, modal design, and status badges.<\/li>\n<li>Added sort order indicators and empty state design.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Change the default WooCommerce product sorting per category. Sort by price, stock, sales, rating, sale price or any custom field \u2014 no code.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/288667","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=288667"}],"author":[{"embeddable":true,"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/plgnplay"}],"wp:attachment":[{"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=288667"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=288667"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=288667"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=288667"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=288667"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=288667"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}