Skip to content

Bestsellers changelog

All notable changes to slova/module-bestsellers. Versions follow Semantic Versioning.

  • “Sort by: Bestsellers” on category and search pages, in the same order as the bestseller lists, products that did not sell last; works with Magento’s search engine (OpenSearch) and ElasticSuite. Can be the default sort order (Magento’s catalog setting or per category).
  • Catalog Sorting settings: turn the option on or off; option name per store view.
  • Hidden product attribute slova_bestseller_rank (place per store view), kept up to date by every recalculation — only changed places are written and reindexed.
  • Search results sorted by bestsellers start with the best seller (search otherwise defaults to descending).
  • Pages sorted by bestsellers are refreshed in the full page cache when the order changes.

Run bin/magento setup:upgrade, then bin/magento indexer:reindex catalogsearch_fulltext (or let Magento’s cron rebuild the index it marks Reindex required).

First release as a standalone package (in production on caruselbooks.ro since October 2026 as a site module).

  • Sales read directly from orders into a daily table per store view and product (units, revenue, orders), not from Magento’s report tables.
  • Free lines left out by what the customer paid (row total + tax − discount), whichever module made them free; cancelled units never count, refunded units subtracted (optional).
  • Orders left out by state, by date (before launch / imports) and by customer e-mail.
  • Bundles count as the bundle, their contents, or both; configurable products as the configurable product.
  • Main period (7 – 365 days, custom or all time) per store view, filled from longer fallback periods with real sales only — never random products.
  • Ranking by units or revenue, with a fixed tie-break order; store view, website or global order scope.
  • Store-wide and per-category lists (anchor categories include subcategories); product types can be left out; out-of-stock products hidden at display time.
  • Sort scores for every product that sold, in the same order as the lists.
  • Bestsellers widget: horizontal carousel (Hyvä snap slider) or grid of the theme’s product cards, or a compact vertical numbered list; whole store, the category being browsed, or a chosen category; products per row.
  • Placement through Magento’s widget instances (pages, containers, store views) or Insert Widget in CMS content.
  • “#2 in Bags” box on the product page, with limits and editable texts.
  • Styles scoped and built on the theme’s CSS variables; no Tailwind build.
  • Daily, every 6 hours or hourly; Recalculate Now; on settings save; bin/magento slova:bestsellers:recalculate [--full].
  • Incremental runs from order update times; full rebuild when the counting rules change; overlapping runs prevented.
  • Full page cache (and Varnish) cleaned only for store views whose lists changed.
  • Status overview with the last run, the schedule and each store view’s periods; “Add a List to the Store” shortcut to a preset widget.
  • Inherited value shown under every Use system value checkbox.
  • BestsellerProviderInterface read API and slova_bestsellers_recalculated event.
  • English admin, Romanian translation.
  • Clean uninstall: tables, settings, schedule, status and widget instances removed.