diff --git a/src/QUI/ERP/Order/AbstractOrderProcessProvider.php b/src/QUI/ERP/Order/AbstractOrderProcessProvider.php
index 4aa905d80b886e76cd49706b20a59adaaa40b507..d39f1424a45c8dafc50f3141e91b2499730b189e 100644
--- a/src/QUI/ERP/Order/AbstractOrderProcessProvider.php
+++ b/src/QUI/ERP/Order/AbstractOrderProcessProvider.php
@@ -6,6 +6,7 @@
 
 namespace QUI\ERP\Order;
 
+use QUI\ERP\Order\Controls\AbstractOrderingStep;
 use QUI\ERP\Order\Utils\OrderProcessSteps;
 
 /**
@@ -45,10 +46,10 @@ public function initSteps(OrderProcessSteps $OrderProcessSteps, OrderProcess $Or
      * The processing order provider can display a separate step in the order processing
      *
      * @param AbstractOrder $Order
-     * @param null $Step
+     * @param AbstractOrderingStep|null $Step
      * @return string
      */
-    public function getDisplay(AbstractOrder $Order, $Step = null): string
+    public function getDisplay(AbstractOrder $Order, null | AbstractOrderingStep $Step = null): string
     {
         return '';
     }
diff --git a/src/QUI/ERP/Order/EventHandling.php b/src/QUI/ERP/Order/EventHandling.php
index df36c47a2e638841a61ee6177b81364320015028..cab4b85e00935f03dc8de65e8d7a252779e73715 100644
--- a/src/QUI/ERP/Order/EventHandling.php
+++ b/src/QUI/ERP/Order/EventHandling.php
@@ -11,6 +11,7 @@
 use QUI;
 use QUI\ERP\Accounting\Payments\Transactions\Transaction;
 use QUI\ERP\Order\Controls\OrderProcess\CustomerData;
+use QUI\ERP\Products\Interfaces\ProductTypeInterface;
 use QUI\Smarty\Collector;
 use Symfony\Component\HttpFoundation\RedirectResponse;
 use Symfony\Component\HttpFoundation\Response;
@@ -392,7 +393,7 @@ public static function onPackageSetup(QUI\Package\Package $Package): void
      */
     public static function onDetailEquipmentButtons(
         Collector $Collection,
-        QUI\ERP\Products\Product\Types\AbstractType $Product
+        ProductTypeInterface $Product
     ): void {
         // add to basket -> only for complete products
         // variant products cant be added directly
@@ -400,7 +401,6 @@ public static function onDetailEquipmentButtons(
             $Product instanceof QUI\ERP\Products\Product\Product
             || $Product instanceof QUI\ERP\Products\Product\Types\VariantChild
         ) {
-            /* @var $Product QUI\ERP\Products\Product\Product */
             $AddToBasket = new QUI\ERP\Order\Controls\Buttons\ProductToBasket([
                 'Product' => $Product,
                 'input' => false
@@ -563,6 +563,7 @@ public static function onQuiqqerSalesOrdersSaveEnd(QUI\ERP\SalesOrders\SalesOrde
 
             // set shipping
             if ($SalesOrder->getShipping()) {
+                // @phpstan-ignore-next-line
                 $Order->setShipping($SalesOrder->getShipping());
             }
 
diff --git a/src/QUI/ERP/Order/Factory.php b/src/QUI/ERP/Order/Factory.php
index fa0e45e45dbc147417a185c280eb9edbe82c56d7..b73c67b12f12a1996027d52fdbffd832481de622 100644
--- a/src/QUI/ERP/Order/Factory.php
+++ b/src/QUI/ERP/Order/Factory.php
@@ -83,7 +83,7 @@ public function create(
         $Config = QUI::getPackage('quiqqer/order')->getConfig();
         $orderId = $Config->getValue('order', 'orderCurrentIdIndex');
 
-        if (empty($orderId) && $orderId != 0) {
+        if (empty($orderId)) {
             $orderId = 0;
         } else {
             $orderId = (int)$orderId + 1;
diff --git a/src/QUI/ERP/Order/FrontendUsers/Controls/UserOrders.php b/src/QUI/ERP/Order/FrontendUsers/Controls/UserOrders.php
index 83a4ba6d7c41510aab0bfd3742a1002efc7c5937..2135ea1603881ff97a78e49ee0731bc2506fbe3a 100644
--- a/src/QUI/ERP/Order/FrontendUsers/Controls/UserOrders.php
+++ b/src/QUI/ERP/Order/FrontendUsers/Controls/UserOrders.php
@@ -179,7 +179,7 @@ public function renderOrder(OrderInterface $Order): string
         $shippingStatus = false;
 
         if (
-            QUI::getPackageManager()->isInstalled('quiqqer/shipping')
+            class_exists('QUI\ERP\Shipping\ShippingStatus\Status')
             && $Order->getShippingStatus()
         ) {
             $shippingStatus = $Order->getShippingStatus()->getTitle();
@@ -230,7 +230,9 @@ public function renderArticle(QUI\ERP\Accounting\Article $Article): string
 
         if (!empty($Product)) {
             try {
-                $Image = $Product->getImage();
+                if (method_exists($Product, 'getImage')) {
+                    $Image = $Product->getImage();
+                }
             } catch (QUI\Exception) {
             }
         }
diff --git a/src/QUI/ERP/Order/Mail.php b/src/QUI/ERP/Order/Mail.php
index e44fd685310c2fa9cdcd5d1fb628542b0eb4969e..4613a745dc38e7e07d67730fae2cb1a7d705c80d 100644
--- a/src/QUI/ERP/Order/Mail.php
+++ b/src/QUI/ERP/Order/Mail.php
@@ -530,14 +530,17 @@ protected static function addBCCMailAddress(QUI\Mail\Mailer $Mailer): void
     //region mail helper
 
     /**
-     * @param OrderInterface $Order
+     * @param QUI\ERP\ErpEntityInterface $Order
      * @param QUI\Interfaces\Users\User $Customer
      * @return array
-     * @throws Exception
      */
-    protected static function getOrderLocaleVar(OrderInterface $Order, QUI\Interfaces\Users\User $Customer): array
+    protected static function getOrderLocaleVar(QUI\ERP\ErpEntityInterface $Order, QUI\Interfaces\Users\User $Customer): array
     {
-        $Address = $Customer->getAddress();
+        if ($Customer instanceof QUI\ERP\User) {
+            $Address = $Customer->getAddress();
+        } else {
+            $Address = $Customer->getStandardAddress();
+        }
 
         // customer name
         $user = $Customer->getName();
diff --git a/src/QUI/ERP/Order/OrderView.php b/src/QUI/ERP/Order/OrderView.php
index c0cf446b80336dc477ac820ad8d9375c27610773..79fc5987577a7e01f43e6607881c9c534467e7a1 100644
--- a/src/QUI/ERP/Order/OrderView.php
+++ b/src/QUI/ERP/Order/OrderView.php
@@ -175,9 +175,9 @@ public function getCreateDate(): string
     }
 
     /**
-     * @return bool|QUI\ERP\Shipping\ShippingStatus\Status
+     * @return null|QUI\ERP\Shipping\ShippingStatus\Status
      */
-    public function getShippingStatus(): bool | QUI\ERP\Shipping\ShippingStatus\Status
+    public function getShippingStatus(): null | QUI\ERP\Shipping\ShippingStatus\Status
     {
         return $this->Order->getShippingStatus();
     }