/** * 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); }