# September 2025

## Monthly summary / tl;dr <a href="#monthly-summary-tl-dr" id="monthly-summary-tl-dr"></a>

* PayEx Giftcard support – full implementation with authentication, balance check, payment method, product type, and extension.

{% hint style="info" %}
The PayEx Giftcard functionality will be available in the Client during October.
{% endhint %}

* **Real-time delivery options** – customers now see pickup points, time slots, and prices directly from providers during checkout.
* **Printer & label improvements** – support for receipt printers, new printer management APIs, automatic pickup-label printing, and updated label formats.
* **Order flow upgrades** – offers converted to orders now update correctly, order item references enforced in the sales flow, and improved handling of VAT-free orders and credit notes.
* **Omnium integration** – deeper sync with shipment details, automatic order locking during returns, and updated warehouse code handling.
* **New APIs & endpoints** – covering printers, handling triggers, delivery methods, SOA amounts, and more.
* **Campaigns & product management** – fixes for missing product groups, better campaign engine behavior, and margin/margin% visibility in product search.
* **Prepayment & payment handling** – new prepayment filtering, more robust partial payments, and clearer credit references.
* **Localization** – Danish EHF/EAN support, Danish receipt/email templates, Finnish translation fixes.
* **Quality of life** – improved search filters, automatic reservation handling, faster duplicate customer checks, and cleaner receipts & reports.
* **And as always:** a mountain of bugs squashed across sales flows, syncs, reports, translations, and printing.

***

## 2025-09-28

### Added

* New extension: PayEx Giftcard
  * Authentication, balance, and payment core services.
  * New Payex Giftcard payment method.
  * New Payex Giftcard product type.
* `DynamicOptions` field in delivery provider method to provide the users with real-time delivery options — including pickup points, time slots, and prices — directly from an external source.
* <kbd>Omnium</kbd> Sending PickupPoint and delivery process indicator to Omnium Shipment.

#### Changed

* Extended the *Expire Parked Order* daily job to cover more cases (e.g., stale empty orders will now be deleted).
* If no printer is defined in a pickup-label print request, the system will attempt to use the pickup-label printer defined for the store.

## 2025-09-25

## Added

* Pickup label can now be printed on receipt printers as well, in addition to the already existing support for label printers.
* New printer management endpoints:
  * `GET /tenants/{tenantUid}/stores/{storeUid}/printers`
  * `POST /tenants/{tenantUid}/stores/{storeUid}/printers`
  * `GET /tenants/{tenantUid}/stores/{storeUid}/printers/{storePrinterUid}`
  * `PUT /tenants/{tenantUid}/stores/{storeUid}/printers/{storePrinterUid}`
  * `DELETE /tenants/{tenantUid}/stores/{storeUid}/printers/{storePrinterUid}`
* New handling triggers endpoints:
  * `GET /tenants/{tenantUid}/handlings/{handlingUid}/triggers`
  * `POST /tenants/{tenantUid}/handlings/{handlingUid}/triggers`
  * `GET /tenants/{tenantUid}/handlings/{handlingUid}/triggers/{handlingTriggerUid}`
  * `PUT /tenants/{tenantUid}/handlings/{handlingUid}/triggers/{handlingTriggerUid}`
  * `DELETE /tenants/{tenantUid}/handlings/{handlingUid}/triggers/{handlingTriggerUid}`
* Automatic printing of pickup labels when order handling state is set/changed.
* PickupPoint in delivery shipping section.

### Changed

* <kbd>Omnium</kbd> Sales orders are now locked when a return is transferred to Omnium, preventing race conditions in updates.
* Automatically added freight items are now assigned to the same warehouse as the other delivery items.
* Pickup label updated for 100x192 format: now including outlet ID, order type, and expiry date.
* `pickupPlace` renamed to `pickupPoint` in delivery options. Its all in the details.

### Fixed

* Properties are no longer required when updating an order line where the product has orderItemReference requirements.
* Corrected direction for insurance links on credited orders.

## 2025-09-23

### Added

* The API for open items can now return results as JSON (not only Excel).
* Possible to search by multiple voucher numbers when looking up order receipts.
* New “Print to A4” button available in the completed payment view.
* Order item reference functionality:
  * Order item reference dialog in the sales flow when required for a product.

### Changed

* Removed extension for *foreign cash*. Now everyone gets full access to currency handling, both on purchase ordering, and on selling in foreign cash.
* Improved order PDF for prepayments and also the display of paid order lines.
* Credit references now include order line number and ID.
* <kbd>Omnium</kbd> WarehouseCode in Omnium will now be updated whenever it changes in Flow.
* Checkboxes to send welcome SMS and email are now disabled if a tenant has not defined their own templates.
* Removed parentheses from the voucher number in the order search list.
* Reservations dialog will always open after receiving a purchase order containing reservations.

### Fixed

* Orders created from an offer will now update the *created at* date to the moment the offer is converted into an order.
* VAT-free orders now correctly generate VAT-free credit notes.
* The change price dialog in touch mode no longer shows an incorrect error message for factor calculation.
* Adding products to a campaign by product group could previously omit some groups; this is now fixed.
* Search field focus in the tenant selection dialog would sometimes disappear; this has been corrected.

## 2025-09-16

### Added

* EHF/EAN support for Denmark.
* New field `allowPrepayment` on payment methods to filter payment options in prepayment flows.
* New field `price` on deliveries to properly price freight products.

### Improved

* Product addons in the order item API now return `coverImage` in responses, so that one can see the picture of the addon products during a sale.
* Order and delivery states now recalculate automatically when parking or confirming orders – less manual work, more magic.
* Block/hide prepayments when `allowPrepayment` is false.
* <kbd>Campaign engine</kbd> only processes new order items when orders are Confirmed.

### Fixed

* Danish templates are now properly embedded in builds.
* Partial payments no longer crash system restarts. Less drama, more sales.
* Finnish translations corrected for reports – *eipä kestä*.

## 2025-09-11

### Added

* Product search now has a toggle to show margins, both percentage and amount.
* In the product search filter dialog, the product group section now has a search field – no more scrolling marathons.
* Discount dialog in sales now supports adding a reference when the discount reason requires one.
* New warehouse selection filter for *only in stock* products.
  * Z-report and Cash control report added to the Client as well, so till staff can quickly see them, print them, and.. maybe not print them, no?
* New API endpoint: `GET /tenants/{tenantUid}/profrakt-delivery-methods`
  * Listing <kbd>Profrakt</kbd> delivery methods
* New API endpoint: `GET /tenants/{tenantUid}/soas/{soaUid}/amounts`&#x20;
  * Listing SOA[^1] amounts
* Danish texts for receipts and emails – *kamelåså, anyone?*
* Tenant settings for whether to require PIN code for sale and refund
  * `requirePinCodeForSale` and `requirePinCodeForCredit` for all developers out there.
* Preserving cost price for both the time of the sale and the delivery.
  * Cost price is now saved on the order line, and updated to the actual one upon delivery. The original cost price made during the initial sale is saved in a separate original cost price field.

### Improved

* Receipts dialog now only shows completed payments.
* Setting a lower price than the original price on a product in an order is now treated as a discount. Because that's what it is.
* The <kbd>Campaign engine</kbd> now only handles *new* products on Confirmed orders
  * So, if you set an order to Confirmed, all existing products with its set prices will be "frozen" on that order.
* Receiving goods to stock now auto-enables reserved order items for delivery.
* Removed some unused <kbd>Profrakt</kbd> endpoints to declutter the API jungle.
* Optimized duplicate customer checks for increased performance.

### Fixed

* ESC/POS printers now print Danish æøå correctly – no more receipt hieroglyphics.
* Invoice payments and receipt totals for partial settlements now calculate correctly.
* Omnium order syncs now retry reliably – third time’s the charm.
* Cost price calculations with subsidies no longer misbehave.

## 2025-09-03

### Improved

* Returns now always requires a reference reason if reasons are defined.
* Purchase orders can update expected delivery dates without triggering unwanted receivements.

### Fixed

* Reward points convert to order lines correctly again.
* Rounding and cashback settlements now get an order receipt ID.
* Monthly sales and stock report finally runs on schedule.
* <kbd>Dintero</kbd> refunds now marked as refunded if HTTP response is OK.
* Loyalty products delivered at the time of sale and transferred to <kbd>Omnium</kbd> with status “delivered”.

[^1]: Subsidy On Account.
