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 16-23, and the information for the scale quantity 1000 sheets and more is specified in columns 24-31.
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 | Pre-cut | 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 | Pre-cut | 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, pre-cut, 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 | Pre-cut | 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 | Pre-cut | 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 (comma-separated 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 pre-cut 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 16-23 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