MI9 POS Import - Margin Master

Margin Master Handbook

Introduction
Part I · Installing
Part II · Introducing the Main Window
Part III · Initial Configuration
Part IV · Customizing the Workspace
Part V · Basic Application Functionality
Part VI · Learning Margin Master
Part VII · Advanced Topics
Part VIII · Updates, Troubleshooting & Help
Appendix
Part III · Chapter 7 — Point of Sale: Connect, Configure, Import, TroubleshootUpdated 2026-03-21

MI9 POS Import

What is this?

MI9 is a retail management system used by larger multi-store operations. Margin Master imports MI9 data files and builds team-based pricing analysis tables, supporting the most fields of any POS system at over 75 fields.

Import File Format

Property Value
Delimiter Tab (\t)
File pattern MM*.txt (e.g., MM_Team1.txt, MM_Team2.txt, MM_Unsequenced.txt)
Header row Yes (1 row)
Total fields 75+

How Import Works

Data menu - the import command is labelled for your POS system

The export file is read from the Import Path set under Tools > Options > Miscellaneous:

Import/Export Paths on the Miscellaneous tab

MI9 tab

  1. Use a single main table (one row per SKU per store).

  2. Apply and Rebuild Now.

  3. Place your MI9 export files in the configured import folder. Files follow the MM*.txt naming pattern.

  4. Margin Master reads each file using the SepReader library for high-performance parsing.

  5. Each row is mapped to the Margin Master data model using hardcoded field mappings (no external .map or .fmt files).

  6. Data is bulk-merged into the database using Z.BulkOperations in batches of 10,000 rows.

  7. Files are processed in batches of 50,000 records at a time for memory efficiency.

  8. If a batch fails, Margin Master retries up to 5 times with increasing wait times between attempts.

  9. Unlike most POS systems, MI9 builds team-based main tables (e.g., StoreGroup_Team1_mainTable) rather than per-store tables.

Field Mapping

Core Fields

MI9 Field Margin Master Field Notes
StoreNumber StoreNumber Store identifier
SKU SKU Product identifier
AceSku AceSku Priority SKU for Ace Hardware stores
Description Description Product description
Department Department Department code
Class Class Product class
Location Location Bin/shelf location

Pricing Fields

MI9 Field Margin Master Field Notes
RetailLevel1–5 RetailLevel1–5 Retail price levels
RetailZone RetailZone Zone retail price
Level1–5Zone Level1–5Zone Zone-level prices
StoreCost StoreCost Store cost
AVGCost AVGCost Average cost
ReplacementCost ReplacementCost Replacement cost
CurrentPrice CurrentPrice Uses cascading logic to determine value
FuturePrice FuturePrice Planned future price

CurrentPrice cascading logic: MI9 uses a priority-based approach to determine the current price from multiple price level fields.

Sales History Fields

MI9 Field Margin Master Field Notes
History1–12 History1–History12 Monthly sales history

Ace-Specific Fields

MI9 Field Margin Master Field Notes
VendorOwner VendorOwner Vendor owner code
VendorNumber VendorNumber Vendor number
VendorName VendorName Vendor name
Discontinued Discontinued Discontinued flag
PrivateLabel PrivateLabel Private label indicator

Status Fields

MI9 Field Margin Master Field Notes
ProductStatus ProductStatus Product-level status code
StoreProductStatus StoreProductStatus Store-level status code
BlockedAutoChanges BlockedAutoChanges Blocks automatic price changes

Status codes include: A (Active), B (Blocked), C (Clearance), D (Discontinued), N (New), R (Return), S (Seasonal), W (Warehouse), X (Inactive).

Tips

  • Team-based tables: MI9 groups stores into teams. Margin Master builds a separate main table for each team (e.g., StoreGroup_Team1_mainTable) rather than one table per store.
  • Store configuration: Each MI9 store is configured in the Mi9StoreManager table with a BranchCode, GroupName, and Excluded flag. Stores marked as Excluded are skipped during import.
  • AceSku priority: For Ace Hardware stores, MI9 files include an AceSku field. When present, this takes priority over the standard SKU field for vendor catalog matching.
  • Large file handling: MI9 files can be very large. Margin Master processes them in 50,000-record batches and bulk-merges in 10,000-record batches to manage memory.
  • Ace Hardware pairing: MI9 supports Ace Hardware vendor pairing through the VendorOwner, VendorNumber, and VendorName fields.

Common Questions

Q: What do the Team1, Team2, and Unsequenced file names mean? A: These correspond to store groups configured in your MI9 system. Each group gets its own main table in Margin Master. Stores not assigned to a specific team appear in the Unsequenced file.

Q: Why is my store not appearing in the import? A: Check the Mi9StoreManager configuration. The store may be marked as Excluded, or its BranchCode may not match the data in the import file.

Q: What happens if an import batch fails? A: Margin Master automatically retries up to 5 times with exponential backoff (increasing wait times). If all retries fail, the error is logged and the remaining batches continue processing.

Connect with us

Margin Master by RetailerSoft, Inc. © 2026. All rights reserved.

Loading...

Reconnecting to the server...

This usually takes a few seconds.