Alle Bestellnummern einer Kategorie und Unterkategorien

Hallo zusammen, wie würde ich es am schnellsten und schlausten anstellen, die Bestellnummern aller Artikel einer Kategorie und Ihrer Subkategorien zu ziehen? Mit dieser Variante $articles = $category-\>getAllArticles(); foreach($articles as $a) { try { $details = $a-\>getDetails(); foreach($details as $d) { $restrictToArticles[] = $d-\>getNumber(); } } catch (Exception $e) { Shopware()-\>Log()-\>log('Exception in Plugin DtgsCategoryRestrictedVouchers #1',Zend\_Log::INFO); } } Scheint doch recht viel Memory verbraucht zu werden, für kleine Kategorien geht das noch, sobald es aber mehr werden laufe ich in das Memory Limit. Was ist mit Shopware()-\>Modules()-\>Articles()-\>sGetArticlesByCategory(XXX); Wäre das sauberer? Bin für Tipps sehr dankbar! Viele Grüße, Constantin

Hi, wenn es um Performance geht, kannst du am besten direkt auf der DBAL-Connection arbeiten (Shopware()->Container()->get(‘dbal_connection’). Da gibt es auch einen guten Query-Builder. In Plain-SQL sollte das hier funktionieren: select ordernumber from s\_articles\_details ad inner join s\_articles\_categories\_ro ro ON ro.articleID = ad.articleID and ro.categoryID = 14 Ist aber jetzt nur auf die Schnelle, musst du selbst eben testen, ob das passt. Besten Gruß, Daniel

1 Like