Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 60 Next »

Genereral 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. 


NameMandatoryStandard (if empty)DescriptionMax lengthTypeExample
ORDER_ID

External order ID
Typically identifies each customer for this distribution.

40StringA345
ORDER_LINE_ID

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

40String891837
PICKUP
NOrder-lines are normally deliveries, but indicate here if an order-line is a pickup. Driver can then see different action-buttons. 1String (Y/N)Y
TIMEWINDOW_START
Start time of routeCriteria 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 routeCriteria for when the customer can receive the package (end time)
String/text "HH:MM" or "HHMM"19:00
-or-
1900
PRODUCT(tick)
Product name/number (must be recognised by driver)100String/textMatkasse liten
PRODUCT_COUNT
1Product quantity
Integer1
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.

40String12345ABC900987654321
-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).

1String/textB
CUSTOMER_NAME(tick)
Customer name100String/textOla Hansen
CUSTOMER_CO

Optional Care Of (if the carrier should look for other names when delivering)50String/textFam. 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.

2000String/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).

12String/text004792929393
CUSTOMER_PHONE_2

Customer's secondary phone (with or without country code), so the driver easily can contact the customer.
12String/text92929393
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).


Integer15
ADDRESS_DESCRIPTION

A description for the address, if needed for the driver.
String/text
ADDRESS(tick)
Street address100String/textMøllergata 3 A
ZIP(tick)
Zip (can be integer or string)
String/text or Integer0366
CITY(tick)
City30String/textOSLO
LATITUDE

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


Double59.915165 -or- 59,915165
LONGITUDE

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


Double10.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/textRøa
-or-
201
WEIGHT

Weight of the package (gram).


Integer250
HEIGHT

NOT IMPLEMENTED Volume. Height/width/depth. All dimensions must be given to use (cm).


Integer30
WIDTH

NOT IMPLEMENTED Volume. Height/width/depth. All dimensions must be given to use (cm).

Integer40
DEPTH

NOT IMPLEMENTED Volume. Height/width/depth. All dimensions must be given to use (cm).  


Integer20

Template-file and examples

Testfil import mal.csv


  • No labels