Sales Order XML
In this guide, we'll walk you through the process of importing sales order information into Sage Intacct using XML format. Whether you're updating existing sales orders or adding new ones, this comprehensive guide provides you with all the necessary information and examples to ensure a smooth integration.
Matching
Before importing sales orders, it's essential to understand the different matching methods available in Sage Intacct:
Document ID
If the sales order already exists in Sage Intacct, you can provide the Document ID, which is the unique identifier, to update the corresponding record.
External ID
When providing a new sales order that you may need to update in the future, you can include the External ID within your XML structure. This value is stored in Zynk's internal database and serves as a unique identifier to match the sales order record.
Additionally, if you enable the Prevent Reprocessing task setting, the presence of the External ID will trigger this functionality. When this setting is activated, attempting to process the same record again will result in a failure, preventing unintended updates or duplicates.
Purchase Order Number
If you need to match an existing sales order in Sage Intacct but lack the specific Document ID, you can utilize the Purchase Order Number element to lookup the sales order in Sage Intacct.
Note
Although this XML element is named PONUMBER it relates to the Reference field on a sales order in Sage Intacct.
XML
Transaction
You can use the mapping outlined in the table below to set fields on the Transaction tab.
| Intacct Field | XML Field | Example | Field Type | Required? | Notes |
|---|---|---|---|---|---|
| Transaction date | WHENCREATED | 2024-03-05 | datetime | - | If you do not provide this element, then the transaction date will default to the current day. |
| Date due | WHENDUE | 2024-03-28 | datetime | - | If you do not provide this element, then the transaction date will default to the current day. |
| Project | PROJECTID | - | string | - | - |
| Document number | DOCNO | - | string | - | - |
| Payment terms | TERM > Name | Net 30 | - | - | |
| Reference | PONUMBER | 2 | string | - | - |
| Message | MESSAGE | New order | string | - | - |
| Shipping method | SHIPPINGMETHOD | string | - | - | |
| Attachment | ATTACHMENTSID | string | - | - |
Customer
When importing a sales order, you must link it to an existing Customer in Sage Intacct or create a new one. You can use the mapping outlined below to set the Customer.
| Intacct Field | XML Field | Example | Field Type | Required? | Notes |
|---|---|---|---|---|---|
| - | CUSTOMERID | 10310 | string | - | When matching to an existing customer, you can provide the Customer ID element, which acts as the unique identifier for the record. |
| - | EXTERNALID | 87575 | string | - | You can provide the External Id element to create a new customer or match to a record that has previously been imported by Zynk. |
| Name | NAME | Joe's Music Emporium | string | - | - |
In conjunction with the Auto Create Customers task setting, you can provide full customer information at this location. Subsequently, this will create a new customer with the given details or update the existing record.
For Customer XML documentation, please see here.
Bill To Contact
When importing a sales order, you can link the Bill To field to an existing Contact in Sage Intacct or create a new one. You can use the mapping outlined below to set the Contact.
| Intacct Field | XML Field | Example | Field Type | Required? | Notes |
|---|---|---|---|---|---|
| Name | CONTACTNAME | John Lennon | string | - | When matching to an existing contact, you can provide the Contact Name element, which acts as the unique identifier for the record. |
| Name | NAME | John Lennon | string | - | When creating a new contact, or matching to an existing one, you can provide the Name element. |
| - | EXTERNALID | 5487841 | string | - | You can provide the External Id element to create a new contact or match to a record that has previously been imported by Zynk. |
| Print as | PRINTAS | Lennon, John | string | - | - |
In conjunction with the Auto Create Contacts task setting, you can provide full contact information at this location. Subsequently, this will create a new contact with the given details or update the existing record.
For Contact XML documentation, please see here.
Note
The CONTACTNAME field requires a unique value, and is used by Zynk to search for a matching contact in Sage Intacct. We recommend appending the company name to it to help ensure it has a unique value e.g. John Smith (Zynk Software Ltd).
Ship To Contact
When importing a sales order, you can link the Ship To field to an existing Contact in Sage Intacct or create a new one. You can use the mapping outlined below to set the Contact.
| Intacct Field | XML Field | Example | Field Type | Required? | Notes |
|---|---|---|---|---|---|
| Name | CONTACTNAME | John Lennon | string | - | When matching to an existing contact, you can provide the Contact Name element, which acts as the unique identifier for the record. |
| Name | NAME | John Lennon | string | - | When creating a new contact, or matching to an existing one, you can provide the Name element. |
| - | EXTERNALID | 5487841 | string | - | You can provide the External Id element to create a new contact or match to a record that has previously been imported by Zynk. |
| Print as | PRINTAS | Lennon, John | string | - | - |
In conjunction with the Auto Create Contacts task setting, you can provide full contact information at this location. Subsequently, this will create a new contact with the given details or update the existing record.
For Contact XML documentation, please see here.
Note
The CONTACTNAME field requires a unique value, and is used by Zynk to search for a matching contact in Sage Intacct. We recommend appending the company name to it to help ensure it has a unique value e.g. John Smith (Zynk Software Ltd).
Entries
When creating a new sales order, you must provide at least one item. You can use the mapping below to set the item entries.
| Intacct Field | XML Field | Example | Field Type | Required? | Notes |
|---|---|---|---|---|---|
| - | LINE_NO | 1 | int | - | The line number must be set to a value that is higher than zero. |
| Warehouse | WAREHOUEID | 100 | string | - | - |
| Location | LOCATIONID | 100 | string | Yes, on create. | - |
| Department | DEPARTMENTID | 100 | string | - | - |
| Quantity | QUANTITY | 100 | decimal | Yes, on create. | - |
| Unit | UNIT | Each | string | - | If a value is not provided, it will default to Each |
| Price | PRICE | 0.99 | decimal | Yes, on create. | - |
| Drop ship | DROPSHIP | bool | false | - | - |
Item ID
When importing a sales order line, you must link it to an existing Item or create a new one. You can use the mapping outlined below to set the Item.
| Intacct Field | XML Field | Example | Field Type | Required? | Notes |
|---|---|---|---|---|---|
| Item ID | ITEMID | SCISSORS | string | - | When matching to an existing item, you can provide the Item ID element, which acts as the unique identifier for the record. |
| Item ID | ITEMIDENTIFIER | SCISSORS | string | - | When creating a new item, or matching to an existing one, you can provide the Item Identifier element. |
| - | EXTERNALID | 5487841 | string | - | You can provide the External Id element to create a new item or match to a record that has previously been imported by Zynk. |
| Print as | PRINTAS | Lennon, John | string | - | - |
In conjunction with the Auto Create Items task setting, you can provide item contact information at this location. Subsequently, this will create a new item with the given details or update the existing record.
For Item XML documentation, please see here.
Example
<?xml version="1.0" encoding="utf-8"?>
<SODOCUMENTS>
<SODOCUMENT>
<EXTERNALID>9876881</EXTERNALID>
<WHENDUE>2024-03-28</WHENDUE>
<WHENCREATED>2024-03-03</WHENCREATED>
<PONUMBER>2</PONUMBER>
<CUSTOMER>
<EXTERNALID>87575</EXTERNALID>
<NAME>Joe's Music Emporium</NAME>
<PRINTAS>Joe's Music Emporium</PRINTAS>
<DISPLAYCONTACT>
<EXTERNALID>44690</EXTERNALID>
<CONTACTNAME>Joe Harrison</CONTACTNAME>
</DISPLAYCONTACT>
<BILLTO>
<EXTERNALID>44690</EXTERNALID>
<CONTACTNAME>Joe Harrison</CONTACTNAME>
</BILLTO>
<SHIPTO>
<EXTERNALID>44691</EXTERNALID>
<CONTACTNAME>Adam McCrory</CONTACTNAME>
</SHIPTO>
</CUSTOMER>
<BILLTO>
<EXTERNALID>44690</EXTERNALID>
<CONTACTNAME>Joe Harrison</CONTACTNAME>
</BILLTO>
<SHIPTO>
<EXTERNALID>44691</EXTERNALID>
<CONTACTNAME>Adam McCrory</CONTACTNAME>
</SHIPTO>
<SODOCUMENTENTRIES>
<sodocumententry>
<ITEM>
<EXTERNALID>2844595</EXTERNALID>
<ITEMID>USBCABLE</ITEMID>
<NAME>USB cable</NAME>
</ITEM>
<LINE_NO>1</LINE_NO>
<ITEMDESC>New USB cables</ITEMDESC>
<PRICE>4.99</PRICE>
<QUANTITY>5</QUANTITY>
<LOCATIONID>100</LOCATIONID>
<UNIT>Each</UNIT>
<WAREHOUSE>
<NAME>WH1 - Entity 100</NAME>
</WAREHOUSE>
<SHIPTO>
<EXTERNALID>44691</EXTERNALID>
<CONTACTNAME>Adam McCrory</CONTACTNAME>
</SHIPTO>
<LINELEVELSIMPLETAXTYPE>Taxable</LINELEVELSIMPLETAXTYPE>
<DROPSHIP>false</DROPSHIP>
<DISCOUNTPERCENT>0</DISCOUNTPERCENT>
<MEMO>New USB cables</MEMO>
</sodocumententry>
<sodocumententry>
<ITEM>
<EXTERNALID>2844597</EXTERNALID>
<ITEMID>LIGHTNINGCABLE</ITEMID>
<NAME>Lightning cable</NAME>
</ITEM>
<LINE_NO>2</LINE_NO>
<ITEMDESC>New lightning cables</ITEMDESC>
<PRICE>9.99</PRICE>
<QUANTITY>2</QUANTITY>
<LOCATIONID>100</LOCATIONID>
<UNIT>Each</UNIT>
<WAREHOUSE>
<NAME>WH1 - Entity 100</NAME>
</WAREHOUSE>
<SHIPTO>
<CONTACTNAME>Adam Wardle</CONTACTNAME>
</SHIPTO>
<DROPSHIP>false</DROPSHIP>
<DISCOUNTPERCENT>0</DISCOUNTPERCENT>
<MEMO>New lightning cables</MEMO>
</sodocumententry>
</SODOCUMENTENTRIES>
<SHIPPINGMETHOD>Best Way</SHIPPINGMETHOD>
<MESSAGE>New order</MESSAGE>
<TERM>
<NAME>Net 30</NAME>
</TERM>
<BASECURR>USD</BASECURR>
<CURRENCY>USD</CURRENCY>
</SODOCUMENT>
</SODOCUMENTS>
Tasks
This XML model cam be applied on the following tasks within the Zynk Sage Intacct library.