YO!

FARO FTP Process

FTP Setup

Faro only accepts FTP from static IP addresses. We at Faro filter who can access our site and who cannot. If you are using a company site utilizing a T1 or better connection you can check your IP address using What is my IP . You can check this value from day to day and if it does not change then you probably do have a static IP. But if it does change then you are not using static IP and must find a static IP site to send your data from for all data transmissions.

Please understand, Faro Logistics want to protect your data and this helps unwanted users from accessing our site. If you are trying to send CSV files from home then you probably should check with your local Internet Provider about aquiring a static ip address if you do not already have one.

Date Formatting

Date formatting is very important. Failure to send properly formatted dates can result in customers not receiving packages on time. Faro uses ASCII date formatting. The date is formatted as 20111225 where we see YYYYMMDD. The YYYY equals the year, MM represents a two digit month and DD is the two digit day of the month.

To format January 5, 2012 we would expect 20120105. Note we did not use any backslashes. The months and day of the month are always sent as two digit numbers.

Failure to follow proper date syntax will place date liability on you, our customers. Faro will not be responsible for any dates not sent using ASCI formatting.

What is an Acceptable CSV File?

A CSV file is actually a delimited file. This file is dropped onto our FTP site and automatically transfered to our WMS. CSV is a common, relatively simple file format that is widely supported by consumer, business, and scientific applications. Among its most common uses is moving tabular data between programs that natively operate on incompatible (often proprietary and/or undocumented) formats. This works because so many programs support some variation of CSV at least as an alternative import/export format. For example, a user may need to transfer information from a database program that stores data in a proprietary format, to a spreadsheet that uses a completely different format. The database program most likely can export its data as "CSV"; the exported CSV file can then be imported by the spreadsheet program. "CSV" is not a single, well-defined format (although see RFC 4180 for one definition that is commonly used). Rather, in practice the term "CSV" refers to any file that: is plain text using a character set such as ASCII, Unicode, EBCDIC, or Shift JIS, consists of records (typically one record per line), with the records divided into fields separated by delimiters (typically a single reserved character such as comma, semicolon, or tab; sometimes the delimiter may include optional spaces), where every record has the same sequence of fields. Within these general constraints, many variations are in use. Therefore "CSV" files are not entirely portable. Nevertheless, the variations are fairly small, and many implementations allow users to glance at the file (which is feasible because it is plain text), and then specify the delimiter character(s), quoting rules, etc. If a particular CSV file's variations fall outside what a particular receiving program supports, it is often feasible to examine and edit the file by hand or via simple programming to fix the problem. Thus CSV files are, in practice, quite portable.

The requirements are as followed:

It must have a file extension of ".CSV". 20120107.csv works fine but the name should not have any spaces. 2012 0101.csv would not be acceptable.

Faro will only accept one copy of the file per hour or the file will fail to import. Duplicate data is not accepted and will cause the file to fail. Under normal circumstances the scheduler picks up your file every 1/2 hour and processes it through our system.

If a scheduler is busy or the on occasion, the scheduler is "hung-up", it will require the IT department to investigate and push your file through.

Now we must keep a one for one header to detail correspondence. For each header column there must be a corresponding detail column record. It is very important to maintain this one for one relationship or your file will be rejected. This means if the field is blank, it must still be sent or your file will error out.

Each file begins with the row with the column names. These names are written in stone and are agreed upon by both Faro and our clients. The column names can be altered over time but they must be in our list of "agreed upon" headers names. Names of headers would be like ORDER_NO, Shipto1, Shipto2, SHIP_POSTAL_CODE, ShipVia. The header names are only inserted into the CSV file once and must be the top row.

ORDER_NO|

ORDER_DATE|

CUSTOMER_NO|

SHIP_ADDRESS_1|

SHIP_ADDRESS_2|

SHIP_CITY|

SHIP_STATE|

SHIP_POSTAL_CODE|

SKU|

QTY_TO_SHIP

Lets examine what we are looking at in this header row and the implications of it. First we note the delimiter is a pipe sign (|). We must agree on the delimiter and it must never change. Examples of delimiters are ^$!~ and we ask you do not use the ampersand &. We will not accept a comma as the delimiter. Commas are used often in name and addresses and will unbalance the header record to detail record column count. The last column will not have a delimiter at the end of it. Now lets add a detail order to match our header

ORDER_NO|

ORDER_DATE|

CUSTOMER_NO|

SHIP_ADDRESS_1|

SHIP_ADDRESS_2|

SHIP_CITY|

SHIP_STATE|

SHIP_POSTAL_CODE|

SKU|

QTY_TO_SHIP

1234001|

20121109|

AJAX Corp|

33 Pleasant Ave|

|

Niles|

Oh|

44446|

45100GR|

24

We see that SHIP_ADDRESS_2 is blank but the pipe delimiter holds a place for it. This will be explained below. The SHIP_STATE is always two characters. No delimiter is after the QTY_TO_SHIP. We have a one for one correspondence between header and detail line SKUs. Now lets add another SKU to the sales order.

ORDER_NO|

ORDER_DATE|

CUSTOMER_NO|

SHIP_ADDRESS_1|

SHIP_ADDRESS_2|

SHIP_CITY|

SHIP_STATE|

SHIP_POSTAL_CODE|

SKU|

QTY_TO_SHIP

1234001|

20121109|

AJAX Corp|

33 Pleasant Ave|

|

Niles|

Oh|

44446|

45100GR|

24

1234001|

20121109|

AJAX Corp|

33 Pleasant Ave|

|

Niles|

Oh|

44446|

65100LR|

36

Now we see where we duplicated the ORDER_NO and the address as well as added the second SKU. Note that spaces are not an issue and all fields are trimmed during processing.

Now lets add a second sales order to this same file. This time we used the SHIP_ADDRESS_2 field and see why it was necessary to leave a blank in the first sales orders but carry the place holder.

ORDER_NO|

ORDER_DATE|

CUSTOMER_NO|

SHIP_ADDRESS_1|

SHIP_ADDRESS_2|

SHIP_CITY|

SHIP_STATE|

SHIP_POSTAL_CODE|

SKU|

QTY_TO_SHIP

1234001|

20121109|

AJAX Corp|

33 Pleasant Ave|

|

Niles|

Oh|

44446|

45100GR|

24

1234001|

20121109|

AJAX Corp|

33 Pleasant Ave|

|

Niles|

Oh|

44446|

65100LR|

36

1234002|

20121109|

Widget Corp|

989 SkyView Dr|

Suite D|

Tionesta|

PA|

16353|

45100GR|

18

1234002|

20121109|

Widget Corp|

989 SkyView Dr|

Suite D|

Tionesta|

PA|

16353|

65100LR|

12

1234002|

20121109|

Widget Corp|

989 SkyView Dr|

Suite D|

Tionesta|

PA|

16353|

43200LR|

36

These are the standard Faro CSV Fields we would like you to use.

Preferred Column Names for CSV files

Column Header Name

Description

Min/Max Size

Required

Order Information (Manditory)

BATCH_ID

This is your batch number and can
be used to group orders together

0 / 10

N

ORDER_NO

Your Order Number used to track in
Radio Beacon

1 / 15

Y

CUSTOMER_NO

Used to group customer orders together in Radio Beacon

0 /15

N

CUST_ORD_NO

The Customer Order Number similiar to ORDER_NO

0 /15

N

ORDER_DATE

The date used to track this order

8/8

Y

CANCEL_DATE

If not shipped by this date then cancel order

0/8

N

DONT_SHIP_BEFORE_DATE

Future Ship Date, hold till this day

0/8

N

DATE_REQRD

Date SKU must be delivered by

0/8

N

Shipping Information (Manditory)

RECIPIENT_NAME

Shipto Name

1/35

Y

SHIP_ADDRESS_1

Shipto Addr 1

2/35

Y

SHIP_ADDRESS_2

Shipto Addr 2

2/35

Was this article helpful? Yes | No