# sGetArticlesByCategory() liefert falsche Ergebnisse

**URL:** <https://forum.shopware.com/t/sgetarticlesbycategory-liefert-falsche-ergebnisse/35002>\
**Category:** Programmierung\
**Created:** [3. März 2016 um 13:24 UTC](https://forum.shopware.com/t/sgetarticlesbycategory-liefert-falsche-ergebnisse/35002 "2016-03-03T13:24:59Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Recall](https://avatars.discourse-cdn.com/v4/letter/r/b487fb/32.png) [@Recall](https://forum.shopware.com/u/Recall)\
**Post date:** [3. März 2016 um 13:24 UTC](https://forum.shopware.com/t/sgetarticlesbycategory-liefert-falsche-ergebnisse/35002/1 "2016-03-03T13:24:59Z")

</div>

Ein Listing einer Kategorie soll anders dargestellt werden, dafür hole ich mir die zugehörigen Unterkategorie IDs&nbsp;über die Kategorie ID.

Mit den Unterkategorie IDs will ich mir dann die der Kategorie zugeordneten Artikel holen.

```
$aArticles[] = Shopware()->Modules()->Articles()->sGetArticlesByCategory($iSubCategoryId);

```

Allerdings ist dem Aufruf egal ob da nun eine richtige ID der Unterkategorie drin steht oder eine ausgedachte, sie gibt einfach stupide alle Artikel aus.

Habe ich irgendwo einen Denkfehler oder gibt es für die ganze Sache noch einen anderen Weg?

---

<div class="post-metadata">

**Author:** ![DanielNogel](https://avatars.discourse-cdn.com/v4/letter/d/96bed5/32.png) [@DanielNogel](https://forum.shopware.com/u/DanielNogel)\
**Post date:** [3. März 2016 um 18:59 UTC](https://forum.shopware.com/t/sgetarticlesbycategory-liefert-falsche-ergebnisse/35002/2 "2016-03-03T18:59:36Z")

</div>

Hi,

die Kategorie-ID ist da nur noch optional - “sGetArticlesByCategory” sollte als "veraltet betrachtet werden und “wrappt” auf das neue System. Intern wird die Suche mit einem sog. “CriteriaRequestHandler” befüllt, der auf Basis des Request-Objekts die Categorie-ID ermittelt. Für dich bedeutet das, dass sGetArticlesByCategory&nbsp;eigentlich nicht genutzt werden sollte.

Für das neue System siehe hier:&nbsp;[SearchBundle](https://developers.shopware.com/developers-guide/shopware-5-search-bundle/#concept---small-example)

```
$criteria = new Criteria();
$criteria->limit(10);
$criteria->addCondition(new CategoryCondition([3]));
$criteria->addSorting(new PriceSorting());

$context = $this->get('shopware_storefront.context_service')->getShopContext();
$service = $this->get('shopware_search.product_number_search');

/**@var $result ProductNumberSearchResult*/
$result = $service->search($criteria, $context);

$numbers = [];
foreach($result->getProducts() as $product) {
   $numbers[] = $product->getNumber();
}

```

So kannst du bspw. für bestimmte Kategorien filtern.&nbsp;

Besten Gruß,

Daniel

---

<div class="post-metadata">

**Author:** ![carl](https://avatars.discourse-cdn.com/v4/letter/c/ee7513/32.png) [@carl](https://forum.shopware.com/u/carl)\
**Post date:** [2. Mai 2016 um 05:32 UTC](https://forum.shopware.com/t/sgetarticlesbycategory-liefert-falsche-ergebnisse/35002/3 "2016-05-02T05:32:53Z")

</div>

Müsste in der sGetArticlesByCategory nicht trotzdem noch eine CategoryCondition ergänzt werden, damit die Funktion korrekt auf das neue Bundle wrappt? Damit zumindest Plugins, die diese Funktion noch intern verwenden, weiterhin korrekt funktionieren?

Siehe auch [Shopware Issuetracker](https://issues.shopware.com/#/issues/SW-12949)

---

<div class="post-metadata">

**Author:** ![MatthiasH](https://avatars.discourse-cdn.com/v4/letter/m/47e85d/32.png) [@MatthiasH](https://forum.shopware.com/u/MatthiasH)\
**Post date:** [2. Mai 2016 um 14:07 UTC](https://forum.shopware.com/t/sgetarticlesbycategory-liefert-falsche-ergebnisse/35002/4 "2016-05-02T14:07:27Z")

</div>

Es wäre sicher besser die Plugins umzubauen, die alten Sachen werden wenn ich Daniel da richtig interpretiere nach und nach aus dem Core komplett verschwinden.&nbsp;

Wenn meine Vermutung richtig liegt, wird bei 5.2 da mit dem Eisenbesen gekehrt.&nbsp;

Grüße Matthias
