Hummerce automatically records an item's price history and - when a product has a promotional price - shows a message with the lowest price from the last 30 days. Independent of this mechanism, a store can also present just the "old price" (struck through), without referring to the lowest price from the last 30 days.
As of Hummerce 2.30 (price history module), updated 2026-09-29.
¶ Benefits and use cases
- Automatic price history recording and calculating the lowest price from the last 30 days - no manual recalculation on every price change.
- The message only shows when the item actually has a promotional price - there's no need to tag every promotion with a separate property.
- A stopgap solution (a manual property with the lowest price) for stores that want to show the information before fully implementing the price history module.
- Independent presentation of the "old price" (struck through) - an extra sales argument alongside the lowest-price message.
- Price history records the price seen by an anonymous customer, together with the item's symbol, a timestamp, the sale unit and the currency - only when it differs from the previous record.
- The record happens on the storefront when the price is shown to an anonymous customer (not in service mode) and is asynchronous.
- A price change in the panel that isn't shown on the storefront (e.g. because of a price list promotion) doesn't get recorded in the history.
- The system calculates and caches the lowest price on the fly: it skips the newest record and checks the lowest price over the 30 calendar days since the last change - the price could have started earlier than 30 days ago, what matters is that it was still active within those 30 days.
- History entries are visible in the item's Prices tab. A single entry can be hidden (e.g. after a mistake when changing prices), but it can't be deleted. Checking prices in service mode doesn't record them in the history.
- The module is enabled by default; B2B stores usually turn it off, since it concerns the price seen by an anonymous customer.
- For item sets, recording history requires an additional task that calculates the set's price - implemented individually in each project.
- The message is shown for every promotional price, regardless of the promotion's source - the exception is price list promotions, where the resulting price is treated as the base price.
- Showing the message requires at least two recorded prices in the history (usually a base price and a promotional one). The item's "Promotion" property isn't a condition for showing the message - it's only an informational badge or a promotion rule switch.
- When the history is empty or has only one entry (e.g. a new item introduced right away with a promotional price), the store shows the message "The current price is the lowest in the last 30 days."
- The first time a changed or new item price is shown, the message still shows the previous lowest price - only the next page refresh shows a value matching the new price, because the new price is recorded in the history only at that first display.
Instead, a store can keep the lowest price manually: a price property holding the lowest price from the last 30 days, filled in manually or by import (e.g. from a spreadsheet), and a separate storefront message referring to that property. This solution requires manually recalculating and updating the value on every price change - the price history module (above) does this automatically.
Independent of the lowest price from the last 30 days, a store can show an "old price" - an earlier, higher price of the product, usually struck through, e.g. with a note "before discount"; the way it's presented is adapted to the store's visual template. The old price can be:
- entered manually on the item's card (a field of type "old price", "list price" or similar, depending on configuration),
- pulled from the base price field, when the store has a separate "promotional price" field - the base field then plays the role of the old price,
- pulled from the customer's individual price list, when the price list module is enabled.
- Since version 2.30 - the price history module and automatic calculation of the lowest price from the last 30 days.
- Since version 2.32.77 - the comparison with the lowest price ignores the VAT rate (it counts the net amount), so a change of delivery country (and VAT rate) doesn't artificially create a new history entry.
- Presenting the "old price" (Oldprice) - a basic platform feature, independent of the price history module.
- Price and price list rule cache - Cache.
- The store template - the place for the lowest-price message and the way the old price is presented is adapted to the store's design.
- Item sets - recording the set's price history requires an additional task, implemented individually.
- The old price from a customer's price list - requires the price list module (Price lists and individual prices).
- Requires implementation - the price history module has been collecting data since version 2.30, but showing the message on the storefront and fitting it into the template has to be implemented.
- Scope: enabling or disabling the module depending on the store type (B2B usually disables it), embedding the message in the product card template, adjusting its wording, and - for item sets - an additional task that calculates the price.
- Minimum estimated time: from 4 h - embedding the message in an existing price display location, with no changes to the page layout. The time for a specific implementation depends on its scope - we quote it individually.
- What the time depends on: whether the store has item sets (an additional price-calculating task), how much the message and its placement need to be adapted to the template, whether a separate presentation of the old price is also needed.
- The message shows the lowest price from 30 days since the last price change, not strictly the last 30 calendar days - if the price hasn't changed for longer, there may be no newer entry in the history.
- The first time a changed price is shown, the message still shows the previous value - the correct value only shows after the next page load.
- For item sets, recording price history requires an additional task - it doesn't work automatically just by enabling the module.
- The module isn't meant for B2B stores where prices aren't public to an anonymous customer - it's usually disabled there.
- We do not verify the task for legal compliance (e.g. the Omnibus directive, GDPR, store terms of service) - this page only describes how the mechanism works; legal compliance is for the store to decide, ideally after legal consultation.
Does Hummerce automatically show the lowest price from the last 30 days?
Yes. Since version 2.30, the price history module records prices and calculates the lowest one from the 30 days since the last change; showing the message on the storefront requires implementation in the store template.
Is this feature compliant with the Omnibus directive?
We don't verify this for legal compliance - we describe how the mechanism works, and compliance with the law is for the store to decide, ideally after legal consultation.
Can the lowest price be shown without implementing the price history module?
Yes, through the stopgap solution - a property with the lowest price filled in manually or by import, and a matching message in the template.
Are the "old price" and the "lowest price in 30 days" the same feature?
No. They're two independent mechanisms - the old price is an earlier, usually struck-through price of the item, while the lowest price in 30 days comes from the automatically recorded price history.
Does the price history module work in B2B stores?
It's usually disabled there, since it concerns the price seen by an anonymous customer, and B2B stores only show prices after login.
How long does implementing the lowest-price message take?
From 4 h when embedding it in the standard price display location - more for item sets or a non-standard product page layout.
Want to check how the lowest price in 30 days could work in your store? Contact the Hummerce team (in Polish).
- The item card, Prices tab - the history of recorded prices (a single entry's visibility can be turned off, it can't be deleted); the old price field (e.g. "old price", "list price").
- Products (default properties) - enabling or disabling the price history module for the store.
| Key |
Description |
msg.item.lowestPrice |
the text of the lowest-price-in-30-days message |
msg.item.lowestPrice.currentLowest |
the message shown when the current price is the lowest one (no earlier entry in the history) |
| Symbol |
Description |
_lowestPrice |
the price property used in the stopgap solution, without the price history module |