Import of paper and price information

The basis of every calculation and well functioning business is correct information, especially regarding consumables such as paper. As there are now more paper types than cheese in France, a manual import of this data is out of the question. That's why we've designed a file format that contains paper information and prices that can be imported into Keyline.

File format

For an automatic import Keyline expects a CSV file with a structure as described below.

The data exchange through the import of files is an emergency solution and does not correspond to the technical state of the 21st century. In the medium term, the data import should be done through our REST interfaces. If you are interested in our API as a paper supplier or manufacturer, please contact us.

Structure of the table

Each row of the table is divided into two parts:

  • Columns containing paper information (1 to 14)
  • Columns containing order information (order number, sales quantity, price, precut, minimum and maximum order quantity)

If a paper has differential pricing or is available in multiple sales quantities, then columns 16-20 (order number, sales quantity, price, precut, minimum and maximum order quantity) must be given multiple times per paper.

For example, if a paper is delivered unrendered (sales quantity 1), but also in a 1000-sheet ream (sales quantity 1000), then the price for sales quantity 1 is defined in columns 16-20, while the price for sales quantity 1000 is specified in columns 21-25.

Same applies in case of tiered pricing. All price tiers must be given in the form of the five columns (order number, sales quantity, price, precut, minimum and maximum order quantity) and can be specified repeatedly.

File format

As already mentioned, Keyline processes only CSV files (comma-separated values).

Download example CSV file

In addition, the following requirements apply to the format of the CSV file:

  • The file must be saved with charset UTF-8.
  • The file must contain a header line. However, the exact column names are not specified by Keyline.
  • The column separators must be semicolon (;).
  • If the type of Decimal specified for a column in the description below, the values of this column must use a period (.) as the decimal separator. Commas are not allowed in these columns as decimal separator nor as thousands separator.
  • If the type of Integer specified for a column in the description below, the values of this column must not contain any decimal separators or thousands separators, but must contain only numbers.
  • If a column is declared optional in the description below, this means that this column may contain empty values. However, columns marked as optional must always be included in the file to be imported.
    This means that a file to be imported must always and in any case contain at least 17 columns.

Semantic correctness

Keyline needs a solid database as the foundation of automation. This data base must be semantic, meaning that it must be technically possible which data has which significance. That's why we need all the information clean and separate. Sizes and weights, for example, must be in separate columns, we can not extract information contained in the paper name and are a hindrance, as this filtering on pure paper name is impossible.

Column definitions

Column index
1 Substrate form Text Form of the printable substrate Allowed values: "sheet", "roll", "envelope", "piece"
2 Substrate type Text Type of the printable substrate Allowed values: "paper", "carton", "plastic", "foil", "metal", "wood", "cloth"
3 Name Text Name of the printable substrate Example: "ArtMulti Silk"
4 Category Text The product category of the substrate Beispiele: "Photographic paper", "High gloss", "Matte"
5 Width in mm Integer [mm] The width of the substrate, with changes of the direction of rotation do not replace (!) with the substrate's height Example: 1000
6 Width in mm Integer [mm] The height of the substrate, with changes of the direction of rotation do not replace (!) with the substrate's width Example: 700
7 Thickness in µm Integer [µm] Thickness of the substrate in micrometer Example: 150
8 Grammage in g/m² Integer [g/m²] Grammage of the substrate specified as grams per square meter Example: 150
9 Grain Text Grain of the substrate Allowed values: "short", "long"
10 Surface color Text Color of the substrates surface Example: "white", "light grey"
11 Surface finish Text The type of surface finish of the substrate Example: "matte", "painted", "glossy", "elephant skin"
12 Environmental certificatin Text The type of environmental certification of the substrate Allowed values: "FSC 30%", "FSC 50%", "FSC 70%", "FSC 80%", "FSC 100%", "FSC Mix Credit", "FSC Mix 30%", "FSC Mix 50%", "FSC Mix 70%", "FSC Mix 80%", "FSC Recycled Credit", "FSC Recycled 30%", "FSC Recycled 50%", "FSC Recycled 70%", "FSC Recycled 80%", "FSC Recycled 100%", "PEFC 70%", "PEFC 100%" or empty
13 Color saturation Decimal [0..1] The color saturation as a percentage between 0 and 1 Example: 0.24 (for 24%)
14 Coated Boolean Yes, if the paper is coated Allowed values: y, n, 0, 1, coated, uncoated
15 Order number Text The order number of the substrate / sales unit Example: "ABD938832"
16 Sales unit Integer The sales quantity to which the price of this line refers Example: 1, 1000
17 Price of the sales quantity Decimal The price of the sales amount of the preceding column in the currency of the printing company Example: 0.3232, 1932.21
18 Precut Boolean Yes, if the paper is pre-cut before delivery, otherwise no Allowed values: y, n, 0, 1
19 Minimal order quantity Integer Example: 1, 100
20 Maximum order quantity Integer Example: 1, 100

As described already under structure of the table columns 16-20 can be repeated multiple times in order to specify multiple sales units or differential pricing.

Version 64a18ea58883108337def4bf1923fcab3612131f