diff --git a/bin/backend/controls/Manager.css b/bin/backend/controls/Manager.css
index 61aa78dd75cd81c9b4b6a08dd7c799e5d06cdd6f..af2a0412443929e6bc7957a3ce4ec341b23a412f 100644
--- a/bin/backend/controls/Manager.css
+++ b/bin/backend/controls/Manager.css
@@ -104,6 +104,13 @@
     width: 50%;
 }
 
+.quiqqer-coupons-manager-create-advanced-discount table,
+.quiqqer-coupons-manager-create-advanced-discount table tbody,
+.quiqqer-coupons-manager-create-advanced-discount table tbody tr,
+.quiqqer-coupons-manager-create-advanced-discount table tbody tr td {
+    display: block;
+}
+
 .quiqqer-coupons-manager-create-advanced-restrictions {
     padding-left: 10px;
     width: 50%;
diff --git a/events.xml b/events.xml
index 6abc2256d8a13bdf3becc6826f8e60d3bbd05c93..eee1145194a3b769c08f260fc47bfd7c292adf0a 100644
--- a/events.xml
+++ b/events.xml
@@ -36,12 +36,4 @@
            fire="\QUI\ERP\Coupons\Events::onQuiqqerOrderBasketRemovePos"
     />
 
-    <event on="onQuiqqerOrderOrderProcessGetBodyBegin"
-           fire="\QUI\ERP\Coupons\Events::onQuiqqerOrderOrderProcessGetBodyBegin"
-    />
-
-    <event on="onQuiqqerOrderBasketToOrderBegin"
-           fire="\QUI\ERP\Coupons\Events::onQuiqqerOrderBasketToOrderBegin"
-    />
-
 </events>
diff --git a/src/QUI/ERP/Coupons/Events.php b/src/QUI/ERP/Coupons/Events.php
index 8780beb8c0a3a34406f5e5bd98e53285a74cbb95..7c0b6f28842ee6d316e5e37b6d6f7085b747a8bc 100644
--- a/src/QUI/ERP/Coupons/Events.php
+++ b/src/QUI/ERP/Coupons/Events.php
@@ -12,8 +12,6 @@
 use QUI\ERP\Coupons\Handler as CouponsHandler;
 use QUI\ERP\Discount\EventHandling as DiscountEvents;
 use QUI\ERP\Coupons\Products\CouponProductType;
-use QUI\ERP\Coupons\Products\Handler as CouponProductsHandler;
-use QUI\ERP\Products\Handler\Products;
 
 /**
  * Class Events
@@ -421,7 +419,7 @@ protected static function addCouponToOrder($Order, $coupon)
     protected static function createProductFields()
     {
         $fields = [
-            CouponProductType::PRODUCT_FIELD_ID_TRANSFERABLE       => [
+            CouponProductType::PRODUCT_FIELD_ID_TRANSFERABLE               => [
                 'title'    => [
                     'de' => 'Gutschein-Code ist übertragbar',
                     'en' => 'Coupon code is transferable'
@@ -430,7 +428,7 @@ protected static function createProductFields()
                 'public'   => false,
                 'standard' => false
             ],
-            CouponProductType::PRODUCT_FIELD_ID_GENERATE_PDF       => [
+            CouponProductType::PRODUCT_FIELD_ID_GENERATE_PDF               => [
                 'title'    => [
                     'de' => 'Gutschein-Code als PDF bereitstellen',
                     'en' => 'Provide coupon code as PDF'
@@ -439,7 +437,7 @@ protected static function createProductFields()
                 'public'   => false,
                 'standard' => false
             ],
-            CouponProductType::PRODUCT_FIELD_ID_COUPON_AMOUNT      => [
+            CouponProductType::PRODUCT_FIELD_ID_COUPON_AMOUNT              => [
                 'title'    => [
                     'de' => 'Gutschein Wert',
                     'en' => 'Coupon amount'
@@ -448,7 +446,7 @@ protected static function createProductFields()
                 'public'   => false,
                 'standard' => false
             ],
-            CouponProductType::PRODUCT_FIELD_ID_DAYS_VALID         => [
+            CouponProductType::PRODUCT_FIELD_ID_DAYS_VALID                 => [
                 'title'    => [
                     'de' => 'Gutschein-Code Gültigkeit (Tage)',
                     'en' => 'Coupon code validity (days)'
@@ -457,7 +455,7 @@ protected static function createProductFields()
                 'public'   => false,
                 'standard' => false
             ],
-            CouponProductType::PRODUCT_FIELD_ID_COUPON_DESCRIPTION => [
+            CouponProductType::PRODUCT_FIELD_ID_COUPON_DESCRIPTION         => [
                 'title'    => [
                     'de' => 'Gutschein-Beschreibung',
                     'en' => 'Coupon description'
@@ -465,6 +463,15 @@ protected static function createProductFields()
                 'type'     => Fields::TYPE_INPUT_MULTI_LANG,
                 'public'   => false,
                 'standard' => false
+            ],
+            CouponProductType::PRODUCT_FIELD_ID_IS_PRODUCT_SPECIFIC_COUPON => [
+                'title'    => [
+                    'de' => 'Ist Gutschein für ein spezifisches Produkt ("Einzweck-Gutschein")',
+                    'en' => 'Is coupon for a specific product ("single purpose coupon")'
+                ],
+                'type'     => Fields::TYPE_BOOL,
+                'public'   => false,
+                'standard' => false
             ]
         ];
 
@@ -515,11 +522,12 @@ public static function onQuiqqerProductsProductCreate(ProductInterface $Product)
         }
 
         $fields = [
-            CouponProductType::PRODUCT_FIELD_ID_TRANSFERABLE       => true,
-            CouponProductType::PRODUCT_FIELD_ID_GENERATE_PDF       => true,
-            CouponProductType::PRODUCT_FIELD_ID_COUPON_AMOUNT      => null,
-            CouponProductType::PRODUCT_FIELD_ID_DAYS_VALID         => 1095, // 3 years
-            CouponProductType::PRODUCT_FIELD_ID_COUPON_DESCRIPTION => null
+            CouponProductType::PRODUCT_FIELD_ID_TRANSFERABLE               => true,
+            CouponProductType::PRODUCT_FIELD_ID_GENERATE_PDF               => true,
+            CouponProductType::PRODUCT_FIELD_ID_COUPON_AMOUNT              => null,
+            CouponProductType::PRODUCT_FIELD_ID_DAYS_VALID                 => 1095, // 3 years
+            CouponProductType::PRODUCT_FIELD_ID_COUPON_DESCRIPTION         => null,
+            CouponProductType::PRODUCT_FIELD_ID_IS_PRODUCT_SPECIFIC_COUPON => false
         ];
 
         foreach ($fields as $fieldId => $value) {
@@ -552,62 +560,4 @@ public static function onQuiqqerOrderCreated(AbstractOrder $Order)
     {
         QUI\ERP\Coupons\Products\Handler::createCouponCodesFromOrder($Order);
     }
-
-    public static function onQuiqqerOrderBasketToOrderBegin(
-        QUI\ERP\Order\Basket\BasketOrder $BasketOrder,
-        AbstractOrder $Order,
-        array &$products
-    ) {
-        foreach ($products as $k => $product) {
-            $products[$k]['vat'] = 0;
-        }
-    }
-
-    /**
-     * quiqqer/order: onQuiqqerOrderOrderProcessGetBodyBegin
-     *
-     * Set VAT to 0% for specific coupons.
-     *
-     * @param QUI\ERP\Order\OrderProcess $OrderProcess
-     * @return void
-     */
-    public static function onQuiqqerOrderOrderProcessGetBodyBegin(QUI\ERP\Order\OrderProcess $OrderProcess)
-    {
-        try {
-            $Order = $OrderProcess->getOrder();
-        } catch (\Exception $Exception) {
-            QUI\System\Log::writeException($Exception);
-            return;
-        }
-
-        if (empty($Order)) {
-            return;
-        }
-//
-//        $OrderBasket = new QUI\ERP\Order\Basket\BasketOrder($Order->getHash());
-//
-//        foreach ($OrderBasket->get)
-
-        $Articles     = $Order->getArticles();
-        $articleStock = [];
-
-        /** @var QUI\ERP\Accounting\Article $Article */
-        foreach ($Articles as $Article) {
-            try {
-                // Do not parse coupon codes / discounts
-                if (empty($Article->getId()) || !\is_numeric($Article->getId())) {
-                    continue;
-                }
-
-                $Product = Products::getProduct($Article->getId());
-
-                if ($Product instanceof CouponProductType) {
-                    // @todo
-                }
-            } catch (\Exception $Exception) {
-                QUI\System\Log::writeDebugException($Exception);
-                continue;
-            }
-        }
-    }
 }
diff --git a/src/QUI/ERP/Coupons/Products/CouponProductType.php b/src/QUI/ERP/Coupons/Products/CouponProductType.php
index fd6d89260232df075c82c309ff56ac6ba3377121..3d5ea3b97cf0b9d11808dcf17b16935c29e32a14 100644
--- a/src/QUI/ERP/Coupons/Products/CouponProductType.php
+++ b/src/QUI/ERP/Coupons/Products/CouponProductType.php
@@ -15,11 +15,12 @@ class CouponProductType extends DigitalProduct
     /**
      * Special fields for coupon products
      */
-    const PRODUCT_FIELD_ID_TRANSFERABLE       = 670;
-    const PRODUCT_FIELD_ID_GENERATE_PDF       = 671;
-    const PRODUCT_FIELD_ID_COUPON_AMOUNT      = 672;
-    const PRODUCT_FIELD_ID_DAYS_VALID         = 673;
-    const PRODUCT_FIELD_ID_COUPON_DESCRIPTION = 674;
+    const PRODUCT_FIELD_ID_TRANSFERABLE               = 670;
+    const PRODUCT_FIELD_ID_GENERATE_PDF               = 671;
+    const PRODUCT_FIELD_ID_COUPON_AMOUNT              = 672;
+    const PRODUCT_FIELD_ID_DAYS_VALID                 = 673;
+    const PRODUCT_FIELD_ID_COUPON_DESCRIPTION         = 674;
+    const PRODUCT_FIELD_ID_IS_PRODUCT_SPECIFIC_COUPON = 675;
 
     /**
      * @param QUI\Locale $Locale
diff --git a/src/QUI/ERP/Coupons/Products/Handler.php b/src/QUI/ERP/Coupons/Products/Handler.php
index 43f372319086639cd0c1b5f04cfea5afa2e1df9a..a930fd16a83ec07281f84a9c23d4090a1d156098 100644
--- a/src/QUI/ERP/Coupons/Products/Handler.php
+++ b/src/QUI/ERP/Coupons/Products/Handler.php
@@ -158,6 +158,13 @@ protected static function createDiscountFromProduct(Product $Product): Discount
             $discountAmount = $Product->getPrice()->getValue();
         }
 
+        // Determine discount calculation basis based on coupon type
+        $isProductSpecificCoupon = $Product->getFieldValue(
+            CouponProductType::PRODUCT_FIELD_ID_IS_PRODUCT_SPECIFIC_COUPON
+        );
+
+        // @todo für Einzweck-Gutscheine muss ein spezieller Rabatt-Typ verwendet werden
+
         /** @var Discount $NewDiscount */
         $NewDiscount = $Handler->createChild([
             'active'        => 1,