Skip to main content

Syspro from iPaaS.com Sales Order Mapping Documentation

How iPaaS.com Transactions are written into Syspro as sales orders, including lines, payments, the mapping filter and the customer prerequisite.

Summary

Syspro sales orders can be created from iPaaS.com Transactions through Manual Sync or through outbound triggers subscribed in iPaaS.com. Each transfer writes the order header, its ordered lines and any payments taken, placing a complete order into Syspro for fulfilment. The collection creates orders only — it does not update an order once it has reached Syspro.

This document covers the parent Sales Order collection and both of its child collections.

ID Format

Manual Sync ID Format

Enter the iPaaS.com Transaction ID on the iPaaS.com Manual Sync page.

Example: 881027

Individual lines and payments cannot be synced on their own — they are written as part of the parent order transfer.

External ID Format

After a successful transfer, iPaaS.com saves the Syspro sales order number as the external ID on a dedicated external-ID record. Syspro assigns that number itself when the order is created, so it is not known before the transfer.

The AlternateReference mapping additionally writes the originating iPaaS.com transaction number onto the Syspro order. That is what allows staff and support to trace a Syspro order back to its iPaaS.com transaction, since the two systems use different order numbering.

Deleted Record Support

Outbound delete is not supported for this entity. The integration does not implement a delete operation for orders, delete mappings are not included in the default templates, and cancelling or deleting a transaction in iPaaS.com will not cancel or remove the Syspro sales order.

Mapping Collection Status

Status: Enabled, with a mapping filter that excludes several categories of transaction. See the Mapping Filter block below.

Trigger Events: Create. Outbound transfers are dispatched when the subscriber subscribes to the relevant iPaaS.com transaction events in the Outbound Data Flows section of the subscription configuration. Until those subscriptions are enabled, no automatic transfers occur.

Duplicate or Conflicting Mappings

Update Syspro Sales Order TO iPaaS.com operates on the same entity in the opposite direction, writing Syspro order status changes back to iPaaS.com. Add/Update Syspro Invoice TO iPaaS.com captures the invoices subsequently raised against these orders.

These collections are complementary rather than competing — orders flow out to Syspro, and status and invoices flow back. Subscribers or their MiSP should nonetheless review the filters on each before enabling them together, so that an order is not written back over itself.

This entity does not support collision handling, so there are no selectable collision methods on any collection in this family. Duplicate orders are prevented by the external-ID link.

Supported Child Collections

  • Add Syspro Sales Order Line Item FROM iPaaS.com: the ordered lines, with stock code, quantity, price and discounts. Child of the Sales Order collection.

  • Add Syspro Sales Order Payment FROM iPaaS.com: the payments taken against the order. Child of the Sales Order collection.

System Caveats

Syspro Caveats

  • Stock codes must already exist in Syspro. A line whose SKU does not match a Syspro stock item is rejected. Where products originate in Syspro and are captured into iPaaS.com, the codes match automatically; where products are created in iPaaS.com independently, the SKU must be aligned to the Syspro stock code.

  • Order type is a fixed value. All orders arriving from iPaaS.com are classified with the same Syspro order type. Order types are configured per Syspro environment, so this value should be confirmed during implementation.

  • Prices are taken as given. Each line instructs Syspro to use the supplied price rather than re-pricing from Syspro price lists, so the Syspro order matches what the customer was charged. Syspro contract and price-list pricing is bypassed for these orders by design.

  • Line descriptions are truncated to 45 characters and the recipient name to 50; longer values are shortened rather than causing a failure.

  • Only the first line discount percentage is used. Syspro supports several chained discount percentages per line; this collection populates the first and leaves the rest unused.

  • Units of measure must correspond. Quantities and masses transfer as numbers with no conversion, so both systems must agree on the unit — particularly for items sold in packs or cases.

iPaaS.com Caveats

  • The customer must already be linked. An order whose customer has never been synced cannot transfer. See Setup Requirements.

  • The transaction creation date must be present, since the Syspro order date is derived from it.

  • The recipient name comes from the primary shipping address. A transaction with no address marked primary shipping produces an empty or partial name on the Syspro order.

Integration-Specific Caveats

  • Discounts can be applied at two levels. An order-level discount and per-line discounts are both transferred, and Syspro applies both. Subscribers or their MiSP should confirm during implementation that this does not double-count against how the originating system calculated the order total.

  • Tax may be recalculated by Syspro. Where Syspro is configured to calculate its own tax on sales orders, the transferred tax value and the Syspro-calculated value can disagree. Confirm which system is the source of truth for tax.

Setup Requirements

iPaaS.com Configuration

  1. Subscribe to the relevant transaction events under Outbound Data Flows in the subscription configuration.

  2. Ensure customer synchronisation is enabled and has run, in either direction — see the prerequisite in the Integration Flow below.

Syspro Configuration

The Syspro REST API must be installed and reachable, and the subscription's API URL and credentials configured. Confirm that the fixed order type used by this collection is valid in the target Syspro environment. Refer to the Syspro Installation Instructions for the full procedure.

Integration Flow

  1. A transaction is created in iPaaS.com, or a subscriber initiates a Manual Sync using the iPaaS.com Transaction ID.

  2. The mapping filter is evaluated. Gift-card-only orders, deposit and gift-card sub-orders, and orders already complete or cancelled are skipped silently.

  3. The Syspro customer account is resolved from the customer's existing link. This is a prerequisite, not an automatic cascade — the collection does not create the customer as part of the order transfer. If the customer has never been synced through either Add/Update Syspro Customer FROM iPaaS.com or Add/Update Syspro Customer TO iPaaS.com, no Syspro account is found and the order transfer fails.

  4. The Syspro sales order header is created, with the fixed order type, the order date derived from the transaction creation date, the recipient name from the primary shipping address, and the order-level discount, tax and freight values.

  5. Add Syspro Sales Order Line Item FROM iPaaS.com writes each ordered line with its stock code, quantity, price and discounts.

  6. Add Syspro Sales Order Payment FROM iPaaS.com records each payment taken against the order.

  7. Syspro assigns the sales order number, which iPaaS.com saves as the external-ID link.

Mappings

Add Syspro Sales Order FROM iPaaS.com

iPaaS.com data type: Transaction

Mapping Filter

!IsGiftCardSaleOnlyOrder(Type, Lines, Payments) 
&& !TransactionNumber.EndsWith("-D") 
&& !TransactionNumber.EndsWith("-GC")
&& !(Status == "Complete")
&& !(Status == "Cancelled")

Filter Description. A transaction is written to Syspro only when every one of these five conditions holds. IsGiftCardSaleOnlyOrder excludes orders whose lines are exclusively gift cards — these arise from the way a gift-card sale is split into a separate sub-order, leaving a record with nothing to fulfil in Syspro. The two TransactionNumber checks exclude the split sub-orders themselves: a number ending -D is the deposit portion and one ending -GC is the gift-card portion, both handled separately from the sale. The two Status checks exclude orders that are already Complete, which need no Syspro order raising, and orders that are Cancelled, which should not be sent for fulfilment.

Transactions failing any condition are skipped silently — they raise no error and do not appear in the error log. Subscribers or their MiSP who expect a particular order in Syspro and cannot find it should check its status and transaction number against these conditions first.

Mapping Type

Source Field (iPaaS.com)

Destination Field (Syspro)

Description

Dynamic Formula

GetExternalIdAsync(CustomerId, "Customer", ...)

Customer

Required. Resolves the Syspro customer account from the customer's existing link. Syspro cannot create an order that is not attached to a customer account, and the transfer fails when no link is found.

Dynamic Formula

TransactionCreatedDateTime.Value.ToString("yyyy-MM-dd")

OrderDate

Required. The Syspro order date, formatted year-month-day. Uses the transaction's creation date, so a late-transferred order still carries the date the customer placed it.

Static

"W"

OrderType

Required. Fixed by design so all orders from iPaaS.com are classified consistently. Confirm the code is valid in the target Syspro environment.

Dynamic Formula

Truncate((FieldFromFirstMatch(Addresses, ...)).ToUpper(),50)

CustomerName

Recommended. The recipient name from the primary shipping address, upper-cased and truncated to 50 characters.

Field

EmailAddress

Email

Recommended. The contact address held on the transaction, which may differ from the customer account address.

Field

TransactionNumber

AlternateReference

Recommended. The originating iPaaS.com transaction number, recorded for traceability. Without it there is no visible link between the two systems' order numbers.

Field

DiscountAmount

OrderDiscAmt

Recommended. The whole-order discount. Distinct from per-line discounts.

Field

TaxAmount

OrderTaxValue

Recommended. The tax calculated by the system that took the order.

Field

ShippingAmount

OrderFreightValue

Recommended. The shipping charged on the order, transferred as a single figure.

Dynamic Formula Documentation

return await GetExternalIdAsync(CustomerId, "Customer", SpaceportSystemId);

Looks up the Syspro customer account number previously recorded against this transaction's iPaaS.com customer. Returns nothing when the customer has never been synced, which fails the transfer.

Truncate((FieldFromFirstMatch(Addresses, "IsPrimaryShipping == true", "FirstName") + " " + FieldFromFirstMatch(Addresses, "IsPrimaryShipping == true", "LastName")).ToUpper(),50)

Finds the transaction's primary shipping address, joins its first and last name with a single space, upper-cases the result and truncates to 50 characters. It deliberately uses the shipping address rather than the billing address, so the name reflects who is receiving the goods. Where no address is marked primary shipping, the result is empty or partial.

Add Syspro Sales Order Line Item FROM iPaaS.com (Child)

iPaaS.com data type: Transaction Line

A child of the Sales Order collection, written as part of the parent order transfer. Parent Collection: Add Syspro Sales Order FROM iPaaS.com.

Mapping Type

Source Field (iPaaS.com)

Destination Field (Syspro)

Description

Field

Sku

StockCode

Required. Must match an existing Syspro stock item, or the line is rejected.

Field

Qty

OrderQty

Required. The quantity ordered, transferred with no unit conversion.

Dynamic Formula

Decimal.Round(ConvertToDecimal(UnitPrice), 4)

Price

Required. The unit price the customer was charged, rounded to four decimal places to preserve precision for fractional or bulk quantities.

Static

"Y"

AlwaysUsePriceEntered

Required (control). Instructs Syspro to accept the supplied price rather than re-pricing from its own price lists. Works together with Price.

Static

"A"

LineActionType

Required (control). Tells Syspro each line is being added. Fixed, because this collection creates orders and has no pre-existing lines to amend.

Dynamic Formula

Truncate(Description, 45)

StockDescription

Recommended. The description the customer saw, truncated to 45 characters. Preserves the ordered wording even if the Syspro item is later renamed.

Field

DiscountAmount

LineDiscValue

Optional. A cash discount on this individual line.

Field

DiscountPercent

LineDiscPercent1

Optional. A percentage discount on this line. Populates the first of Syspro's chained discount percentages.

Field

Weight

UnitMass

Optional. The mass of a single unit, not the line total. Used for despatch weight calculation.

Add Syspro Sales Order Payment FROM iPaaS.com (Child)

iPaaS.com data type: Transaction Payment

A child of the Sales Order collection, written as part of the parent order transfer. Parent Collection: Add Syspro Sales Order FROM iPaaS.com.

Mapping Type

Source Field (iPaaS.com)

Destination Field (Syspro)

Description

Field

Amount

Amount

Required. The amount of the individual payment. Where a customer paid by more than one method, each payment transfers separately and the amounts should sum to the order total.

Field

Method

CreditCardType

Recommended. The iPaaS.com payment method name, written into a Syspro field intended for a card type. Apply a Lookup Translation where the two systems name methods differently.

Static

"$"

Currency

Required. Placeholder value — replace during implementation: the dollar symbol is an example and is correct only for subscribers trading in a dollar currency. Any other currency must change this value, or every payment is recorded against the wrong currency.

Static

"1"

ResultCode

Required. Fixed to indicate a successful payment. Because it is static, pending or declined payments are still recorded in Syspro as successful.

Static

"0"

TaxAmount

Required. Fixed at zero by design, because tax is carried at order level by the parent collection. Recording it again here would double-count it.

Error Handling

Errors raised by this family are catalogued in the Syspro Error Messages article. The most common failure mode is an order whose customer has never been synced, which cannot resolve a Syspro customer account. The second is a line whose SKU does not exist as a Syspro stock item. Both appear under Dashboard / Integration Monitoring / Error Logs.

Note that a transaction excluded by the mapping filter produces no error — it is skipped silently. Absence of an order in Syspro is therefore not necessarily an error condition.

Testing & Validation

Test Scenarios

  1. Sync a customer first, then create an order for that customer in iPaaS.com and verify a Syspro sales order is created with its lines and payments.

  2. Attempt to transfer an order for a customer that has never been synced, and confirm the transfer fails with a customer-resolution error.

  3. Create an order with a line whose SKU does not exist in Syspro and confirm the line is rejected.

  4. Create a gift-card-only order and confirm it is skipped silently, with no Syspro order and no error.

  5. Create an order whose transaction number ends -D and confirm it is skipped.

  6. Transfer an order with both an order-level and a line-level discount, and verify the Syspro totals match expectations.

  7. Verify the Syspro order carries the originating iPaaS.com transaction number as its alternate reference.

  8. Amend the order in iPaaS.com after transfer and confirm the Syspro order does not change, since this collection is Add-only.

Validation Checklist

  • The Syspro order is attached to the correct customer account.

  • The order date matches the transaction creation date.

  • Line quantities and prices match what the customer was charged.

  • Payment amounts sum to the order total.

  • The currency value has been reviewed and replaced if the subscriber does not trade in dollars.

  • The order type is valid in the target Syspro environment.

  • Excluded categories of transaction produce no Syspro order and no error.

Additional Notes

  • Add only. An order amended in iPaaS.com after transfer will diverge from the Syspro order; amendments must be made in Syspro directly.

  • Refunds and later captures are out of scope. A refund or a payment captured after the order transferred is not written to Syspro.

  • Shipping addresses are out of scope. Delivery addresses are not written to the Syspro order beyond the recipient name.

  • Two payment values need review before go-live. The currency symbol is a placeholder, and the result code marks every payment as successful regardless of its real status.

Related Documents

Did this answer your question?