diff --git a/events.xml b/events.xml
index 7794d2b9ed6590fb6df889cd0f043705d09047d1..a4b9e605adaa94b0a36700978c88f4de550741bb 100644
--- a/events.xml
+++ b/events.xml
@@ -2,6 +2,17 @@
 <events>
     <event on="onAdminLoadFooter" fire="\QUI\ERP\Shipping\EventHandler::onAdminLoadFooter"/>
 
+    <event on="onQuiqqerOrderFactoryCreate"
+           fire="\QUI\ERP\Shipping\EventHandler::onQuiqqerOrderFactoryCreate"
+    />
+    <event on="onQuiqqerOffersCreated"
+           fire="\QUI\ERP\Shipping\EventHandler::onQuiqqerOffersCreated"
+    />
+    <event on="onQuiqqerSalesOrdersCreated"
+           fire="\QUI\ERP\Shipping\EventHandler::onQuiqqerSalesOrdersCreated"
+    />
+
+
     <event on="onQuiqqerOrderBasketToOrderEnd"
            fire="\QUI\ERP\Shipping\EventHandler::onQuiqqerOrderBasketToOrderEnd"
     />
@@ -29,12 +40,6 @@
     <event on="onQuiqqerOrderOrderProcessCheckoutOutputBefore"
            fire="\QUI\ERP\Shipping\EventHandler::onQuiqqerOrderOrderProcessCheckoutOutputBefore"
     />
-    <event on="onQuiqqerOrderShippingOnEmpty"
-           fire="\QUI\ERP\Shipping\EventHandler::onQuiqqerOrderShippingOnEmpty"
-    />
-    <event on="onQuiqqerOrderInit"
-           fire="\QUI\ERP\Shipping\EventHandler::onQuiqqerOrderInit"
-    />
     <event on="onUserSaveBegin"
            fire="\QUI\ERP\Shipping\EventHandler::onUserSaveBegin"
     />
diff --git a/src/QUI/ERP/Shipping/EventHandler.php b/src/QUI/ERP/Shipping/EventHandler.php
index 1815b8cb27ef3e6fac549d0eaf432e9da10c35a7..3bed96cca8821a3e829833d9881086a39c9c24fe 100644
--- a/src/QUI/ERP/Shipping/EventHandler.php
+++ b/src/QUI/ERP/Shipping/EventHandler.php
@@ -7,6 +7,7 @@
 namespace QUI\ERP\Shipping;
 
 use QUI;
+use QUI\ERP\Accounting\ArticleList;
 use QUI\ERP\Order\Controls\OrderProcess\Checkout as OrderCheckoutStepControl;
 use QUI\ERP\Products\Handler\Fields as ProductFields;
 use Quiqqer\Engine\Collector;
@@ -503,13 +504,64 @@ public static function onQuiqqerProductsPriceEnd(Collector $Collector, QUI\ERP\P
         $Collector->append($html);
     }
 
+    //region default shipping
+
     /**
+     * event: add default shipping at onQuiqqerOrderFactoryCreate
+     *
      * @param \QUI\ERP\Order\AbstractOrder $Order
      * @return void
+     */
+    public static function onQuiqqerOrderFactoryCreate(QUI\ERP\Order\AbstractOrder $Order)
+    {
+        try {
+            self::addDefaultShipping($Order->getArticles());
+            $Order->update(QUI::getUsers()->getSystemUser());
+        } catch (QUI\Exception $Exception) {
+            QUI\System\Log::addError($Exception->getMessage());
+        }
+    }
+
+    /**
+     * event: add default shipping at onQuiqqerOffersCreated
+     *
+     * @param \QUI\ERP\Accounting\Offers\AbstractOffer $Offer
+     * @return void
+     */
+    public static function onQuiqqerOffersCreated(QUI\ERP\Accounting\Offers\AbstractOffer $Offer)
+    {
+        try {
+            self::addDefaultShipping($Offer->getArticles());
+            $Offer->update(QUI::getUsers()->getSystemUser());
+        } catch (QUI\Exception $Exception) {
+            QUI\System\Log::addError($Exception->getMessage());
+        }
+    }
+
+    /**
+     * event: add default shipping at onQuiqqerSalesOrdersCreated
      *
+     * @param \QUI\ERP\SalesOrders\SalesOrder $Sales
+     * @return void
+     */
+    public static function onQuiqqerSalesOrdersCreated(QUI\ERP\SalesOrders\SalesOrder $Sales)
+    {
+        try {
+            self::addDefaultShipping($Sales->getArticles());
+            $Sales->update();
+        } catch (QUI\Exception $Exception) {
+            QUI\System\Log::addError($Exception->getMessage());
+        }
+    }
+
+    /**
+     * event: addDefaultShipping
+     *
+     * @param \QUI\ERP\Accounting\ArticleList $Articles
+     * @return void
      * @throws \QUI\Exception
      */
-    public static function onQuiqqerOrderShippingOnEmpty(QUI\ERP\Order\AbstractOrder $Order)
+    protected static function addDefaultShipping(ArticleList $Articles)
     {
         if (!QUI::isBackend()) {
             return;
@@ -523,7 +575,6 @@ public static function onQuiqqerOrderShippingOnEmpty(QUI\ERP\Order\AbstractOrder
         }
 
         try {
-            $Articles     = $Order->getArticles();
             $PriceFactors = $Articles->getPriceFactors();
 
             // check if shipping factor exist
@@ -545,16 +596,7 @@ public static function onQuiqqerOrderShippingOnEmpty(QUI\ERP\Order\AbstractOrder
         }
     }
 
-    /**
-     * @param \QUI\ERP\Order\AbstractOrder $Order
-     *
-     * @return void
-     * @throws \QUI\Exception
-     */
-    public static function onQuiqqerOrderInit(QUI\ERP\Order\AbstractOrder $Order)
-    {
-        self::onQuiqqerOrderShippingOnEmpty($Order);
-    }
+    //endregion
 
     /**
      * @param \QUI\ERP\Order\AbstractOrder $Order