/**
  * prepares the correct array structure for the mail template
  *
  * @param \Shopware\Models\Order\Order $orderModel
  * @return array
  */
 private function prepareOrderDetailsConfirmationMailData($orderModel)
 {
     $details = Shopware()->Db()->fetchAll('SELECT * FROM s_order_details WHERE orderID = ?', [$orderModel->getId()]);
     //we need to fake a shop instance if we want to use the Articles Module
     $shop = Shopware()->Models()->getRepository('Shopware\\Models\\Shop\\Shop')->getActiveById($orderModel->getLanguageSubShop()->getId());
     $shop->registerResources(Shopware()->Bootstrap());
     foreach ($details as &$detail) {
         /** @var Shopware\Models\Article\Repository $articleDetailRepository */
         $articleDetailRepository = Shopware()->Models()->getRepository('Shopware\\Models\\Article\\Detail');
         /** @var Shopware\Models\Article\Detail[] $articleDetailModel */
         $articleDetailModel = $articleDetailRepository->findBy(['number' => $detail['articleordernumber']]);
         /** @var Shopware\Models\Article\Detail $articleDetailModel */
         $articleDetailModel = $articleDetailModel[0];
         $detail['articlename'] = $detail['name'];
         unset($detail['name']);
         $detail['userID'] = $orderModel->getCustomer()->getId();
         $detail['ordernumber'] = $detail['articleordernumber'];
         unset($detail['articleordernumber']);
         $detail['currencyFactor'] = $orderModel->getCurrencyFactor();
         $detail['mainDetailId'] = $articleDetailModel->getArticle()->getMainDetail()->getId();
         $detail['articleDetailId'] = $articleDetailModel->getId();
         $detail['instock'] = $articleDetailModel->getInStock();
         $detail['taxID'] = $articleDetailModel->getArticle()->getTax()->getId();
         if ($orderModel->getNet()) {
             $detail['taxID'] = 0;
         }
         $detail['maxpurchase'] = $articleDetailModel->getMaxPurchase();
         $detail['minpurchase'] = $articleDetailModel->getMinPurchase();
         $detail['purchasesteps'] = $articleDetailModel->getPurchaseSteps();
         $detail['stockmin'] = $articleDetailModel->getStockMin();
         $detail['suppliernumber'] = $articleDetailModel->getSupplierNumber();
         $detail['laststock'] = $articleDetailModel->getArticle()->getLastStock();
         $detail['purchaseunit'] = $articleDetailModel->getPurchaseUnit();
         $detail['releasedate'] = $articleDetailModel->getReleaseDate();
         $detail['modus'] = $articleDetailModel->getArticle()->getMode();
         $detail['datum'] = $orderModel->getOrderTime()->format('Y-m-d H:i:s');
         $detail['esdarticle'] = $articleDetailModel->getEsd();
         $detail['netprice'] = $this->calculateNetPrice($detail['price'], $detail['tax_rate']);
         $detail['amount'] = $detail['price'] * $detail['quantity'];
         $detail['amountnet'] = $detail['netprice'] * $detail['quantity'];
         $detail['priceNumeric'] = $detail['price'];
         /**
          * order basket attributes fake
          */
         $detail['ob_attr1'] = '';
         $detail['ob_attr2'] = '';
         $detail['ob_attr3'] = '';
         $detail['ob_attr4'] = '';
         $detail['ob_attr5'] = '';
         $detail['ob_attr6'] = '';
         $detail['partnerID'] = '';
         $detail['shippinginfo'] = 1;
         if ($articleDetailModel->getUnit()) {
             $detail['unitID'] = $articleDetailModel->getUnit()->getId();
         }
         $detail['additional_details'] = Shopware()->Modules()->Articles()->sGetProductByOrdernumber($detail['ordernumber']);
     }
     return $details;
 }