What’s New in Artisan POS 4.7

The latest version of Artisan POS is here – 4.7.

Building on fresh features from version 4.6, Artisan 4.7 introduces new improvements and elements to enhance your experience with the program. Contact us at sales@certek.com or (877) 723-7835 to upgrade!

To see a breakdown of all the maintenance updates and fixes, head over to our Change Log.

Key Features

1. Upload Scans from PDT or File (Enhanced F8 Scan Mode)

Artisan 4.7 supports Portable Data Terminals (PDT) capabilities, such as loading scans for Inventory Counting, Purchase Orders, Label Printing (using new entry in “Labels” menu), Creating Kits, and more (anywhere F8 Scan Mode is available). Use Ctrl-F10 “Load Scans from Device” to upload scans from supported smart handheld devices acting as PDTs, or Shift-F10 to “Import Scans From File”.

Failed scans are now labeled in red, with a Failed Scans count at the top of the screen, rather than interrupting scanning with an error dialog. Any failed scans must be deleted before F10 Process will work. Ambiguous matches are controlled by the Item Lookup setting (now directly under Miscellaneous Program Options); use Quick Lookup to silently take first match.

Scan Mode (including PDT Upload) now handles Auto-Detail Mode in Receiving by presenting a Receiving Detail screen for each item, one by one, rather than a bunch of screens opened at once.

Handheld devices can also be used for wireless Price Checks / Product Info Lookups.

2. Add +/−/✱ Buttons to Label Qty Dialog and Scan Mode Screens

Add visible +/−/✱ buttons, for changing line quantities, to the Label Quantity Dialog, Scan Mode, and most screens where the corresponding keypad keys can be used to add, subtract, and change quantities. This makes these functions more obvious, and easier to use on touch screens.

3. Support Smart Refunds from Void Sale

New choice to the menu when Void Sale would void already-processed payments, to Refund to Original Card(s), as an alternative to issuing Store Credit. 

4. Add Sticky Quick-Pick Option to Base Product Item Records

Similar to the Sticky Quick-Pick added to Category Records in 4.4, this setting causes the Sale Screen to automatically prompt for another variant of the same Base Product after any variant is added to the sale (whether the base product was entered directly or by using the main Quick-Pick menu). Use Escape or scan a barcode to cancel.

5. Improved Arrow Key Navigation

Allows up/down/left/right arrow keys to move through form fields and buttons quickly. (Note that PgUp/PgDn form field navigation were also added, in late 4.6.)

6. Improved Item Lookup Speed

Item Lookup Speed (in PO & Sale Screens, for example) has been improved, even in “Full Lookup” mode. (Most noticeable in data with > 100,000 SKUs.) The “Quick Lookup” mode added in 4.6 is still potentially slightly faster, but it ignores multiple matches, silently choosing one for you.

The Item Lookup Mode setting has been moved to the top of Miscellaneous Screen Options (instead of being under Sale Screen Options), since it also applies to Scan Mode processing (including PDT Upload).

7. Support Copy/Paste from Table Rows

When a table has focus, the Copy function copies the string value from the current selected cell. On Record Table Screens, when the table does NOT have focus (usually because the search box has focus) and no text is selected elsewhere, then the entire highlighted table row is now copied, with tabs in between the fields.

8. Partially-Started Sales Can Be Silently Discarded

New sales with no line items, no tenders, and no assigned slip number, don’t count as “dirty” (that is, having unsaved changes), and will be discarded without confirmation when the Sale Screen is closed, escaped, or remotely shut down from another station with Alt-F5.

9. Recall Last Sale Enhancement

When using Recall Last Sale (explicitly or implicitly) in the Sale Screen, and no sale has been saved since the program was run, it will now find the most recent non-void, non-deposit, sale/order from this station.

10. Status “Incomplete” for Internet Store Orders

When downloaded orders have missing information, or cannot be processed in some way, now record them as INCOMPLETE transaction status, rather than ON HOLD, so they still reserve inventory and reduce the available counts sent to the online store in the next upload.

11. Items Can Now Have Multiple Shelf Locations

The Shelf Location(s) field in the Item Record (and Gift Registry Item) now accept a comma-separated list of locations. Searches by Shelf Location and Bulk Changes now work on each location in the list individually, like keywords. Item Bulk Changes were reordered to include Bulk Change Shelf Location.

12. Shelf Location Uploaded to Internet Stores

Shelf Location is now uploaded as a custom attribute named “Shelf Location” to Internet Stores with Zoey/Magento (if non-blank) or WooCommerce (if such an attribute is configured in WooCommerce). (This is mainly intended for back-end order processing.)

13. Bulk Change Inventory Class

This new Category Bulk Change operation lets you change the Inventory Class for multiple Categories.

14. New Setting for Excess Credit Prompting

New Sales Screen Options setting, “Offer to Refund Excess Store Credit When Excess Is Below This Amount”, allows you to control when clerks are asked if they want to apply the entire remaining store credit even though it exceeds the amount due. The previous behavior was to always do this, but default for new data is now 100.00. When the amount is above the threshold (which can be zero to never prompt), the credit amount is silently left unchanged, and the excess is left on the original credit slip.

15. Exit When Idle

With this new Miscellaneous Program Options setting, “Exit When Idle,” Artisan will close after a period of inactivity (the default is 60 minutes). If there are unsaved changes on any screens, the user will be asked if they want to discard changes before exiting.

Change Log

Last updated: 9/22/2022


  • POS-14131: Allow loyalty club points to be manually changed, with appropriate authorization, based on a new task setting, “Manually Adjusting Loyalty Club Points”. Make these changes, as well as imported points, persistent (by writing a Points Adjustment transaction); that is, if club points are recalculated, these adjustments will still be counted. 
  • Include loyalty club points and membership changes in Audit Log.
  • Fix cases where newly-added clubs don’t set membership dates for eligible customers, even when no membership item purchased required.
  • Auto-pop customer combo box in A/R Statement Options.


  • Implement Balance Forward A/R Statement Style. This is now the default for new data (and new Defaults Profiles).
  • A/R Statement Form 101: Added Footer Message.


  • Fix for some older voided transactions that were showing on reprints of A/R statements. We now enforce that voided transactions have no Statement Date.
  • POS-14137: Fix a fatal error using the (new in 4.7) +/1/* buttons on the Label Qty dialog.
  • Payment Processing: Add a setting for PAX Direct processing methods to “Use PAX “Device ID”. Variable to Distinguish Multiple PIN Pads.” This was previously *always* done, but “Device ID” only applies to processing company, First Data Omaha/RapidConnect. New default is set to “No”.
    When “Device ID” is not used, the local part of the Artisan Station Number is used instead.
  • Sales by Item 101: Added Support for Inventory Kits.
  • Fix so migration from 3.X handles A/R statement dates correctly: fill in missing statement dates, and set Final Statement Date (new to 4.X) based on a determination of which items (invoices, payments, etc.) were still open as of the last generated statement.
  • Fix migration of A/R payment lines to preserve “Referenced Transaction” linkage, so the statement code knows which invoices have been paid. Includes a data repair for earlier migrations.
  • Add a special case in statement generation to not make finance charges (F/C) retroactive when an F/C is added to a Payment Type after it was already used on some posted statements w/o F/C (and thus had no F/C lines to set maxFinanceDate).
  • POS-14127: Fix so the Item Record Screen Options, “Hide Discontinued Items…” and “Hide Product Variants…” apply to (built-in) Item List Searches only, not Report Parameters. 
  • Support Apple keypad “Clear” key.
  • Fix auto-billing & order import batch processing to delete tenders for which payment processing fails, rather than leaving un-processed tenders on the order. When any transaction error during batch processing occurs, the transaction status is (in 4.7) set to “Incomplete”; fix to set the Sale Type to “Sales Order” even if there are no (remaining) tenders to create a Deposit transaction, since normal sales can’t have Incomplete status.
  • Inventory Transfer Report Fixes & Improvements.
  • Receiving Report 101: Now allows to Hide Cost.


  • POS-14122: Allow Custom Reports to conditionally hide costs (based on the “Hide Costs” parameter), just like built-in reports, when set to Show Costs Unless Hidden.
  • POS-14121: Fixes and refinements for Combo Box pop-up fields, including allowing Space, Left-, and Right-Arrow to select an item from a pop-up menu.


  • Fix error parsing –data cmd-line arg
  • ISI: Change User Agent header used by the Artisan Task Manager to include the “Artisan POS” name and version number (rather than just “Java/1.8.0_nnn”). This gets us past the Cloudflare anti-SPAM filter now used by Zoey online stores (as of June 2022).
  • Fix so long Customer Notes don’t stretch the Sale Screen layout, causing some of it to be cut off on the right.
  • POS-14116: Fine-tune Sale Screen layout, so bottom row of buttons don’t get cut off at Standard Size view (or larger), even on Windows (which has a slightly taller text than macOS). Move “units” count below the panel selection buttons (on the left) to balance the top layout better (especially when Tax Exemption type is visible. Keep it displayed (except when zero) now that it’s no longer sharing space.


  • Restrict database names to letters, digits & underscores.
  • Improve Alt-F5 Exit All Stations: 1) Disable “Force” button once pressed, and rename it to “Forcing Discards…”, so you can see that it’s in progress. 2) Fix some cases where the exit proceeded even though some stations with unsaved changes were still not closed.
  • POS-14117: Reduce lock contention during startup, by skipping the updates of permanent records for all but the first station connected to the data (each time), and in the background check for external exclusive access requests, by checking w/o lock first. This reduces the likelihood of occasional freezes with large numbers of stations.
  • POS-14092: Fix to prevent Constraint Violation errors form attempts to save a sale w/o full payment, which is normally prevented by disabling the Save button, but could happen if the sale was first marked as paid in full, but the tender amount was changed, and the Save button was pressed w/o leaving the amount field. So, check one last time after the tender change is finalized.
  • POS-14115: Fix so sale totals are updated after an Item on the sale is modified by going into the Item Record via Ctrl-F4 (or double-click).
  • POS-14111: Fix migration from 3.5 data with non-US addresses to match country names correctly, with a case-insensitive match.


  • Add protection for various race conditions from fast clicks or typing, by disabling Action buttons and the Scan Mode text field whenever a bulk action or final action (such as F10 Process) is initiated. (Applies to various Record Table Screens, including Scan Mode.)
  • Fix so using Scan Mode to apply counts to a paged record table screen (like Inventory Counting or Inventory Transfer) with > 400 records, doesn’t apply some counts to the wrong records. (4.7)


  • Add Discount fields to ILOOKUP view for access by Handheld Devices.


  • Don’t show deleted customers in CUS-105, Loyalty Club Points By Customer Report. Show “DISABLED” on lines with disabled clubs. Add “Joined” and “Expires” dates.
  • POS-14065: Fix a number of issues with Loyalty Club membership and expiration dates in cases where a membership item purchase is required. In particular, make calendar-year memberships expire at the end of Dec 31, rather than on Jan 1, and if purchased in the last 10 days of the year, count toward the *following* year. 
  • Fix, in general, failure in some cases to keep the list of club names on the Sale Screen in sync with the actual list of club memberships.


  • POS-14085: When a Variant Template has SKU Suffixes that result in duplicate items, only the first one is created. Fix so that when the conflict is corrected (by changing the SKU Suffixes in the Template), any missing duplicate items (which are no longer duplicates) are created.
  • Fix slip printing for Auto-Billing and External Orders to use the configured slip style for ALL printed receipts. Previously, it was incorrectly using Slip Menu Mode and possibly even trying to prompt for a slip style selection (which doesn’t work when run non-interactively, such as from an Internet Order download), for Deposit transactions.
  • Add progress bars for Scan Mode.


  • Fix Auto-Billing & External Order batch printing modes to include the correct transactions; the behavior of the first two choices were swapped.

  • POS-13904: ISI Upload Shelf Location as a custom attribute named “Shelf Location” to Zoey/Magento (if non-blank) or WooCommerce (if such an attribute is configured in WooCommerce). (Shopify doesn’t support custom attributes.)


  • INV-143 – Inventory Change Report – Change default for “Show Items” parameter to include items with Ending Inventory even w/o activity.


  • Combine Dates & Misc Info panels on PO Screen, to leave room for multi-site controls, so function buttons at the bottom of the screen don’t get cut off at Standard Size.
  • Fix Label Qty Dialog to allow quantities to be set to zero. Fix so first quantity changed by +/−/✱ after Clear All is the first row, not the second.


  • Improve handling of Escape/Close Screen in Sale Screen to prevent loss of newly-processed payments on a recalled sale.
  • POS-14028: Fix calculation of available qty for Sale Screen Out Of Stock Warning (if enabled in Sale Screen Options) when changing quantities on a recalled sale/order to take into account the *original* line quantities, which would have already been subtracted from the available counts.
  • POS-14043: Make a (virtual) column for “Issued-To Customer Address” available on the Tracked Coupons list screen.


  • POS-14031: Don’t reprint deposit slip when the main receipt is reprinted.
    (The deposit slip can still be individually reprinted.)
  • POS-13908: Fix sort order for record-typed fields (Category, Vendor, etc) in Inventory Transfer and Physical Inventory Counting screens when multi-site.
  • POS-14070: Fix the Status column in the Station list to be based on the time the record was loaded, rather than the current time, so the Status remains the same until the list is refreshed, rather than gradually creeping from “Active” to “Idle” to “Crashed” even though the status hasn’t really changed.
  • Fix Null Pointer Exception running data at a brand-new site.


  • Fix to not void a processed tender twice if it is deleted and then the entire sale is voided.
  • Fix Null Pointer Exception in “isAmazonRDS()” during initial database connection when using a server name that starts with a number but isn’t a valid IP address.


  • POS-13898: “Add Missing Sale” and “Void” buttons for detached payments on the Payment Log Record Screen (CC Log) are now disabled when either is pressed, so you can’t accidentally perform both functions on the same record.
  • POS-13547: Give an error message instead of just silently rejecting orders in a multi-type import file (TTX or IIF) if the user is not licensed for External Order Imports.