What's New - Margin Master

What's New

Stay up to date with the latest features, improvements, and fixes

What's New in Margin Master

Stay up to date with the latest features, improvements, and fixes.

MarginMaster v2026.410.27980 v2026.410.27980

April 10, 2026 16 changes(3 deployments combined)
New Feature 2 items
  • Ace zone display in Store Matchup

    Added a new read-only "Ace Zone" column to the Vendor/POS Store Number Matchup screen that shows the assigned zone from Ace's zone records. This column displays zone 99999 (national pricing) for stores without official zone assignments. The column is visible only for Ace Hardware stores.

  • Zone override capability

    Added a new editable "Zone Override" column that allows users to set a different zone that applies to all 9 Ace departments for a store. This uses the existing GlobalFileConfig ZONE_OVERRIDE mechanism and is particularly useful for assigning zone pricing to defunct stores or stores that lack official Ace zone assignments.

Improvement 2 items
  • Zone override detection logic

    Added properties to detect when a zone number has been manually overridden versus using the Ace-assigned value. The system compares the current zone against the original Ace assignment and automatically removes the override flag if the user enters the original zone number.

  • Enhanced import logging for troubleshooting

    Reality check validation messages now clearly distinguish between "pre-sync" and "post-sync" checks, and include detailed statistics (row counts, percentages, and thresholds) to help diagnose import issues. The pre-sync threshold was adjusted from 80% to 50% to reduce false positives while still catching seriously incomplete data.

Bug Fix 6 items
  • StoreNumber missing from database queries in single-store mode

    Fixed issue where StoreNumber column was excluded from database queries when customers hid it from the grid (common in single-store setups). The column selection logic only included visible grid columns, causing Dapper to map StoreNumber as null even when data existed. Now StoreNumber is always loaded regardless of grid visibility, ensuring SKU detail saves can match records correctly.

  • StoreNumber field now loaded even when hidden from grid

    The StoreNumber column is now always included in database queries, even for single-store customers who hide this column from their pricing grid. Previously, when saving SKU detail changes or exceptions, the system couldn't match records to stores because StoreNumber was null, causing save operations to fail silently.

  • Single-store fallback missing in SKU exceptions dialog

    Added missing single-store fallback logic to SkuLevelExceptionsViewModel's store number loading. The pre-loading cache and database queries only checked SelectionLists table, which doesn't contain StoreNumber entries for single-store customers (selection boxes aren't built for single-value fields). Now falls back to querying mainTable directly when SelectionLists returns empty or only "ALL", matching the behavior added in PR #370.

  • Store selection fallback for SKU exceptions dialog

    Added fallback logic to populate the store selection dropdown in the SKU Exceptions dialog. For single-store customers, the system now queries the mainTable directly when SelectionLists doesn't contain StoreNumber entries (which occurs when only one unique value exists and no selection box was built). This ensures the store dropdown is always populated correctly.

  • Null-safe string comparisons in SKU detail save

    Replaced instance .Equals() calls with static string.Equals() for SKU and StoreNumber property comparisons throughout the SKU detail save path. This prevents null reference exceptions when comparing potentially null values during record matching and filtering operations.

  • Improved string comparison reliability

    Replaced direct string equality checks with string.Equals() throughout SKU detail save operations to prevent potential null reference errors when comparing SKU and StoreNumber values.

Data Import 2 items
  • Pre-sync incomplete data detection and recovery

    Before syncing MySQL Compass inventory data, the system now compares the local database row count against the MySQL source. If the local table contains less than 50% of the expected items (indicating a partial or stale import), the system automatically clears the local data and forces a full reimport. This addresses scenarios where database upgrades or interrupted imports left incomplete data (for example, only 19 items when 28,000 were expected).

  • Post-sync completeness verification

    After completing a MySQL Compass import, the system now verifies that the local database contains at least 95% of the items present in the MySQL source. If the import appears incomplete, an error is logged for investigation. Successful imports log confirmation with the exact percentage imported. This provides visibility into import quality and helps identify ongoing sync issues.

User Interface 3 items
  • Visual indicator for overridden zone assignments

    The Zone Number column in the Epicor/MySQL Import Manager now displays overridden values in blue bold text. When hovering over an overridden zone, a tooltip shows the original Ace-assigned zone number. This visual feedback makes it immediately clear which stores are using custom zone assignments versus their official Ace zones.

  • Type-ahead search enabled for configuration dropdowns

    Added incremental search and item highlighting to the Primary Vendor, RSC, and Point of Sale System dropdown menus in the Store Configuration window. Users can now type partial names to quickly jump to matching items rather than manually scrolling through long lists.

  • Enhanced Store Matchup screen for Ace Hardware

    Modified the Store Number Matchup screen to load zone data from AceStoreDepartmentZoneRecords on startup and save zone overrides when the user clicks Save. The new columns appear only for Ace Hardware customers and integrate seamlessly with the existing store matching workflow.

Documentation 1 item
  • Zone override instructions and guidelines

    Added a new "Overriding Zone Assignments" section to the data import documentation explaining when and how to override zone numbers, how to clear overrides, and the requirement to sync or rebuild after making changes. Also clarifies that zone 99999 is the national/default pricing zone used when stores lack specific zone assignments.

Retailersoft, Inc.
Tools for Success
Connect with us

© 2026 Retailersoft, Inc. All rights reserved.

Loading...

Reconnecting to the server...

This usually takes a few seconds.