Sales Portal File Specifications

Overview #

See also:

Currencies #

The sales portal supports one currency at a time. However, you may configure what the currency is using the Company Settings "Sales portal currency code" field. E.g. if the values you provide below for "UnitPrice" etc are Euros, then specify EUR in the "Sales portal currency code" Company Setting.

File Requirements #

The eCat Online sales portal requires two files in addition to the files required for the eCat iPad app: order_data.csv and invoice_data.csv. (Filenames are case sensitive.) These files can be uploaded interactively in the admin portal or put in the FTP site /data directory for automated processing.

Order and invoice records have two sections, a header and a list of items. These two sections are combined into one CSV file as follows. The first row for a given order (or invoice) contains the header fields as well as the fields for the first item. Subsequent rows contain the fields for each of the remaining items, and contain nothing for the header fields. The order and invoice files must be sorted so all the lines for a given order or invoice are grouped together. For example:

header 1 field 1header 1 field 2line 1 field 1line 1 field 2
line 2 field 1line 2 field 2
header 2 field 1header 2 field 2line 1 field 1line 1 field 2
line 2 field 1line 2 field 2
line 3 field 1line 3 field 2

Subsequent rows (for line items) may repeat the header details for ease of programming (SQL OUTER JOINs will repeat those details). We use the first row of header data we see and ignore subsequent redundant header values.

That is, the following is OK:

header 1 field 1header 1 field 2line 1 field 1line 1 field 2
header 1 fieldheader 1 field 2
line 2 field 1line 2 field 2
header 2 field 1header 2 field 2line 1 field 1line 1 field 2
header 2 field 1
header 2 field 2
line 2 field 1line 2 field 2
header 2 field 1
header 2 field 2
line 3 field 1line 3 field 2

Performance #

Import time is a concern because a single company could have millions of rows of imported invoice/order data and thousands of users. Therefore, we employ the following strategy:

  • each record (order, invoice) includes a LastModifiedAt timestamp. After an import, the system marks the most recent timestamp and stores it. On subsequent imports, only records with timestamps newer than the LastModifiedAt value will be considered for adding/modifying.
  • each record (order, invoice) includes a OrderDate/InvoiceDate. The import process will keep track of the earliest date in the import file. Afterwards, it will delete all records with dates prior to that minimum date.

File Specification #

order_data.csv File Specifications #

(click here to download a sample order_data.csv file)

Field Name Type Req? Length Comments
Order Header Fields ————————————————
LastModifiedAt N Y Specifies the last time this order record was modified. Accounts for the order lines as well. (Do not include this field for the subsequent order lines.) This must be a number, not a date/time. It could be,for example 'the number of milliseconds since Jan 1, 1970, 00:00 UTC'.
OrderNumber S Y used for display, search, and to correlate invoices with orders
Complete B Y indicates whether or not the order is complete - meaning there are no additional items on the order remaining to be invoiced; enables users to view only unshipped orders in the order list and customer dashboard; required for order filtering and for the customer dashboard 'Snapshot' view. Also used to determine whether to include the order’s items in the backlog calculations.
OrderDate D Y required field used for filtering, sorting, display, and dashboard graphs
ShipDate D N customer's requested order ship date for informational display
CancelDate D N customer's requested order cancellation date for informational display
Status S Y enables filtering by order status
OrderOrigin S Y enables filtering by order origin
ShipComplete B N customer's shipment preference
BuyerName S N for display as information on orders
RepNumber S N for display as information on orders
RepEmail S N for display as information on orders
RepName S N for display as information on orders
CustomerPONumber S Y used for search/finding orders; displayed as information on orders
ShipmentPreference S N e.g. “As Available”; For display as information on orders
FOB S N for display as information on orders
Terms S N for display as information on orders
Tagfor S N shipment 'mark for'; for display as information on orders
OrderNotes S N for display as information on orders
OrderURL S N used to link order to web hosted copy of 'official' company order
CustomerBillToNumber S Y The customer’s bill-to code. Used to group orders by customer. Also used to limit what a user can see by territory. This must match a customer code in customers.csv to work correctly.
CustomerBillToName S Y the company name of the customer; used for display, sorting, and search.
CustomerBillToEmail S N for display as information on orders
CustomerBillToPhoneNumber S N for display as information on orders
CustomerBillToLine1 S N for display as information on orders
CustomerBillToLine2 S N for display as information on orders
CustomerBillToLine3 S N for display as information on orders
CustomerBillToCity S N for display as information on orders
CustomerBillToState S N for display as information on orders
CustomerBillToPostalCode S N for display as information on orders
CustomerBillToCountry S N for display as information on orders
CustomerShipToNumber S N for display as information on orders
CustomerShipToName S N for display as information on orders
CustomerShipToLine1 S N for display as information on orders
CustomerShipToLine2 S N for display as information on orders
CustomerShipToLine3 S N for display as information on orders
CustomerShipToCity S N for display as information on orders
CustomerShipToState S N for display as information on orders
CustomerShipToPostalCode S N for display as information on orders
CustomerShipToCountry S N for display as information on orders
DiscountAmount F N for display as information on orders
TaxableAmount F N for display as information on orders
NonTaxableAmount F N for display as information on orders
DepositAmount F N for display as information on orders
FreightAmount F N for display as information on orders
TaxAmount F N for display as information on orders
TotalAmount F Y The total amount of the order after all discounts and surcharges. This number is used for display in the list of orders. Note: this number is not used for most totals in the Sales Portal, e.g. the Total Amount Ordered. Most totals use the individual line items.
Order line fields ———— ———— ———— ————
LineNumber I
N 20 order line number used for sorting order lines to match original order
ItemNumber S Y 25 used to tie sales events to products, collections, tradenames, etc. eCatItemNumber is also available if the ItemNumber doesn't match a BaseItemCode in products.csv.
eCatItemNumber S N 25 If ItemNumber doesn't match an item in your products.csv file (before any matrix modifiers), include this. If blank, eCat Portal will use ItemNumber to link to the product record.
Description S Y 255 Product description for display in order view, order email
Description2 S N 255 Additional description available for line notes, production/delivery status, etc.
QuantityOrdered I Y
used to calculate backlog totals and order totals. May be negative.
QuantityInvoiced I Y
quantity of order line that has been invoiced. Used to calculate backlog totals and invoice totals.
QuantityBackordered I N
for information only
QuantityAvailable I N
for information only
QuantityPendingInvoice I N for information only. If present, orders will display a new column.
QuantityReleasedToShip I N for information only. If present, orders will display a new column.
AvailableDate D
N
for information only
AvailableDescription S N
for information only
UnitPrice F Y
used to calculate sales totals, combined with QuantityOrdered and QuantityInvoiced. QuantityOrdered * UnitPrice = the line item’s extended price


invoice_data.csv File Specifications #

(click here to download a sample invoice_data.csv file)

Field Name Type Req? Length Comments
Invoice Header Fields ----- ----- ----- -----
LastModifiedAt N Y Specifies the last time this record was modified. Accounts for the order lines as well. (Do not include this field for the subsequent lines.) This must be a number, not a date/time. It could be, for example 'the number of milliseconds since Jan 1, 1970, 00:00 UTC'.
InvoiceNumber S Y used for display, search, and to correlate invoices with orders
InvoiceDate D Y required field used for filtering, sorting, display, and dashboard graphs
OrderNumber S N links the given order to the invoice
RepNumber S N
ShipVia S N for information only
TrackingNumber S N if present, will display a tracking link. Used with TrackingCarrier.
TrackingCarrierSNthe carrier that the TrackingNumber is for. See Setting up eOL portal Shipment Tracking for a list of valid tracking carriers.
Factor S N
FOB S N for information only
Terms S N for information only
InvoiceURL S N used to link invoice to web hosted copy of 'official' company invoice
CustomerPONumber S Y
CustomerBillToNumber S Y The customer’s bill-to code. Used to group invoices by customer. Also used to limit what a user can see by territory. This must match a customer code in customers.csv to work correctly.
CustomerBillToName S Y the company name of the customer; used for display, sorting, and search.
CustomerBillToEmail S N for information only
CustomerBillToPhoneNumber S N for information only
CustomerBillToLine1 S N for information only
CustomerBillToLine2 S N for information only
CustomerBillToLine3 S N for information only
CustomerBillToCity S N for information only
CustomerBillToState S N for information only
CustomerBillToPostalCode S N for information only
CustomerBillToCountry S N for information only
CustomerShipToNumber S N for information only
CustomerShipToName S N for information only
CustomerShipToLine1 S N for information only
CustomerShipToLine2 S N for information only
CustomerShipToLine3 S N for information only
CustomerShipToCity S N for information only
CustomerShipToState S N for information only
CustomerShipToPostalCode S N for information only
CustomerShipToCountry S N for information only
DiscountAmount F N for information only
FreightAmount F N for information only
TaxableAmount F N for information only
NonTaxableAmount F N for information only
TaxAmount F N for information only
DepositAmount F N for information only
footer_<text> F N used to add custom invoice footer fields. When populated the fields will display as a footer entry above the invoice total with the label '<text>'. Spaces are allowed in the <text> label. The field values must be numeric. For example, add a field named 'footer_Drop Ship charge' to display a 'Drop Ship charge' on invoices. Please note that like the fields above, these fields are for informational display only. They are not used for calculations. The invoice_data.csv NetAmount field value should be adjusted to account for any discounts or charges shown.
NetAmount F Y Net total invoice amount. This number is used for display in the list of invoices. Note: it is not used for most totals in the Sales Portal, e.g. the CY Sales numbers. Most totals use individual line items. This should be negative for credit memos.
Invoice line fields ----- ----- ----- -----
LineNumber I
Y 20 line number used for sorting lines to match original invoice
ItemNumber S Y 25 used to tie sales events to products, collections, tradenames, etc. eCatItemNumber is also available if the ItemNumber doesn't match a BaseItemCode in products.csv.
eCatItemNumber S N 25 If ItemNumber doesn't match an item in your products database (before any modifiers), include this. If blank, eCat Portal will use ItemNumber to link to the product record.
Description S Y 255 Product description for display in order view, order email
Description2 S N 255 Additional description available for line notes, production/delivery status, etc.
ItemTrackingNumber S N 50 Tracking number for this specific item. We recommend using tracking at the header level (see TrackingNumber and TrackingCarrier above), or by providing the invoice_tracking_data.csv file. For more information, see Setting up eOL portal Shipment Tracking.
ItemTrackingCarrier S N 5 The SCAC code for this item tracking number. See Setting up eOL portal Shipment Tracking for a list of valid tracking carriers.
QuantityOrdered I Y
for information only
QuantityInvoiced I Y
multiplied by UnitPrice to calculate sales totals and extended line amount on invoice informational display; should be negative for credit memos
QuantityBackordered I N
for information only
QuantityReturned I N
for information only
UnitPrice F Y
multiplied by QuantityInvoiced to calculate sales totals; used for informational display


Automatic summary sales data file generation #

A summary data file named sales_data.csv can be used to make sales data available to users offline.

After importing order and invoice data files, you may have our system automatically create your company's sales_data.csv file from that data. To do so, upload a file called sales_data_sentinel.csv along with your order_data.csv and invoice_data.csv. The contents of the sentinel file don't matter. The sales data will be built after the other two files have been imported.

Note that automatic sales data file generation uses data in a data warehouse that's updated hourly to build the summary sales_data.csv file used in eCat on user iPads.

For automatic sales_data.csv file generation to work best, the order_data.csv and invoice_data.csv files should be uploaded to the FTP site roughly an hour before the sales_data_sentinel.csv file is put on the FTP site to start file generation. There may be some variation due to file sizes and server load, but the timing should almost always work if the order and invoice portal data is uploaded by the top of the hour, then the sentinel file at the top of the next hour.

Tips & Tricks #

  • CSV file format guidelines
  • See Sales Information Access for information about how to control/limit access to sales information
  • File processing Timeframe: Invoice and order data can be uploaded at any time. However note that while invoice and order details are updated as soon as file processing is complete, dashboard totals and the totals in the customer report depend on a data warehouse update done hourly at 20 minutes after the hour. The warehouse update takes 30-40 minutes to complete. So depending on file upload timing it may be up to one hour and 40 minutes before data changes in the new file take effect.