예제 #1
0
 /**
  * For the provided article id, returns the associated variant numbers and additional texts
  *
  * @param $articleId
  * @param $mainDetailId
  * @return array
  */
 private function getVariantDetailsForPremiumArticles($articleId, $mainDetailId)
 {
     $context = $this->contextService->getShopContext();
     $sql = "SELECT id, ordernumber, additionaltext\n            FROM s_articles_details\n            WHERE articleID = :articleId AND kind != 3";
     $variantsData = Shopware()->Db()->fetchAll($sql, array('articleId' => $articleId));
     foreach ($variantsData as $variantData) {
         $product = new StoreFrontBundle\Struct\ListProduct($articleId, $variantData['id'], $variantData['ordernumber']);
         if ($variantData['id'] == $mainDetailId) {
             $variantData = Shopware()->Modules()->Articles()->sGetTranslation($variantData, $articleId, "article");
         } else {
             $variantData = Shopware()->Modules()->Articles()->sGetTranslation($variantData, $variantData['id'], "variant");
         }
         $product->setAdditional($variantData['additionaltext']);
         $products[$variantData['ordernumber']] = $product;
     }
     $products = $this->additionalTextService->buildAdditionalTextLists($products, $context);
     return array_map(function (StoreFrontBundle\Struct\ListProduct $elem) {
         return array('ordernumber' => $elem->getNumber(), 'additionaltext' => $elem->getAdditional());
     }, $products);
 }