Skip to content

243.6 - Release Notes - Jumpmind Commerce

Announcing

Point Of Sale

243.6.10

Fixed

  • Legacy Wrapper | Service fails to start due to missing dependency (JMC-7597)
  • Publisher | Publisher is locking eagerly and not releasing if unable to continue processing queued items. (JMC-7646)

243.6.9

Fixed

  • Printing | When a list of documents is printed, and all prints error besides the last one, no prompt to retry print (JMC-7462)
  • Reporting | Queries used for Some Custom Sales Reporting Returning Incorrectly Calculated Data (JMC-7599)
  • Technical | [no response] from server is not treated as error or success during personalization, failure to failover occurs (JMC-7533)

Upgrade Considerations

  • This change updates AutoPersonalizationStartupTask.personalizeUsingDeviceNameto fail/throw after 5 attempts to either getPersonalizationParameters or personalize with those parameters, where it previously would continue trying indefinitely. This allows personalizationStartupSequence to move to the next prioritized personalization startup task. This affects both EnterpriseConfigPersonalizationStartupTask and QueryParamsPersonalization as they both use AutoPersonalizationStartupTask.personalizeUsingDeviceName. (JMC-7533)

243.6.8

New + Improved

  • Enhance Commerce's H2 implementation to allow for external connections to be made. Default to off. (JMC-7434)

Fixed

  • Orders | Customer Information dialog tabbing through fields skips Postal Code (JMC-7328)
  • Publisher | Duplicate transactions are published when there are multiple instances of Publisher running. (JMC-7173)

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.6.7

Fixed

  • Initial Load | Client starts personalization too soon after initial load completes (JMC-7312)

243.6.6

Fixed

  • Customer | Disable Customer Display Loyalty Barcode Scan (JMC-7153)
  • Customer | The phone number opt into marketing preferences screen is not displaying if address is first modified then both phone and address are modified. (JMC-7232)

243.6.5

Fixed

  • Customer | Terms and Conditions prompting when Editing Customer (JMC-7037)
  • 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)
  • Printer and Cash Drawer | Failure to claim device causes release to fail, which causes close device to not execute (JMC-7133)
  • Technical | ICustomerSaleService missing mapping for /customer (JMC-7106)
  • Training Mode | Training mode causes sequence number to be reset (JMC-7149)

243.6.4

Fixed

  • Customer | Clicking Edit on ValidateCustomerAddress screen on Customer-display exits out of customer sign up (JMC-6968)
  • Customer | When looking up remote trx in customer's purchase history, ¯_(ツ)_/¯ when remote service offline (JMC-7000)
  • Order History | NPE in order history data provider causes following data providers to not execute (JMC-6957)
  • 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)

Upgrade Considerations

  • 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)

243.6.3

New + Improved

  • Customer | Updates to the Edit Customer Details to confirm changes (JMC-6353)
  • Returns | Enhance Return customer flow to show form if linked customer does not have all required info (JMC-6925)

Fixed

  • Customer | Confirmation dialog for rejecting customer signup terms & conditions was errantly removed during refactor (JMC-6905)
  • Customer | ¯_(ツ)_/¯ when attempting to parse invalid customer during appt checking (JMC-6813)
  • CX Connect | Customer display is returning to the home screen after a partial tender is completed (JMC-6909)
  • Gift Card Cash Out | Canceling transaction after backing out of Add Customer on Gift Card Cash Out brings up receipt options (JMC-6685)
  • Internationalization | Enhance the About modal title to support i18n (JMC-6885)
  • Orders | Order statuses not showing correctly on sale screen when going to checkout during pickup process (JMC-6738)
  • Orders | When adding 2nd item to order, no order ID displays on sale screen for that item (JMC-6783)
  • Payment | /pay/returnAuth/ endpoint is not mapping token for Adyen (JMC-6838)
  • Personalization | Devices fail to personalize after iOS app update (JMC-6908)
  • Refund | Exchange being returned (original CC/exchange GC) is presenting (wrong) amount for refund to card (JMC-6258)
  • Returns | Return amount incorrectAmount is off by 1 cent (JMC-6852)
  • Shopkeeper | Refine Device Statuses (JMC-6622)
  • Tax Exempt | Tax Exempt Search allows for searching with empty values (JMC-6886)
  • Technical | Inaccurate printer statuses reported by POS printers (JMC-6799)
  • Technical | pubeng_subscriber_webhook should support URLs > 128 characters (JMC-6873)
  • Technical | Update CustomerClient.saveContactPreferences to not reassign customer object when response does not return a customer (JMC-6840)
  • Tender | "New Card" Tender for mixed cart containing a special order is not working (JMC-6890)
  • Usability | Due to rendering issues on the iPad, update Add Returns Customer Form to be single column (JMC-6839)

Security

  • Addressing CVE-2024-8184 (Technical | Updating Jetty Version)

243.6.2

Fixed

  • Close till | Expected amount increments each time a user closes the tlll without reconciling on the same day (JMC-6775)
  • Payment | Swipe ahead is not working with Aurus payment provider (JMC-6776)
  • Personalization | Parameter from auto-personalization makes its way into device's tagsand is invalid column name when querying DB (JMC-6821)
  • Returns | Sale items are being shown on the returns screen (JMC-6809)
  • Returns | Shrug error during receipted return when item not found (JMC-6796)
  • Shopkeeper | Enable Shopkeeper sale tracking features (JMC-6374)
  • Tax Override | Selecting reason code without entering amount causes shrug error (JMC-6818)
  • Technical | Offline Exception not being handled when invalidating bounce backs (JMC-6758)
  • Technical | Publisher fails to start due to missing bean (JMC-6833)
  • Technical | Trans_User_Action Model not created on customer signup (JMC-6761)
  • Technical | Transaction numbers skipped after no-sale, cash up/down, etc. (JMC-6801)
  • Tills | Detailed reconciliation screen shown for non-cash tenders (JMC-6780)
  • Transaction History | Customer transaction history only shows 'Purchased HH:MM:SS at this store' and should include the date as well (JMC-6680)

243.6.0

New + Improved

  • About | Add more information to the about dialog on the home screen (JMC-6240)
  • Angular Client | Add way to supply custom headers via configuration service in angular client (JMC-6312)
  • Business Date | Add businessDate to the primary key of ops_unit_status (JMC-6566)
  • Charity Donation | Update the Charity Donation screen without configured image or buttons sizes (JMC-6496)
  • Clienteling | Clienteling doesn't leverage database caching (JMC-6343)
  • Cluster Locks | Allow cluster locks to work properly when running multiple instances of JMC on the same host (JMC-6251)
  • Commerce Central | Add a new configuration table that commerce central can use to store configuration is for base configuration data so that ctx_config is only for dynamic changes (JMC-6296)
  • Customer | Disable the "Subscribe" button on the opt in/out page unless at least one item is selected (JMC-6297)
  • Customer | Re-prompt customer contact opt in/out when customer contact information changes (JMC-4912)
  • Customer | Update the UI of the Loyalty Opt In screen to allow additional information that can be customized and increased font sizes (JMC-6379)
  • CX Connect | Add a graphic to CX Connect to direct the customer where to start, if a customer is not linked (JMC-5820)
  • CX Connect | Create the ability to have a splash screen or loading dialog during credit card and gift card transactions on CX connect (JMC-6386)
  • CX Connect | Provide the ability to change the 'home' screen for CX Connect for the sale begins (JMC-6558)
  • EOD Totals | Add store till reconciliation totals to store close transaction JSON (JMC-3925)
  • Internationalization | Add support for i18n business unit names and addresses (JMC-6230)
  • Loyalty | Add support to write loyalty opt in/out to the trans_user_action table (JMC-6676)
  • Orders | Provide the ability to create a Store Pickup order where items can be ordered in store and picked up in same store (JMC-5458)
  • Orders | Provide the ability to support Pre-Auth for $0.00 for orders (JMC-6158)
  • Payments | Make Adyen's HttpClient settings configurable (JMC-6609)
  • Promotion | Add ability to choose 'NOT IN' as an attribute option (JMC-5809)
  • Receipts | Add an option to send eReceipt from Transaction Search (JMC-5872)
  • Receipts | Configurable QR Code and Barcode size on receipt (JMC-5996)
  • Returns | Add configuration to determine whether we default state field in returns add customer form (JMC-6524)
  • Returns | Allow non-receipted return to be optional based on configured return policies (JMC-6285)
  • Returns | Convert findExchangeItem to an endpoint so it can be extended for customer specific implementation (JMC-6554)
  • Returns | In returns, allow for differentiation between loyalty customer and employee that is also a loyalty customer (JMC-6284)
  • Technical Enhancement | Allow the context service getTraffic method to be correctly called when configured to go remote (JMC-6529)
  • Technical Enhancement | Create a new implementation pattern inheriting base foundation data (JMC-6294)
  • Technical Enhancement | Enhance Tax Exempt functionality when the form is empty (JMC-6423)
  • Technical Enhancement | Improve JavaPOS printing performance on Epson printers (JMC-6357)
  • Technical Enhancement | Isolate the SymmetricDS Datasource from the JMC operations (JMC-6493)
  • Technical Enhancement | Pass logging context to the server and include user as part of the context (JMC-6399)
  • Technical Enhancement | Provide the ability to turn off synchronization capture during database upgrades (JMC-6384)
  • Tender | Provide the ability to integrate Aurus pre-swipe into the tender process (JMC-6080)

Fixed

  • Architecture | Cannot revert back to primary server after having been connected and personalized to failover server (JMC-3655)
  • Clienteling | Attempting to "check out" an appointment before a device is opened causes issues with sell screen UI (JMC-6272)
  • Customer | Creation of USER_ACTION transactions should be configurable (JMC-6569)
  • Customer | Customer Details screen Rewards tab shows "No Promotions Found" even when rewards are listed (JMC-6552)
  • Customer | Email confirmation screen doesn't handle multiple underscores properly (JMC-6282)
  • Customer | Infinite loading screen when clicking "No, Thanks" and service is down. (JMC-6473)
  • CX Connect | Stops communicating when it switches from ethernet to wireless (iPorts tend to do that) (JMC-6586)
  • CX Connect | The customer display is fighting for control of the shared printer when using the EpsonEposPrinterScanner (JMC-6221)
  • Employee Discounts are showing up under Manual Discounts (JMC-6574)
  • Gift Cards | Activated gift card paying for itself (JMC-6319)
  • Gift Cards | Cash outdoes not show change due prompt (JMC-6501)
  • Gift Cards | Gift card auto-cashouts don't appear in totals on till reconciliation report (JMC-6079)
  • Gift Receipts | Gift receipt quantity prompt should not be based on the number of gift receipt items (JMC-6370)
  • Manual Coupons | Associate is prevented from adding an amount coupon on an exchange when basket is negative (JMC-6092)
  • Orders | Check out Button not Display for large BOPIS orders (JMC-4989)
  • Orders | Incorrect Change Due Calculation and Multiple Change Flow Triggered During Cash Tendering (JMC-6156)
  • Orders | Issue while calculating pricing for Repeat Delivery deals (JMC-6547)
  • Orders | Item Availability race condition when placing an order allows for items to still be in cart when items are unavailable. (JMC-6556)
  • Orders | Multiple PreAuth, TenderLines and CardLineItems with Cash and Carry transaction (JMC-6157)
  • Orders | Order reviewmissing box around billing address (JMC-6582)
  • Orders | Order shipping address not saved when checking out guest order and editing previously entered info (JMC-6537)
  • Orders | Possible NullPointerException AddBillingAddressState (JMC-6494)
  • Payment | Aurus GC return tender should use type "02"/REFUND instead of "11"/GC_ISSUE (JMC-6089)
  • Payment | Aurus: Even when we don't receive an approval, pin pad still displays 'transaction complete' (JMC-6250)
  • Payment | Cloud and Local Adyen client can't share the same CustomerAdyenHttpClient (JMC-6726)
  • Personalization | Missing dev_device_personalization rows causes bad primaryServerUrl value which makes it look like the client is failed over (JMC-6359)
  • Post Void | Do not allow post void if gift card activation void fails (JMC-4789)
  • Printing | A printer that is removed but is assigned as a default printer for a pos device causes an unexpected error (JMC-6339)
  • Printing | Issue with non-sellable item receipts not printing after upgrade to 243 (JMC-6243)
  • Printing | Problems with printing to Epson TM-T88 printers using JavaPOS printing protocol (JMC-6214)
  • Printing | Store receipt printed at incorrect store (JMC-5943)
  • Promotions | AMT_TOTAL Not working under various item price and qualification amount combinations (JMC-6137)
  • Promotions | Multiple coupons not applying when duplicate items with the same sku (JMC-6599)
  • Promotions | Promotions not detecting coupon was used for qualifications of AMT_TOTAL (JMC-6344)
  • Promotions | Single use coupon code import issue. (JMC-6292)
  • Promotions | Special single item "clearance" promotion processor shouldn't require a reward item because the engine doesn't require the reward item row (JMC-6358)
  • Quickloader | Entity item feed files are failing (JMC-6302)
  • Quickloader | Ignore blank rows in a CSV file instead of adding a row with semi-random data. (JMC-6071)
  • Receipts | Images created in local temp dir for Epson JavaPOS printer can accumulate (JMC-6452)
  • Reports | Reports screen should have a scroll bar if contents overflow the page (JMC-6082)
  • Returns | Autofilled cash return amount does not match recommended cash return amount (JMC-6163)
  • Returns | Cash return prompting for return exceeds cash value when max_tender_amount is null. (JMC-6262)
  • Returns | customerReturnHistoryByIdAndTime timed out at central when analyze returns (JMC-6385)
  • Returns | In returns we don't do valid sku checking before prompting for linking an original transaction (JMC-6277)
  • Returns | Issue with item being updated from non-receipted to receipted return (JMC-6185)
  • Returns | Merchandise credit tender prompts twice when mixing receipted/non-receipted returns (JMC-6090)
  • Returns | Multi-card returns prompting to select card number when preferReferencedReturns=false (JMC-6612)
  • Returns | NullPointerException when addPennyToExchange price modifier on item (JMC-6381)
  • Returns | Performing a receipted return on an item with PRICE_ENTRY_REQUIRED is prompting for price (JMC-6356)
  • Returns | Processing is slow with large baskets because the transaction is looked up twice and details dialog makes too many calls to find original transactions (JMC-6711)
  • Sale | Required Item Dialogs No Longer Require Input. (JMC-6306)
  • Sale | Subtotal incorrect for price override when isDisplayedAsDiscount = false (JMC-6041)
  • Technical | An aborted transaction was not published to sls_trans table (JMC-6577)
  • Technical | Inefficient use of thread pool with fixed size of 20 threads by device (JMC-6363)
  • Technical | InitWhenNeededJPosScannerStrategy can cause slowness when changing from a non scanning screen to a scanning screen for certain scanners (Honeywell) (JMC-6278)
  • Technical | JMC Creating thread pools of size(1) causing thread leak (JMC-6362)
  • Technical | NullPointerException when attempting to add a bag item to a transaction and itm_item.tax_exempt_code is null (JMC-6141)
  • Technical | On slower hardware, Commerce client can display an older dialog after a newer screen has been displayed (JMC-6451)
  • Technical | Operational transactions like no sale and pay in/out are not updating the client's transaction number which could cause reuse of transaction numbers when failing over to the cloud (JMC-6691)
  • Technical | The path of for ICustomerSaleService is customer and their is already a customer service. Move the path to customersale. (JMC-6437)
  • Technical | There are @Async operations (like event publishing) that create new threads on every operation. This can cause OOM error on thread creation (JMC-6337)
  • Tendering: Receipted return prompting for card when selecting non-card tender. (JMC-6235)
  • Tenders | Restore Additional Text for Tile Buttons on Tender Option screen (JMC-6551)
  • Tills | Till amounts with commas in the current balance only show numbers to the left of the comma (JMC-6607)
  • Tills | Till threshold config is not being honored at the database level. (JMC-6615)
  • Transaction Bridge | Transaction bridge does not populate the JMC AuthLineItemModel on a transaction thus preventing referenced returns from OrPOS from working (JMC-6595)

Upgrade Considerations

  • Add a system property of org.jumpmind.jobmanager.locking.id to your service.conf file to allow cluster locks to work properly when running multiple instances of JMC on the same host. For example:nullnull-Dorg.jumpmind.jobmanager.locking.id=FAILOVERnull-Dorg.jumpmind.jobmanager.locking.id=FIXED (JMC-6251)
  • To enable the Epson Scanner on the point of sale only change:
      clientConfiguration:
        defaultConfigs:
          EpsonEposPrinterScanner:
            pluginEnabled: true
    
    to:
    clientConfiguration:
      clientConfigSets:
        pos:
          configsForTags:
            EpsonEposPrinterScanner:
              pluginEnabled: true
    
    (JMC-6221)
  • New parameter: (JMC-6524)
  • The RTN_POLICY_MATCH table has a new ALLOWED_FOR_EMPLOYEES boolean field, which will be referenced for employee-related returns instead of the current strategy of looking for an ‘employee' value in the CUSTOMER_GROUP_ID field. With this change, it is now possible to set a match model that includes loyalty customers but not employees.The new ALLOWED_FOR_EMPLOYEE field is annotated with the following description:"If false, the policy will not match when an employee is linked to the transaction via employee discount." (JMC-6284)
  • If you overrode the GetPurchaseHistoryEndpoint, you'll need to update the endpoint path from customer to customersale (JMC-6437)

Promote

243.6.0

New + Improved

  • Promote | Provide the ability to create a one-time coupon based on an API call (JMC-5635)
  • Promotions | Move Reward Application Type: and Reward Base Price: from first screen/Advanced details to offer screen to support template request from TVS (JMC-6144)

Fixed

  • Promote | Download codes button not working in V. 243.2 for Spark of "Single Use Promo Code Generation" (JMC-6201)
  • Promote | Sorting in 243.4.2sort by name is sorting by Case-sensitive order in stead of ignoring case. (JMC-6213)

Retail Core (Shared core by store applications)

243.6.4

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)

243.6.2

Fixed

  • Technical | State Relay is missing Health and Ready Checks (JMC-6856)

243.6.0

Fixed

  • Technical | JSON stdout logging of container doesn't expand out message parameters (JMC-6508)
  • Technical | The ConfigManager.findDeviceLocalTimeForBusinessDate function will not preserve the input year affecting queries across new year boundaries (JMC-6520)
  • Usability | Dialog Message Text being duplicated on title (JMC-6550)

Upgrade Considerations

  • To use the new logging encoder, when building your container, edit the logback.xml of your container project and replace:nullwith: (JMC-6508)

Inventory

243.6.0

Fixed

  • Inventory Receiving | Receiving Document is showing 'Received In Full' and did not receive (JMC-6059)
  • Inventory Receiving | Show received quantity below the expected (JMC-6169)
  • Inventory Receiving | Update the search result dialog based on the status of the document that you search (JMC-6061)
  • Inventory Receiving | Usability issue when view filter results (JMC-6062)
  • Inventory Shipping | Remove duplicate business unit id. (JMC-6176)
  • Inventory | Cycle count fonts too large (JMC-6174)
  • Inventory | Fix icon for damaged items (JMC-6170)
  • Inventory | No error when scanning an unknown item (JMC-6168)
  • Inventory | Remove store icon from all fields (JMC-6177)

Clientelling

243.6.3

Fixed

  • Customer | ¯_(ツ)_/¯ when attempting to parse invalid customer during appt checking (JMC-6813)

243.6.0

New + Improved

  • Clienteling | Clienteling doesn't leverage database caching (JMC-6343)

Fixed

  • Clienteling | Attempting to "check out" an appointment before a device is opened causes issues with sell screen UI (JMC-6272)

Unified Promotion Engine

243.6.1

Fixed

  • Unified Promotion Engine | Promotions are not working when the database is Postgresql (JMC-6822)

243.6.0

Fixed

  • Unified Promotion Engine | UPE is slow when using a range of effective dates that are outside the current caching strategy window (JMC-6694)

Upgrade Considerations

  • The promotion cache is no longer keyed by the local server time only. Effective promotions are read into memory from 24 hours ago including all future dated promotions for active business units. When asking the repository for a promotion they are filtered in memory. The only setting that is still valid for configuring the promotions cache is cacheRefreshCronExpression. (JMC-6694)

Shopkeeper

243.6.3

Fixed

  • Shopkeeper | Refine Device Statuses (JMC-6622)

243.6.2

Fixed

  • Shopkeeper | Enable Shopkeeper sale tracking features (JMC-6374)