243.8 - Release Notes - Jumpmind Commerce¶
Announcing¶
Gift With Purchase | Provide the ability to create a Gift With Purchase promotion at POS (Category Award)¶
This new feature of POS supports Gift With Purchase promotions. Based on a Category Award Promotion, POS can now add most any Gift with a Purchase. For instance, Spend $50 and a receive a $10 Gift Card for $5, or Purchase a winter coat and receive a free pair of gloves. Additionally, when using CX Connect, the customer is prompted with details on the Gift With Purchase and can choose if they would like it added, or how many if the promotion allows multiples.
VAT Refund | Enhancements to support Tax Free Shopping Services: POS, Receipts, Refunds and API Integration¶
Planet Tax Free is one of several services that allow applicable customers (permanently residing outside of the country in which the purchase is made) to enjoy ‘Tax Free' shopping by receiving a VAT refund. Typically the VAT refund is issued at stations within major airports as you leave the country. However, in order to facilitate this, the customer must inform the cashier they would like the purchase flagged as Planet Tax free. In return, POS must capture specific customer information to support the refund, such as Passport. The transaction then calls a real-time API to pass the transaction data and customer PII. In response, POS will get a Tag Number and URL that needs to print on the receipt. nullnullWhile this Epic is specifically for implementing our first Tax Free Shopping Service, Planet Tax Free, there are others that we may want to integrate with. This epic has concessions to support multiple VAT Refund Services by use of configurable parameters, such as Global Blue.
Point Of Sale¶
243.8.4¶
New + Improved¶
- Publisher Performance Improvements (JMC-7750)
Fixed¶
- Technical | BarcodeConfig settings from the yaml file are not being honored. (JMC-7617)
243.8.3¶
Fixed¶
- Customer | Disable Customer Display Loyalty Barcode Scan (JMC-7153)
- CX Connect | Add parameter to suppress keyboard popup on customer search (JMC-7730)
- CX Connect | Customer search screen does not allow adding extra buttons (JMC-7710)
- Publisher | Publisher is locking eagerly and not releasing if unable to continue processing queued items. (JMC-7646)
- Tax | Taxes in certain states (AL, PA) calculate incorrectly for non-receipted returns (JMC-7618)
- Technical | Issue instantiating models when generating Deposit Worksheet Report Audit Summary (JMC-7612)
243.8.2¶
Fixed¶
- Legacy Wrapper | Service fails to start due to missing dependency (JMC-7597)
- Technical | SqlPurgeJob takes up a lot of memory when there are a lot of rows to purge (JMC-7362)
Upgrade Considerations¶
- for pk based purging jobs, addednullopenpos.jobs.config.[jobName].batchSize, to control the fetch size and commit size. default is 1000 (JMC-7362)
243.8.1¶
Fixed¶
- Authentication | Password failed requirements prompt no longer appears when you attempt to change your password to an invalid one (JMC-6652)
- Authentication | UserID not printing on Password Failed Requirements prompt correctly (JMC-7269)
- Initial Load | Client starts personalization too soon after initial load completes (JMC-7312)
- Manage | Rare exception when opening till (JMC-6816)
- Personalization | dev_device_personalization table should not include tag columns in its primary key (JMC-7260)
- Promotions | Bounce back promotions are not honoring the max uses setting if only one reward is desired (JMC-7333)
- Promotions | Discount total incorrect on return of item with a price override to a higher price (JMC-7027)
- Publisher | Duplicate transactions are published when there are multiple instances of Publisher running. (JMC-7173)
- Reports | Tills reports are inaccurate after "fast opening" till (JMC-7003)
- Return | Shrug when attempting to activate already active gift card during return tender process (JMC-7144)
- Returns | Returns should not include price override in discount total when isDisplayedAsDiscount=false (JMC-7030)
- Self Checkout | Fix styling on tender screen split while paying with multiple tenders (JMC-7320)
- Tax | Even exchange rounding adjustment needs to handle differences > $0.01 (JMC-6778)
- Technical | Add shutdown hook to mark devices hosted by the server as disconnected (JMC-7370)
- Technical | Changes to dev_device_personalization do not take effect until a server restart. It should not be cached. Also add it to sync down to the fixed registers by default. (JMC-7401)
- Technical | ERROR when looking up an item for the first time (JMC-7289)
- Technical | If a pod is restarted while it is running a cluster locked job, then that job can be locked until it times out. Add listener that cleans up locks on a clean shutdown. (JMC-7365)
Upgrade Considerations¶
- Because the primary key was removed from dev_device_personalization there is the opportunity for the alter to fail if there are duplicate rows. Make sure to clean up any duplicate rows before upgrading. (JMC-7260)
- This PR deprecates openpos.tax.andPennyToExchangeEnabled and adds the following configuration instead:openpos: tax: roundupOnExchange: enabled: true maxAmountToAdjustBy: 0.01This allows for rounding on exchanges to occur up to the configured amount. The default amount in $0.01. (JMC-6778)
Security¶
- (CVE-2025-22235 org.springframework.boot:spring-boot (spring-boot-3.4.4.jar))
- (CVE-2025-27363 found in POS, vertex, symDS, and Clienteling LB 243.6.6 imagesFreeType < 2.13.0)
243.8.0¶
New + Improved¶
- Address | Enhance the collection of address by adding support for Apartment/Suite Number (JMC-6543)
- Customer | Provide the ability to look up or create a customer outside of transaction (JMC-3601)
- Customer | Update the Sell screen and Customer Results to properly respond to long customer names (JMC-6434)
- Employee Discount | Provide the ability to allow different levels of employee discount promotions by employee classification (JMC-6946)
- Item Tax Exemption | Provide the ability to exempt tax from items based on predefined tax rules (JMC-5885)
- Manager Override | Provide the ability to record audit information regarding Manager Override (JMC-6143)
- Manual Coupons | When multiple coupons applied (%/$) they should be applied % first then $ to give customer the best deal. (JMC-5926)
- OperationsDetail Count | Add configuration to allow the forced entry into the detail count screen for close store and open till (JMC-6081)
- OperationsStore Open | Prevent a user from changing the pre-populated 'Next Business Date' when opening a store (JMC-6540)
- OperationsTill Cash Threshold | Add a toast message to POS to alert the cashier that the till requires a cash down (JMC-6573)
- Promotions | Employee Promotions based on list price should be compared against retail price for best deal (JMC-4169)
- Promotions | Provide the ability to quickly select and apply a preconfigured promotion without a scan sheet or barcode (JMC-6541)
- Reason Code | Provide the ability to display the Reason Code for a Manual Discount or Price Override in the Item Card on the Sell screen (JMC-6542)
- Returns | Enhance Return customer flow to show form if linked customer does not have all required info (JMC-6925)
- Technical | Auto truncate values that are longer than their database columns are configured to be and log an ERROR (JMC-6900)
- Transaction Audit | Create an audit process that runs as part of store close that logs errors if the audit fails (JMC-6786)
Fixed¶
- Customer | Clicking Edit on ValidateCustomerAddress screen on Customer-display exits out of customer sign up (JMC-6968)
- Customer | Confirmation dialog for rejecting customer signup terms & conditions was errantly removed during refactor (JMC-6905)
- Customer | Terms and Conditions prompting when Editing Customer (JMC-7037)
- Customer | When looking up remote trx in customer's purchase history, ¯_(ツ)_/¯ when remote service offline (JMC-7000)
- Customer | ¯_(ツ)_/¯ when attempting to parse invalid customer during appt checking (JMC-6813)
- CX Connect | Charity donation screen does not reappear if the cashier goes back to sale and hits pay again (JMC-7164)
- CX Connect | Customer display is returning to the home screen after a partial tender is completed (JMC-6909)
- Gift Card | Unable to hand key an alphanumeric Gift Card number in the gift card prompt (JMC-6855)
- Internationalization | Enhance the About modal title to support i18n (JMC-6885)
- Internationalization | When i18n_resource entries exist in DB for certain locales (en_US, fr_CA), resource found for other locale (es_MX) defaults to en_US entry in DB instead of entry in es_MX .properties file (JMC-6924)
- Mobile UI | Enhancements to the Detail Count in Tender Reconciliation to make MPOS easier to use (JMC-6870)
- Order History | NPE in order history data provider causes following data providers to not execute (JMC-6957)
- Payment DeviceAurus | GetCardData doesn't account for collectTokenOnly parameter and leads to confusion with the displayed tender amount (JMC-7117)
- Printer | The EpsonEposPrinterScanner is enabled on the customer display when a printer is assigned to the device which can be confusing (JMC-6975)
- Product Inquiry | The Search for Nearby Stores Screen needs to give feedback that a search is underway (JMC-6860)
- Promotions | Bounce back promotion not triggering based on AMT_TOTAL as expected (JMC-5720)
- Publisher | Financial control transactions (pay in, etc.) are being published twice (JMC-6959)
- Receipt | Credit details section is printed on the Receipt for PayByLink when the tender is made through PayByLink + Cash (JMC-6992)
- Returns | ParentOrderId parsed as long (JMC-6917)
- Self Checkout | Quantity adjusted in Associate Mode does not display properly in SCO Mode (JMC-6859)
- Shopkeeper | On iPhone sales tab overflow screen (JMC-6216)
- Tax Exempt | Tax Exempt Search allows for searching with empty values (JMC-6886)
- Technical | ICustomerSaleService missing mapping for /customer (JMC-7106)
- Technical | Moving a properties file to make it more easily configurable (JMC-7033)
- Technical | pubeng_subscriber_webhook should support URLs > 128 characters (JMC-6873)
- Training Mode | Training mode causes sequence number to be reset (JMC-7149)
Upgrade Considerations¶
- The openpos.sale.userActionTrans.enabled config was updated to be defaulted to TRUE instead of FALSE. This means that SLS_TRANS and SLS_TRANS_USER_ACTION records will be created on logout. (JMC-3601)
- By default with this solution, promotions that are based off of LIST price and promotions that are based off of RETAIL price can not stack together on the same item. IE all the promotions that get applied to an item need to have the same starting price. The promotion engine will promote the item with either list price promotions or retail price promotions, whichever give the best deal for the item. (JMC-4169)
- The ITransMgmtService.addTenderControlTrans(AddTenderControlTransRequest) API and related TenderMgmtClient.addTenderControl(String, String, String, String) method have been removed. The methods were not being used in base Commerce. (JMC-6959)
- The configuration openpos.returns.splitStoreAndOrderItemsIntoSeparateReceipts and its associated logic has been removed. (JMC-6917)
Retail Core (Shared core by store applications)¶
243.8.4¶
New + Improved¶
- Helm Chart | Add the ability to specify annotations for
Servicetype resources (JMC-7824)
Upgrade Considerations¶
- All components now include a
.service.annotations option allowing arbitrary annotations to be applied. (JMC-7824)
243.8.1¶
Fixed¶
- Backwards Compatibility | Send_Sale was removed from line item type code and replaced with Ship_Sale (JMC-7161)
243.8.0¶
Fixed¶
- Technical | Running Java in the container does not respect classpath ordering (JMC-7040)
Upgrade Considerations¶
- This requires a change to the Helm chart in order to use a wrapper script that is needed to resolve this issue. Additionally, the wrapper is needed within the container so that it may be executed. This wrapper is already included in the commerce-jre:17-bookworm and commerce-jre:17-alpine images, so you must use one of Jumpmind's base JRE images. (JMC-7040)
Clientelling¶
243.8.0¶
Fixed¶
- Customer | ¯_(ツ)_/¯ when attempting to parse invalid customer during appt checking (JMC-6813)