Other Administration & Productivity

PrestaShop 8 Product Sales Columns Module — df_productsales

Sales, Returns and Net Sales for each product, visible and filterable directly in your back-office product list.

df_productsales adds three columns to the product list in your PrestaShop 8 back office: Sales, Returns and Net Sales. Sortable in one click, filterable by min/max range, calculated only on paid, shipped and delivered orders. Multistore compatible, zero SQL table created on install.

Multistore PS 8.0+ No SQL table Native sort & filter
  • 30-day refund
  • 12 months updates
  • 24h support
www.datafirefly.com/en/
Dashboard product list sales and returns - Afficher les ventes et retours dans la liste produit
v1.2.1 · updated 2026-02-11
What it does

The short version.

01

3 columns in the native product grid

Sales, Returns and Net Sales are added after the Quantity column in the PrestaShop 8 product grid, with no core file modifications and no overrides.

02

Native Symfony PS8 sort and min/max filter

Each column is sortable in one click and filterable by value range (e.g. products sold between 10 and 50 times), exactly like the native grid columns in PrestaShop.

03

Accurate calculation on valid orders only

Sales count only paid, shipped and delivered order states. Returns read product_quantity_refunded regardless of order state, so no refund is ever missed.

The long version

Everything you'd want to know before you install.

A detailed look at how PrestaShop 8 Product Sales Columns Module — df_productsales works, why we built it the way we did, and the thinking behind the features above.

§ 01

Three sales metrics directly in your product list

By default, the PrestaShop 8 product list shows reference, name, category, price and stock quantity — but not a single sales figure. To find out which products are selling, you have to navigate to the statistics section or cross-reference order reports. df_productsales fixes that in one install: the Sales, Returns and Net Sales columns appear directly in the table, on the same row as each product.

§ 02

Accurate and reliable sales and returns calculation

Sales are calculated by summing product_quantity on order_detail rows where the order is in a valid state (paid, shipped, delivered via PS_OS_PAYMENT, PS_OS_SHIPPING, PS_OS_DELIVERED). Cancelled or pending orders are excluded. Returns sum product_quantity_refunded with no state filter, since a refund can be recorded regardless of the final order state — this detail prevents under-counting returns on stores that use a specific state for refunded orders.

§ 03

Sort and min/max filters directly in the table

Each column is sortable by clicking its header, exactly like native columns. The min/max filter (Symfony PrestaShop NumberMinMaxFilterType) allows filtering products by sales range — for example: show only products sold between 5 and 20 times to identify mid-rotation items, or filter products with more than 0 returns for a quality audit. Filtering works via SQL HAVING to avoid breaking the GROUP BY of the main query.

§ 04

Zero performance impact and clean installation

The module creates no SQL table on install. Data is calculated on the fly by subqueries added to the main grid query via the actionProductGridQueryBuilderModifier hook. The performance impact is limited to back-office product list page loads — no calculation happens on the front office. On a catalogue of a few hundred products, the subqueries have negligible cost thanks to PrestaShop's native indexes on id_product and id_order.