Margin Master Handbook
- Prerequisites
- Firewall and Network Requirements
- Microsoft Edge Download Block
- SQL Server Authentication Setup for IT Administrators
- Antivirus and Endpoint Security Exclusions
- SQL Server Tools
- Install or Upgrade SQL Server Express
- Install or Upgrade SQL Server Management Studio
- A Tour of the Main Window
- The Menus
- The Button Row
- The Main Data Grid
- The Summary Section
- Banners and Badges
- The Options Window
- Store Configuration
- Miscellaneous
- Export Options
- Vendor Settings
- POS / Connections Tabs
- Background Service
- AI Assistant (Experimental)
- How POS Import Works
- Supported Point-of-Sale Systems
- Data Import Workflows
- RockSolid POS Import
- Epicor Eagle FTP Import
- Epicor MySQL Compass Import
- Transact POS Import
- Paladin POS Import
- Falcon POS Import
- Spruce POS Import
- Bistrack POS Import
- RockSolid Max POS Import
- ECS POS Import
- Prosperity POS Import
- Catalyst POS Import
- Westlake POS Import
- MI9 POS Import
- AS/400 POS Import
- CounterWorks POS Import
- Dimension POS Import
- PacSoft POS Import
- ProStix POS Import
- Sympac POS Import
- Propello POS Import
- EagleVision POS Import
- MySQL/Compass Connection Configuration
- ECI VPN Requirement (Spruce, RockSolid MAX)
- Propello POS Integration Guide
- MI9 Data Pipeline — Import to Main Table
- Troubleshooting: Epicor Import Brought In 0 SKUs
- PACE POS Import
- Advantage POS Import
- General Store POS Import
- J-3 POS Import
- KeyStroke POS Import
- AutBusSystem POS Import
- Tomax POS Import
- Enterprise POS Import
- Computakey POS Import
- Redisell POS Import
- DART POS Import
- MIB POS Import
- Substruct POS Import
- DMAS POS Import
- RODS POS Import
- Procom POS Import
- Agility POS Import
- Acumen POS Import
- Cruise POS Import
- LSandE POS Import
- Retalix POS Import
- DIBCorp POS Import
- GMROI POS Import
- ECi Advantage POS Import
- Sunray POS Import
- ActivantAutomotive POS Import
- IBS POS Import
- Versys POS Import
- RMS POS Import
- TAMS POS Import
- Integrasoft POS Import
- Dynamic POS Import
- Microsoft ARS POS Import
- CDS POS Import
- Spartan POS Import
- Nitterhouse POS Import
- Jeds POS Import
- Theisens POS Import
- Emery Jensen POS Import
- SMS Pro POS Import
- Burdens POS Import
- Intact POS Import
- Bloom Retail POS Import
- NCR Counterpoint POS Import
- Horizon POS Import
- Cloud Vendor Data Sync
- Data Aging and Freshness Warnings
- Resetting Vendor and POS Data
- Rebuild Data and Rebuild Selection Lists
- Troubleshooting Vendor Sync
- Understanding the Strategy Hierarchy
- Pricing Strategies
- Creating a Strategy Step
- Updating and Deleting Steps
- Reviewing a Strategy and Running It
- Shared (Premade) Strategies
- SKU-Level Exceptions
- Manage Custom Groups
- Strategy Execution Cloud Tracking
- Importing from Excel
- Cost Break Analysis
- Cost Break Strategies
- Min/Max Strategies
- Strategy Backup & Restore
- Add Items from Catalog
- Store Grouping
- Data Diagnostics and Missing Index Recommendations
- System Diagnostics
- Margin Master Cannot Save Settings
- SQL Server 2025 Express vs. Full License
- Support Issue Management
- Catalog Lookup
- What's New After an Update
- Version History
- Documentation and the Help Buttons
- CTLD — Do It Best Catalog File
- MARGIN_MASTER — Ace Catalog File
- PCDITEMXREF — Do It Best SKU Classification File
- SAP_ZONE_PRICE_MARGIN_MASTER — Ace Zone Pricing File
- PCDPRODCLASS — Do It Best Product Classification Hierarchy File
- SAP_STORE_DEPT_ZONE_MARGIN_MASTER — Ace Store Zone Assignment File
- Taxonomy — Ace Product Classification File
- Mapp_Pricing — Ace MAP & IMAP Pricing File
- margin_mstr_plano — Ace Planogram File
On This Page
Troubleshooting: Epicor Import Brought In 0 SKUs
What is this?
This guide helps when an Epicor (Eagle) import runs without errors but no inventory shows up — the main pricing table is empty, prices are blank, or a store's SKU count is zero. It applies to both Epicor import paths:
- MySQL Compass (direct connection to the
EAGLEDWdatabase) - INDecoded (binary file downloaded via FTP)
In almost every case the data is fine and the problem is the store matchup — the link between your Epicor POS store and your Vendor Store #. See Store Manager for how that mapping works.
How Epicor identifies a store
Epicor stores each store as a single character in the in_store field (for example the digit 1, or a letter like W). Margin Master converts that character to a number (its ordinal) and uses it to pull only that store's rows during import:
...WHERE ORD(in_store) = <the store's ordinal>
That ordinal is saved against your store in Store Manager (the Vendor Store # you assigned). If the ordinal Margin Master is filtering on doesn't match the character actually in your Epicor data, the filter matches nothing and you get 0 SKUs — even though the data is there.
Margin Master discovers the correct ordinal directly from your Epicor data and, for a single-store setup, assigns it automatically. The cases below are the situations where it still needs your help.
Decision tree
Work through these in order. Most 0-SKU cases are #3 — a store whose saved character no longer matches Epicor.
1. Is there any data in Epicor at all?
If the import reports "NO Skus Found in IN Table", Margin Master connected but the Epicor source has no rows.
- MySQL Compass: confirm the Eagle/Compass data warehouse is running and that the
INtable in theEAGLEDWdatabase has data. Re-check the server, port, database, and credentials on the Options → MySQL/Compass tab. - INDecoded: confirm a current binary file downloaded from your Epicor FTP server. Re-download and try again.
If Epicor genuinely has data, continue.
2. Is the store mapped? (most common)
Open Options → Epicor → Store Manager and look at your store's row:

- An Exclude check means the store is intentionally skipped. Uncheck it if the store should import.
- A Needs Setup badge (or a blank Vendor Store #) is worth fixing, but it is not a cause of 0 SKUs on its own — a store with no Vendor Store # still imports, under its POS store number and priced at the national zone. Enter your vendor store number so the store picks up its real zone pricing.
3. Does the store show "Not Found"?
A Not Found badge means the store's saved ordinal doesn't match any store currently in your Epicor data.
- Click Refresh Stores (labeled Refresh from MySQL or Rescan INDecoded File depending on your setup). This re-reads the live store list from Epicor and re-aligns the mapping. For a single store it re-points automatically; clear the badge and re-import.
- If you have multiple stores, confirm each row's POS Store character matches a real Epicor store and that the right Vendor Store # is on the right row.
4. Is a vendor (Prime Vendor) filter hiding everything?
If a Prime Vendor filter is configured, the import only keeps rows whose primary vendor matches. A too-narrow filter can drop every row. Confirm the Prime Vendor setting is correct (or empty) for the store.
5. Did the import run but the main grid is still empty?
The store data may have imported, but the main pricing table needs a rebuild before prices appear. Run a rebuild/import for the store and confirm the main table repopulates.
Tips
Start in Store Manager. Nearly every "0 SKUs" Epicor case is a store-matchup problem, and Store Manager shows the status (Not Found / Needs Setup) at a glance, plus an "X of Y stores fully configured" summary.
Use Refresh Stores after any Epicor change. If your store number or Epicor store character changed, Refresh from MySQL / Rescan INDecoded File re-reads the live list and heals the mapping.
A single store usually fixes itself. When there is exactly one store in Epicor and one store in Margin Master, the matchup is assigned automatically on import — you normally only need to set the Vendor Store # once.
Common Questions
Q: The import said it succeeded but my SKU count is 0. A: The import connected and ran, but the store filter matched no rows. This is almost always a store-matchup issue — check Store Manager for a Not Found badge or an Exclude check (steps 2–3 above).
Q: My store imported fine for months and suddenly brings in 0. A: Something about the store identity changed in Epicor (a new store character, or a re-numbering). Open Store Manager and click Refresh Stores to re-align, then re-import.
Q: Other stores import but one store is empty. A: That one store's row in Store Manager is either Excluded, or its POS Store character no longer matches Epicor (Not Found). Fix that row and re-import.
Technical Details (support)
The matchup model
Epicor's in_store is a single character. The matching ordinal is whatever the source returns for that character — captured once at discovery and stored in StoreManagerInfo.PosStoreCharOrdinal:
- MySQL Compass:
ORD(in_store)(for a normal latin1 Eagle database this is the byte value, e.g.ORD('1') = 49). - INDecoded: the raw byte read from the binary file (Epicor's binary→ASCII format change is bridged automatically).
The import filters with that exact ordinal: WHERE ORD(in_store) = @EpicorStoreCharOrdinal. The matchup is self-healing — before each import, ReconcileStoreManagerWithMySqlAsync re-reads the live Epicor store list and, for a single store, re-points a stale ordinal; '99999' is the unmapped sentinel, never a real vendor store number.
Diagnostic query
Run against the store's Margin Master database:
SELECT VendorStoreNumber, PosStoreNumber, PosStoreCharOrdinal, IsNotFound, Excluded
FROM StoreManagerInfo
WHERE DeleteDate IS NULL;
VendorStoreNumberblank → store still imports, keyed byPosStoreNumberand priced at the national zone (Needs Setup). Assign it so the store picks up its real zone pricing. Not a cause of 0 SKUs.IsNotFound = 1→ saved ordinal isn't in the live Epicor data. Refresh Stores to re-align.Excluded = 1→ intentionally skipped. This is the only flag that stops a store importing.- Confirm
PosStoreCharOrdinalmatches the live data. For MySQL, compare against:
-- run against the Epicor MySQL (EAGLEDW) database
SELECT in_store, ORD(in_store) AS Ordinal, COUNT(*) AS SkuCount
FROM `IN` WHERE ORD(in_store) > 0 GROUP BY in_store;
A row imports only when its PosStoreCharOrdinal equals an Ordinal returned above and VendorStoreNumber is set and Excluded = 0.
Related
- Store Manager — assign/repair the matchup
- Epicor MySQL Compass Import
- Epicor Eagle FTP Import
