Skip to main content

Epicor Prophet 21 Add/Update Transaction TO iPaaS

Add or update Prophet 21 transaction records to IpaaS.com

Updated over a week ago

Overview

This integration transfers Transaction records from Prophet 21 to iPaaS as Transactions. The mapping transforms Prophet 21 Transaction, Address, Line Item, Tax, and Tracking data into the format required by iPaaS. This ensures both systems maintain consistent and accurate transaction information.

Mapping Collection Status

  • Mapping Status: Enabled.

  • Trigger Events: Create, Update.

ID Format

When manually transferring data from Prophet 21 to iPaaS, enter the Prophet 21 Transaction ID in the iPaaS input field (for example, 2). The Prophet 21 Transaction ID is used directly without any suffix.

  • External ID Format: The Invoice ID serves as the external ID. For example: 0235598.

Duplicate and Conflicting Mappings

This mapping applies only to Transactions from Prophet 21. Ensure no other mappings target the same iPaaS Transaction entity to prevent data from being overwritten.

Supported Child Collections

This parent mapping collection supports the following child collections:

System Caveats

Prophet 21

  • InvoiceNo must be unique.

  • PaidInFullFlag, ProcessedFlag, and ShipDate must follow Prophet 21 standards.

iPaaS.com

  • iPaaS requires a valid CompanyId for every transaction.

  • Product and Location must already exist in iPaaS for Transaction Line and Tracking mappings.

  • An incorrect or missing ShippingMethod will block tracking sync.

Setup Requirements

Prophet 21 Configuration

  • The Transaction, Pricing, and Tax fields must be properly set.

  • Ensure Ship-To email, address, and shipping method are populated where applicable.

iPaaS Configuration

  • Ensure Companies, Products, and Shipping Methods exist to avoid mapping errors

  • Enable Transaction Number uniqueness.

Authentication & Security

Prophet 21 uses username and password authentication to access the iPaaS API. These credentials authorize all Prophet 21 API requests during transfer operations.

Integration Flow

The integration processes Prophet 21 invoices as follows:

  1. The integration is triggered when a Transaction is created or updated in Prophet 21.

  2. Transaction data is fetched from Prophet 21 along with Line, Address, and Tracking records.

  3. The CompanyId is resolved using the Prophet 21 CustomerId.

  4. Field mappings and dynamic formulas are applied to transform data.

  5. Child collection filters validate Product and Shipping Method existence.

  6. The Transaction and all related child entities are inserted or updated in iPaaS.

  7. Sync results are logged for troubleshooting.

Mappings

Parent: Prophet 21 Add Transaction To iPaaS

Description

This mapping collection transfers transaction data from Prophet 21 to iPaaS as Transaction records.

Mapping Type

Source (Prophet 21)

Destination (iPaaS.com)

Description

Dynamic Formula

if (!string.IsNullOrWhiteSpace(CustomerId)) { var iPaaSCompanyId = await GetSpaceportIdAsync(CustomerId, "Company", SpaceportSystemId); if (iPaaSCompanyId != null) { return iPaaSCompanyId; } }

CompanyId

Returns the iPaaS Company ID by looking up the Prophet 21 CustomerId. Company must exist in iPaaS.

Dynamic Formula

SpaceportSystemId

SystemId

Returns the iPaaS System ID for the integration.

Field

InvoiceNo

TransactionNumber

Maps the Prophet 21 InvoiceNo to the iPaaS TransactionNumber. This is a required field.

Static

Transaction

Type

Sets the iPaaS Type to the static value Transaction.

Dynamic Formula

if(PaidInFullFlag != null && PaidInFullFlag.ToString() == "Y") return "Complete"; else return "Pending";

Status

Converts PaidInFullFlag to Status: Y returns Complete, N or null returns Pending.

Field

Ship2EmailAddress

EmailAddress

Maps the Prophet 21 Ship2EmailAddress to the iPaaS EmailAddress.

Field

TaxAmount

TaxAmount

Maps the Prophet 21 TaxAmount to the iPaaS TaxAmount.

Field

Freight

ShippingAmount

Maps the Prophet 21 Freight to the iPaaS ShippingAmount.

Field

TotalAmount

Subtotal

Maps the Prophet 21 TotalAmount to the iPaaS Subtotal.

Field

TotalAmount

Total

Maps the Prophet 21 TotalAmount to the iPaaS Total.

Dynamic Formula

DateTimeOffset dateTimeOffset = DateTimeOffset.Parse(DateCreated); return dateTimeOffset;

TransactionCreatedDateTime

Converts the DateCreated string to a DateTimeOffset object.

Dynamic Formula

DateTimeOffset dateTimeOffset = DateTimeOffset.Parse(DateLastModified); return dateTimeOffset;

TransactionUpdatedDateTime

Converts the DateLastModified string to a DateTimeOffset object.

Child: Prophet 21 Add Transaction Line To iPaaS

Mapping Filter

var productId = await GetSpaceportIdAsync(ItemId, "Product", SpaceportSystemId);
if (productId != null && !string.IsNullOrEmpty(productId.ToString())){
return true;
}
else{
throw new Exception("Product does not exist in iPaaS by ItemId: " + ItemId);
}

Description

This filter checks whether the Product exists in iPaaS using the Prophet 21 ItemId. If the Product exists, the line item proceeds to transfer. If not found, the custom error message is returned.

Mapping Type

Source (Prophet 21)

Destination (iPaaS.com)

Description

Static

Product

Type

Sets the iPaaS Type to the Prophet 21 Product

Field

LineNo

SequenceNumber

Maps the iPaaS Sequence Number to the Prophet 21 LineNo.

Dynamic Formula

if(ProcessedFlag != null && ProcessedFlag.ToString() == "Y") return "Complete"; else return "Pending";

Status

Converts the Prophet 21 Transaction Line Processed Flag field to iPaaS Transaction Line Status. e.g., Prophet 21 Transaction Line Processed Flag-> iPaaS Transaction Line Status N / null -> Pending Y -> Complete

Field

ItemId

Sku

Maps the Prophet 21 ItemId to the iPaaS Sku.

Field

ItemDesc

Destination

Maps the Prophet 21 ItemDesc to the iPaaS Destination.

Field

QtyRequested

Qty

Maps the Prophet 21 QtyRequested to the iPaaS Qty.

Field

QtyShipped

QtyShipped

Maps the Prophet 21 QtyShipped to the iPaaS QtyShipped.

Field

UnitPrice

UnitPrice

Maps the Prophet 21 UnitPrice to the iPaaS UnitPrice.

Field

ExtendedPrice

ExtendedPrice

Maps the Prophet 21 ExtendedPrice to the iPaaS ExtendedPrice.

Field

UnitPrice

OriginalUnitPrice

Maps the Prophet 21 UnitPrice to the iPaaS OriginalUnitPrice.

Child: Prophet 21 Add Transaction Address To iPaaS

Description

This mapping collection transfers shipping address data from Prophet 21 invoices to iPaaS.

Mapping Type

Source (Prophet 21)

Destination (iPaaS.com)

Description

Static

IsPrimaryBilling

IsPrimaryBilling

Sets the iPaaS IsPrimaryBilling to true.

Static

IsPrimaryShipping

IsPrimaryShipping

Sets the iPaaS IsPrimaryShipping to true.

Dynamic Formula

Ship2Address1

Address1

Maps the Prophet 21 Ship2Address1 to the iPaaS Address1.

Dynamic Formula

Ship2Address2

Address2

Maps the Prophet 21 Ship2Address2 to the iPaaS Address2.

Field

Ship2Address3

Address3

Maps the Prophet 21 Ship2Address3 to the iPaaS Address3.

Field

Ship2City

City

Maps the Prophet 21 Ship2City to the iPaaS City.

Field

Ship2State

Region

Maps the Prophet 21 Ship2State to the iPaaS Region.

Field

Ship2Country

Country

Maps the Prophet 21 Ship2Country to the iPaaS Country.

Field

Ship2PostalCode

PostalCode

Maps the Prophet 21 Ship2PostalCode to the iPaaS PostalCode.

Field

if (!string.IsNullOrEmpty(ShipDate)){ DateTimeOffset dateTimeOffset = DateTimeOffset.Parse(ShipDate); return dateTimeOffset.ToString("o"); }

ShipDate

Converts ShipDate to ISO 8601 format if not null or empty.

Child: Prophet 21 Add Transaction Tracking Number To iPaaS

Mapping Filter

string Id = await ShippingMethodIdFromName(CarrierId);
if (!string.IsNullOrEmpty(Id)){
return true;
}
else{
throw new Exception("Shipping Method "+CarrierId+" could not be found in iPaaS and must be manually created ");
}

Description

This filter checks whether the Shipping Method exists in iPaaS. If found, the tracking record proceeds. If not found, the custom error message is returned.

Mapping Type

Source (Prophet 21)

Destination (iPaaS.com)

Description

Field

PickTicketNo

PickTicketNo (custom field)

Maps the Prophet 21 PickTicketNo to the iPaaS PickTicketNo custom field.

Field

InvoiceNo

ParentId

Maps the Prophet 21 InvoiceNo to the iPaaS ParentId to link tracking to the transaction.

Field

CarrierId

ShippingMethod

Maps the Prophet 21 CarrierId to the iPaaS ShippingMethod. Must exist in iPaaS.

Field

TrackingNo

TrackingNumber

Maps the Prophet 21 TrackingNo to the iPaaS TrackingNumber.

Field

FreightOut

Cost

Maps the Prophet 21 FreightOut to the iPaaS Cost.

Error Handling

Missing Company

CompanyId not found in iPaaS

  • Resolution: Create or sync the Company in iPaaS before processing the transaction

Missing InvoiceNo

Prophet21 did not provide InvoiceNo

  • Resolution: Ensure Prophet21 sends a valid InvoiceNo for every transaction.

Product Not Found

Product does not exist in iPaaS by ItemId.

  • Resolution: Create the Product in iPaaS or sync it before line transfer

Invalid Status

ProcessedFlag / status value invalid or missing

  • Resolution: Ensure Prophet21 sends valid status values

Missing Ship Date

ShipDate missing or invalid in Prophet21

  • Resolution: Ensure Prophet21 provides a valid ShipDate or adjust the mapping formula

Invalid Address Fields

Required address fields (City, Country, PostalCode) missing

  • Resolution: Complete address fields in Prophet21 before sync

Shipping Method Missing

Shipping Method {CarrierId} not found in iPaaS

  • Resolution: Create or sync the Shipping Method in iPaaS

Invalid Tracking Entry

TrackingNo or PickTicketNo missing

  • Resolution: Ensure Prophet21 provides valid tracking values

Validation Rules & Testing

Before deploying this integration, verify the following configuration items and run the test scenarios to confirm proper operation.

Validation Checklist

  1. CompanyId resolves to a valid iPaaS Company.

  2. InvoiceNo (TransactionNumber) is present and unique.

  3. All line item Products exist in iPaaS.

  4. ShippingMethod exists in iPaaS for tracking sync.

  5. Address fields are complete (City, Region, Country, PostalCode).

  6. PaidInFullFlag and ProcessedFlag contain valid values (Y or N/null).

  7. ShipDate is in a valid format (if provided).

  8. TaxAmount, TotalAmount, and Freight are valid numeric values.

Test Scenarios

Scenario 1: New Transaction Sync

Create a new Transaction in Prophet 21 with a valid Company, line items, and address. Sync to iPaaS and verify that the Transaction appears with correct data.

Scenario 2: Add Line Items

Add line items to a Transaction in Prophet 21. Verify Product, Qty, UnitPrice, and ExtendedPrice map correctly to iPaaS.

Scenario 3: Update Transaction Totals

Modify totals (TaxAmount, TotalAmount, Freight) in Prophet 21. Sync to iPaaS and verify changes are reflected.

Scenario 4: Status Change

Change PaidInFullFlag from N to Y in Prophet 21. Verify Status changes from Pending to Complete in iPaaS.

Scenario 5: Missing Product (Failure Case)

Attempt to sync a Transaction with a line item referencing a Product that does not exist in iPaaS. Verify the custom error message is returned.

Scenario 6: Missing Shipping Method (Failure Case)

Attempt to sync tracking with a CarrierId that does not exist in iPaaS. Verify tracking sync is blocked with the appropriate error.

Additional Notes

  • Shipping Method must exists in iPaaS.

Did this answer your question?