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 „Gefällt mir“