Live Viewers Manual.

How to show honest live-viewer and sales figures on the product detail page and make social proof visible.

System requirements

Shopware 6.7, PHP 8.1 or newer, MySQL or MariaDB. The Shopware scheduler or a worker must be running so old heartbeats are cleaned up automatically.

No external services: Counting runs entirely on your own server. No data is sent to third parties.

Installation

  1. Upload the ZIP through the Shopware backend.
  2. Install and activate the plugin.
  3. Open the settings under Extensions, Stone & Water - Live Viewer & Sales Counter, Configuration.
  4. Pick the position on the product detail page, set the minimum thresholds and add custom texts if you want.
  5. Clear the storefront cache.

Opening the settings

The settings live in the admin under Extensions, in the plugin configuration. They are grouped into four cards, each described below.

Live viewers: how counting works

When a product detail page is opened, an anonymous heartbeat is registered. A storefront JavaScript sends further heartbeats at a configurable interval for as long as the tab is active. All sessions within a configurable time window are counted, five minutes by default.

The visitor is not counted: The current session is always excluded. Customers see other people, not themselves.

Sales counter: how counting works

Sales figures come straight from order_line_item, so from real orders. Variants are aggregated onto the parent product, meaning one article in three sizes counts together. The time window is configurable, seven days by default.

The three display modes

Each data source can be set separately to control how specific the number appears.

Strict
The exact number, for example „3 people are looking at this item right now".
Bucketed
Honest ranges with fixed boundaries: 3 to 5, 6 to 15, 16 and above. The label per range is free text.
Aggregated live viewers only
„X people in the last 24 hours" - useful when there is not enough simultaneous traffic for a live figure.

Minimum threshold

Each data source has a threshold below which nothing is shown at all. This avoids misleading signals when activity is low - a single visitor on the page is not convincing social proof.

Display positions

The badge can appear in four places on the product detail page: above the buy box, below the buy box, directly above the add-to-cart button and directly below it. Together with the option to show nothing, the dropdown offers five choices.

The four settings cards

Display positions
Where the badge appears on the product detail page.
Data source: viewed
Mode, minimum threshold, time window, heartbeat interval, custom texts and the range labels.
Data source: sold
Mode, minimum threshold, time window, custom text and the range labels.
Transparency
Optional explanation link for customers.

Custom texts and placeholders

Every text can be overridden. Two placeholders are available: %count% for the number and %days% for the time window in days.

The bundled default texts are:

Viewed, strict
%count% people are looking at this item right now
Viewed, aggregated
%count% people viewed this item in the last 24 hours
Sold, strict
Sold %count% times in the last %days% days

Further languages can be added through the Shopware snippet system; German and English ship with the plugin.

Transparency link

Optionally a „How we measure this" link appears next to the badge, pointing at a URL of your choice. Useful if you want to explain on your own page that these numbers are counted, not estimated.

Privacy

The only things stored are a SHA-256 hash of the session ID and sales channel ID, plus product ID, sales channel ID and timestamps. The hash cannot be reversed.

Not stored: no IP addresses, no user agent strings, no cookies, no transfer to third-party services.

Heartbeats older than 25 hours are removed automatically every five minutes by a scheduled task.

Troubleshooting

Nothing is displayed

Usually the minimum threshold: as long as fewer sessions or sales are counted than configured, the badge stays hidden on purpose. Also check that a display position is selected and the storefront cache has been cleared.

The number looks too low

Your own session is never counted. Testing in your own browser will always show one less than is actually active.

The number does not change

Check the time window and the heartbeat interval. If the interval is longer than the window, sessions drop out of the count before the next heartbeat arrives.

Old entries are not removed

Cleanup runs as a scheduled task. Without a running scheduler or worker it never executes.

Support

If you have questions about setup or picking sensible thresholds, we are happy to help. Get in touch via the contact page or write to info@stoneandwater.online.

All settings

Every setting of the plugin with its default value and explanation, in the same order as in the administration. The texts come straight from the plugin (version 1.1.5).

Display positions

Position on the product detail pageDefault: Above buybox

Where the badge appears on the PDP. "Above/Below buybox" places it at the start/end of the buy column. "Above/Below Add-to-Cart button" places it directly at the Add-to-Cart element.

Data source: Viewers (live)

Show live viewersDefault: on

Shows on the product page how many visitors are currently viewing the product.

Display modeDefault: Bucketed - ranges

Strict: exact number. Bucketed: range. Aggregated: views in the last 24 hours.

Minimum thresholdDefault: 3

Below this number the viewer display is hidden. Recommended: 3.

Active viewer window (minutes)Default: 5

How many minutes after the last heartbeat a viewer counts as active. Recommended: 5.

Heartbeat interval (seconds)Default: 30

How often the storefront sends an update ping. Recommended: 30.

Text "Strict" (placeholder: %count%)Default: empty

Leave empty for automatic translation from the storefront snippets.

Text "Aggregated" (placeholder: %count%)Default: empty

Leave empty for automatic translation from the storefront snippets.

Bucket "Low" (3-5 viewers)Default: empty

Text shown instead of the exact number at 3 to 5 viewers when the display is set to ranges. Empty uses the default text from the storefront snippets.

Bucket "Mid" (6-15 viewers)Default: empty

Text shown instead of the exact number at 6 to 15 viewers when the display is set to ranges. Empty uses the default text from the storefront snippets.

Bucket "High" (16+ viewers)Default: empty

Text shown instead of the exact number at 16 or more viewers when the display is set to ranges. Empty uses the default text from the storefront snippets.

Data source: Sales

Show sales counterDefault: on

Shows on the product page how often the product was sold in the selected period.

Display modeDefault: Strict - exact numbers

Strict: exact sales count. Bucketed: ranges like for viewers.

Minimum thresholdDefault: 3

Below this count the sales counter is hidden. Recommended: 3.

Time window (days)Default: 7

Period over which sales are counted. Recommended: 7 days.

Text "Strict" (placeholder: %count%, %days%)Default: empty

Leave empty for automatic translation from the storefront snippets.

Bucket "Low" (3-5 sales)Default: empty

Text shown instead of the exact number at 3 to 5 sales when the display is set to ranges. Empty uses the default text from the storefront snippets.

Bucket "Mid" (6-15 sales)Default: empty

Text shown instead of the exact number at 6 to 15 sales when the display is set to ranges. Empty uses the default text from the storefront snippets.

Bucket "High" (16+ sales)Default: empty

Text shown instead of the exact number at 16 or more sales when the display is set to ranges. Empty uses the default text from the storefront snippets.

Transparency & privacy

Show explainer linkDefault: on

Small info link below the badge explaining how data is collected.

Link target for explainerDefault: empty

E.g. /shopinfo/live-count or a FAQ page. Empty = tooltip instead of link.

Through the store or directly from us.

Two routes, the same feature set - pick whichever suits your setup.

Directly through Stone & Water

Available now

FreePermanently0,00 €

No booking needed, no term.

The Plugin Suite installs and updates it with one click. Invoice, updates and support come directly from us, without a detour through a marketplace.

Get it with the Plugin Suite +49 2555 9997342

Shopware Store

Available now

Listed in the official Shopware Community Store. Installation and updates run through the plugin manager, billing through your Shopware account. Store conditions differ from ours.

View in the Shopware Store

More trust in the shop?

Back to Live Viewers.

All features on the product page. We are here for setup and fine-tuning.