The item data must represent the current receipt. This means that all scanned articles, including child articles and deposits, must be present in the request in order to calculate the correct bonuses and stamp points. The articles array can contain an unlimited number of articles. The entries in child_articles have the same properties as the articles array. The only exception: a child_articles array cannot contain child_articles array.
"purchase": {
// ...
"articles": [
{
"type": "crate",
"ean": "41001301",
"partner_article_number": "3498494-H",
"partner_article_description": "Coca Cola 12x1l",
"position": 1,
"pawn": 3.30,
"amount": 1,
"discountable": true,
"tax_rate": 0.19,
"child_articles": [
{
"ean": "41001301",
"partner_article_number": "3498494-V",
"partner_article_description": "Coca Cola 1l",
"position": 1,
"pawn": 0.1425,
"price": 0.881667,
"discountable": true,
"tax_rate": 0.19,
"amount": 12
}
]
}
// ... Weitere Artikel
]
}
| Field name | Type | Field type | Field description | Use |
|---|---|---|---|---|
type |
String | mandatory | EAN type of article | This type is used to identify the EAN type. Can contain one of the following values: single, bundle, crate, pawn |
ean |
String | mandatory | EAN of the leading article | The EAN is used to recognize the article in the Bottle-O system. For mixed crates, this EAN is important for deciding which article the crate belongs to. |
partner_article_number |
String | Optional | Article number of the partner | The partner_article_number is used to recognize the article in the Bottle-O system if it has been maintained. Important for mixed crates to decide which article the crate belongs to. |
partner_article_description |
String | Optional | Description of the article | If there is no match via the EAN or the partner_article_number, the data still shows which article it is. |
position |
Int | Mandatory | Position of the article on the receipt | This must not change during the checkout process. |
pawn |
Float | mandatory | deposit amount of the item | The complete deposit amount. In the case of a crate, the crate deposit + the deposit for the individual bottles is displayed here. |
price |
float | obligation | article price | many NKS to avoid rounding errors |
tax_rate |
Float | mandatory | tax rate of the item | tax rate at which the item is sold. |
amount |
Int | mandatory | number of the item on the receipt | |
discountable |
Boolean | mandatory | flag whether the article qualifies for bonuses | If this field is set to false, the article is not taken into account for the calculation of stamp points and bonuses |
child_articles |
Array | Optional | A list of child articles, such as the individual bottles in a crate | This makes it possible to process mixed crates. All child articles must also be specified for homogeneous crates. If the scanned article is a single bottle, for example, the child_articles are not necessary. |
The deposit for individual bottles is calculated by multiplying the number of individual bottles on the receipt by the deposit value of the individual bottle.
When calculating the deposit for a crate, it is slightly different. The frame deposit is not shown separately and is distributed proportionally to the individual bottles in the crate. The following example concerns a crate of water with 12x1l bottles. The frame deposit of the crate is 1.50. The deposit per bottle is 0.15. As the deposit value of the leading item (the crate) we have the frame deposit + the 12 bottles รก 0.15. That makes a total of 3.30. However, the child item of the crate now does not have the deposit value of 0.15 but of 3.30/12 = 0.275.
"purchase": {
// ...
"articles": [
{
"type": "crate",
"ean": "41001301",
"partner_article_number": "3498494-H",
"partner_article_description": "Gerolsteiner 12x1l",
"position": 1,
"pawn": 3.30,
"amount": 1,
"discountable": true,
"tax_rate": 0.19,
"child_articles": [
{
"ean": "41001301",
"partner_article_number": "3498494-V",
"partner_article_description": "Gerolsteiner 1l",
"position": 1,
"pawn": 0.275,
"price": 0.881667,
"discountable": true,
"tax_rate": 0.19,
"amount": 12
}
]
}
// ... Weitere Artikel
]
}
A mixed crate consists of individual bottles of different brands. For example, a 24-bottle crate of cola with 12 cola bottles and 12 Fanta bottles. This would look like this.
"purchase": {
// ...
"articles": [
{
"type": "crate",
"ean": "41001301",
"partner_article_number": "3498494-H",
"partner_article_description": "Coca Cola 12x1l",
"position": 1,
"pawn": 4.10,
"amount": 1,
"discountable": true,
"tax_rate": 0.19,
"child_articles": [
{
"ean": "41001301",
"partner_article_number": "3498494-V",
"partner_article_description": "Coca Cola 1l",
"position": 1,
"pawn": 0.1708,
"price": 0.881667,
"discountable": true,
"tax_rate": 0.19,
"amount": 6
},
{
"ean": "5869303",
"partner_article_number": "4523423-V",
"partner_article_description": "Fanta 1l",
"position": 1,
"pawn": 0.1708,
"price": 0.881667,
"discountable": true,
"tax_rate": 0.19,
"amount": 6
}
]
}
// ... Weitere Artikel
]
}
The returned deposit appears as a single position in the articles array. So far, this value is not used anywhere. It is therefore an optional entry:
{
"purchase": {
"articles": [
{
"ean": "41001301",
"partner_article_number": "3498494-V",
"partner_article_description": "Coca Cola 1l",
"position": 1,
"pawn": 0.15,
"price": 0.881667,
"discountable": true,
"tax_rate": 0.19,
"amount": 3
},
{
"type": "pawn",
"position": 21,
"price": -53.00,
"tax_rate": 0.19
}
]
}
}