ERP migration
Field-level mapping, validation, and rollback between MRPeasy and Epicor Prophet 21. We move data and schema; workflows are rebuilt natively in Epicor Prophet 21.
MRPeasy
Source
Epicor Prophet 21
Destination
Compatibility
8 of 12
objects map 1:1 between MRPeasy and Epicor Prophet 21.
Complexity
BStandard
Timeline
6-10 weeks
Overview
Moving from MRPeasy to Epicor ERP is a structural migration for growing manufacturers that have outgrown MRPeasy's per-user pricing model and 14-native-integration ecosystem. MRPeasy organizes its data around a compact eight-section model (Items, BOMs, Routings, MOs, Customers, Vendors, Inventory, Stock Lots) with a 3,000-line CSV import ceiling and API access locked behind the $149/user Unlimited tier. Epicor ERP uses a multi-table schema: Part and PartBin for inventory, PartRev and PartOpr for BOM and routing, JobHead and JobMtl for manufacturing orders, Customer and Supplier for trading partners, and a full GLChart with fiscal year configuration for accounting. We resolve the BOM decomposition (MRPeasy combines components and operations in one structure; Epicor separates them), the MO-to-Job transformation (one MO becomes one JobHead plus multiple JobMtl detail lines), and the inventory-to-PartBin assignment before cutover. We do not migrate Workstations, Storage Locations (manual in MRPeasy), MRPeasy Custom Fields (rebuilt as Epicor UD columns), or Workflows and Automations (delivered as a written inventory for admin rebuild).
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a MRPeasy object lands in Epicor Prophet 21, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
MRPeasy
Items (Articles/SKUs)
Epicor Prophet 21
Part + PartUOM
1:1MRPeasy Items map to Epicor Part records. PartNum (from MRPeasy part_number), PartDescription, UnitPrice, and CostMethod (Standard/Average/Lot) migrate directly. We resolve the Part's UOMClass via PartUOM since MRPeasy stores purchase and sales UOMs separately. MRPeasy's stock quantity is NOT set here—it's set during the Inventory Levels step. Items with MRPeasy custom fields require the customer to pre-create Epicor UD columns on Part before Part import, as Epicor does not have an equivalent flexible custom-field system to MRPeasy's Settings -> System -> Custom fields.
MRPeasy
Bills of Materials
Epicor Prophet 21
PartRev + PartMtl
1:manyMRPeasy BOMs decompose into Epicor PartRev (the revision header, holding revision code, effectivity dates, and BOM type) and PartMtl (one row per component, holding the material's PartNum, QtyPer, and BOMSequence). Multi-level BOMs (where a component is itself a manufactured part) require us to set PartMtl.MtlBurden = 1 and link through the nested PartRev. Co-product and disassembly BOMs (Professional+ in MRPeasy) map to PartRev.ReviewedReq = false flags for admin sign-off in Epicor before production use.
MRPeasy
Routings
Epicor Prophet 21
PartOpr + Workstation
1:manyMRPeasy Routings map to Epicor PartOpr records within the same PartRev revision. Each routing operation becomes a PartOpr row with OpSeq, WorkstationSeq, ProdStandard, EstSetHours, and EstLabHours. MRPeasy's Workstation Groups and Workstations cannot be imported via CSV in MRPeasy (per MRPeasy's documentation)—they must be manually configured. We flag this: the customer must create Workstation Groups and Workstations in Epicor (Epicor uses ResourceGroup and Resource tables) before PartOpr import so the PartOpr.WorkstationSeq can reference a valid ResourceGroup or Resource. Parallel and overlap operations from MRPeasy Routing map to PartOpr.SubContract, PartOpr.AutoReceive, and PartOpr.ProdStandard values.
MRPeasy
Manufacturing Orders
Epicor Prophet 21
JobHead + JobMtl + JobOper
1:manyMRPeasy Manufacturing Orders map to Epicor JobHead (header) with linked JobMtl (material components) and JobOper (operations). MRPeasy's single MO record must be split: JobHead stores status, start/end dates, and quantity; JobMtl stores one row per component drawn from the BOM; JobOper stores one row per routing operation. Epicor's scheduling engine recalculates start/end dates on JobHead on import based on current PartOpr capacity and Material Availability, just as MRPeasy's Dynamic Rescheduling engine does. We flag active/open MOs during scoping, advise the customer to close or freeze them before import where possible, and document the post-import JobHead date delta. Historical MOs migrate as completed JobHead records with actual labor and material costs carried forward.
MRPeasy
Customers
Epicor Prophet 21
Customer
1:1MRPeasy Customers map to Epicor Customer records. CustID (from MRPeasy customer_code), Name, Address, City, State, Zip, Country, Phone, Fax, and EMailAddress migrate directly. TaxID maps to Customer.TaxRegionCode. Customer price list assignments from MRPeasy migrate to Epicor PriceLcl records attached to the Customer. We create Customer records before any Order or Quote import to satisfy the FK reference. MRPeasy's customer-specific price list lines are mapped to Epicor's price break structure via PriceLcl during the Price Lists step.
MRPeasy
Vendors (Suppliers)
Epicor Prophet 21
Supplier
1:1MRPeasy Vendors map to Epicor Supplier records. VendorID (from MRPeasy vendor_code), Name, Address, City, State, Zip, Country, Phone, Fax, EMailAddress, and PaymentTerms migrate directly. MRPeasy's documented import sequence (Vendors before Items) is followed because Supplier records may be referenced on Part (Part.LeadTime, Part.VendorNum). We map Purchase Terms per vendor-item pair to Epicor SupplierPriceList or PartXRefVend records. Vendors without a vendor_code in MRPeasy are assigned a generated SupplierID based on MRPeasy's internal ID during migration.
MRPeasy
Inventory Levels
Epicor Prophet 21
PartBin
1:1MRPeasy Inventory Levels map to Epicor PartBin records. PartBin.PartNum, PartBin.WarehouseCode, PartBin.BinNum, and PartBin.OnhandQty migrate from MRPeasy's storage location and quantity data. MRPeasy's 3,000-line CSV cap applies to Inventory Level exports on lower tiers; large warehouses with thousands of SKUs require chunked export with sequential upload into Epicor. We chunk inventory exports by storage location and upload in sequence, tracking partial completion to avoid duplication. MRPeasy Storage Locations must be manually created in Epicor (Warehouse and Bin records via Epicor Warehouse/Bin maintenance) before PartBin import so that BinNum references are valid.
MRPeasy
Stock Lots
Epicor Prophet 21
PartLot
1:1MRPeasy Stock Lots map to Epicor PartLot records linked to PartBin. MRPeasy's lot/batch number, quantity, expiry date, received status, and storage location map to PartLot.LotNum, PartLot.OnhandQty, PartLot.ExpirationDate, PartLot.DateReceived, and the PartLot.WarehouseCode reference. Serial number tracking from MRPeasy Professional+ migrates to Epicor's PartLot with SerialNumber tracking enabled on the Part record (Part.SerialTracked = true). Expiry dates from MRPeasy carry forward as PartLot.ExpirationDate. We create Part records with the tracking flag enabled before PartLot import to satisfy the PartNum FK constraint.
MRPeasy
Price Lists
Epicor Prophet 21
PriceLcl
lossyMRPeasy Price Lists (customer-specific and product-specific pricing with currency) map to Epicor PriceLcl records. MRPeasy's price-per-unit, currency, minimum quantity, and effective date map to PriceLcl.UnitPrice, PriceLcl.CurrencyCode, PriceLcl.BreakMinQty, and PriceLcl.EffectiveDate. MRPeasy's multi-currency support means we map each MRPeasy price list line to an Epicor PriceLcl with the correct CurrencyCode; Epicor's multi-currency GL must be configured (Company.CurrencyMode) before price list import to ensure exchange rate application is correct. Tiered pricing from MRPeasy Professional+ becomes multiple PriceLcl rows with sequential BreakMinQty values.
MRPeasy
Transfer Orders
Epicor Prophet 21
TransferOrderHead + TransferOrderDetail
1:1MRPeasy Transfer Orders map to Epicor TransferOrderHead and TransferOrderDetail records. MRPeasy's lifecycle states (New, Ready, Shipped, Received, Canceled) map to TransferOrderHead.Status. MRPeasy's explicit note that 'Received' status is manual (not auto-completed) in MRPeasy is documented in our cutover checklist: in-transit orders land in Epicor as TransferOrderHead.Status = Shipped and require manual completion. Transportation costs and waybill reference from MRPeasy Transfer Orders map to Epicor TransferOrderHead.Freight charge and TransferOrderHead.Waybill fields. From-warehouse and To-warehouse codes map to WarehouseCodeFrom and WarehouseCodeTo on the detail row.
MRPeasy
Chart of Accounts
Epicor Prophet 21
GLAccount
1:1MRPeasy's built-in accounting module Chart of Accounts migrates to Epicor GLAccount records. MRPeasy account codes (revenue, cost, asset, liability, equity) map to Epicor's COA structure, which includes Company, FiscalYear, FiscalPeriod, and AccountPS fields. Non-standard MRPeasy account codes (custom accounts beyond the standard types) are flagged for manual reconciliation during Epicor's GL account setup. MRPeasy's financial transaction history (invoices, payments, journal entries) migrates to Epicor GLJrnDtl records with appropriate fiscal period assignment; fiscal year and period configuration in Epicor (GLFiscPeriod table) must be completed before financial data import.
MRPeasy
Users
Epicor Prophet 21
UserFile
1:1MRPeasy Users map to Epicor UserFile records. We export user records (user code, name, email, role, active/inactive status) from MRPeasy via the table export function and import into Epicor's UserFile table. Role assignments from MRPeasy (Admin, Production Manager, Buyer, etc.) map to Epicor SecurityRole assignments. MRPeasy does not support SSO or directory integration on Starter/Professional tiers; Epicor ERP supports SAML-based SSO which may be configured post-migration. Inactive MRPeasy users are created as inactive Epicor UserFile records to preserve historical assignments on closed MOs and historical records.
| MRPeasy | Epicor Prophet 21 | Compatibility | |
|---|---|---|---|
| Items (Articles/SKUs) | Part + PartUOM1:1 | Fully supported | |
| Bills of Materials | PartRev + PartMtl1:many | Fully supported | |
| Routings | PartOpr + Workstation1:many | Fully supported | |
| Manufacturing Orders | JobHead + JobMtl + JobOper1:many | Mapping required | |
| Customers | Customer1:1 | Fully supported | |
| Vendors (Suppliers) | Supplier1:1 | Fully supported | |
| Inventory Levels | PartBin1:1 | Mapping required | |
| Stock Lots | PartLot1:1 | Fully supported | |
| Price Lists | PriceLcllossy | Fully supported | |
| Transfer Orders | TransferOrderHead + TransferOrderDetail1:1 | Mapping required | |
| Chart of Accounts | GLAccount1:1 | Mapping required | |
| Users | UserFile1:1 | Mapping required |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
MRPeasy gotchas
API access locked behind Unlimited plan
3000-line CSV import cap per upload
Workstations and Storage Locations must be manually configured
Active Manufacturing Orders trigger dynamic rescheduling on import
Transfer Order 'Received' status is manual
Epicor Prophet 21 gotchas
Third-party bolt-on integrations complicate migration scope
Dirty data without standardized processes compounds migration risk
SDK customizations and BPMs may not survive platform upgrades
Report-based export only for non-technical users
Per-user pricing model requires accurate user count before migration planning
Pair-specific challenges
Migration approach
Discovery and plan-tier scoping
We audit the source MRPeasy environment across plan tier (Starter/Professional/Unlimited), object counts (Items, BOMs, Routing operations, MOs, Customers, Vendors, Inventory records, Stock Lots, Price Lists), active/inactive record ratios, and custom field definitions. We confirm whether the customer has API access (Unlimited plan) or must rely on CSV exports, and we measure the total record count against the 3,000-line CSV cap to determine whether chunked export is required. The discovery output is a written migration scope with record counts per object, BOM depth analysis, active MO inventory, and a pre-migration checklist of manual destination-side prerequisites (Epicor Warehouses, Bins, ResourceGroups, Resources, UD columns).
Epicor schema provisioning and BOM decomposition design
We design the Epicor destination schema in the customer's Epicor test environment. For BOMs, we design the PartRev and PartOpr structure: each MRPeasy BOM becomes a PartRev with the MRPeasy BOM code as PartRev.BOMCode and the default revision as PartRev.RevisionNum, with all MRPeasy components mapped to PartMtl rows and all MRPeasy operations mapped to PartOpr rows with valid ResourceGroup references. For MOs, we design the JobHead and JobMtl split strategy: the customer must confirm whether active MOs should import as open jobs (JobHead.JobFirm = false, allowing rescheduling) or be closed in MRPeasy first. We create the GL fiscal year and period configuration in Epicor for Chart of Accounts migration, and we document the UD column creation list for each Epicor table based on MRPeasy custom field definitions.
Sandbox migration and reconciliation
We run a full migration into the customer's Epicor Sandbox using production-like data volume. The customer's manufacturing operations lead and Epicor consultant reconcile Part records (part numbers, descriptions, UOM), PartRev BOM structure (component counts, operation counts), JobHead records (status distribution, date ranges), PartBin inventory (warehouse totals, unit costs), and Customer/Supplier records (address and contact completeness). Spot-checks on 30-50 BOMs verify component quantities and operation sequences. The customer signs off on BOM decomposition logic, routing mapping, and inventory allocation before production migration begins. Any schema corrections happen here.
Vendor and Item foundation load
We load Supplier records first (following MRPeasy's documented dependency order) because Part records can reference SupplierID for lead time and preferred vendor. Items/Parts are loaded second with PartNum, PartDescription, and Part.UnitPrice. PartUOM is configured during Part import. Parts with serial number tracking (from MRPeasy Professional+ Serialized items) have Part.SerialTracked = true set during import. UD columns on Part must be pre-created by the customer before this phase begins; we load the Part records with UD column values in the same pass. Completed Parts trigger Epicor's unit of measure validation before proceeding.
BOM and Routing migration
We migrate PartRev and PartMtl records using the BOM decomposition logic designed in Phase 2. Multi-level BOMs are resolved in dependency order (lowest-level manufactured components first, then sub-assemblies, then top-level finished goods). PartOpr records are loaded after their parent PartRev exists, with ResourceGroup references validated against the manually created Workstation setup. Co-product and disassembly BOMs from MRPeasy Professional+ are flagged in the Epicor PartRev record for admin review (PartRev.ReviewedReq = true) since Epicor does not have a direct co-product flag equivalent. Routing operations with overlap and parallel execution map to PartOpr.AutoReceive and PartOpr.SubContract flags.
Manufacturing Order, Inventory, and Stock Lot migration
We migrate JobHead and JobMtl records from MRPeasy MOs. Active/open MOs are imported as JobHead.JobFirm = false (allowing Epicor's scheduling engine to recalculate) unless the customer has frozen them. We document the original MRPeasy start/end dates for comparison. PartBin inventory is loaded with PartNum, WarehouseCode, BinNum, and OnhandQty validated against the manually created Warehouse/Bin structure. PartLot records (stock lots and serial numbers) are loaded last, with PartLot.ExpirationDate and PartLot.DateReceived carried forward. PartBin quantities and PartLot quantities are cross-validated to ensure PartBin.OnhandQty equals the sum of PartLot.OnhandQty for each PartNum/WarehouseCode combination.
Cutover, validation, and automation handoff
We freeze MRPeasy writes during cutover, run a final delta migration of any MRPeasy records modified during the migration window, then enable Epicor ERP as the system of record. We validate PartBin quantities against the final MRPeasy inventory snapshot, run Epicor's Inventory konsolidacja (consolidation) report, and verify JobHead record counts and status distribution. We deliver a written inventory of MRPeasy automations (if any exist on the customer's plan), routing configurations, and custom field UD column mapping requiring admin rebuild in Epicor. We support a one-week hypercare window for reconciliation issues. We do not rebuild MRPeasy workflows or automations as Epicor Business Process Management (BPM) rules inside the migration scope; that is a separate Epicor consultant engagement.
Platform deep dives
MRPeasy
Source
Strengths
Weaknesses
Epicor Prophet 21
Destination
Strengths
Weaknesses
Complexity grading
Standard ERP migration. 2 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across MRPeasy and Epicor Prophet 21.
Object compatibility
2 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
MRPeasy: Not publicly documented.
Data volume sensitivity
MRPeasy doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during MRPeasy to Epicor Prophet 21 migration scoping. Not seeing yours? Book a call.
Walk through your MRPeasy to Epicor Prophet 21 migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave MRPeasy
Other ways to arrive at Epicor Prophet 21
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.