Importing Orders Manually

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:

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.

Example of a Format File

<?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>&#13;
</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>

Carrying out the Bulk Import

You can now proceed as follows in Delivery Manager:

  1. Go to the File Formats panel near the foot of the Setup page and click Choose file:

    File_Formats.png
  2. Browse to the XML format file that you created previously and then click Import.

  3. 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) and Booking Code, e.g.

    Source_Columns.png

    Note

    The ConsignmentDetailFlag should be set to False, to enable parcel-level and product-level detail. The ParcelWeight field is then mandatory.

  4. Click on the Destination Fields tab to enter/modify the mappings from your own fields to the Delivery Manager fields, e.g.

    Mappings.png
  5. Click Save changes in the top right hand corner of the screen, to save your format.

  6. 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 and Booking code) can be left empty (apart from the title), if the default is to be applied to all rows in the file,

  7. Select Home followed by Import:

    Import_Orders.png
  8. Ensure that the file format that you imported at step 2 is selected and click Choose file:

    Import_Orders_Allocate.png
  9. Browse to the CSV file that you prepared at step 6 and then click either Import (to leave the orders unallocated) or Import & Allocate.

  10. A progress bar is displayed as the orders are imported.

  11. 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:

    1. Unallocated (if you selected Import); or

    2. Allocated (if you selected Import & Allocate).

    Search_from_Home.png