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.
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.
In addition, the following requirements apply to the format of the CSV file:
;
).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.
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.
Each row of the table is divided into two parts:
If there are several price scales for a paper, then these can be indicated in two ways in the CSV file:
If, for example, different prices exist for a paper from an order quantity of 500 sheets (scale
quantity:
500, unit of scale quantity:
'sheet') and from an order quantity of 1000 sheets
(scale quantity:
1000, unit of scale quantity:
'sheet'), the price scales can be mapped
in the following two ways in the CSV file.
Both display modes are equivalent and transport the same information:
for the scale quantity 500 sheets, the information is given in columns 1623, and the information for the scale quantity 1000 sheets and more is specified in columns 2431.
Row 1
Column 16 
Row 1
Column 17 
Row 1
Column 18 
Row 1
Column 19 
Row 1
Column 20 
Row 1
Column 21 
Row 1
Column 22 
Row 1
Column 23 

Sales quantity / SKU  Price of sales quantity  Precut  Unit of sales quantity  Scale quantity  Unit of scale quantity  Ream opening allowed  Jump quantity 
250 
37.4 
n 
sheet 
500 
sheet 
n 
250 
Row 1
Column 24 
Row 1
Column 25 
Row 1
Column 26 
Row 1
Column 27 
Row 1
Column 28 
Row 1
Column 29 
Row 1
Column 30 
Row 1
Column 31 
Sales quantity / SKU  Price of sales quantity  Precut  Unit of sales quantity  Scale quantity  Unit of scale quantity  Ream opening allowed  Jump quantity 
250 
33.4 
n 
sheet 
1000 
sheet 
n 
250 
OR
Two lines are created for the paper in the CSV file. Columns 1 to 15 are filled with the identical paper data for both lines, while columns 16 to 23 (sales quantity / SKU, price per sales quantity, precut, unit of sales quantity, scale quantity, unit of scale quantity, ream opening allowed, jump quantity) are entered differently for each sales quantity.
Row 1
Column 16 
Row 1
Column 17 
Row 1
Column 18 
Row 1
Column 19 
Row 1
Column 20 
Row 1
Column 21 
Row 1
Column 22 
Row 1
Column 23 

Sales quantity / SKU  Price of sales quantity  Precut  Unit of sales quantity  Scale quantity  Unit of scale quantity  Ream opening allowed  Jump quantity 
250 
37.4 
n 
sheet 
500 
sheet 
n 
250 
Row 2
Column 16 
Row 2
Column 17 
Row 2
Column 18 
Row 2
Column 19 
Row 2
Column 20 
Row 2
Column 21 
Row 2
Column 22 
Row 2
Column 23 
Sales quantity / SKU  Price of sales quantity  Precut  Unit of sales quantity  Scale quantity  Unit of scale quantity  Ream opening allowed  Jump quantity 
250 
33.4 
n 
sheet 
1000 
sheet 
n 
250 
As already mentioned, Keyline processes only CSV files (commaseparated values
).
The central unit, when it is decided in Keyline which paper to order and how, is the sales quantity / SKU
.
From this, it is primarily derived in which quantities a paper can be ordered.
If, for example, a paper can only be ordered with 500 sheets per ream, the value 500
should be entered in
the column sales quantity / SKU
. The price per ream must then be entered in the column price of
sales quantity
.
If a system can only output the prices per 1000 sheets, it is still possible to specify the exact order quantities in
the CSV file. In the column sales quantity / SKU
the value 1000
is deposited and in the column
price per sales quantity
according to the price per 1000 sheets.
The minimum quantity for which the price specified under price per sales quantity
applies must then be
specified in the scale quantity
column. This is effectively the minimum order quantity. The valid order
intervals can then be specified in the jump quantity
column.
If, for example, a price only applies from an order quantity
of 2000
sheets, but can be
ordered from this quantity in steps of 250 sheets, the value 2000
must be entered as the scale
quantity
and the value 250
as the jump quantity
.
In this way, the price below the price per sales quantity
can always be specified as the price per 1000
sheets. The valid minimum quantities and order quantities are defined as scales with jump quantities.
Here you will find an extended example of the possibilities offered by complex price scales and order quantities in Keyline CSV format.
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 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  Height 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 optional 
Grain of the substrate  Allowed values: "short", "long"  
10  Surface color  Text optional 
Color of the substrates surface  Example: "white", "light grey"  
11  Surface finish  Text optional 
The type of surface finish of the substrate  Example: "matte", "painted", "glossy", "elephant skin"  
12  Environmental certificatin  Text optional 
The type of environmental certification of the substrate  Allowed values: see below  
13  Color saturation  Decimal [0..1] optional 
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  
15  Order number  Text  The order number of the substrate / sales unit  Example: "ABD938832"  
16  Sales quantity / SKU  Integer  The sales quantity to which the price of this line refers  Example: 1, 1000  
17  Price per 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 optional 
Yes, if the paper is precut before delivery, otherwise no  Allowed values: y, n, 0, 1  
19  Unit of sales quantity  Text optional 
Specifies the unit, the sales quantity. If this column does not contain an entry, it results implicitly from
the entry in the Substrate Form column as follows:

Allowed values: "sheet", "m", "sqm", "piece", "kg"  
20  Scale Quantity  Integer optional 
Specifies the minimum order quantity for which the price specified under price per sales quantity applies.
For example, for a scale quantity of 100, at least 100 of the unit of the scale quantity must be ordered for the price to apply. 
Example: 10, 500, 10499  
21  Unit of scale quantity  Text optional 
Specifies the unit in which the scale quantity is specified. For example, it is possible to specify
sheet as the unit of the scale quantity, while the price is specified in a weight unit. If this
column is empty, the implicit unit of the sales quantity is assumed to be this value (see specifications for
column unit of sales quantity ).
column for these scales. If this is not the case, this means that the paper is delivered and packaged in reams. This also means that if a paper is available both reamed and unreamed, at least two scales must be specified for it. 
Allowed values: "sheet", "m", "sqm", "piece", "kg", "sheet_noream", "kg_noream", "sqm_noream"  
22  Ream opening allowed  Boolean optional 
If this column is set to , y or 1 , this means that less than one ream
(i.e. less than one packaging unit) of this paper can be ordered.

Allowed values: j, y, n, 0, 1  
23  Jump quantity  Integer optional 
Specifies the interval between two valid purchase order quantities. If the jump quantity is 1000 ,
for example, the paper can only be ordered in quantities of 1000, but not in quantities of 1500.
If no jump quantity is specified, it is implicitly identical to the value specified in the sales
quantity column. Unless the value in the unit of sales quantity column specifies a unit
that allows unreamed order quantities, that is, order quantities in steps of 1.
However, valid order quantities only result from the combination of scale quantity and jump quantity. The scale quantity specifies the minimum order quantity. With the scale quantity and the jump quantity, the next ordering intervals result from addition ( scale quantity + (n * jump quantity) for n as an
integer).
The unit of the jump quantity is always identical to the unit of the scale quantity. 
Example: 10, 500, 10499 
As described already under structure of the table columns 1623 can be repeated multiple times in order to specify multiple sales units or differential pricing.
Allowed values for the column environmental certification
:
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 60%  FSC Recycled 70%  FSC Recycled 75%  
FSC Recycled 80%  FSC Recycled 85%  FSC Recycled 95%  FSC Recycled 100%  
PEFC 70%  PEFC 75%  PEFC 80%  PEFC 95%  
PEFC 100% 
Version 4 // 02. May 2019