Skip to main content
On this page we continuously document all changes to the WEBSALE software, including new features in the shop and in the admin interface as well as improvements and bug fixes. Entries are ordered by release version, with the newest version at the top.
Breaking changes — that is, changes that may require adjustments to existing shops or templates — are clearly marked with a warning in each release. If a release does not contain such a note, no adjustments are usually necessary.
Released: 07.09.2026
Bug fixes
  • PayPal: pending payment capture is no longer rejected. A payment capture with status “Pending” was rejected even though the amount had already been captured. Such payments are now processed correctly. The rejection of unfinished payments introduced in release-1.94 therefore only applies to payments that were actually not captured.
  • PayPal: redirect on rejected or failed payment. If PayPal rejects a payment or an error occurs during the payment process, the customer is now redirected to the correct page.
  • Order check: ongoing order processes are no longer aborted. The automatic order check ended order processes that were still running. This no longer happens.
  • Direct order: error message only appears in the error case. During direct order, an error message was displayed permanently and duplicated. It now only appears once, and only when an error actually occurs.
  • Vouchers: database error fixed. A faulty database query in voucher processing caused an error.
  • Vouchers: no voucher link in cancelled orders. The order data of a cancelled order still contained the download link of the purchased voucher.
  • Password reset: automatic login is ended. When resetting the password via the email link, the “stay signed in” tokens remained in place. An existing automatic login therefore survived the reset. The tokens are now deleted.
  • Country check: deactivated countries are taken into account. The country check also accepted countries that are deactivated in the shop.
  • Watch lists: default watch list can no longer be deleted. The default watch list could be deleted even though the shop requires it.
  • Product ratings: checkRatingExistence() returns correct values. The check $wsProductRating.checkRatingExistence() always returned true, regardless of whether a rating existed.
  • Product ratings: edit form is no longer empty. If allowRatingAfterEachOrder is set to false, an empty edit form was displayed.
  • Product ratings: ratings by sub-accounts. For sub-accounts, the member existence check and the unique database index contradicted each other. This caused errors when submitting a rating.
  • Storefront API: ratings of a customer account are delivered. Instead of the ratings of a customer account, the Storefront API returned null.
  • Storefront API: address type flags are delivered. With loadAddress() and with the default addresses, the address type flags were missing; the Storefront API returned null.
  • REST API: correct list for queries without subshop ID. If the parameter with the subshop ID was missing, the REST API returned the wrong list.
  • Customer data import: empty fields no longer overwrite data. The import of customer data in the admin interface no longer overwrites existing values with empty fields.
  • Logmanager: notifications cover the current period. The period of a notification was calculated from the last send date plus the interval. As a result, the emails always referred to time windows further in the past and never caught up with the current state.
  • Statistics: aggregator no longer aborts silently. Under certain circumstances, the statistics aggregator aborted without an error message.
  • Additional minor bug fixes in the admin interface.
Released: 21.08.2026
New in the shop
  • Dynamic CMS page template for static shop pages. Static shop pages can now be output via a dynamic CMS page template. This means a dedicated template no longer has to be created for new content pages.
  • Computop: pending payments page. There is now a dedicated pending payments page for Computop payments. This gives customers a clear interim status for Computop as well, as long as a payment has not yet been completed.
  • Storefront API: text search. The Storefront API now offers a text search.
  • Storefront API: redirect for deleted products. If a customer requests a deleted product, the Storefront API now returns a redirect.
New in the admin interface
  • Validations: configuration via IDs and node names. Validations can now be configured via IDs as well as via node names.
Bug fixes
  • Product list: paging works correctly again.
  • Shipping methods: validation of the delivery method corrected. The check of the selected delivery method works correctly again.
  • Stripe: pending payments page is displayed correctly.
  • Stripe: payment status is determined correctly.
  • Bancontact: redirect to the pending payments page corrected. Bancontact payments incorrectly led to the PayPal pending payments page.
  • File exporter (Reporter): no preset filter anymore. When creating an export, no filter is preselected anymore.
  • Customer data import: error fixed. An error in the import of customer data was fixed.
  • Watch list: error fixed. An error in the product watch list was fixed.
  • Task management: orphaned entries are cleaned up. Entries in the internal task list that are no longer assigned no longer remain behind.
  • Currencies: currency symbol no longer has to be unique. Multiple currencies may now use the same symbol.
Released: 11.08.2026
Breaking change: Manual migration and template adjustments required. This release requires a manual migration as well as minor adjustments to the templates. Plan the update accordingly and coordinate it before rolling it out to a productive shop.
New in the admin interface
  • Multiselect search for extensive filter lists. If a filter contains many entries, the matching selection can now be narrowed down via a search.
  • Log manager: subshop ID is optional. The subshop ID is no longer a mandatory field in the log manager.
Bug fixes
  • Customer data import: passwords are preserved. A manual import of customer data no longer deletes existing passwords.
  • B2B basket: subshop overrides are applied. The B2B basket now correctly takes subshop-specific overrides into account.
  • Inventory configuration: subshop overrides are applied. Subshop-specific overrides of the inventory configuration are now correctly taken into account.
  • Checkout: redirect to the pending payments page. If a customer cancels the payment process, they are now reliably redirected to the pending payments page.
  • Email addresses: case is ignored. Email addresses are now handled in the database regardless of case.
  • Customer data import: no errors on empty phone number. The import of customer data no longer fails when the phone number is empty.
  • REST API: empty arrays in configurations are preserved. When saving configurations via the REST API, empty arrays are no longer stored as null.
  • Storefront API: checkout/commitDraftAddress.htm works correctly again.
  • Storefront API: watchList/checkHasProduct.htm works correctly again.
  • Admin interface: error message for a blocked customer account. The message for a blocked customer account is now displayed correctly at login.
Released: 05.08.2026
New in the shop
  • PayPal Checkout Vault: saved payment data for a faster checkout. Customers can now securely store their PayPal payment data and reuse it on a later order. This speeds up the payment process for returning customers.
  • Text snippets: subshop-specific exceptions within a language. Within a language, individual text snippets can now be defined differently per subshop. This lets a subshop use a different text without duplicating the entire language.
  • Text snippets: import and export. Text snippets can now be imported and exported, for example to edit them externally or transfer them between shops.
  • Voucher errors: multiple reasons at the same time. If a voucher does not reach the minimum order value and, at the same time, there are no matching products in the basket, both error reasons are now displayed at the same time. The feature builds on the output of voucher errors introduced in release-1.93.
New in the admin interface
  • Customer overview: last modification date. The customer overview now shows the date of the last modification for each customer.
Bug fixes
  • PayPal: payments that are not completed are rejected. Payments that could not be successfully captured are now rejected instead of remaining in an unclear state.
  • REST API: set products with invalid IDs are rejected. If a set product contains invalid product IDs, it is now rejected via the REST API instead of being created incorrectly.
  • Product search: memory error during indexing fixed. The search indexer no longer runs into an out-of-memory error on large data volumes.
  • Product import/export: variant fields are no longer cleared. During CSV import or export, variant fields could sometimes be overwritten with empty values. That no longer happens.
  • Migrator: clean cleanup on abort. If the migrator aborts with an error, it now correctly cleans up the changes it has already started.
Released: 30.07.2026
Breaking change: The AccountType is no longer taken from the template. The shop now derives the customer type itself from the state of the session. The AccountType selection in the template is kept for compatibility reasons and for the template state machine, but no longer has any effect on the shop. Templates that controlled the checkout flow via this selection should be reviewed.
New in the shop
  • Vouchers: revised interface and meaningful error messages. The display and handling of vouchers in the checkout flow has been revised. In addition, the type of voucher error can now be output, for example when a voucher does not reach the minimum order value or there are no matching products in the basket. You maintain the error texts in the new configuration node checkout.voucherErrors; in the template, the error list is available at $wsCheckout.ineffectiveVoucherErrors.
  • Query payment status in the shop. The new refreshPaymentStatus action determines the current payment status of the running order and returns it. This can be used, for example, on the pending payments page to check whether a payment has since been completed.
New in the admin interface
  • Manual log search: filtering by program. In the manual log search, results can now additionally be restricted by program.
  • Time-based prices: customisable promotion text. For each time-controlled price, a dedicated promotion text can now be maintained, which is output in the shop alongside the promotional price.
Bug fixes
  • Shipping methods: AccountType is derived from the session. The shop no longer depends on the AccountType selected in the template, but derives the customer type from the state of the session:
    • Not logged in: guest order
    • Newly registered: new customer
    • Logged into an existing session: existing customer. This fixes a whole range of bugs where shipping methods were not displayed.
  • Order confirmation page: basket is reliably emptied. A race condition could cause the basket on the order confirmation page to still contain items. The basket is now reliably empty.
  • Product data fields: long lists no longer break the design. Very long lists in the product data fields broke the display. The layout now remains stable.
Released: 16.07.2026
New in the shop
  • Advertising media identifier (inserts): capture the order source via catalog codes. Catalog codes can now be used to capture and pass on which advertising medium (insert) triggered an order. This allows the origin of an order to be evaluated.
New in the admin interface
  • Elasticsearch: configurable log index. The target index or data stream from which the shop logs are read can now be defined via the new option logsIndex under elasticSearch in shop.json, for example to use the Elasticsearch default data streams (logs-*-*, from Elasticsearch 8 onwards). Without configuration, the previous logs index remains active.
    shop.json
Bug fixes
  • Watch lists: content is preserved. The content of watch lists no longer disappears after some time.
  • Saved baskets: no empty entries for guests. No empty entries for saved baskets are created for guest users anymore.
  • Admin interface: no logout on missing permissions. If a user is missing permissions, they are no longer logged out of the admin interface.
  • Admin interface: no preselection of all custom product fields. When opening, not all custom product fields are automatically selected anymore.
  • Data subshops: referencing fixed. The referencing of data subshops works correctly again.
  • Configuration service: empty lists remain lists. An empty list is no longer wrongly converted to null in the configuration service.
Released: 06.07.2026
Bug fixes
  • PayPal pay upon invoice: customer no longer gets stuck on the “pending” page. If the PayPal notification (webhook) arrives before the customer returns to the shop, the order is now completed correctly. The customer no longer remains stuck on the pending payments page.
  • Additional bug fixes from shop tests. Various minor bugs found during shop tests have been fixed.
Released: 02.07.2026
New in the admin interface
  • Statistics: automated currency conversion. The statistics service now automatically converts revenues in foreign currencies. Reports across shops with multiple currencies therefore deliver consistent, comparable values.
Bug fixes
  • Feed Builder: memory issue fixed. A memory leak in the Feed Builder has been eliminated that could lead to increased memory consumption during long-running feed generations.
  • PayPal: “pending payment” page with SEO URLs. The pending payments page for PayPal pay upon invoice now also works correctly in shops with SEO URLs enabled.
  • PayPal Express Checkout: no more duplicate addresses. The PayPal Express Checkout no longer creates a duplicated address in the customer account during the payment process.
Released: 23.06.2026
New in the shop
  • Payment methods: placement-dependent display of icons and description texts. Icons and description texts of payment methods can now be displayed differently depending on the placement (for example checkout flow, footer).
  • Checkout flow: automatic preselection of the shipping method on address change. When a customer changes their delivery address during checkout, the matching shipping method is preselected automatically.
  • Checkout flow: automatic preselection of the payment method on address change. When a customer changes their address during checkout, the matching payment method is preselected automatically.
New in the admin interface
  • REST API: loading product IDs without product data. The REST API can now, on request, deliver product IDs only.
  • Variants: configurable display order of variant values. The order in which variant values are displayed within a variant group is now configurable.
  • Order data: download link for vouchers. For orders with purchased vouchers, the download link of the voucher is now displayed directly in the order data.
Bug fixes
  • Product creation: inventory entry is created correctly. When creating new products, the associated inventory entry is now reliably created.
Released: 16.06.2026
New in the admin interface
  • Manage stores and outlets graphically. Stores and outlets can now be created and managed directly in the admin interface via a graphical UI.
  • Log manager: notification status and direct control of log groups. In the log manager overview, the notification status of each log group is now visible; log groups can be controlled directly from the overview.
  • Log manager: time range filtering down to hours and minutes. The time range filter in the admin interface can now be set not only to the day, but down to hours and minutes.
  • Log manager: time preselected in the manual log search. In the manual log search, the time is now preselected by default, saving an input step on every search.
  • Log manager: resend error notification. If a notification email could not be delivered on an error, it can now be resent.
Bug fixes
  • Payment methods: switch to an offline payment method after a failed online payment. If an online payment method fails, the customer can now reliably complete the order with an offline payment method.
  • Product import: id on update no longer wrongly flagged as invalid. When updating products via the product import, the id field is no longer wrongly reported as an error.
  • Vouchers: correct calculation of the VAT deduction. Vouchers with VAT deduction no longer produce an incorrect negative or positive VAT deduction.
  • PayPal pay upon invoice with vouchers. An error with PayPal pay upon invoice in combination with vouchers has been fixed.
  • PayPal pay upon invoice: PaymentId in the order data. With PayPal pay upon invoice, the PaymentId is now correctly transferred to the order data.