ERP migration
Field-level mapping, validation, and rollback between ERPAG and Epicor Prophet 21. We move data and schema; workflows are rebuilt natively in Epicor Prophet 21.
ERPAG
Source
Epicor Prophet 21
Destination
Compatibility
11 of 14
objects map 1:1 between ERPAG and Epicor Prophet 21.
Complexity
BStandard
Timeline
6-10 weeks
Overview
Moving from ERPAG to Epicor ERP is a platform upgrade that reflects how the customer's manufacturing complexity has outgrown SMB-tier tooling. ERPAG is scoped for small-to-midsize manufacturers who need clean inventory, sales, and purchasing tracking with basic MRP; Epicor Kinetic targets 50-to-2,500-employee discrete manufacturers who need deep shop floor control, MES, configure-to-order, multi-level BOMs, and job costing at scale. We sequence the migration around ERPAG's API rate limit of 2 requests per second, exporting historical data in date-range chunks during off-peak hours to avoid blocking live operations. Custom fields exist on most ERPAG objects and are Advanced-plan exclusives, so we scope plan tier first. The double-SKU supplier mapping on Purchase Orders migrates into Epicor's Supplier Part Cross Reference (PartXRefRef) table, and ERPAG's BOM structures require flattening or nesting reconstruction depending on the target Epicor module (PDM or MES). Localization settings do not retroactively rewrite ERPAG documents, so currency and tax configurations are scoped separately from historical document migration. Workflows, automations, B2B portal configurations, and custom document types do not migrate as code; we deliver a written inventory of these for the customer's Epicor admin to rebuild post-cutover.
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 ERPAG 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.
ERPAG
Item
Epicor Prophet 21
Part
1:1ERPAG Items map to Epicor Part records with PartNumber derived from the ERPAG SKU, Description from the Item name, and UnitCost from the current standard cost. ERPAG's cost and price fields translate to Part.StandardBurdenCost, Part.StandardLaborCost, and Part.StandardMaterialCost on the manufacturing cost roll. Stock levels per warehouse migrate to PartWhse records, one per ERPAG warehouse, with OnHandQty and BinCode resolved. We handle any phantom negative quantities from ERPAG's concurrent-write glitch by applying the Repairs and Maintenance fix before extracting stock data.
ERPAG
Customer
Epicor Prophet 21
Customer
1:1ERPAG Customer records map to Epicor Customer with CustID derived from the ERPAG customer code, Name from the company name, and Address fields mapped to the primary billing address. ERPAG's financial overview fields (credit limit, payment terms) migrate to Customer fields. ShipTo addresses migrate as CustomerShipTo records linked to the parent Customer. We resolve any B2B portal assignments from ERPAG as notes for the customer's admin to configure in Epicor Customer Connect or a portal equivalent.
ERPAG
Supplier
Epicor Prophet 21
Supplier
1:1ERPAG Suppliers map to Epicor Supplier with SupplierID derived from the ERPAG supplier code. ERPAG's double-SKU fields, which store the supplier's own SKU alongside ERPAG's internal SKU, migrate to Epicor's Supplier Part Cross Reference table (PartXRefRef) as part of the same migration pass. Purchasing terms and payment terms map to the Supplier record's standard fields. We preserve the cross-SKU mapping so that future purchase orders in Epicor can reference supplier part numbers directly.
ERPAG
Sales Order
Epicor Prophet 21
OrderHed + OrderDtl
1:1ERPAG Sales Orders map to Epicor OrderHed (header) and OrderDtl (line) records. The ERPAG payment_status column is preserved as an OrderHed field. Line items map with Quantity, UnitPrice, and the ERPAG Item SKU resolved to an Epicor PartNum. We migrate open and recently closed sales orders; fully historical orders beyond the reporting window are flagged for archival rather than live migration to avoid performance load in Epicor.
ERPAG
Invoice
Epicor Prophet 21
InvoiceHed + InvoiceDtl
1:1ERPAG Invoices map to Epicor InvoiceHed and InvoiceDtl with InvoiceNum as the reference, Customer mapped to CustNum, and invoice totals mapped to open or closed status fields. Tax amounts and currency from ERPAG's localization settings are preserved as-is, noting that ERPAG's currency and tax code settings are frozen at company initialization and do not retroactively rewrite historical documents.
ERPAG
Purchase Order
Epicor Prophet 21
POHeader + PODetail
1:1ERPAG Purchase Orders map to Epicor POHeader and PODetail. The double-SKU entry (ERPAG SKU + supplier SKU) is resolved using the PartXRefRef table created during the Supplier migration pass. Goods-received state from ERPAG maps to PODetail.ReceivedQty. We flag any ERPAG Purchase Orders in pending or draft state for the customer's Epicor admin to review before finalizing.
ERPAG
Quotation
Epicor Prophet 21
QuoteHed + QuoteDtl
1:1ERPAG Quotations map to Epicor QuoteHed and QuoteDtl with validity dates, pricing, and custom fields preserved. Quotation line items resolve Item SKUs to Epicor PartNums. ERPAG's quotation-to-sales-order conversion history is noted as a data point for Epicor's quote-to-order workflow rebuild.
ERPAG
Work Order
Epicor Prophet 21
JobHead + JobMtl + JobOper
1:manyERPAG Work Orders map to Epicor JobHead, with estimated materials sourced from ERPAG's BOM references, estimated labor from ERPAG's cost fields, and actuals preserved for job costing. ERPAG's production status maps to JobHead.JobClosed, JobHead.JobComplete, or JobHead.JobEngineered. Estimated vs. actual cost fields migrate as JobMtl and JobOper cost fields. For work orders without BOM references in ERPAG, we flag for manual routing assignment in Epicor before migration closes.
ERPAG
Bill of Materials (BOM)
Epicor Prophet 21
PartMtl (multi-level)
1:manyERPAG BOMs map to Epicor PartMtl records. Single-level BOMs from ERPAG map directly to one PartMtl parent per BOM. Multi-level nested BOMs in ERPAG (if present in Advanced-plan accounts) are expanded and reconstructed as a hierarchy of PartMtl records with the correct ParentPartNum and MtlPartNum references. ERPAG BOM revision tracking maps to Epicor's revision control on Part. If ERPAG BOMs use sub-assemblies not present as standalone parts in Epicor, we flag them for BOM-level review before import.
ERPAG
Warehouse
Epicor Prophet 21
Site + Warehse
1:1ERPAG Warehouses map to Epicor Site (the facility or plant level) and Warehse (the physical warehouse within a site). ERPAG's per-warehouse tax settings, currency, and price list settings are documented as configuration notes for the customer's Epicor admin to apply at the Site or Company configuration level, since these are company-initialized settings in Epicor that do not retroactively rewrite imported data.
ERPAG
Custom Field
Epicor Prophet 21
User Defined Field (UDF) or Custom Field
1:1ERPAG Custom Fields (up to 15 per document type) map to Epicor User Defined Fields (UDFs) or Extended User Defined Fields depending on the ERPAG custom field type (Free text, List, Amount, Price, Date, Date and time). Custom Tables defined via ERPAG's Custom Table feature (introduced 2025) require schema review to determine whether they map to Epicor UD Codes, a custom table, or a related entity. Custom fields are Advanced-plan exclusives; we verify plan tier during scoping and flag any Advanced-gated objects that appear in the data inventory.
ERPAG
User and User Role
Epicor Prophet 21
User + UserGrp
1:1ERPAG Users map to Epicor Users with username, email, and active/inactive status preserved. Role-based permissions from ERPAG document restrictions and general restrictions are exported as scope notes for the customer's Epicor admin to rebuild using Epicor's Security Manager and Role configuration. Active vs. inactive status determines whether the user is provisioned as active in Epicor or held in a provisioning queue.
ERPAG
Item Warehouse Stock
Epicor Prophet 21
PartWhse
1:manyERPAG's per-warehouse stock levels (OnHandQty, reserved quantity, available quantity) for each Item map to Epicor PartWhse records, one per warehouse-site combination. Bin locations from ERPAG map to PartBin records if Epicor's warehouse management configuration is active. We detect and repair any phantom negative quantities during the export phase before PartWhse records are created in Epicor.
ERPAG
Supplier Pricing
Epicor Prophet 21
SupplierPriceList
1:1ERPAG supplier-specific pricing guidelines (per-item price breaks by quantity tier) map to Epicor Supplier Price List records linked to the Supplier and Part. ERPAG's multi-warehouse pricelists require separate scoping if the customer uses Epicor's per-site price list configuration.
| ERPAG | Epicor Prophet 21 | Compatibility | |
|---|---|---|---|
| Item | Part1:1 | Fully supported | |
| Customer | Customer1:1 | Fully supported | |
| Supplier | Supplier1:1 | Fully supported | |
| Sales Order | OrderHed + OrderDtl1:1 | Fully supported | |
| Invoice | InvoiceHed + InvoiceDtl1:1 | Fully supported | |
| Purchase Order | POHeader + PODetail1:1 | Fully supported | |
| Quotation | QuoteHed + QuoteDtl1:1 | Fully supported | |
| Work Order | JobHead + JobMtl + JobOper1:many | Fully supported | |
| Bill of Materials (BOM) | PartMtl (multi-level)1:many | Fully supported | |
| Warehouse | Site + Warehse1:1 | Fully supported | |
| Custom Field | User Defined Field (UDF) or Custom Field1:1 | Fully supported | |
| User and User Role | User + UserGrp1:1 | Fully supported | |
| Item Warehouse Stock | PartWhse1:many | Fully supported | |
| Supplier Pricing | SupplierPriceList1:1 | Fully supported |
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.
ERPAG gotchas
API rate limit of 2 requests per second throttles bulk migration speed
Localization settings do not retroactively rewrite existing documents
Plan tier gates Customization, Portal, and Automation features
No native negative inventory support; phantom negatives require repair step
Delete-all-transactions preserves inventory and contacts, requiring separate scoping
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 verification
We audit ERPAG across plan tier, custom field definitions, custom tables, BOM structures, warehouse count, active supplier pricing tiers, and transaction volume by object type. We identify Advanced-plan-gated objects (custom fields, custom documents, B2B portal configurations, automation scripts) and confirm the customer's ERPAG plan tier. If Advanced-gated objects appear in the data inventory and the customer is on Basic or Professional, we flag the upgrade requirement before proceeding. The discovery output is a written migration scope with object inventory, BOM complexity rating, and an Epicor edition recommendation based on the customer's target user count and manufacturing module requirements.
BOM analysis and PartXRefRef schema prep
We analyze ERPAG BOM structures for nesting depth, sub-assembly usage, and revision tracking patterns. We map single-level BOMs directly to PartMtl records. For multi-level BOMs, we reconstruct the nesting tree and identify any sub-assemblies that require Part provisioning before BOM import. In Epicor, we pre-create the PartXRefRef cross-reference records for every supplier-SKU pair extracted from ERPAG Purchase Orders, so that PODetail imports resolve correctly. BOM revision history is documented as a configuration note for Epicor's revision control setup.
Warehouse and Site mapping
We map every ERPAG Warehouse to an Epicor Site and Warehse combination. Per-warehouse tax settings, currency, and price list settings from ERPAG are documented as configuration notes for Epicor Company and Site initialization rather than imported as data. We run the phantom negative quantity repair step from ERPAG (Repairs and maintenance in database settings) before extracting stock levels, ensuring that PartWhse.OnHandQty records in Epicor reflect corrected quantities.
Sandbox migration and reconciliation
We run a full migration into an Epicor Sandbox using production-like data volume. ERPAG's API rate limit means this phase runs in chunked export batches with pacing, so the sandbox pass validates that our date-range chunking, BOM nesting reconstruction, and PartXRefRef resolution produce the expected record counts and relationships in Epicor. The customer's manufacturing operations lead spot-checks PartRev BOM structures, Job costing on Work Orders, and PartWhse bin allocations against the ERPAG source. Schema corrections happen here, not in production.
Production migration in dependency order
We run production migration in record-dependency order: Sites and Warehouses (configured, not migrated), Parts and PartRev (BOM revision), PartMtl (BOM structure), PartWhse (stock levels), Suppliers and PartXRefRef (cross-references), Customers and CustomerShipTo, QuoteHed and QuoteDtl, POHeader and PODetail, OrderHed and OrderDtl, InvoiceHed and InvoiceDtl, JobHead and JobMtl and JobOper (Work Orders), Custom Fields and UDFs (with plan-tier verification), and User provisioning notes for the customer's Epicor admin. Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, delta migration, and automation rebuild handoff
We freeze ERPAG writes during cutover, run a final delta migration of any records created or modified during the migration window, then enable Epicor as the system of record. We deliver a written inventory of ERPAG Automation scripts, B2B portal configurations, and custom document types with recommended Epicor equivalents (Kinetic Business Process Management, Customer Connect portal, Customization via Kinetic Studio). The customer's Epicor admin or implementation partner rebuilds automations and portal configuration post-cutover. We support a one-week hypercare window for reconciliation issues. We do not rebuild ERPAG workflows as Epicor Kinetic automations inside the migration scope.
Platform deep dives
ERPAG
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 ERPAG 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
ERPAG: 2 requests per second.
Data volume sensitivity
ERPAG 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 ERPAG to Epicor Prophet 21 migration scoping. Not seeing yours? Book a call.
Walk through your ERPAG 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 ERPAG
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.