Metrics

Metrics

Visualize your shop's average order value, orders per month and more customizable graphs

npm install @pinelab/vendure-plugin-metrics
Latest version2.3.0
Compatibility>=2.2.0
Last publishedJul 2, 2025
Pinelab
PinelabWebshops for mission-driven brands and wholesalers

Official documentation here

A plugin to visualize your shops most important metrics. Includes server side visitor tracking to calculate conversion rate.

image

Getting started

  1. Configure the plugin in vendure-config.ts:
  1. Rebuild your Admin UI
  2. Run a database migration to add the necessary tables to your database.
  3. Start your Vendure server and login as administrator
  4. You should now be able to add the widget Advanced Metrics to your dashboard.

Metric results are cached in memory to prevent heavy database queries every time a user opens its dashboard.

Server side tracking

To enable visitor tracking, you need to call the mutation pageVisit on the client to log a visit. Without this mutation, no visitors are tracked at all.

You can optionally pass inputs to the pageVisit, which will be persisted on each request.

These inputs currently aren't used, but you can write a custom metric to get, for example the top visited products, or pages.

:warning: Not legal advice.

Ip addresses and user agents are anonymized, and can not be reversed after 24 hours. This also means the same visitor will be seen as a new visitor after 24 hours.

This should make this plugin compliant with GDPR, and allow you to track visits without cookie consent.

The default session length is 30 minutes. This can be overridden via sessionLengthInMinutes option. This means that new request from the same visitor after 30 minutes will be seen as a new visitor. Anything requests within the 30 minutes of the previous request will be counted as the same visitor.

Built-in Metrics

  1. Revenue (per product): The total revenue per month, or the revenue generated by specific variants if a variant is selected.
  2. Average Order Value (AOV): The average of order.totalWithTax of the orders per month
  3. Units sold: The number of units sold for the selected variant(s).
  4. Conversion Rate: The percentage of visitors that have converted to orders.
  5. Sessions: The number of sessions per month.

You can implement the MetricStrategy interface and pass it to the MetricsPlugin.init() function to have your custom metric visible in the Widget. Below is the implementation of the conversion metric, already included in the plugin, but it serves as an example of how to implement a custom metric.

Contributions

Special thanks to@dalyathan for his contributions on this plugin.