DI Plan & Go - Importformat

General notes about the format

  • Encoding: The CSV-file is assumed to be encoded as ISO-8859-1 or UTF-8 

  • Columns

    • The order of the columns is not important.

    • The header-line (with the column names) is essential. Each column MUST have our documented names (i.e. ORDER_ID or PRODUCT). 

    • We now give an error if there are any unknown column names in the file. The file should therefore not have any other column names than those documented here. 

  • Field separator is semi colon (;), comma or tab.

  • The columns can be quoted, if so, use ("").

Quoted fields is optional (semi-colon example)
PRODUCT;CUSTOMER_NAME;ADDRESS;ZIP;CITY Roser;Ola Normann;Storgata 13B;1234;OSLO -or- "Roser";"Ola Normann";"Storgata 13B";"1234";"OSLO"
CSV example
PRODUCT,CUSTOMER_NAME,ADDRESS,ZIP,CITY Roser,Ola Normann,Storgata 13B,1234,OSLO Tulipaner,Ola Normann,Storgata 13B,1234,OSLO Julestjerne,Kari Gundersen,Kirkeveien 120,1250,OSLO

Format for delivery-file

Then uploading the file, choose the customer system all deliveries are for.

Import will fail if there are ANY OTHER COLUMNS than these. 

Name

Mandatory

Standard (if empty)

Description

Max length

Type

Example

Name

Mandatory

Standard (if empty)

Description

Max length

Type

Example

ORDER_ID





External order ID
Typically identifies each customer for this distribution.

40

String

A345

ORDER_LINE_ID





External order line ID
Typically identifies each package for this distribution. If given, it must be unique. 

40

String

891837

PICKUP



N

Order-lines are normally deliveries, but indicate here if an order-line is a pickup. Driver can then see different action-buttons. 

1

String (Y/N)

Y

TIMEWINDOW_START



Start time of route

Criteria for when the customer can receive the package (start time)



String/text "HH:MM" or "HHMM"

17:00
-or-
1700

TIMEWINDOW_STOP



End time of route

Criteria for when the customer can receive the package (end time)



String/text "HH:MM" or "HHMM"

19:00
-or-
1900

PRODUCT



Product name/number (must be recognised by driver)

100

String/text

Matkasse liten

PRODUCT_COUNT



1

Product quantity



Integer

1

PARCEL_NUMBER





Used for scanning. The number that will represented as a barcode on the parcel. Each non-blank value must be unique (within the file).
-or-
NEW Just ensure that PARTS of the numbers matches the barcode (used for scanning standard parcels). Use "?" as a wildcard (can be any single character).
When containing wildcards you may of course have multiple rows with same PARCEL_NUMBER.

40

String

12345ABC900987654321
-or-
???????????987654???

CUSTOMER_TYPE



P

Indicate customer type: (P)rivate, (B)usiness, (R)etailer or (D)rop.

Note: Some XLS-reports will not output sensitive information (name, address) for the default type (P).

1

String/text

B

CUSTOMER_NAME



Customer name

100

String/text

Ola Hansen

CUSTOMER_CO





Optional Care Of (if the carrier should look for other names when delivering)

50

String/text

Fam. Olsen

CUSTOMER_DIRECTIVE





Notes about how the delivery should take place. Can be a note from the customer about where to deliver the package or what to do if they are not home.

To preserv linebreaks, use "\n" so the driver sees the message the same way it was written.

Sanitize
Remember to sanitize the data. Would be wise to use quotes and to replace double-quotes in the comment with single-quote.

Example:
This unquoted with problem-characters (;) is INVALID:
User's; "comment"
By adding quotes and replace double with single it's VALID:
"User's; 'comment'"

Note: For this field to be helpful, the drivers must understand the customer's language.

2000

String/text

"Hvis ikke vi er hjemme, så ring på hos <nabo-navn> på samme adresse, og hun vil slippe dere inn. \nSett kassen i boden i 4.etg. Takk."

CUSTOMER_PHONE_1





Customer's primary phone (with or without country code), so the driver easily can contact the customer.
Assumed to be a mobile number (so we can send SMS to it).

12

String/text

004792929393

CUSTOMER_PHONE_2





Customer's secondary phone (with or without country code), so the driver easily can contact the customer.

12

String/text

92929393

CUSTOMER_DURATION





Optional - If you have some very time consuming customers you can send in number of minutes a visit to this customer takes. Will override the default duration (delivery time) of a customer (often given per zip-interval).



Integer

15

ADDRESS_DESCRIPTION





A description for the address, if needed for the driver.



String/text



ADDRESS



Street address

100

String/text

Møllergata 3 A

ZIP



Zip (can be integer or string)



String/text or Integer

0366

CITY



City

30

String/text

OSLO

LATITUDE





Optional - if you want to use your own coordinates, else we will perform geocoding.



Double

59.915165 -or- 59,915165

LONGITUDE





Optional - if you want to use your own coordinates, else we will perform geocoding.



Double

10.743319 -or- 10,743319

ROUTE_NAME





Optional - If you want full control of how the routes are made, you can skip the optimization and use your own routes. You can still optimize the order within the routes afterwards.

Manual or Automatic
If this column it not used the customers will automatically re-user the last used route for this address.

NOTE: The planner will always get the option between creating these routes or to ignore them and start a fresh optimisation. (and can also easy start over with the imported customer-data).



String/text

Røa
-or-
201

WEIGHT





Weight of the package (gram).



Integer

250

Template-file and examples

Testfil import mal.csv