It is possible to import orders in bulk, or import and allocate simultaneously, using a CSV file in a predetermined format.
Caution
If you import orders via a file, you should be aware that you will not be able to do any of the following with the resultant consignments:
-
Track them using Delivery Tracker.
-
Use Imperial units (refer to How do I create consignments in Imperial Weights and Measures?).
-
Mark any products as dangerous goods within the consignments.
You first require an XML file to determine the import format. This will contain the fields that can be mapped to those in Delivery Manager. The example of such a file can be seen by expanding the section below.
Note
To obtain the right format for your particular operation, you should contact Metapack Support.
Once you have your file, you can then proceed to carry out the bulk import.
<?xml version="1.0" encoding="UTF-8"?><file-format export-date="2020-03-30T12:42:06" system-name="Delivery Manager" system-version="5.190.0" user="Fred.Bloggs" version="1.1">
<name>Sharp_Dressed_Man</name>
<advancedFinalConsignmentExpr/>
<advancedFinalParcelExpr/>
<advancedFinalProductExpr/>
<properties>
<file.comment.line.marker/>
<file.type.id>1</file.type.id>
<file.ignore.first.row.count>1</file.ignore.first.row.count>
<file.line.end.ignore.text/>
<file.ignore.empty.lines>true</file.ignore.empty.lines>
<line.product.indicator.start.text/>
<line.consignment.indicator.start.text/>
<line.parcel.indicator.true.expr/>
<consignment.indicator.column.name>OrderNumber</consignment.indicator.column.name>
<parcel.indicator.true.expr/>
<line.parcel.indicator.start.text/>
<file.field.delimiter>,</file.field.delimiter>
<line.parcel.indicator.type.id>1</line.parcel.indicator.type.id>
<parcel.indicator.change.expr/>
<consignment.indicator.type.id>1</consignment.indicator.type.id>
<file.structure.type.id>2</file.structure.type.id>
<file.default.date.format>yyyy-MM-dd HH:mm:ss</file.default.date.format>
<file.ignore.last.row.count>0</file.ignore.last.row.count>
<file.string.terminator>"'</file.string.terminator>
<parcel.indicator.type.id>1</parcel.indicator.type.id>
<file.record.delimiter>
</file.record.delimiter>
<line.product.indicator.type.id>1</line.product.indicator.type.id>
<consignment.indicator.true.expr/>
<parcel.indicator.column.name/>
<line.consignment.indicator.type.id>1</line.consignment.indicator.type.id>
<line.consignment.indicator.true.expr/>
<file.header>true</file.header>
<line.product.indicator.true.expr/>
<file.line.start.ignore.text/>
<consignment.indicator.change.expr/>
</properties>
<columns level="1">
<column>
<name>SenderCode</name>
<start>0</start>
<length>0</length>
<type>1</type>
<trim>false</trim>
<defaultType>3</defaultType>
<defaultValue/>
<defaultExpr/>
</column>
<column>
<name>RecipientName</name>
<start>0</start>
<length>0</length>
<type>1</type>
<trim>false</trim>
<defaultType>3</defaultType>
<defaultValue/>
<defaultExpr/>
</column>
<column>
<name>RecipientLine1</name>
<start>0</start>
<length>0</length>
<type>1</type>
<trim>false</trim>
<defaultType>3</defaultType>
<defaultValue/>
<defaultExpr/>
</column>
<column>
<name>RecipientLine2</name>
<start>0</start>
<length>0</length>
<type>1</type>
<trim>false</trim>
<defaultType>3</defaultType>
<defaultValue/>
<defaultExpr/>
</column>
<column>
<name>RecipientLine3</name>
<start>0</start>
<length>0</length>
<type>1</type>
<trim>false</trim>
<defaultType>3</defaultType>
<defaultValue/>
<defaultExpr/>
</column>
<column>
<name>RecipientLine4</name>
<start>0</start>
<length>0</length>
<type>1</type>
<trim>false</trim>
<defaultType>3</defaultType>
<defaultValue/>
<defaultExpr/>
</column>
<column>
<name>RecipientPostCode</name>
<start>0</start>
<length>0</length>
<type>1</type>
<trim>false</trim>
<defaultType>3</defaultType>
<defaultValue/>
<defaultExpr/>
</column>
<column>
<name>ParcelCount</name>
<start>0</start>
<length>0</length>
<type>2</type>
<trim>true</trim>
<defaultType>1</defaultType>
<defaultValue>1</defaultValue>
<defaultExpr/>
</column>
<column>
<name>ParcelWeight</name>
<start>0</start>
<length>0</length>
<type>2</type>
<trim>true</trim>
<defaultType>1</defaultType>
<defaultValue>3</defaultValue>
<defaultExpr/>
</column>
<column>
<name>ParcelValue</name>
<start>0</start>
<length>0</length>
<type>2</type>
<trim>true</trim>
<defaultType>1</defaultType>
<defaultValue>20</defaultValue>
<defaultExpr/>
</column>
<column>
<name>ConsignmentDetailFlag</name>
<start>0</start>
<length>0</length>
<type>3</type>
<trim>true</trim>
<defaultType>1</defaultType>
<defaultValue>False</defaultValue>
<defaultExpr/>
</column>
<column>
<name>RecipientPhone</name>
<start>0</start>
<length>0</length>
<type>1</type>
<trim>false</trim>
<defaultType>3</defaultType>
<defaultValue/>
<defaultExpr/>
</column>
<column>
<name>OrderNumber</name>
<start>0</start>
<length>0</length>
<type>1</type>
<trim>false</trim>
<defaultType>3</defaultType>
<defaultValue/>
<defaultExpr/>
</column>
<column>
<name>Booking code</name>
<start>0</start>
<length>0</length>
<type>1</type>
<trim>false</trim>
<defaultType>1</defaultType>
<defaultValue>@NEXT</defaultValue>
<defaultExpr/>
</column>
</columns>
<fields>
<field>
<name>ConsignmentLevelDetailsFlag</name>
<level>1</level>
<columnName>ConsignmentDetailFlag</columnName>
<valueType>1</valueType>
<value/>
<valueExpr>LOOKUP("ConsignmentDetailFlag")</valueExpr>
</field>
<field>
<name>OrderNumber</name>
<level>1</level>
<columnName>OrderNumber</columnName>
<valueType>1</valueType>
<value/>
<valueExpr>LOOKUP("OrderNumber")</valueExpr>
</field>
<field>
<name>ParcelCount</name>
<level>1</level>
<columnName>ParcelCount</columnName>
<valueType>1</valueType>
<value/>
<valueExpr>LOOKUP("ParcelCount")</valueExpr>
</field>
<field>
<name>RecipientAddressLine1</name>
<level>1</level>
<columnName>RecipientLine1</columnName>
<valueType>1</valueType>
<value/>
<valueExpr>LOOKUP("RecipientLine1")</valueExpr>
</field>
<field>
<name>RecipientAddressLine2</name>
<level>1</level>
<columnName>RecipientLine2</columnName>
<valueType>1</valueType>
<value/>
<valueExpr>LOOKUP("RecipientLine2")</valueExpr>
</field>
<field>
<name>RecipientAddressLine3</name>
<level>1</level>
<columnName>RecipientLine3</columnName>
<valueType>1</valueType>
<value/>
<valueExpr>LOOKUP("RecipientLine3")</valueExpr>
</field>
<field>
<name>RecipientAddressLine4</name>
<level>1</level>
<columnName>RecipientLine4</columnName>
<valueType>1</valueType>
<value/>
<valueExpr>LOOKUP("RecipientLine4")</valueExpr>
</field>
<field>
<name>RecipientMobilePhoneNo</name>
<level>1</level>
<columnName>RecipientPhone</columnName>
<valueType>1</valueType>
<value/>
<valueExpr>LOOKUP("RecipientPhone")</valueExpr>
</field>
<field>
<name>RecipientName</name>
<level>1</level>
<columnName>RecipientName</columnName>
<valueType>1</valueType>
<value/>
<valueExpr>LOOKUP("RecipientName")</valueExpr>
</field>
<field>
<name>RecipientPostcode</name>
<level>1</level>
<columnName>RecipientPostCode</columnName>
<valueType>1</valueType>
<value/>
<valueExpr>LOOKUP("RecipientPostCode")</valueExpr>
</field>
<field>
<name>SenderCode</name>
<level>1</level>
<columnName>SenderCode</columnName>
<valueType>1</valueType>
<value/>
<valueExpr/>
</field>
<field>
<name>ParcelCartonId</name>
<level>2</level>
<columnName/>
<valueType>2</valueType>
<value>Carton</value>
<valueExpr/>
</field>
<field>
<name>ParcelDepth</name>
<level>2</level>
<columnName/>
<valueType>2</valueType>
<value>30</value>
<valueExpr/>
</field>
<field>
<name>ParcelHeight</name>
<level>2</level>
<columnName/>
<valueType>2</valueType>
<value>30</value>
<valueExpr/>
</field>
<field>
<name>ParcelValue</name>
<level>2</level>
<columnName>ParcelValue</columnName>
<valueType>1</valueType>
<value/>
<valueExpr>LOOKUP("ParcelValue")</valueExpr>
</field>
<field>
<name>ParcelWeight</name>
<level>2</level>
<columnName>ParcelWeight</columnName>
<valueType>1</valueType>
<value/>
<valueExpr>LOOKUP("ParcelWeight")</valueExpr>
</field>
<field>
<name>ParcelWidth</name>
<level>2</level>
<columnName/>
<valueType>2</valueType>
<value>30</value>
<valueExpr/>
</field>
<field>
<name>BookingCode</name>
<level>4</level>
<columnName>Booking code</columnName>
<valueType>1</valueType>
<value/>
<valueExpr>LOOKUP("Booking code")</valueExpr>
</field>
</fields>
</file-format>
Tip
If you are going to import and allocate at the same time, then you are advised to create a 'Booking code' column with a default code that you know can be used to allocate the orders, e.g.
<column>
<name>Booking code</name>
<start>0</start>
<length>0</length>
<type>1</type>
<trim>false</trim>
<defaultType>1</defaultType>
<defaultValue>@NEXT</defaultValue>
<defaultExpr/>
</column>
You can now proceed as follows in Delivery Manager:
-
Go to the File Formats panel near the foot of the Setup page and click Choose file:
-
Browse to the XML format file that you created previously and then click Import.
-
On the File Format Details page that is now displayed, click on the Source Columns tab to enter/modify any default values, particularly those for the
SenderCode
(i.e. Warehouse Code) andBooking Code
, e.g.Note
The
ConsignmentDetailFlag
should be set toFalse
, to enable parcel-level and product-level detail. TheParcelWeight
field is then mandatory. -
Click on the Destination Fields tab to enter/modify the mappings from your own fields to the Delivery Manager fields, e.g.
-
Click Save changes in the top right hand corner of the screen, to save your format.
-
Prepare your orders file, using CSV format, ensuring that it uses the columns specified in the XML format, e.g.
OrderNumber SenderCode RecipientName RecipientLine1 RecipientLine2 RecipientLine3 RecipientLine4 RecipientPostCode Recipient Phone ParcelWeight Booking code
Note
Any columns for which you specified a default value at step 3 (e.g.
SenderCode
andBooking code
) can be left empty (apart from the title), if the default is to be applied to all rows in the file, -
Select Home followed by Import:
-
Ensure that the file format that you imported at step 2 is selected and click Choose file:
-
Browse to the CSV file that you prepared at step 6 and then click either Import (to leave the orders unallocated) or Import & Allocate.
-
A progress bar is displayed as the orders are imported.
-
If there are no errors, you can display the resultant consignments by selecting Home and then searching for the orders with the relevant status, either:
-
Unallocated (if you selected Import); or
-
Allocated (if you selected Import & Allocate).
-