POS Brazil Version 4.18.0

February 9, 2022


  • Currency format (numberformat) now also used in:
    • recent-: -layaways, -orders, -sales, -invoices, -offers
    • gift card popup
    • product information
    • employee stats
    • close day main popup + tenders
    • payment modal during returns: original total, payment amounts
  • Setting to allow editing of layaways added to POS.
  • Setting to toggle a popup if a customer that has a "note" field in BO is chosen
  • Setting to soft logout the user after the sale confirmation popup is closed
  • Setting for different cash rounding algorithms
  • Patchscript template editor now supports QR code fields
  • Close day respects user rights to remove pending sales (doesn't remove if 0, removes own if 1, removes all if 2)
  • UPC code column added for rows on the return menu
  • Mobile view has option to open closeDay and zReport popups


  • Original payments are not automatically copied into payments if the total is positive
  • "Use legacy printing" option now defaults to false
  • Layaway "prepayment percentage" replaced with a text input (previously was a dropdown) + added formatting for the percentage to not exceed 100
  • Fixed issue with scanning products from product search. Now product is added after the search is complete
  • getAllowedWarehouses now filters out warehouses with isOfflineInventory flag. (user can no longer select the offline inventory warehouse during login and during customer creation/editing)
  • Search results tables now expand horizontally to show their full contents (but also each column is restricted to 128px max)


  • Plugin that during customer creation detects if a customer with entered data already exists
  • Configuration of tax exempt plugin has been updated to allow user to select states that the plugin should be applied to.
  • New plugin (WIP): W** customizations Features implemented:
    • Customer badge
    • Customer form
    • Locking of gift card based on customer group
    • Customer results
  • Exchanges can only be finalized if all the products have received a return tag

Plugin fixes

  • p**Security: Discount detection formula updated
  • p**PreCore: Correctly limit quantities on pre-core lines
  • Precore charges are tax exempt
  • p**RelatedItems: fixed issue with missing related products in the plugin configuration
  • fixed issue with p** zip code plugin - popup for zip code now shows as expected
  • CAFees attributes no longer cause other attributes to be hidden


  • plugins pluginSetupOnMount and pluginCleanupOnUnmount actions were not always executing on time due to race conditions. Actions were called in useEffect in POS.tsx. Now they are called iside Main/index.js useEffect - used for most of application's set up/cleanup functions
  • Beaver replaced with Centrifugo
  • Fixed issue with printing conf missing a default value


  • When composing data for receipt, if the data (literal) is undefined, we don't convert it to string, but rather give empty string.
  • Tax component prices use the priceFormatter
  • vatPercentage is calculated using the correct values now. (vatTotal and netTotal)
  • Invoice logo replaced with receipt logo

Customer display

  • Shopping cart feed (addition/removal/edit) is sent to customer display from POS
  • Start sale request sent from POS to customer display
  • Finish transaction request sent from POS to customer display
  • Customer display Icon in header is updated to be a dropdown which includes:
    • Open customer display app - opens the customer display app that PNP is using (developed by our front end team)
    • Open external customer display app - opens the customer display app, which is more advanced that our app (developed by some unknown team)
    • Send customer form to display - sends a message to the customer display and shows a customer creation form on the display
    • Register with received info - dispatches a saveCustomer action with the info, received from the Display
    • Send search by email to display - sends a message to the display and shows a field to enter user's email.
    • Search customer by email - initiates POS's customer search based on the message from CD
    • Send search by phone to display - sends a message to the display and shows a field to enter user's phone.
    • Search customer by phone - initiates POS's customer search based on the message from CD