Project

General

Profile

EDI XML File Structure

We added the ability to import quotations (instead of the order) by using EDI XML File functionality.
This has been done by using a new attribute to determine that it is a quotation.
To do this, you need to put the 'OrderType_ = "Quotation"' tag in the 'TEDIOrderHeader_Details' section.
The EDI file for an order does not have changed.

'CreateDate_"' (OrderDate, RequiredDate, CreateDate, CreateTime) tag should match the date format with the computer on where EDI transactions are received.

Please check the 'Minimum Requirements' of the imported tags at the end of this page.

XML Node/Tag
Description
Character Limits
Acceptable Values
<Transfer>
<TEDISenderInformation_Details
Sender Information Header
-
-
CompAccCode_="TRADE"
Account code of sending customer can be mapped to inner code account code
10
alphanumeric and Not Empty
CompanyName_="Test Trade Account"
Company name of a customer (sender)
200
alphanumeric and Not Empty
FileTransfName_="EDITransaction.xml"
Can be held as this
100
alphanumeric
CreateDate_="19/07/2022"
XML file create date
MM/DD/YY or DD/MM/YY
datetime
CreateTime_="10:00:26">
XML file create time
HH:MM:SS
datetime
<TEDIOrderHeader_Details
Order Header Details
-
-
PurchaseOrderNumber_="234855"
Sender purchase order number will import to customer order no
-2147483648 to 2147483647
numeric
PurchaseOrderReference_="Order:3529620"
Sender purchase order reference will import to Customer Reference if the CustomerReference_ field is empty
50
alphanumeric
CustomerReference_="Office near park No 3"
Customer Reference
50
alphanumeric
ReceiptTypeName_="Credit Card"
If there is 'Receipt Description' in the 'System Table > Receipt Description' tab
255
alphanumeric
ReceiptDescriptionName_="Test"
If there is 'Receipt Description' in the 'System Table > Receipt Description' tab
255
alphanumeric
OrderNote_=""
Order Notes
200
alphanumeric
OrderSource_=""
'Order Source' in the 'Order Source' system table
20
alphanumeric
ConsignmentNoteNo_="654849845"
Consignment Note No
200
alphanumeric
DeliveryNotes_="Test Delivery Notes"
Delivery Notes is not used for the XML import, check DetailDeliveryNotes
200
alphanumeric
SagePayTransNumber_="9999999"
If Sage Paid is 'True' then Sage Pay Transaction Number
100
numeric
TotalPrice_="630"
Nett Total Price
-922337203685477.5808 to 922337203685477.5807
money (numeric)
DepositPrice_="255"
Deposit Price
-922337203685477.5808 to 922337203685477.5807
money (numeric)
OrderDate_="19/04/2019"
Order Date
DD/MM/YY or MM/DD/YY
datetime
IsSameDayDespatch_="True"
When an order is imported for a customer with ‘EDI Same Day Despatch’ = true,
the import routine checks the EDI import file to see if the field ‘Same Day Despatch’ = true.
If so, the order is flagged as a ‘Must Go’ and the ‘Required Date’ = current date
True/False
True/False and Not Empty
IsSagePaid_="TRUE"
Sage Paid
True/False
True/False and Not Empty
MustGo_="TRUE"
If ‘Must Go’ then 'True'. Otherwise 'False'
True/False
True/False
IsTwoDayDespatch_="False"
If Two Day Despatch then 'True'. Otherwise 'False'
True/False
True/False and Not Empty
IsChildSafetyApplicable_="True">
Child Safety is checked in the EDI import process
True/False
True/False
<TEDIOrderDetails_Details
Order Details Header
-
-
RequiredDate_="25/07/2022"
Required date of the sales order.
Filled in the order only if the 'Use Receiving Required Date' flag is ticked in the customer record.
DD/MM/YY or MM/DD/YY
datetime
LiningDropAddOn_=”0”
If blind identifier = Curtain, there is a new flag
in the blind type record called 'Display Lining Drop Add On', which defaults to false.
-
numeric (numbers with a decimal point)
JobReference_=Test Job Ref 21"
The 'Job Reference' value is imported into the sales order.
30
alphanumeric
BlindTypeDescription_="Roller"
Blind type description
200
alphanumeric
BlindTypeCode_="R"
Blind type code, can be mapped to inner code blind type code
50
alphanumeric and Not Empty
MeasureName_="Recess"
Measure Name eg Recess, Blind Size etc (20)
20
alphanumeric and Not Empty
MetricMeasurement_="0"
0 = metric, 1 = imperial
0/1
numeric and Not Empty
Width_="1170"
Width should be in the millimetres only
53
numeric and Not Empty
Drop_="1120"
Drop should be in the millimetres only
53
numeric and Not Empty
NumberOfVanes_="0"
Only required if the blind is 'Vanes Only' and the number of vanes is available, otherwise 0
10
numeric
Depth_="0"
Only required for a 'Vertical' blind identifier else 0
10
numeric
SmallDrop_="0"
Only required for a 'Pleated' blind identifier where Sloping Headrail' is flagged, else 0
10
numeric
TopWidth_="0"
Only required for a 'Pleated' blind identifier, else 0
10
numeric
LhOffsetWidth_="0"
Only required for a 'Pleated' blind identifier where the ‘Shaped Blind’ is flagged in the blind type, else 0
10
numeric
SmallHeight_="0"
Only required for a 'Pleated' blind identifier where the ‘Shaped Blind’ is flagged in the blind type, else 0
10
numeric
FabricCode_="RFAB"
Fabric code (or slat or colour code
50
alphanumeric and Not Empty
Location_="Location"
Location
255
alphanumeric
SpecialInstructions_="Special Instruction"
Text field, but will put the order on hold after import if this is filled
500
alphanumeric
FittingInstructions_="FittingInstructions text"
Text field in the blind detail
200
alphanumeric
Quantity_="1"
Quantity of blinds
10
numeric
FullQuantity_="1"
Full quantity of components
10
numeric
FabricDescription_="Roller Fabric"
Fabric description (or slat or colour description
100
alphanumeric
OrderDetailComment_=""
Required only if 'Component' import and should be equal to FabricDescription _=""
200
alphanumeric
OrderDeliveryCompany_="Delivery Company"
If ‘Direct Delivery to Supplier’ is set to true,
the ‘Delivery Company Name’ in the EDI file will be transferred and then imported
50
alphanumeric
IsDirectDeliveryBySupplier_="True"
If drop ship (if delivery address from XML file should be used) then True, else False
True/False
True/False
DelLine1_="test Delivery Address1"
Delivery address 1
200
alphanumeric
DelLine2_="test Delivery Address2"
Delivery address 2
200
alphanumeric
DelCity_="London"
Delivery address 3
200
alphanumeric
DelState_=""
Delivery address 4
200
alphanumeric
DelPostCodePart1_="NG2"
Delivery postcode (first part)
50
alphanumeric
DelPostCodePart2_="1NA"
Delivery postcode (second part)
50
alphanumeric
DelFirstName_="First Name"
Contact First Name
100
alphanumeric
DelLastName_="Last Name"
Contact last name
100
alphanumeric
DelPhone_="6559999999"
Delivery address phone number (30)
30
numeric
Mobile_=”59999999”
Delivery mobile number can be imported only if
IsUseDepartmentDeliveryAddress_="TRUE" and IsDirectDeliveryBySupplier_="TRUE"
50
numeric
DelFax_=""
Delivery address fax number
30
alphanumeric
DelCountry_="GB"
The DelCountry_ tag should include the 'Code' value from the 'Country' system table
10
alphanumeric
DelEmail_=""
Delivery email address
100
alphanumeric + @ symbol
InvoiceCompanyName_="Invoice Company Name"
These fields will only import to the order invoice address if ‘Is Variable Address’ is switched on in the customer record.
200
alphanumeric
CustomerAddressLine1_="Invoice Add Line1"
These fields will only import to the order invoice address if ‘Is Variable Address’ is switched on in the customer record.
200
alphanumeric
CustomerAddressLine2_="Invoice Add Line2"
These fields will only import to the order invoice address if ‘Is Variable Address’ is switched on in the customer record.
200
alphanumeric
CustomerAddressLine3_="Invoice Add Line3"
These fields will only import to the order invoice address if ‘Is Variable Address’ is switched on in the customer record.
200
alphanumeric
CustomerAddressLine4_="Invoice Add Line4"
These fields will only import to the order invoice address if ‘Is Variable Address’ is switched on in the customer record.
200
alphanumeric
CustomerPostcodePart1_="87df"
These fields will only import to the order invoice address if ‘Is Variable Address’ is switched on in the customer record.
50
alphanumeric
CustomerPostcodePart2_="sf32"
These fields will only import to the order invoice address if ‘Is Variable Address’ is switched on in the customer record.
50
alphanumeric
OrderCategory_="Order Category"
'Order Category' field in the sales order)
200
alphanumeric
Salesperson_="Doug Smith"
‘Salesperson’ (Rep) in the sales order
100
alphanumeric
DespatchMethod_="Carrier"
'Despatch Method' in the sales order
100
alphanumeric
Amount_="125.25"
The ‘Amount’ will be a VAT inclusive amount, and will only be imported to a customer that has Trade Type = ‘Including Tax’.
The value imported in the 'Total' field in the sales order for each blind detail.
20
money (numeric)
WidthDisplay_="1197"
Entered width, millimetres if metric, inches if imperial
53
numeric
DropDisplay_="1130"
Entered drop, millimetres if metric, inches if imperial
53
numeric
OrderDeliveryCompany_="Test Delivery Company"
Delivery company name (use contact name if not available)
50
alphanumeric
NumberOfPanels_="0"
Only required if the blind is 'Panel' and the number of panels is available, otherwise 0
-2147483648 to 2147483647
numeric
OrderID_="4673"
Sending company unique order id imported in the 'Customer Order No' field
50
alphanumeric
CustomerOrderReference_="Send Today to Apart 3B"
Sending company customer reference (Customer Reference/Sidemark/Tag field in Blindata)
50
alphanumeric
DelTitle_="Dr"
Delivery Title (Mr/Ms/Mrs etc)
30
alphanumeric
IsUseDepartmentDeliveryAddress_="FALSE"
If Delivery Address = Department delivery address then 'True'. Otherwise 'False'
True/False
True/False
IsDetailSameDayDespatch_="False"
If 'Same Day Despatch' then True, else False
True/False
True/False and Not Empty
DetailCarriageType_="Standard"
There is a new field called ‘Carriage Type’ against the stock record. When the EDI import is done,
if there is a carriage type held in that new field, then it will be applied to the carriage type in the order
50
alphanumeric
DetailNettPrice_="650"
Detail Nett Price
-922337203685477.5808 to 922337203685477.5807
money (numeric)
DetailDeliveryNotes_="Detail Delivery Notes"
The Detail Delivery Notes is used for the XML import
200
alphanumeric
ProductCode_="0"
The product code includes fabric and options.
Available if a menu option permission for 'Stock Control > EDI Product Codes' is ticked
100
alphanumeric
Return_="0"
If there is a record in here, it will be used when a detail line with a ‘Return’ is entered or imported via EDI
10
numeric
ValanceWidth_="0"
Only required if ‘Enter Valance Size’ = true in the blind type record
10
numeric
SubAccountCode_=""
The EDI import will recognise this field and assign the sub-account and addresses on the order accordingly
10
alphanumeric
InstallHeight_="1250"
The import routine will then have to validate the chain length.
Entered install height, millimetres if metric, inches if imperial
10
numeric and Not Empty
ChainLength_="157"
The import routine now looks at that field to see if the chain length has been overridden,
and if so, imports that chain length amount and does not change it.
Entered chain length, millimetres if metric, inches if imperial
10
numeric and Not Empty
IsDetailTwoDayDespatch_="FALSE"
If Detail is Two Day Despatch then 'True' else 'False'
True/False
True/False and Not Empty
PanelSize_="0"
Only required if the blind is 'Panel' and the number of panels is available, otherwise 0
10
numeric and Not Empty
PanelDrop_="0"
Only required if the blind is 'Panel' and the number of panels is available, otherwise 0
10
numeric and Not Empty
GapBetweenBlinds_="2"
Only required for a 'Multi Blinds' blind identifier
10
numeric and Not Empty
MidRailHeight_="0"
Only required for a 'Shutter' blind identifier, otherwise 0
-2147483648 to 2147483647
numeric and Not Empty
MidRailHeight2_="0"
Only required for a 'Shutter' blind identifier, otherwise 0
-2147483648 to 2147483647
numeric and Not Empty
IsRemake_="TRUE"
A ‘Remake’ field can now be held in the EDI import file.
True/False
True/False
CustomerOrderNumber_="0"
There is a new flag on the customer record called ‘Send Cust Ord No in PO XML’ which defaults to false.
If it is set to true, then when the PO XML file is sent to the supplier,
it contains the original cust ord no (from the sales order)
30
numeric
LeftReturn_="0"
Left Return
10
numeric
RightReturn_="0"
Right Return
10
numeric
DustCover_="0"
Dust Cover
10
numeric
IsChainLengthOverridden_="True" >
Chain Length Overridden (If you want to save the 'Chain Length' value that is manually entered)
True/False
True/False
<TEDIOptionList_Details
Option List Header
-
-
OptionName_="Finish"
Option Name
100
alphanumeric
Choice_="Colonade"
Option Description
50
alphanumeric
ChoiceCode_="COLONADE" />
Option Code
50
alphanumeric
</TEDIOrderDetails_Details>
-
-
-
<TEDIOrderReceipts_Details
-
-
-
ReceiptType_="Credit Card"
The type of the Receipts ('Window Blind Amend > Receipts' tab) 255
255
alphanumeric
ReceiptDescription_="Credit"
The description of the Receipts ('Window Blind Amend > Receipts' tab)
255
alphanumeric
Amount_="33.25" />
The amount of the receipt should be always 'Gross'
10
money (numeric)
</TEDIOrderHeader_Details>
Footer
-
-
</TEDISenderInformation_Details>
Footer
-
-
</Transfer>
Footer
-
-

If ‘Enter Valance size’ or ‘Enter Return Size’ is ticked in the blind type record, then it should be possible to enter these sizes in the online order entry, and then import them in EDI Enquiry > Import. (the numeric value)

Please note, that the name of the XML file should start from the 'EDI-'.

Miscellaneous - Component

Example with the Component XML order
Example with the Component AND Blind XML order

Also, if you need to import components (Miscellaneous) and blind type in the same order, there is a specific setting you should check first.
So to import it the 'Import Carriage in EDI Order' box should be ticked in the 'Customers > Carriage' tab this allows uploading XML files with the components and blinds inside the order.
Also, please note an imported component (stock item) should have a unit of sale record in the 'Stock Item > Unit Of Sale' tab for the proper mapping.

Blindata Online Orders
If ‘Use Receiving Required Date’ is set to TRUE in the customer record, then when the EDI order is imported, it is automatically flagged as ‘Must Go’.

EDI XML orders
If ‘Use Receiving Required Date’ and ‘Use XML Must Go Field’ flags are set to TRUE in the customer record, and the XML file includes the MustGo_="False" tag then the sales order will not automatically be marked as 'Must Go'.
But if there is no MustGo_="False" tag in the XML file, then a sales order will automatically be marked as 'Must Go'.

EDI Import Price

There is a new field in the customer record called ‘Use EDI Import Prices’ which defaults to false.
If this is set to true, then the prices in the XML file are put into the net price for the detail line instead of looking up the price tables.
The option prices and discount will always be 0.
If an order is for a customer that has the flag ‘Use EDI Import prices’ set to true, then it is no longer possible to untick ‘Price Overridden’ in a detail line price in order.

EDI Import

On the end-of-day despatch, it currently creates a CSV file each night. When an order comes across in XML format the Order reference is put in as “SO: 0012634,PO: 12634”.
As this has a comma in the order reference the whole CSV file jumps one column along.

When an order is imported from the online system the customer reference is under certain conditions set as "SO: 0012634 PO:12634.
This is now imported it without the comma i.e. "SO: 0012634 PO:12634".

In order to be able to import the invoice addresses, please check the 'Is Variable Invoice Address' flag in the customer record.

As for the delivery address, please change the value of the IsDirectDeliveryBySupplier_="False" tag to 'True'.

Multi Blind

If you need to import a multi blind via EDI XML functionality then please include the MultiBlindChoiceID_ tag in each of the <TEDIOrderDetails_Details sections for the multi blind details.
For example, if the multi blind is 3 on 1 then the main multi blind should have MultiBlindChoiceID_="3" and the child (linked) multi blinds should have MultiBlindChoiceID_="1".

The additional change

It is important to include the <TEDIOrderDetailMultiBlindSize_Details section to the MAIN multi blind type:
If the blind detail is 90 x 90 and 3 in 1, then this section should be included in the <TEDIOrderDetails_Details section :

<TEDIOrderDetailMultiBlindSize_Details Width_="30" LeftGap_="0" FabricWidth_="0" RightGap_="0" />
<TEDIOrderDetailMultiBlindSize_Details Width_="30" LeftGap_="0" FabricWidth_="0" RightGap_="0" />
<TEDIOrderDetailMultiBlindSize_Details Width_="30" LeftGap_="0" FabricWidth_="0" RightGap_="0" />

Order Processing > EDI Enquiry > Import > Receipts

The EDI import now checks to see if there is a receipt payment in the XML file.
If there is, then a receipt is added to the new sales order that has been imported.

This takes into account the 'Trade Type' for the customer ie does it include VAT or not.
Also, the correct 'Receipt Type' and 'Receipt Description' are updated.

Minimum Requirements

There is a way to import an XML file with minimum required fields, so the options will be selected as default and the delivery/invoice address and prices will apply in Blindata Desktop.

The XML file you can download here