New in Endora Commerce: a built-in CRM with sales opportunities See it →
Endora Commerce
October 2026 · 5 min read

Endora Commerce 0.108.0: price books and exact money arithmetic

We have released Endora Commerce 0.108.0. It spans 77 packages and 151 changes, and most of them are about one thing: money. Here are the most important changes to know before you upgrade.

Michał Zabielski
Michał Zabielski
Founder and CEO, Endora

Sooner or later, every conversation with a B2B client comes back to prices. One client has a few thousand items with unit prices to four decimal places. Another has spotted that the VAT in the basket is a cent off the VAT on the invoice. Version 0.108.0 deals with exactly these things: we rebuilt price lists and the way the platform calculates every amount.

Below I cover what I think matters most. The full list of changes, broken down by package, is on the 0.108.0 release page on GitHub.

A new price book model

This is the biggest change in the release, and the only one marked as breaking. Price books replace the old price lists built on application rules. A price book defines base, catalogue, buyer and sale prices, separately for each currency, sales channel and audience.

The new model comes with a new price book editor:

  • A spreadsheet-like price grid. You edit prices directly in the table and can paste a large block of data from Excel, and saving many rows at once stays fast.
  • CSV import and export. You can download a whole price book, edit it outside the platform and upload it again.
  • Duplicating a price book. A new book, e.g. for the next season, starts as a copy of an existing one.
  • Price explanation. The admin panel shows why a customer sees a given price: which price book won and which lost. A sales representative only sees the books within their own scope.
  • Sales representative permissions. A sales representative cannot widen a price book’s audience beyond the organisations they look after.
  • Pricing settings in one place, together with the default price display modes.

We also looked after performance. Reading price book lines takes under 150 ms (p95) at 50,000 lines, and a full rebuild of the price index used for sorting by price is about three times faster.

A product feed pinned to a price book publishes that book’s prices only while the book applies to an anonymous buyer on the feed’s channel. If it no longer applies when the feed is generated, the feed withdraws its published file instead of showing outdated prices.

Existing price lists move to the new model during the upgrade. If your integration uses the old price list API, review the breaking changes on the release page: every removed element has its replacement named beside it.

Exact money and VAT arithmetic

The second big change is less visible, but for accounting it may matter even more. Every amount computed from a price is now calculated exactly, in decimal arithmetic rather than on floating-point numbers. In practice:

  • A unit price keeps up to four decimal places, from the price book all the way to the invoice line, e.g. PLN 0.0125 or PLN 1.505. Only line values and totals are rounded to two places.
  • VAT is taken on the sum of the nets at each rate and rounded once, in line with Article 106e(1)(13)–(14) of the Polish VAT Act. The order, the checkout preview, the admin preview and the invoice all use the same method, so the amounts agree across every document.
  • An amount with more than two decimal places is rejected with an error message instead of being silently rounded. This applies to, among others, delivery costs, payment surcharges and refund amounts.
  • Promotions, credit limits and returns are calculated without cent-level errors. Previously 10% of PLN 1.45 came out as PLN 0.14; now it is PLN 0.15.
  • Corrections and returns account for order-level discounts and settle cumulatively. An order refunded in full before it is invoiced is no longer invoiced.

That is a big change under the hood, but the business rules have stayed the same. Only the rounding has changed, and it is now the same everywhere.

Custom fields: filters and carrying values over

Custom fields are becoming more and more useful in day-to-day work:

  • List filters on Orders, Quote Requests and Sales Opportunities. A field marked as a filter appears among the list’s filters, and a filter you set is kept in the page address, so you can send it to a colleague or save it in a view.
  • Carrying values between documents. A value entered on a Quote Request carries over to the Order and to the Sales Opportunity. An Order created from a Sales Opportunity receives its values. The custom-fields screen shows where values carry to and warns you before a definition change would break a carry.
  • Editing existing field definitions directly in the admin panel.

Other changes worth knowing

  • Minimum order quantities and whether a product can be returned, set per product.
  • Line groups in quote requests and in orders created in the admin panel. Groups show on printed documents, and the same product can appear on several lines.
  • Reordering tells you which lines no longer have a price.
  • Placing an order from an approved Quote Request in the admin panel works again. Previously it signed the administrator out.
  • Send feedback in the admin sidebar: you can share comments on the platform without leaving the admin panel.

How do you upgrade?

You upgrade an instance with the Endora Commerce CLI’s upgrade command. The details are in the documentation on upgrading an instance. Descriptions of every change, the comparison with version 0.107.0 and per-package notes are on the release page on GitHub.


Planning a rollout with complex contract pricing, or migrating prices from your current platform? Get in touch and we will gladly help you plan it.

Selected modules explained on YouTube
Open the playlist →

Keep reading

Read the blog →