Retail:API changes
Openbravo Retail Distribution - API changes
This document explains all changes happened in the public API of the modules contained in the retail release. These changes are a potential risk of module breakage so all of them have been reviewed and explicitly approved. Every time a new change happen it will be included in this list.
![]() | Since 22Q3 API changes are tracked centrally here and no longer split by ERP / Retail |
RR22Q2
ID | Module | Type | Description | Risk | Comments |
RR22Q2.1 | Mobile Core | removed store server code from login flow | Removed:
| Low | See 48363 |
RR22Q1
ID | Module | Type | Description | Risk | Comments | |
RR22Q1.1 | POS Terminal | API change: DB model changes | The following DB columns are no longer mandatory:
| Low | See 47735
| |
RR22Q1.2 | Mobile Core and POS Terminal | Remove unused elements related to obsolete storeserver | The following preference has been removed
The following java methos has been removed
| Low | See 48190 | |
RR22Q1.3 | Mobile Core and POS Terminal | Remove synchronized-mode related code | Several Java and Javascript related functions and methods related to the synchronized mode have been removed. The synchronized mode itself didn't work since 20Q4, but many artifacts that remained in the code have now been cleaned up. | Low | See 48139 | |
RR22Q1.4 | Mobile Core and POS Terminal | Remove unused elements related to obsolete storeserver | Many classes and AD records related to store server have been removed. Essentially all store server-related infrastructure has been deleted from mobile.core module. | Low | See 48227 | |
RR22Q1.5 | Mobile Core | New field in Organization window must be empty or a positive number | A new field has been added to the Organization window, it includes a constraint to ensure its value is null or a positive number. The value of this field is null by default, so all the current organization entries will comply with the constraint | Low | See 48325 |
RR21Q4
No Changes
RR21Q3
No Changes
RR21Q2
ID | Module | Type | Description | Risk | Comments |
RR21Q2.1 | POS Terminal | API change: unsupported print related APIs | Register templates programmatically using OB.OBPOSPointOfSale.Print.ReceiptTemplate is no longer supported.
OB.OBPOSPointOfSale.OfflinePrinter is no longer used by the print engine. | Medium | See 45821 |
RR21Q1
No Changes
RR20Q4
No Changes
RR20Q3
ID | Module | Type | Description | Risk | Comments |
RR20Q3.1 | POS Terminal | Brand has been removed | The brand functionality has been removed, and has been reimplemented as a generic product characteristic. A modulescript has been provided as part of the update. This modulescript generates a normal product characteristic, and reassociates all relevant products properly. The functionality itself, including the ability to filter by brand in the WebPOS, continues to work as usual, but the corresponding tables and entities have been removed, so code directly reading them will need to be changed. | Medium | See 43655 |
RR20Q3.2 | POS Terminal | Search filter configuration | The search filter configuration has been removed, because it didn't apply anymore after the changes due to the way filtering takes place with IndexedDB | Low | See 43656 |
RR20Q3.3 | POS Terminal | Old discounts engine has been removed | As already announced, the old discounts engine has been removed. In 19Q4 and onwards, it was already replaced by the new discounts engine by default, and only available if a specific preference was set. Now it has been completely removed as part of the changes to support IndexedDB. All standard rules were already reimplemented and should work in a reasonably equivalent way as before, but custom rules will need to be reimplemented so that they work correctly in the new engine. | Medium | See 43658 |
RR20Q3.4 | POS Terminal | ReturnReason class has been repackaged | The ReturnReason model has been refactored into a terminal property, as the number of records is always quite small. As part of this change, the corresponding ReturnReason class has been changed to extend a different superclass. | Low | See 43658 |
RR20Q3.5 | POS Terminal | API Change related to Document Sequence refactor | Replaced following methods by improved POSUtils.getLastTerminalDocumentSequence method: POSUtils.getLastDocumentNumberForPOS, POSUtils.getLastDocumentNumberQuotationForPOS and POSUtils.getLastDocumentNumberReturnForPOS.
Remove useOrderDocumentNoForRelatedDocs and docNoHandlers parameters from InvoiceUtils.createNewInvoice method. Remove useOrderDocumentNoForRelatedDocs parameter from ShipmentUtils.createNewShipment method. Removed following preferences: "Web POS restrict invoice if no tax ID" and "Use Order Document Number for Related Docs". | Low | See 44046
|
RR20Q3.6 | POS Terminal | API change: Restored constraint in Touchpoint Type | Restored constraint in Payment Methods in Touchpoint Type for payment groups.
The constraint that relates the fields payment group and payment method type has to be restored to enforce proper configuration. | Low | See 44070 |
RR20Q2
ID | Module | Type | Description | Risk | Comments |
RR20Q2.1 | Mobile Core | Merge LogClient with TerminalLog | The technical log part is now included in the main TerminalLog infrastructure. As a result, several preferences have been removed, and the LogClientLoader class has also been removed because now the information goes through the TerminalLogLoader class | Low | See 43289 |
RR20Q1
ID | Module | Type | Description | Risk | Comments |
RR20Q1.1 | POS Terminal | Remove Sort Customer Fields functionality | Remove Sort Customer Fields functionality - It is recommended to order the fields by css style. | Low | See 42083 |
RR19Q4
No Changes
RR19Q3
ID | Module | Type | Description | Risk | Comments |
RR19Q3.1 | POS Terminal | API Change related to removal of product properties in the Order JSON | In POS, When saving the receipt, product model property with "saveToReceipt" as true will be saved in Order JSON. | Low | See 40677 |
RR19Q3.2 | POS Terminal | API Change: replace OBPOS_ShowBusinessPartnerBirthInfo preference by C360 preferences | Birthdate and birthplace are managed currently in webpos by OBPOS_ShowBusinessPartnerBirthInfo.
In order to show only birthdate as a new field from Customer 360 view two new preferences, one for each field, are going to be created to replace existing one to allow to either show only one field, the other or both. | Low | See 40953 |
RR19Q3.3 | POS Terminal | API Change to remove an unused dataset | As part of UI Configuration project an unneded dataset was detected and removed | Low | See 41082 |
RR19Q3.4 | Mobile Core | API Change: Remove unused method | Removed unused executeRequest method in MobileServerRequestExecutor | Low | See 41177 |
RR19Q2.3
No Changes
RR19Q2.2
No Changes
RR19Q2.1
No Changes
RR19Q2
ID | Module | Type | Description | Risk | Comments |
RR19Q2.1 | POS Terminal | API Change related to Assignation of document types refactor | As part of Assignation of document types refactor document types columns are moved from “Channel - Touchpoint Type” window to “Organization” window.
Document type column in “Channel - Touchpoint Type / Payment method” is removed. | Low | See 40083 |
RR19Q2.2 | Mobile core | API Change related to removal of internal technical field of Mobile Server window | As part of a simplication effort a column (OFFLINE_INCOMING_ERRORS) was removed from the OBMOBC_SERVER_DEFINITION table. This column was used to track that incoming errors exist when going offline. Better analysis of the use cases showed that this column was not needed. | Low | See 40287 |
RR19Q2.3 | Retail Config | Java API changes for PLM Status | The Product Life-cycle Management Status functionality has changed in some functional dependencies. Two event handlers are not needed anymore. | Low | See 40356 |
RR19Q2.4 | Retail Config | Database API changes for PLM Status | The Product Life-cycle Management Status functionality has changed in some functional dependencies. Some callouts and other records that are not needed must be removed. | Low | See 40357 |
RR19Q1
ID | Module | Type | Description | Risk | Comments | |
RR19Q1.1 | POS Terminal | OrderLoader has been changed significantly | The OrderLoader has been changed significantly, as part of the functional improvements to support Prepayments and Invoice Terms. However, all developer hooks work exactly in the same way, and the API for them has been preserved, except for the single case of the CancelLayawayPaymentsHook, which has been removed as the Cancel Layaway functionality has been refactored to work with OrderLoader also. | Medium | See 39696
| |
RR19Q1.2 | POS Terminal | Javascript changes related to prepayments and invoice terms | The receipt property "paidOnCredit" has been changed to "payOnCredit", when working in a new ticket. When a ticket is loaded from backend, "paidOnCredit" has been preserved. Property "paidInNegativeStatusAmt" has been removed, as its been super-seeded by the new API to compute the payment status. | Low | See 39697 | |
RR19Q1.3 | POS Terminal | Column "EM_OBPOS_LAYAWAY_PARTPAID" in ad_org has been removed | It's no longer possible to void a layaway which contains payments, so this column, which allowed to specify if this was allowed, is no longer relevant. Layaways which contain payments should be cancelled instead. | Low | See 39698 | |
RR19Q1.4 | POS Terminal | The size of column "LOGLEVEL" in logclient table has been changed | This column has been transformed into a reflist, and therefore its size has been changed. | Low | See 39700 | |
RR19Q1.5 | POS Terminal | Old receipt selector component has been removed | With the last Pay Open Ticket refactor, the last component which used the old receipt selector component has been modified. The old selector component was already deprecated, because it did not work well with high volumes of data, and in this release has now been removed. Both the UI component, and the PaidReceiptsHeader class have been removed, and can no longer be used or extended. | Medium | See 39741 | |
RR19Q1.6 | POS Terminal | ProductStock does not longer extends Product, now extends just ProcessHQLQuery. | This change is done in order to reuse Product functions createRegularProductHql() and createRegularProductValues() by different master data classes for Products without needed to extend the Product class. The behaviour and methods of the class remains the same and it is not expected any class from other module to extend or use 'ProductStock' in order to invoke Product methods. | Low | See 39948 |
RR18Q4.3
No Changes
RR18Q4.2
No Changes
RR18Q4.1
No Changes
RR18Q4
ID | Module | Type | Description | Risk | Comments |
RR18Q4.1 | POS Terminal | Refactor verified returns selector | Removed old selector, and created new one.
In the code many methods and variables called "paidReceipts", renamed to "verifiedReturns". | Medium | See 39117 |
RR18Q4.2 | POS Terminal | PaidReceiptsHeader deprecated | After the verified receipts selector refactor, only pay open tickets selector is using this class.
New selectors open receipts, business partner and verified returns uses the new class PaidReceiptsFilter. The class will be removed in a future release. | Low | See 39118
|
RR18Q4.3 | POS Terminal | CheckApproval class has been transformed into a servlet | CheckApproval class has been transformed into a servlet, so that it can also be called from the login screen. | Low | See 38776
|
RR18Q4.4 | POS Terminal | Duplicated preference "Web POS action create and edit customers" is causing confusion and needs to be removed | This preference was added later and collides with some other preferences like "Web POS action edit customer" which already existed, so it has been removed. | Low | See 39241 |
RR18Q3.5
No Changes
RR18Q3.4
No Changes
RR18Q3.3
No Changes
RR18Q3.2
No Changes
RR18Q3.1
No Changes
PR18Q4.2
No Changes
PR18Q4.1
No Changes
RR18Q4
ID | Module | Type | Description | Risk | Comments |
RR18Q4.1 | POS Terminal | Refactor verified returns selector | Removed old selector, and created new one.
In the code many methods and variables called "paidReceipts", renamed to "verifiedReturns". | Medium | See 39117 |
RR18Q4.2 | POS Terminal | PaidReceiptsHeader deprecated | After the verified receipts selector refactor, only pay open tickets selector is using this class.
New selectors open receipts, business partner and verified returns uses the new class PaidReceiptsFilter. The class will be removed in a future release. | Low | See 39118
|
RR18Q4.3 | POS Terminal | CheckApproval class has been transformed into a servlet | CheckApproval class has been transformed into a servlet, so that it can also be called from the login screen. | Low | See 38776
|
RR18Q4.4 | POS Terminal | Duplicated preference "Web POS action create and edit customers" is causing confusion and needs to be removed | This preference was added later and collides with some other preferences like "Web POS action edit customer" which already existed, so it has been removed. | Low | See 39241 |
PR18Q3.5
No Changes
PR18Q3.4
No Changes
PR18Q3.3
No Changes
PR18Q3.2
No Changes
PR18Q3.1
No Changes
RR18Q3
ID | Module | Type | Description | Risk | Comments |
RR18Q3.1 | Retail Config & POS Terminal | Delete of obsolete URL mappings for callouts | Since 17Q1 no url-mappings in web.xml are generated for any callout. This change removes the obsolete rows from table ad_model_object_mapping | None | See 38369 |
RR18Q2.2
No Changes
RR18Q2.1
No Changes
RR18Q2
ID | Module | Type | Description | Risk | Comments |
RR18Q2.1 | POS Terminal | Removed jQuery library | The WebPOS already has the Zepto library, which covers all relevant functionality. jQuery was unnecessary, so it has been removed as part of some efforts to optimize the login speed. | Medium | |
RR18Q2.2 | POS Terminal | A new check constraint needs to be added to obpos_userterminal_access | Before it was possible to add give access to a terminal multiple times for a given user. With this check constraint, it's no longer possible to do it. | Low | See 38088 |
RR18Q2.3 | Mobile Core Multi Server | Several methods of MultiServerJSONProcess have been removed as they are not being used anymore | These are the following methods of the class org.openbravo.mobile.core.servercontroller.MultiServerJSONProcess: afterReturnFromCentral, executeFromWebPOSInCentral and executeFromWebPOSInStore | Low | See 38123 |
RR18Q2.4 | Mobile Core Multi Server | Removed class used for synchronized cashup | Class is not needed anymore as from now on standard retail cashup classes are used. Removed class: org.openbravo.retail.posterminal.master.CashupSynchronized | Low | See 38123 |
RR18Q2.5 | POS Terminal | New parameter to createLinesForServiceProduct | Added new parameter and set to private createLinesForServiceProduct funtion in OrderLoader process | Low | See 38156 |
RR18Q2.6 | POS Terminal | Remove many png's files | Replaced png's files with svg's files that has less size and scales better | Low | See 38417 |
RR18Q1.3
No Changes
RR18Q1.2
No Changes
PR18Q1.1
No Changes
RR18Q1
ID | Module | Type | Description | Risk | Comments |
RR18Q1.1 | POS Terminal | Change delete line API | Old API to delete lines (order.deleteLine() and order.deleteLines()) has been deprecated. It should no longer be used, and will cause problems if called on a ticket which contains services or complementary products. The new API order.deleteLinesFromOrder() must be used from now on. | Medium | See 35741 |
RR18Q1.2 | POS Terminal | Logclient now stores its data in a CLOB/TEXT column | Previously the data in logclient was stored in a Varchar column, and therefore it had to be truncated. Now it is stored in a CLOB/TEXT column, which means that it is not truncated anymore, but the data type has changed and therefore the generated DAL method receives and generates a different type of parameter. | Low | See 37468 |
RR17Q4
ID | Module | Type | Description | Risk | Comments |
RR17Q4.1 | POS Terminal | Change in c_bpartner table | All columns with address information have been removed. We already have that information in c_bpartner_location table. Removed columns: 'locId', 'locName', 'postalCode', 'cityName', 'regionId', 'countryId', 'countryName', 'shipLocId', 'shipLocName', 'shipPostalCode', 'shipCityName', 'shipRegionId', 'shipCountryId'. | Medium | See 36515 |
RR17Q4.2 | POS Terminal | Change in OrderLoader process | Some methods have been changed from protected to private. The OrderLoader itself could not be extended after the change done in 15Q3 and the addition of the ImportEntry functionality, so the change is done mainly to prevent future misunderstanding. | Low | See 36614 |
RR17Q3.1
No Changes.
RR17Q3
No Changes.
RR17Q2.4
No Changes.
RR17Q2.3
No Changes.
RR17Q2.2
No Changes.
RR17Q2.1
No Changes.
RR17Q2
ID | Module | Type | Description | Risk | Comments |
RR17Q2.1 | POS Terminal | Change in OBPOS_PAYMENTMETHODCASHUP table | Field STARTINGCASH default value 0 | Low | See 35472 |
RR17Q2.2 | Mobile Core | Removed class WritableOrganizations | The process implemented in WritableOrganizations is no longer used by any retail module | Low | See 35630 |
RR17Q2.3 | Retail Discounts | Change in column EM_OBDISC_IDENTIFIER of the C_Orderline_offer table | Column EM_OBDISC_IDENTIFIER length has been increased from 50 to 100 | Low | See 35342 |
RR17Q2.3 | Mobile Core | additionalCheckForDuplicates has been removed | In previous versions of the Web POS, there was a mechanism called additionalCheckForDuplicates. This mechanism became obsolete with the arrival of the Import Entry functionality, and therefore has been ermoved. | Low | See 35293 |
RR17Q1.3
No Changes.
RR17Q1.2
No Changes.
RR17Q1.1
No Changes.
RR17Q1
No Changes.
RR16Q4.2
No Changes.
RR16Q4.1
No Changes.
RR16Q4
ID | Module | Type | Description | Risk | Comments |
RR16Q4.1 | POS Terminal | Change in orderLoader to avoid unneeded query | createShipmentLines method now receives the locator list | Low | See 33732 |
RR16Q3.3
No Changes.
RR16Q3.2
No Changes.
RR16Q3.1
ID | Module | Type | Description | Risk | Comments |
RR16Q3.1.1 | POS Terminal | Change in orderLoader to avoid unneeded query | createShipmentLines method now receives the locator list | Low | See 33732 |
RR16Q3
No Changes.
RR16Q2.4
No Changes
RR16Q2.3
No Changes
RR16Q2.2
No Changes
RR16Q2.1
ID | Module | Type | Description | Risk | Comments |
RR16Q2.1.1 | POS Terminal | Change in orderLoader to avoid unneeded query | createShipmentLines method now receives the locator list | Low | See 33732 |
RR16Q2
No Changes
RR16Q1.3
No Changes.
RR16Q1.2
No Changes.
RR16Q1.1
No Changes.
RR16Q1
ID | Module | Type | Description | Risk | Comments |
RR16Q1.1 | Mobile Core | Add the ability to add parameters to getHqlProperties function | Add the ability to add parameters to getHqlProperties function | Low | See 31572 |
RR16Q1.2 | POS Terminal | Change POSImportEntryProcessor to use Business Event Handler concept | POSImportEntryProcessor now extends EntityPersistenceEventObserver instead of ImportEntryPreProcessor class | Low | See 31650 |
RR15Q4.5
No Changes.
RR15Q4.4
No Changes.
RR15Q4.3
No Changes.
RR15Q4.2
No Changes.
RR15Q4.1
No Changes.
RR15Q4
No Changes.
RR15Q3.4
No Changes.
RR15Q3.3
No Changes.
RR15Q3.2
No Changes.
RR15Q3.1
No Changes.
RR15Q3
ID | Module | Type | Description | Risk | Comments |
RR15Q3.1 | Discounts | Loader classes are not extensible | As the data synchronization process of the Web POS changed significantly in this release, the ability to extend Loader classes (such as the OrderLoader) doesn't work anymore. This means that even if there is a child of any Loader class, and this class is registered in the client side, it won't be used in the backend to import the data. More information about this change can be found here.
It's important to remark that this way of adding new functionality to the Loading process was never intended, it was always dangerous (as overwriting our methods had the risk of losing bug fixes and new functionality if done improperly) and never worked completely (for example, it never worked if records ended up in the 'Errors while importing POS data' window and users tried to "Save again" the record). This functionality has been replaced by the already existing hooks, so all developers are encouraged to use them to add new functionality to the Loader classes. | Low | See this page for more information about the data synchronization changes. |
RR15Q2.5
No Changes.
RR15Q2.4
No Changes.
RR15Q2.3
No Changes.
RR15Q2.2
No Changes.
RR15Q2.1
No Changes.
RR15Q2
ID | Module | Type | Description | Risk | Comments |
RR15Q2.1 | Discounts | AD Element has been removed | The AD Element 'Discount percentage to apply' has been removed because it is not used in this module. It has been moved to the module 'discounts by total' | Low | See 29834 |
RR15Q2.2 | POS Terminal | Two mandatory fields now accept null values | Now the fields Financial Account of POS Terminal Window / Payment Type Tab and Cash Differences from POS Terminal Type Window / Payment Method Tab allow null values. See the issue for more information. | Low | See 27722 |
RR15Q1.4
No Changes.
RR15Q1.3
No Changes.
RR15Q1.2
No Changes.
RR15Q1.1
No Changes.
RR15Q1
No Changes.
RR14Q4
ID | Module | Type | Description | Risk | Comments |
RR14Q4.1 | Mobile Core | Changed URL to retrieve (static) content before login | The recommended URl for retrieving content generated by components before logging in has changed. See the issue for more information. | Low | See 27248 |
RR14Q4.2 | Mobile Core | New method to access the HookManager in client side javascript | The HookManager is now accessible through this javascript: OB.UTIL.HookManager. The old method through the OB.MobileApp.model.hookManager is deprecated. See the issue for more information. | Low | See 27349 |
RR14Q2.4
ID | Module | Type | Description | Risk | Comments |
RR14Q2.4.1 | Mobile Core | Changed URL to retrieve (static) content before login | The recommended URl for retrieving content generated by components before logging in has changed. See the issue for more information. | Low | See 27248 |