Free articles

The structure of the coupon for a free item differs from the structure of the other coupon types.

field name type field description use
coupon_id String (UUID) Unique coupon ID Id to identify a redeemed coupon beyond doubt
coupon_type String Type of coupon The type can be used to determine what kind of coupon it is
coupon_unit String Unit of the triggering item If the triggering item is a bottle, can, etc., this property contains the value consumable. In all other cases, the value main
unit_position Int Position of the triggering item or free item This property contains the receipt position of the triggering item for which the free item has not yet been scanned. If the free item has already been scanned, the position of the free item on the receipt is shown here
new_position Boolean Flag whether the free item has already been scanned If the free item has already been scanned, this flag is set to false, otherwise to true.
ean String EAN of the free item If the free item has already been scanned, this property has the value null. If the free item has not yet been scanned, the expected EAN of the free item is specified.
amount Int Number of the free item Integer quantity of the free item(s)

Scenarios

There is a promotion that qualifies for a free bottle of Franziskaner Weißbier when a crate of Franziskaner Weißbier is purchased.

Scenario 1

During the checkout process, 2 crates of Franziskaner Weißbier and no individual bottles were scanned. The checkout system is informed that two coupons for one free item each have been found. The new_position property contains the value true for both coupons. This means that the two individual free items (bottle of Franziskaner Weißbier) have not yet been scanned.

{
    ...
   "available_coupons":[
      {
         "coupon_id":"0ae01384-fae8-408a-9fcb-e7df6021eaa7",
         "coupon_type":"free",
         "coupon_unit":"main",
         "unit_position":1,
         "new_position":true,
         "ean":"4072700802525",
         "amount":1
      },
      {
         "coupon_id":"183a14e3-3182-4239-a339-59f7232f0d4f",
         "coupon_type":"free",
         "coupon_unit":"main",
         "unit_position":1,
         "new_position":true,
         "ean":"4072700802525",
         "amount":1
      }
   ]
}

Scenario 2

During the checkout process, 2 crates of Franziskaner Weißbier and one single bottle were scanned. The checkout system is informed that two coupons for one free item each have been found. The new_position property contains the value true for one of the two coupons. This means that one free item has already been scanned (new_position is false) and the other has not (new_position is true)

{
    ...
   "available_coupons":[
      {
         "coupon_id":"0ae01384-fae8-408a-9fcb-e7df6021eaa7",
         "coupon_type":"free",
         "coupon_unit":"main",
         "unit_position":1,
         "new_position":true,
         "ean":"4072700802525",
         "amount":1
      },
      {
         "coupon_id":"183a14e3-3182-4239-a339-59f7232f0d4f",
         "coupon_type":"free",
         "coupon_unit":"main",
         "unit_position":1,
         "new_position":false,
         "ean":null,
         "amount":1
      }
   ]
}

Scenario 3

Two crates of Franziskaner Weißbier beer and two individual bottles were scanned during the checkout process. The checkout system is informed that two coupons for one free item each have been found. The new_position property contains the value false for both coupons. This means that both free items have already been scanned.

{
    ...
   "available_coupons":[
      {
         "coupon_id":"0ae01384-fae8-408a-9fcb-e7df6021eaa7",
         "coupon_type":"free",
         "coupon_unit":"main",
         "unit_position":1,
         "new_position":false,
         "ean":null,
         "amount":1
      },
      {
         "coupon_id":"183a14e3-3182-4239-a339-59f7232f0d4f",
         "coupon_type":"free",
         "coupon_unit":"main",
         "unit_position":1,
         "new_position":false,
         "ean":null,
         "amount":1
      }
   ]
}