Atelier – Automatic Product Sorting for WooCommerce
Atelier – Automatic Product Sorting for WooCommerce
Description
Your categories sort themselves.
What sells most moves up. What is sold out moves down. New arrivals get their
place. And you review the order before publishing it.
What sells
Net units over the last 30 days, with refunds deducted. Each run takes a
complete snapshot of that period and shows you which orders were counted and
which were not.
What is left
The availability your catalog reported at the time of the run. What cannot be
bought goes to the end, however many units it sold before.
What has just arrived
A new product gets its place for a window you set per category: 14 days by
default, from 1 to 90.
You keep the last word
Turning the plugin on changes nothing in your store. Preview shows what would
move and why. You review the order before publishing it. Pin products to keep
them in place, pause a category, restore WooCommerce’s native order, or return
to an earlier published order. No black boxes: every position comes with its
explanation.
Free is complete
No limits on categories, products, or orders. No account, key, or expiry.
Pro
Pro adds named, versioned strategies, net revenue as a weighted signal, and
scheduled editorial promotions for each category. Pro replaces Free as the
sorting edition; both can stay installed, but only one sorts at a time. Pro
keeps working if you do not renew.
What it does not do
- It doesn’t promise more sales. It sorts by an observed signal; what happens
next depends on your store. - No AI, “smart” scores, per-visitor personalisation or random order.
- It does not know real-time stock or the units actually free at checkout.
- It does not collect impressions, clicks, or sessions.
Privacy
All calculations run on your server. The plugin sends no telemetry or store
data, depends on no external service, and makes no network request to sort
products. WordPress itself may still check WordPress.org for updates.
Where it sorts and where it does not
The plugin sorts only when it can identify one category unambiguously.
It serves the ranking in:
- The main category archive of a classic theme when WooCommerce uses its
default or manual order. - The Product Collection block in Default/inherit mode inside the category
template. - The Product Collection block in Custom+Manual mode when the category is
unambiguous and no other ordering criterion exists, including editor preview.
It keeps the native order for: an explicit order selected by the visitor,
search, the main shop archive, queries spanning several categories, the Store
API, external search engines, and custom SQL queries from other plugins.
Not claimed as supported: shortcodes, page builders, headless setups,
WPML/Polylang, and page or CDN caches. The dashboard is available in English
and Spanish, is ready for translation, and supports RTL; multilingual catalog
sorting has not been verified.
WordPress Multisite is not supported. The plugin detects it, explains the
limitation, and does nothing else: no tables, no scheduled work, and no
storefront intervention on any site in the network.
Development
Admin source: admin-ui/src/; compiled files: assets/admin/. With Node 20+
and npm 10+, rebuild with npm ci && npm run build:assets. To rebuild the PHP
autoloader, run composer install --no-dev --classmap-authoritative. The
plugin includes its production assets and autoloader.
Installation
- Install and activate WooCommerce, which is a required dependency.
- Install and activate Atelier – Automatic Product Sorting for WooCommerce.
- Go to WooCommerce Product sorting and follow the guided first run.
Requirements: WordPress 6.9 or later, PHP 8.3 or later, WooCommerce 10.8 or
later, MySQL or MariaDB with InnoDB, and a single-site installation.
Administrators and shop managers can view the dashboard. Publishing,
restoring, or changing settings also requires permission to manage
WooCommerce.
Screenshots
Faq
No. Activation prepares the plugin’s tables; the native order remains until
you publish. Calculation is read-only for WooCommerce orders and products.
No. The first Apply for a category approves the formula and policy: in
practice, you approve how products will be sorted in that category. After that,
when only data changes in your catalog or orders, a complete new order may
publish automatically.
Changing how products are sorted returns the category to Preview. Pause keeps
the current order; Restore returns to WooCommerce’s native order; returning to
an earlier order keeps it in place until you publish again. The dashboard and
history show what changed, how, and when.
Each run takes a complete U30 snapshot. It includes every order that
WooCommerce exposes as paid and in an eligible status; it does not
automatically exclude test orders. The snapshot shows which orders were counted
and which were not.
The dashboard explains every status and its next action. Not calculated,
Calculating, and Ready for review cover the first publication;
Published is serving an order; Outdated, Degraded coverage, and
Blocked require a new run or diagnostic review; Paused keeps the
current order; Restored serves WooCommerce’s native order.
Restore immediately returns the category to WooCommerce’s native order. It
deletes nothing; history remains available.
You can return to an earlier saved order after seeing what would change. An
order containing a product that no longer exists is rejected rather than
partially published. It remains in place until you publish again.
If calculation is failing, Run now resumes blocked or outdated work instead.
In its own tables, the plugin keeps published and proposed product orders,
their explanations, and the history needed to restore an earlier order. For
each category it keeps the current order, the latest proposal, and the five
previous published orders. Other saved orders are removed after seven days.
It neither modifies nor copies orders or products and stores no per-order
sales contribution.
Diagnostics are calculated from live state and have no history in Free.
The plugin uses WooCommerce’s public APIs. Diagnostics report correctly
registered custom statuses as unclassified, with their observed order count.
An incompletely registered status may be invisible, especially under HPOS.
The plugin cannot count or report orders WooCommerce does not return and does
not invent a zero; the dashboard and export declare this limitation.
Fix that integration and recalculate. The plugin does not read internal order
tables as a workaround.
Its tables, options, caches, scheduled tasks, and capability. WooCommerce data
is not touched. While another edition of this plugin is still installed,
uninstalling keeps that shared data, because the other edition uses it.
Deactivation removes storefront ordering and scheduled work but keeps
configuration and history. Reactivation starts in native order until another
review and publication.
The downloadable JSON diagnostic contains allowlisted versions, statuses,
counts, and category identifiers—not secrets, personal data, order content,
category names, or store URL.
It is generated only on request and never sent automatically.
Email support@pluginsatelier.com and attach the exportable diagnostic.
The WordPress.org forum is not a promised support channel. Email is.
Phone, chat, store access, consulting, and custom development are outside Free.
Reviews
Changelog
1.2.0
- Clearer category guidance and guided Preview help you review before publishing.
- Availability explanations distinguish catalog stock from what can be bought;
diagnostics and the downloadable report are available in Spanish. - Free includes its own Spanish translations and a dismissible dashboard link
to learn about Pro.
1.1.2
- Fix: no longer says Pro does the sorting on a Multisite network, where neither edition sorts.
1.1.1
- Fix: keeps the ranking breakdown and editorial promotion details when a store returns from Pro to Free.
1.1.0
- Spanish is included, using WooCommerce’s Spanish terms.
- Only one edition sorts at a time; Plugins explains which one. Inactive
editions still declare HPOS compatibility, and uninstall keeps shared data
while another edition is installed. - Fix: explanations from another edition display correctly; movement labels
use singular and plural; dates follow your admin language; search and
movement filters align on desktop and mobile.
1.0.0
- First release.


