Order Import (CSV)

Function available from version 1.16

CSV Order Import

This guide describes the default CSV order import. It watches a configured folder for .csv files, imports all CSV files in sorted filename order, and then moves successful files to the archive folder. Failed files are moved to an error folder together with an .error.txt file.

System Settings

The settings are in the Integration system settings group.

Setting Default Description
Order Import Path empty Folder watched for CSV files. When empty, the watcher is stopped. When set, the watcher starts automatically.
Order Import Archive Path c:/eton/import/archive Folder where successfully imported CSV files are moved. If empty, successfully imported files are deleted.
Order Import Date Formats yyyy-MM-dd HH:mm, yyyy-MM-dd List of date formats tried in order when parsing date columns.
Order Import Delimiter ; Field delimiter used by the default CSV order import.

The import path setting controls the watcher:

Import path value Watcher behavior
Empty or whitespace Watcher is disabled/stopped.
Non-empty folder path Watcher is enabled and attempts to import .csv files from the folder.

File Format

The default delimiter is semicolon (;). The first row must contain column names. Column names are case-insensitive.

The examples below are shown as tables for readability. Each table represents one CSV file: the table headers are the CSV header row, and each table row is one CSV data row.

OrderNumber OrderLineNumber Quantity ArticleNumber
10001 1 25 500101

Empty rows are ignored. Rows that contain order data but no orderline data are kept only as the current order header/context. They are not imported as standalone orders. Every imported order must have at least one orderline by the end of the file.

Escaping Values

If a value contains the field delimiter, a line break, or a double quote ("), wrap the whole value in double quotes.

Inside a quoted value, write a double quote as two double quotes ("").

Intended value CSV value
ABC;123 "ABC;123"
ABC"123 "ABC""123"
ABC;"123" "ABC;""123"""

Example with article numbers that contain the delimiter and quote characters:

OrderNumber;OrderLineNumber;Quantity;ArticleNumber
10001;1;25;"ART;500101"
10001;2;10;"ART""500102"

Minimal Import

This is the smallest useful file: one order, one orderline, one article.

OrderNumber OrderLineNumber Quantity ArticleNumber
10001 1 25 500101

Actual CSV file content:

OrderNumber;OrderLineNumber;Quantity;ArticleNumber
10001;1;25;500101

Result:

Entity Value
Order 10001
Orderline 1
Quantity 25
Article 500101

Multiple Orderlines On One Order

Repeat the order number for each orderline.

OrderNumber OrderLineNumber Quantity ArticleNumber
10001 1 25 500101
10001 2 10 500102

The import creates one order with two orderlines.

Header Row With Continued Orderlines

You can put order data on a header row and then list orderlines below it. The header row only provides context; it does not create an order by itself. Rows without order data are attached to the last order row.

OrderNumber OrderDate DeliveryDate OrderLineNumber Quantity ArticleNumber
20001 2026-07-08 10:00 2026-07-20
1 15 600101
2 20 600102

Because row 2 and row 3 omit OrderNumber, they continue using order 20001.

If an order header is never followed by an orderline row, that order is not imported.

Multiple Orders In One File

Start a new order by specifying a new order number.

OrderNumber OrderDate OrderLineNumber Quantity ArticleNumber
30001 2026-07-08 1 5 700101
30001 2026-07-08 2 8 700102
30002 2026-07-09 1 6 700201

Dates

Date columns are parsed using the Order Import Date Formats setting. The default accepts:

Example Format
2026-07-08 10:00 yyyy-MM-dd HH:mm
2026-07-08 yyyy-MM-dd

Example:

OrderNumber OrderDate DeliveryDate FirstManufacturingDate OrderLineNumber Quantity ArticleNumber
40001 2026-07-08 08:00 2026-07-15 2026-07-09 1 25 800101

Aliases

The preferred column names avoid dots and use the entity/property name where that is unambiguous. Older dotted names and a few short names are still accepted as aliases.

Order Orderline Quantity Article Bulk factor
50001 1 12 900101 1.5

This is equivalent to:

OrderNumber OrderLineNumber Quantity ArticleNumber BulkFactor
50001 1 12 900101 1.5

Custom Fields

Custom fields can be imported for orders, orderlines, articles, and article groups.

Use scoped prefixes when a row contains both order and orderline data:

OrderNumber OrderLineNumber Quantity ArticleNumber Order.Custom:Customer Orderline.Custom:Batch
60001 1 25 910101 Acme B-100

This creates:

Scope Custom field Value
Order Customer Acme
Orderline Batch B-100

Bare Custom: is allowed only when the row is unambiguous:

OrderNumber OrderDate Custom:Customer
60002 2026-07-08 Acme

Do not use bare Custom: on a row that contains both order and orderline data. The import rejects that because it cannot know whether the value belongs to the order or the orderline.

Criteria

Use Criteria:{type} or Orderline.Criteria:{type} to add criteria to an orderline.

OrderNumber OrderLineNumber Quantity ArticleNumber Criteria:SIZE Criteria:COLOR
70001 1 10 920101 M NAVY

This adds orderline criteria:

Criteria type Value
SIZE M
COLOR NAVY

For Criteria:{type}, colons inside the type name are converted to spaces. For Orderline.Criteria:{type}, colons inside the type name are converted to hyphens.

Routes

Routes must already exist in the system. If a referenced route is missing, the import fails.

OrderNumber OrderLineNumber Quantity ArticleNumber Route
80001 1 10 930101 Main Route

Route sets the route on the orderline. Article.Route sets the default route on the imported article.

Article Groups

Use ArticleGroup to assign an article group by name.

OrderNumber OrderLineNumber Quantity ArticleNumber ArticleGroup
90001 1 10 940101 Jackets

Article group custom fields can be provided with ArticleGroup.Custom:{field}.

OrderNumber OrderLineNumber Quantity ArticleNumber ArticleGroup ArticleGroup.Custom:Season
90002 1 10 940102 Jackets AW26

Advanced Example

This example combines order header rows, continued orderline rows, dates, criteria, custom fields, article groups, and routes.

OrderNumber OrderDate DeliveryDate Order.Custom:Customer OrderLineNumber Quantity Express ArticleNumber ArticleDescription BulkFactor ArticleGroup Route Criteria:SIZE Criteria:COLOR Orderline.Custom:Batch
91001 2026-07-08 10:00 2026-07-20 Acme
1 15 false 950101 Blue jacket 1.0 Jackets Main Route M NAVY B-91001-1
2 20 true 950102 Black jacket 1.5 Jackets Main Route L BLACK B-91001-2
91002 2026-07-09 2026-07-21 Northwind
1 12 false 950201 White shirt 1.0 Shirts Main Route S WHITE B-91002-1

Column Reference

Order Columns

Column Alias Type Description
OrderNumber Order.Number, Order Text/number Required to start a new order.
Customer Order.Customer Text Customer value on the order.
OriginalOrderNumber Order.OriginalNumber, Original order number Text Original order number.
OrderDate Order.OrderDate, Order.Date, Order date Date Order date.
DeliveryDate Order.DeliveryDate, Delivery date Date Delivery date.
FirstManufacturingDate Order.FirstManufacturingDate, First manufacturing date Date First manufacturing date.
Order.Custom:{field} Custom:{field} on order-only rows Text Order custom field.

Orderline Columns

Column Alias Type Description
OrderLineNumber Orderline.Number, Orderline Text/number Orderline number. If omitted on an orderline row, a sequence number is assigned.
OriginalOrderLineNumber Orderline.OriginalNumber, Original order line number Text Original orderline number.
Quantity Orderline.Quantity Integer Required for orderline rows.
Express Orderline.Express Boolean true or false. Defaults to false when omitted.
OrderLineRoute Orderline.Route, Route Text Existing route name to use for this orderline.
Orderline.Custom:{field} Custom:{field} on orderline-only rows Text Orderline custom field.
Orderline.Criteria:{type} Criteria:{type} Text/number Orderline criteria. Numeric values also become criteria codes.

Article Columns

Column Alias Type Description
ArticleNumber Article.Number, Article Text/number Article number for the orderline.
ArticleDescription Article.Description Text Article description.
BulkFactor Article.BulkFactor, Bulk factor Decimal Article bulk factor. Defaults to 1.
ArticleRoute Article.Route Text Existing route name to assign as the article route.
Article.Custom:{field} Text Article custom field.

Article Group Columns

Column Alias Type Description
ArticleGroup Text Article group name.
ArticleGroup.Custom:{field} Text Article group custom field.

Validation Rules

Rule Result
Empty rows Ignored.
Rows without order data and without orderline data Ignored.
Order-only rows Used as headers/context for following orderline rows. They are not imported as standalone orders.
Order with no imported orderlines Not imported. If the file contains no new orderlines at all, import fails.
Orderline row before any order row Import error.
Bare Custom: on a row with both order and orderline data Import error.
Duplicate orderline numbers within the same imported order Import error.
Imported orderline already exists in the system Import error.
Referenced route does not exist Import error.
No new orderlines found Import error.

File Processing

  1. Put one or more .csv files in the configured import path.
  2. The watcher waits briefly so files can finish copying.
  3. Files are imported in sorted filename order.
  4. Successful files are moved to the archive folder.
  5. Failed files are moved to {ImportPath}/error/{timestamp} with an .error.txt file.

Troubleshooting

Symptom Likely cause
Nothing imports and watcher does not run Order Import Path is empty.
File goes to error with "No new order lines found" The file has no recognized orderline rows, or all orderlines already exist. Check delimiter and column names.
File goes to error with route message The route name in Route, OrderLineRoute, Orderline.Route, ArticleRoute, or Article.Route does not exist.
Date parse error Add the date format to Order Import Date Formats or change the CSV date value.
Columns are ignored Column name does not match the supported names or aliases.