ERP migration
Field-level mapping, validation, and rollback between AltheaSuite and Epicor Prophet 21. We move data and schema; workflows are rebuilt natively in Epicor Prophet 21.
AltheaSuite
Source
Epicor Prophet 21
Destination
Compatibility
9 of 12
objects map 1:1 between AltheaSuite and Epicor Prophet 21.
Complexity
BStandard
Timeline
8-12 weeks
Overview
AltheaSuite and Epicor ERP occupy different positions in the manufacturing ERP landscape. AltheaSuite is a cloud inventory-first platform built for furniture, appliances, and manufacturing SMBs with integrated POS, offering deep serial and lot tracking within a simpler data model. Epicor ERP (including Epicor Kinetic and Epicor Prophet 21) is a manufacturing-first platform built for mid-market discrete, make-to-order, and job-shop operations, with native MES, advanced scheduling, configure-to-order, and multi-site inventory management. The migration is driven by companies outgrowing AltheaSuite's reporting depth, BOM complexity, and shop-floor capabilities as they scale from 20 to 50+ employees. We extract the AltheaSuite data model through vendor-mediated export, translate Items to Epicor Part and PartPlant records, flatten multi-level BOMs into Epicor's indented structure, map Work Orders to Epicor Job records, and re-associate serial and lot assignments to the correct Part. Custom Item fields from AltheaSuite migrate to Epicor UD tables with explicit type conversion. We do not migrate AltheaSuite workflows, automations, or POS-specific configurations; we deliver a written inventory of these for the customer's Epicor admin to 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 AltheaSuite 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.
AltheaSuite
Item
Epicor Prophet 21
Part + PartPlant
1:1AltheaSuite Items map to Epicor ERP Part records. Standard fields (item number, description, uom, item type) translate directly. Custom Item fields from AltheaSuite (text, number, lookup value, date, fractional number) map to Epicor UD tables (UD01-UD10 or table-prefixed ZDataField entries) with explicit field-type conversion. We discover all custom Item field definitions during schema profiling, validate them against the live AltheaSuite system, and create matching UD fields in Epicor before Part import begins. PartPlant records are created for each Site where the Item carries on-hand quantity or reorder level data.
AltheaSuite
Serial Number Records
Epicor Prophet 21
PartLot (serial-controlled)
1:1AltheaSuite serial numbers are stored as separate assignment records linked to Items. Epicor manages serial numbers via PartLot with a dedicated SerialNumber table. We extract the full serial-to-item mapping as a child table during export, then re-associate each serial assignment in Epicor by inserting a PartLot record with the AltheaSuite serial number and linking it to the correct Part via PartLot.PartNum. We flag any orphaned serial records with no parent Item for manual resolution before finalizing the import.
AltheaSuite
Lot and Expiry Records
Epicor Prophet 21
PartLot (lot-controlled)
1:1AltheaSuite lot-controlled Items carry lot number and expiry date. Epicor ERP stores lot data in PartLot with LotNumber, ExpirationDate, and Plant fields. We migrate lot assignment records with expiry dates preserved, and we flag any FEFO (first-expiry-first-out) implications for inventory planning in Epicor. If the destination Epicor site has lot cost averaging or lot-specific GL accounts configured, we align the lot cost data to the relevant PartLot.CostPerEach or PartLot.MiscCost fields.
AltheaSuite
Customer
Epicor Prophet 21
Customer
1:1AltheaSuite Customer records migrate to Epicor Customer with contact details, addresses, and account-level fields. Customer's default ship-to addresses map to Customer.ShipTo records in Epicor. Vendor-managed inventory flags stored as boolean properties on AltheaSuite Vendor records translate to Customer.VMTaxbl or a custom UD field on Customer. The customer number from AltheaSuite becomes Customer.CustID if it meets Epicor's field-length constraints; otherwise we generate a mapped CustID and maintain the AltheaSuite reference in a UD field.
AltheaSuite
Vendor
Epicor Prophet 21
Vendor
1:1AltheaSuite Vendor records transfer with contact info, addresses, and supplier-level fields intact. Vendor.ManagedInventory flag from AltheaSuite translates to Vendor.VendQtaxable or a UD01 flag on the Vendor record. Bank details, payment terms, and routing information migrate as Vendor PPVVendor records if the destination Epicor company has vendor payment configuration enabled.
AltheaSuite
Sales Order
Epicor Prophet 21
OrderHed + OrderDtl
1:1AltheaSuite Sales Orders map to Epicor OrderHed (order header) and OrderDtl (order lines). Order-to-delivery linkage from AltheaSuite translates to Epicor OrderRel records for each scheduled release. Fulfillment status (partial vs. complete) migrates as OrderDtl.OrderLine.Complete sets. Multi-currency order amounts require explicit mapping against Epicor's Currency table if the destination company uses multi-currency. We do not migrate POS-specific sales records; these are flagged as POS-layer data outside the ERP migration scope.
AltheaSuite
Purchase Order
Epicor Prophet 21
POHeader + PODetail
1:1AltheaSuite Purchase Orders map to Epicor POHeader and PODetail. Line items, quantities, and costs translate directly. Multi-currency PO amounts and landed-cost fields require explicit value-mapping against Epicor's Currency and LandedCostCode tables. If AltheaSuite PO records carry any custom fields, these map to PODetail character or numeric UD fields.
AltheaSuite
Work Order
Epicor Prophet 21
JobMtl + JobOper (parent Job record)
1:manyAltheaSuite Work Orders are tied to multi-level BOMs and track production status. Epicor ERP represents production as a Job record with JobMtl (materials) and JobOper (operations) child tables. We translate each AltheaSuite Work Order to an Epicor Job with the BOM structure flattened into JobMtl entries. Step-level labor and machine time entries from AltheaSuite migrate as JobOper records with the AltheaSuite duration and work center data mapped to Epicor's LaborHrs and ResourceGrpID fields. If AltheaSuite tracks scrap or rework at the step level, we carry those quantities as JobMtl.MtlSpansreven or JobOper.ScrapQty. Production status (released, in-progress, complete, closed) migrates to JobHead.JobEngineered, JobHead.JobReleased, and JobHead.JobComplete flags.
AltheaSuite
Multi-level BOM
Epicor Prophet 21
PartMtl (indented)
lossyAltheaSuite BOMs support nested sub-assemblies (parent Item, child sub-assembly Item, sub-sub-assembly Item). Epicor ERP uses a flat PartMtl table with a ParentPartNum reference and a BOMLevel integer. We flatten the AltheaSuite BOM hierarchy during the transform phase, computing the Epicor BOMLevel for each row and preserving the quantity-per-parent and scrap-factor data from each AltheaSuite BOM line. If AltheaSuite carries alternate materials or BOM notes, these translate to PartMtl.AltMtl and PartMtl.Text fields respectively. The BOM revision in AltheaSuite maps to PartRev.RevisionNum in Epicor.
AltheaSuite
Custom Fields (Items)
Epicor Prophet 21
UD01-UD10 / ZDataField tables
lossyAltheaSuite custom Item fields (text, number, lookup value, date, fractional number) require pre-creation in Epicor UD tables before Part import. We enumerate all custom field definitions during schema profiling, map each AltheaSuite field type to the corresponding Epicor UD field type (character for text, decimal for fractional, integer for number, date for date, and dropdown options for lookup values), and create the UD table entries via Epicor Ice BO ZDataTable or directly via Epicor REST API. AltheaSuite lookup values requiring specific picklist options in Epicor UD fields are pre-seeded with the AltheaSuite option list.
AltheaSuite
Item pricing and reorder levels
Epicor Prophet 21
PartPlant + PartWhse
1:1AltheaSuite reorder levels, reorder quantities, and min/max levels migrate to Epicor PartPlant records. If AltheaSuite carries vendor-specific pricing per Item, this data migrates to Epicor PartVendor records for MRP-driven PO suggestions. Standard costs from AltheaSuite map to PartRev.EstScrapQty or Part.CostID depending on the Epicor cost set in use.
AltheaSuite
Inventory on-hand quantities
Epicor Prophet 21
PartWhse
1:1AltheaSuite on-hand quantities per Item per location translate to Epicor PartWhse records. We extract the full inventory snapshot from AltheaSuite before cutover and load it into Epicor PartWhse with the corresponding WarehseCode. On-hand quantities are loaded last in the migration sequence to avoid MRP noise during earlier phases. We reconcile the on-hand total against AltheaSuite's inventory valuation report and flag discrepancies exceeding 0.5% for manual review before go-live.
| AltheaSuite | Epicor Prophet 21 | Compatibility | |
|---|---|---|---|
| Item | Part + PartPlant1:1 | Fully supported | |
| Serial Number Records | PartLot (serial-controlled)1:1 | Mapping required | |
| Lot and Expiry Records | PartLot (lot-controlled)1:1 | Mapping required | |
| Customer | Customer1:1 | Fully supported | |
| Vendor | Vendor1:1 | Fully supported | |
| Sales Order | OrderHed + OrderDtl1:1 | Fully supported | |
| Purchase Order | POHeader + PODetail1:1 | Fully supported | |
| Work Order | JobMtl + JobOper (parent Job record)1:many | Fully supported | |
| Multi-level BOM | PartMtl (indented)lossy | Fully supported | |
| Custom Fields (Items) | UD01-UD10 / ZDataField tableslossy | Mapping required | |
| Item pricing and reorder levels | PartPlant + PartWhse1:1 | Fully supported | |
| Inventory on-hand quantities | PartWhse1: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.
AltheaSuite gotchas
Pricing is not publicly available
No public API or documented export endpoints
Custom fields on Items must be explicitly enumerated
Serialized and lot-controlled inventory requires traceability reconciliation
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 export request from AltheaSuite
We audit the AltheaSuite account across Items (standard and custom fields), Customers, Vendors, Purchase Orders, Sales Orders, Work Orders, multi-level BOMs, serial number assignments, lot number assignments, and on-hand inventory snapshots. Simultaneously, we request a structured data dump from the AltheaSuite team (MSSQL format per their FAQ, or CSV export via their vendor-assisted export process). We validate the dump's schema completeness against our enumeration checklist and flag any missing tables or incomplete fields before mapping begins. If no structured export is available, we scope manual extraction steps and extend the timeline accordingly.
Epicor schema design and UD table creation
We design the destination Epicor ERP schema in the customer's Sandbox or Development environment. This includes creating Part records (with PartType, TypeCode, and UOMClass), PartPlant records per Site, PartWhse records per warehouse, PartMtl BOM entries (with computed BOMLevel), Job records for each Work Order, and all UD table entries for AltheaSuite custom Item fields. For each UD field we configure the field type, label, and dropdown options, and we write a BPM directive to populate the UD field from the DMT import context at insert time. We deploy via Epicor REST API or directly into the Sandbox environment for validation before production migration.
BOM flattening and transform
We transform the AltheaSuite multi-level BOM data during the extract-transform phase. Each AltheaSuite BOM is traversed recursively to compute the Epicor BOMLevel for each material row, preserve quantity-per-parent, scrap factor, and phantom BOM flags. The flattened BOM output is validated against the AltheaSuite source: the total component count per BOM must match, and every child PartNum must have a corresponding Epicor Part record. BOMs failing validation are returned to the customer for resolution before PartMtl import begins.
Sandbox migration and reconciliation
We run a full migration into the Epicor Sandbox environment using production-like data volume. The customer's Epicor administrator and operations lead reconcile record counts (Parts in, Customers in, BOMs in, Work Orders in, inventory on-hand), spot-check 25-50 records against the AltheaSuite source, and verify BOM completeness by comparing a sample of multi-level BOMs. Any mapping corrections, missing UD fields, or BOM validation failures are resolved in Sandbox before the production migration sequence begins.
Owner and vendor reconciliation
AltheaSuite does not have a User-object equivalent that maps to Epicor's Security (User) table. We extract all vendor references from AltheaSuite records and verify they exist as Vendor records in Epicor. For any AltheaSuite vendor record that references a contact person with no Epicor equivalent, we create a Contact record linked to the Vendor. If the AltheaSuite data includes assigned sales rep or buyer IDs on orders, we map those to Epicor SalesRep or BuyerID fields on the respective orders.
Production migration in dependency order
We run production migration in Epicor DMT dependency order: Part (with PartRev for BOM revisions), PartPlant, PartWhse, Customer, Vendor, PartMtl (BOM lines), POHeader and PODetail, OrderHed and OrderDtl, Job records (with JobMtl and JobOper), PartLot (for lot and serial assignments, with serial-to-part re-association verified), and finally PartWhse on-hand quantities loaded from the AltheaSuite inventory snapshot. Each phase emits a row-count reconciliation report. We do not load on-hand quantities until all Part, warehouse, and BOM records are validated, to prevent MRP from generating incorrect suggestions during migration.
Cutover, validation, and documentation handoff
We freeze AltheaSuite writes during cutover, run a final delta migration of any records modified during the migration window, then enable Epicor ERP as the system of record. We deliver a written inventory of all AltheaSuite workflows, automations, and POS-specific configurations that do not migrate, with each item tagged as rebuild-required in Epicor (Workflow, BPM, Kinetic Dashboard, or POS module). We support a one-week hypercare window for reconciliation issues. We do not rebuild AltheaSuite automations as Epicor BPMs or Kinetic workflows within the migration scope; that work is a separate engagement or an internal Epicor admin task.
Platform deep dives
AltheaSuite
Source
Strengths
Weaknesses
Epicor Prophet 21
Destination
Strengths
Weaknesses
Complexity grading
Standard ERP migration. 3 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 AltheaSuite and Epicor Prophet 21.
Object compatibility
3 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
AltheaSuite: Not publicly documented.
Data volume sensitivity
AltheaSuite 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 AltheaSuite to Epicor Prophet 21 migration scoping. Not seeing yours? Book a call.
Walk through your AltheaSuite 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 AltheaSuite
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.