This document lists the most common mapping options available in eCommerce and how they can be used. The fields used will vary depending on the schemas created.
Updated 12/16/2025
Destination vs Source
Two basic types of mappings are created.
Destination = writes to specific tables or files
Source = pulls information from specific tables or files
For example:
When importing sales orders, the Source Mapping is based on the VAN being used and pulls data from the source file or VAN. The Destination Mapping will be the Sales Order and Sales Order Line mapping and pushes records into the ERP application.
When sending acknowledgements or invoices, the Source Mapping pulls from the ERP application and the Destination Mapping creates the file or updates the VAN being used.
How to access the Mappings
To access the mappings, go to Settings | Integration Setup. All the mappings currently created will be displayed. For more information about creating new mappings, please see the appropriate PULSE eCommerce Schema and Mapping Creation document.
Sales Order Mapping
The sales order mapping is a destination mapping that writes information into the sales order header table, which for Macola is the oeordhdr_sql table.
Not all fields must be defined. When the order is created, many will be populated based on the customer defined on the order.
NOTE: The following fields are the minimum that are required for the order to be created:
CustomerNumber
LineMapping
OrderNumber
OrderDate
The AddExtraItem functionality in the Header Mapping can be used to add extra items like discount lines or surcharge items.
AddExtraItem = True if you want to add the item, False or blank if not.
AddExtraItem.ItemNumber = This is where you would define the item that would be brought in. This could be a static value like “Discount”
AddExtraItem.Key = this would help determine if eCommerce is finished adding additional items. It might be used to see if the item has been used more than once.
AddExtraItem.QuantityOrdered = what quantity it would use
Note: To use the AddExtraItem options, you must create a script and put it into one of the fields that eCommerce evaluates. The script will pick the item number and write it to the AddExtraItem.ItemNumber field. Then the AddExtraItem.QuantityOrdered should be updated based on the difference between the original order quantity and the total of the items created. For binned or lotted items, use a temp field in the script to add the quantity from the lot/bin found to that field. Once that temp field is the same as the order quantity, that is what would stop the system from adding more items.
AddressChangeOptions.SalesPerson
AddressChangeOptions.ShippingMethod
AddressChangeOptions.TaxCode(1-3)
ApplyToInvoiceNumber
ArReference
BigCommerce.accessToken
BigCommerce.createDateStart
BigCommerce.storeHash
BillingAddress.AddressID
BillingAddress.AddressLine(1-3) = there are three fields, one for each line of the billing address
BillingAddress.City
BillingAddress.Country
BillingAddress.Name
BillingAddress.PostalCode
BillingAddress.State
ECommerce uses the CheckEmail fields to connect to an IMAP email setting. Using these fields eCommerce will check the email account, download the attached files, and process the order into the ERP system. This works for generic import/export and import sales orders.
CheckEmail.CheckForNewMessages = True/false. Turns feature on/off
CheckEmail.HighestUID = IMAP protocol uses integer IDs for every email. After eCommerce checks your email, it keeps track of the last message ID. For instance, if the last message ID was 504983, eCommerce stores that ID here. Then the next time it checks your email, it only fetches messages above that ID.
CheckEmail.IgnoreExtensions = define the extensions to ignore, like jpg, gif, etc.
CheckEmail.ImapServer
CheckEmail.Password
CheckEmail.UserName
CheckEmail.UseSSL
CheckEmail.LocalDownloadFolder = The local folder (generally a UNC) where eCommerce will drop the files it pulls from your email account. On your mapping, you must still use the source folder and move-to folder settings as you normally would. This is just where the files will be dropped (which will be the same as the source folder in your mapping)
CheckEmail.MoveToFolder = Refers to your email folders (the folders you see in Gmail or Outlook). For example, the customer can make a folder in their email called “Processed orders”. After eCommerce successfully processes an email with a file attached, it will move the email to the defined email folder. This indicates to the user that the email has been processed. An accumulation of emails in the root inbox indicates something must be wrong.
Comment(1–3) = There are three fields to represent the 3 comment lines in the Macola order header.
CreateAlternateAddress
Customer
CustomerNumber = This is what the software uses to look up the customer to use on the order. Once a valid customer is found, the customer’s properties are used to set the corresponding properties on the sales order.
CustomField(1-5) = These fields represent user-defined fields 1 – 5 (user_def_fld_1)
DeleteLineNumber = This is an integer setting that will delete a certain line number from an order before it is saved.
Department
Discount
DueDate
DuplicateOrder = Boolean value expected. This allows one to override the standard logic for detecting duplicate orders. An SQL query could be supplied to use custom logic for determining if an order is a duplicate or not. For example, instead of using just an order number for duplicate determination, one could define logic to allow the same order number to be used more than once, provided that the order number is from a different customer. This can occur when multiple customers use the same range of PO numbers.
EmailAddress
EnteredDate
Extra(1-15) – These fields represent the 15 extra fields in Macola ES (extra_1). Extra1 through Extra9 are text fields. Extra10 through Extra15 are numeric with 10 and 11 having up to 6 decimals, 12 and 13 having up to 2 decimals, and 14 and 15 with no decimals.
Filler00001
FreightCharges
FreightPayCode
FTP.ConnectMode
FTP.DeleteFilesOnSucess = True or False – should the files be deleted on the FTP site once the file has been used. (Boolean value setting)
FTP.DownloadFolderLocal = define where to put the files downloaded from the FTP site. This should match the Input File Path in your header mapping. This is done on the local machine.
FTP.DownloadFolderRemote = Define the location of the FTP folder that will hold the files used by eCommerce. These would be the files that contain the orders.
FTP.EnableDownloadFiles = This is true or False and lets eCommerce know it can download the files. (Boolean value setting)
FTP.HostName = the server where the FTP folders are stored; this is provided by the company that provides access to the data.
FTP.UserName = the username needed to access the FTP site.
FTP.Password = the password for accessing the FTP site
FTP.UsesSFTP = True or False and will allow eCommerce to send the correct connection information when secure FTP is used.
GrandTotal
IgnoreThis = This is a Boolean setting that will completely ignore this order if set to True. This order will not even appear on the eCommerce screen. A SQL script can be used to help define the orders that should be ignored.
InventoryLocation.Code
InvoiceBatchID
InvoiceDate
InvoiceNumber
JobNumber
LineMapping = The line mapping associated with this header mapping. This is required if the automated service is running to import orders. The automated service needs to know which line mapping to use.
In Software architecture, there is a thing called a “Message Queue”. It provides a temporary holding area for any message format (including text, XML, JSON, CSV, or whatever). Leahy Consulting can provide a Message Queue service that can be installed on the server. This provides an endpoint for the 3rd party to send something to. The message queue does not validate anything. It just stores whatever is sent. Then you set up a mapping inside eCommerce to poll the message queue (just like it can with an email account). eCommerce can poll the queue from a database or a URL.
Please be aware: Implementation of this feature requires billable hours as we must work with the customer to establish a webserver within a DMZ, and some other tasks.
MessageQueue.DownloadFromDB = True/False to use the database
MessageQueue.DownloadFromService = True/False to use the service
MessageQue.DownloadPath = a temporary place to put files if applicable
MessageQue.HighId = Uses integer IDs for every message. After eCommerce receives a message, it keeps track of the last message ID. For instance, if the last message ID was 504983, eCommerce stores that ID here. The next time it receives a message, it only processes messages with an ID above that one.
MessageQue.Url = the URL of the MessageQueue to poll
MiscAmount
OrderComments
OrderDate
OrderNumber = This must have a unique value per order. Sometimes a source might not even have an order number, but a value must be defined. An SQL query can be used to make a unique value if needed.
OrderStatus
OrderType = O is assumed by default if no value is defined. I and C are supported options. Keep in mind that if this is set to a static value, all orders being imported will have the same order type.
Payment.CostCenter
Payment.CostUnit
Payment.CreateNewPayment = If this is set to True, a pre-payment for this order will be created in the ERP system. (Boolean value)
Payment.GLAccountNumber
PaymentTerm.Code
PhoneNumber
PostSQLQuery = This SQL Query will be executed for each order after it is pushed into the ERP system. Using @SourceObject.PropertyName in the query, you can pass any parameters to the ERP fields.
PrestaShop.ApiKey
PrestaShop.HighId = this field can be used to help filter the orders that will be reviewed and selected for import. After setting it the first time, it will be updated automatically with the highest value that was pushed to Macola.
PrestaShop.PageSize
PrestaShop.Url = your store’s Presta Shop web address.
ProfitCenter
The Promotion feature puts a promo item on the sales order with a negative amount. It uses the item number you specify and uses the GL accounts associated with the item’s material cost type/location when defined.
Promotion.Amount = On the promo line item, this amount serves as the unit price and will be multiplied by the quantity which is hard-coded to be negative one (-1).
Promotion.Code = This is the promo code used by the trading partner on the order.
Promotion.ItemNumber = The item number that will be used for the “promo” line item that eCommerce will add to the order.
PurchaseOrderNumber
SalesOrderLineItem.QuantityOrdered
SalesOrderLineItems
SalesPerson.Code
SalesTaxAmount = Leave blank to use the sales tax that is provided on your inbound order.
SalesTaxLineItem.Amount
SalesTaxLineItem.ItemNumber = This will attach an extra “Sales Tax Item” onto the order. This is the item number in the ERP system to be used.
SalesTaxOverride = This setting bypasses the ERP tax calculation logic. Map to your sales tax amount field to ensure that eCommerce uses the imported sales tax amount instead of allowing the ERP system to calculate it.
SaveAsRma
The SendEmail fields are IMAP email settings used by eCommerce to send emails when errors occur.
Emails can be sent during Import when:
- Something goes wrong as the data is being imported into memory
- When all imported orders are in memory but fail the validation checks. If any order passes the validation checks, no email will be sent.
- When an error occurs while pushing orders into Macola.
SendEmail.CCEmail
SendEmail.MailGunApiKey = c25536f5e1c4ec9ceaa4f1f978597b5a-f3238714-6682d8d7
SendEmail.MailGunDomain = pulsedashboard.com
SendEmail.Password
SendEmail.SendErrorMessage = True if you want to send them
SendEmail.FromEmail = the email address of the “person” sending the message.
SendEmail.SmtpPort
SendEmail.SmtpServer
SendEmail.ToEmail
SendEmail.UserName
ServiceDomain = Dynamics Nav API setting
ServicePassword = Dynamics Nav API setting
ServiceUrl = Dynamics Nav API setting
ServiceUser = Dynamics Nav API setting
ShippingAddress
ShippingAddress.AddressCode = The address code of an alternate shipping address. If left blank, the default ship to address will be used. An expression can be supplied. For example, in an SQL query, one could use address, city, state, and postal code to look up which address code to use.
ShippingAddress.AddressID
ShippingAddress.AddressLine(1-3) = there are three fields, one for each line of the ship to address
ShippingAddress.City
ShippingAddress.Country
ShippingAddress.Name
ShippingAddress.PostalCode
ShippingAddress.State
ShippingDate
ShippingInstructions(1-2)
ShippingOption.Code
Shippo.apiKey
Shippo.createDateStart = Date/Time the transaction was brought into the VAN (as defined in the field name). Format the static value as YYYY-MM-DD. Once set the system will update this field with the date and time of the last import. This improves processing speed by only looking for orders added since the last import.
ShipStation.apiKey
ShipStation.apiSecret
ShipStation.createDateStart = Date/Time the transaction was brought into the VAN (as defined in the field name). Format the static value as YYYY-MM-DD. Once set the system will update this field with the date and time of the last import. This improves processing speed by only looking for orders added since the last import.
ShipStation.orderNumber
ShipStation.orderStatus = This allows for the filtering of incoming orders based on the order status. Current options are: awaiting_payment, awaiting_shipment, pending_fulfillment, shipped, on_hold, cancelled, or rejected_fulfillment.
Shopfiy.AccessToken
Shopify.APIKey
Shopify.ApiVersion
Shopify.CreatedAtMin = Date/Time the transaction was brought into the VAN (as defined in the field name). Format the static value as YYYY-MM-DD. Once set the system will update this field with the date and time of the last import. This improves processing speed by only looking for orders added since the last import.
Shopify.FulfillmentStatus
Shopify.Password
Shopify.PopulateOrderMetaFields
Shopify.SharedSecret
Shopify.Status = This is a filer. Current options include: open, closed, cancelled, or any.
Shopify.StoreName
ShopifyID
SqlCommandTimeout
SubTotal
Taxable
TaxingBody.Code = When using SalesTaxOverride, a value must be entered here. This is required even if you are using tax schedules in Macola. We recommend creating a tax code for 0% that is used as a placeholder while importing the orders.
TaxingBody(2-3).Code
TaxingBodyGroup.Code = This will write to the tax schedule field on the order header. To use the sales tax from your inbound order set this to SQL Query: select null and set the What if a null or DbNull value from the source is encountered? to Set the destination field value to null. This will ensure that any tax schedule that may be defined in the customer maintenance table will be removed. For Macola, this is important to ensure that the correct sales tax amount remains on the sales order. By design, Macola will recalculate the sales tax amount during select for billing when tax schedules are used.
TempDictionary = These fields are used to hold temporary information that can be used when creating a new sales order in the ERP or to write information to custom tables. For example this could be used to write the UPC Code or buyer part number for use when sending an acknowledgement, ASN, or invoice. A SQL script is generally used to populate these values.
UserName = the user creating the record in the ERP, normally set to a static value of “eCommerce”
Walmart.clientId
Walmart.clientSecret
Walmart.createDateStart = Date/Time the transaction was brought into the VAN (as defined in the field name). Format the static value as YYYY-MM-DD. Once set the system will update this field with the date and time of the last import. This improves processing speed by only looking for orders added since the last import.
Walmart.Sandbox
Wayfair.clientID
Wayfair.clientSecret
Wayfair.fromDate
Wayfair.pageSize
Wayfair.poNumbers
Wayfair.url
Sales Order Line Mapping
The sales order line mapping is a destination mapping and is used to write information into the sales order line table. For Macola this is the oeordlin_sql table.
Not all fields must be defined. When the order is created, many will be populated based on the customer defined on the order.
NOTE: The following fields are the minimum that are required for the order to be created:
ItemNumber
LineNumber
LocationCode
OrderNumber
QuantityOrdered
AddExtraItem.Key = [need further clarification on how this is used] – this would help determine if eCommerce is finished adding additional items. Might be used to see if the item has been used more than once.
AddExtraItem = True if you want to add the item, False if not
AddExtraItem.ItemNumber = This is where you would define the item that would be brought in
AddExtraItem.QuantityOrdered = what quantity it would use
AddExtraItem.Description1
AddExtraItem.Description2
AddExtraItem.LocationCode
AddExtraItem.UnitPrice
Note: To use the AddExtraItem options, you must create a script and put it into one of the fields that eCommerce evaluates. The script will pick the item number and write it to the AddExtraItem.ItemNumber field. Then the AddExtraItem.QuantityOrdered should be updated based on the difference between the original order quantity and the total of the items created. For binned or lotted items, use a temp field in the script to add the quantity from the lot/bin found to that field. Once that temp field is the same as the order quantity, that is what would stop the system from adding more items.
CommissionCalculationType
Controlled
CreatePOShipToOnSave = If this is set to True, and a new purchase order is created on save, a new PO Ship To code will be created. The new purchase order will use this new PO ship to address.
CreatePurchaseOrderOnSave = If set to True, a new purchase order will be created for this sales order line when the order is pushed to the ERP (Macola).
CustomField 1 – 5 = These fields represent user-defined fields 1 – 5 in Macola Progression and FreeFields 1 – 5 in Macola ES.
DeleteItemAfterOrderIsPopulated
DisableKitCostRollup
DisableKitPriceRollup
DiscountPercent
EndItemCode
ExplodeKit = when set to True, the components will print on the invoice.
Extra(1-15) – These fields represent the 15 extra fields in Macola ES (extra_1). Extra1 through Extra9 are text fields. Extra10 through Extra15 are numeric with 10 and 11 having up to 6 decimals, 12 and 13 having up to 2 decimals, and 14 and 15 with no decimals.
Filler00004
IgnoreThis = This is a Boolean setting that will completely ignore this line if set to True. This line will not even appear on the eCommerce screen. A SQL script can be used to help define the lines that should be ignored.
ItemDescription1
ItemDescription2
ItemNumber
ItemWeight
LineComments
LineNotes
LineNumber
LocationCode = must be populated with something, or a correct value must be pulled from the import file.
ManufactureMethod
MultipleBins
OrderNumber = must be set to the same value as the OrderNumber field in the Sales Order mapping.
PostSQLQuery = This SQL Query will be executed for each order after it is pushed into the ERP system. Using @SourceObject.PropertyName in the query, you can pass any parameters to the ERP fields. For example, @SourceObject.ItemNumber refers to the item number for each line item.
Product Category
ProductionOrderCreateOnSave = set to True so POP PULL orders will be created when the sales order is created in Macola – It will create a POP order for every line on every imported order.
ProductionOrderReleaseOnSave = if set to TRUE and the POP order is created, it will automatically be released.
PromiseDate
The PurchaseOrderLineItem.PurchaseOrder.ShipToLocation fields are used to create a new PO ship to address if one should be created on save.
PurchaseOrderLineItem.PurchaseOrder.ShipToLocation.AddressLine1
PurchaseOrderLineItem.PurchaseOrder.ShipToLocation.AddressLine2
PurchaseOrderLineItem.PurchaseOrder.ShipToLocation.City
PurchaseOrderLineItem.PurchaseOrder.ShipToLocation.Country
PurchaseOrderLineItem.PurchaseOrder.ShipToLocation.Description
PurchaseOrderLineItem.PurchaseOrder.ShipToLocation.DropShipFlag
PurchaseOrderLineItem.PurchaseOrder.ShipToLocation.LocationCode
PurchaseOrderLineItem.PurchaseOrder.ShipToLocation.PostalCode
PurchaseOrderLineItem.PurchaseOrder.ShipToLocation.ShipToName
PurchaseOrderLineItem.PurchaseOrder.ShipToLocation.State
PurchaseOrderLineItem.PurchaseOrder.ShipToLocation.ShipViaCode
PurchaseOrderLineItem.RequestDate
QuantityBackordered
QuantityOrdered
QuantityShipped
QuantityToShip
RequestDate
RequestedShppingDate
The SalesOrder fields allow you to write information back to the sale order header based on information for the line item.
SalesOrder
SalesOrder.CustomField(1-5)
SalesOrder.FreightCharges
SalesOrder.oe_to_po
SalesOrder.OrderComments
SalesOrder.SalesTaxLineItem.Amount
SalesOrder.ShippingAddress.AddressLine(1-3) = there are three fields, one for each line of the ship to address
SalesOrder.ShippingAddress.City
SalesOrder.ShippingAddress.PostalCode
SalesOrder.ShippingAddress.State
SalesOrder.ShippingInstructions2
SalesOrderType
SelectedForBilling
SerializedOrLotted
ShopifyFulfillmentStatus
ShopifyID
Stocked
Taxable
TempDictionary = These fields hold temporary information that can be used when creating a new sales order in the ERP or writing information to custom tables. For example, the UPC Code or buyer part number could be written here for use when sending an acknowledgement, ASN, or invoice. A SQL script is generally used to populate these values.
UnitCost
UnitOfMeasure
UnitPrice
VendorNumber
For More Information about Mapping
Please visit:
www.leahyconsulting.com/software/pulse-ecommerce
or
https://www.leahyconsulting.com/article-category/ecommerce
PULSE eCommerce Tips for Mapping
PULSE eCommerce XML Schema and Mapping Creation
PULSE eCommerce CSV Schema and Mapping Creation
Please contact our PULSE support desk with questions and comments at (513) 723-8094 or Support@LeahyConsulting.com
Leahy Consulting is an independent ERP consulting company with over 30 years of experience supporting and optimizing the Macola® software. Leahy Consulting is not affiliated with ECI® Software.