# API  Artikel "Categorie" in C# Klasse abbilden

**URL:** https://forum.shopware.com/t/api-artikel-categorie-in-c-klasse-abbilden/34365
**Category:** Programmierung
**Created:** [10. Februar 2016 um 09:59 UTC](https://forum.shopware.com/t/api-artikel-categorie-in-c-klasse-abbilden/34365 "2016-02-10T09:59:51Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![sjanssen](https://avatars.discourse-cdn.com/v4/letter/s/ea5d25/32.png) [@sjanssen](https://forum.shopware.com/u/sjanssen)
#### Post date: [10. Februar 2016 um 09:59 UTC](https://forum.shopware.com/t/api-artikel-categorie-in-c-klasse-abbilden/34365/1 "2016-02-10T09:59:51Z")

</div>

Hallo,

bisher konnte ich alle Bereiche&nbsp;des Artikels als Klasse in C# abbilden bis auf die „Categorie“.  
Folgenden Aufruf habe ich für die API verwendet:

"[http://xxx/shopware/2mit/api/Articles/1](http://xxx/shopware/2mit/api/Articles/1)

Das Ergebnis für die „Categorie“ sieht wie folgt aus:

„categories“:{„5“:{„id“:5,„name“:„Rollartikel“}},"

Was soll hier&nbsp;die {„5“ ?&nbsp;  
Wie kann ich die „categorie“ in einer Klasse abbilden?

Hier ein Beispiel wie ich die Klasse&nbsp;für „tax“&nbsp;aufgebaut habe:

„tax“:{„id“:1,„tax“:„19.00“,„name“:„19%“},"

&nbsp;

```
public class ArticlesData
        {
            ..
            ...
            public string availableFrom { get; set; }
            public string availableTo { get; set; }
            public List attribut { get; set; }
            public List mainDetail { get; set; }
            public List tax { get; set; }
            ...
            ..
        }

        public class ArticelTax
        {
            public string id { get; set; }
            public string tax { get; set; }
            public string name { get; set; }
        }

```

&nbsp;

&nbsp;

---

<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: [10. Februar 2016 um 16:36 UTC](https://forum.shopware.com/t/api-artikel-categorie-in-c-klasse-abbilden/34365/2 "2016-02-10T16:36:16Z")

</div>

Hi,

die 5 als Key ist letztlich auch die Kategorie-ID. Das soll ein schnelleres / effizienteres Mapping / Lookup ermöglichen. Letztlich ist das aber etwas php-zentrisch gedacht, das stimmt schon. Da ich C# nicht kenne, kann ich da im Detail nichts zu sagen, habe aber im Hinterkopf, dass das hier schonmal diskutiert wurde. Wenn dir kein anderer da einen Tipp geben kann, würde ich dich bitten, da ein Ticket für anzulegen - damit die Core-Jungs das auf dem Schirm haben.&nbsp;

Danke!

Daniel

---

<div class="post-metadata">

### Author: ![sjanssen](https://avatars.discourse-cdn.com/v4/letter/s/ea5d25/32.png) [@sjanssen](https://forum.shopware.com/u/sjanssen)
#### Post date: [11. Februar 2016 um 13:34 UTC](https://forum.shopware.com/t/api-artikel-categorie-in-c-klasse-abbilden/34365/3 "2016-02-11T13:34:42Z")

</div>

Hallo,

danke für deine Antwort 🙂  
Für die schnelle Lösung habe ich folgende Änderung in der Article.php vorgenommen:

```
protected function getArticleCategories($articleId)
    {
        $builder = $this->getManager()->createQueryBuilder();
        $builder->select(['categories.id', 'categories.name'])
            //++DJ 11.02.16 kann so in C# nicht verarbeitet werden            
            //++OLD
            //->from('Shopware\Models\Category\Category', 'categories', 'categories.id')
            //-- OLD
            //++ NEW
            ->from('Shopware\Models\Category\Category', 'categories')
            //--NEW
            //++DJ 11.02.16
            ->innerJoin('categories.articles', 'articles')
            ->where('articles.id = :articleId')
            ->setParameter('articleId', $articleId);

        return $this->getFullResult($builder);
    }

```

Gruß

Denis

---

<div class="post-metadata">

### Author: ![TeichDatensysteme](https://avatars.discourse-cdn.com/v4/letter/t/43a26b/32.png) [@TeichDatensysteme](https://forum.shopware.com/u/TeichDatensysteme)
#### Post date: [12. Februar 2016 um 09:49 UTC](https://forum.shopware.com/t/api-artikel-categorie-in-c-klasse-abbilden/34365/4 "2016-02-12T09:49:26Z")

</div>

> Für die schnelle Lösung habe ich folgende Änderung in der Article.php vorgenommen

Niemals im Core Dateien ändern, im nächsten Update wird alles zurückgesetzt und die Funktionalität mit anderen Plugins kann nicht mehr garantiert werden.  
Besser eigene Logik schreiben und&nbsp;oder über Events (oder im Grenzfall Hooks)&nbsp;die Daten erweitern/manipulieren.

Schöne Grüße,  
Niklas

---

<div class="post-metadata">

### Author: ![sjanssen](https://avatars.discourse-cdn.com/v4/letter/s/ea5d25/32.png) [@sjanssen](https://forum.shopware.com/u/sjanssen)
#### Post date: [12. Februar 2016 um 12:17 UTC](https://forum.shopware.com/t/api-artikel-categorie-in-c-klasse-abbilden/34365/5 "2016-02-12T12:17:55Z")

</div>

Hallo Niklas,

vielen Dank für deinen Hinweis.  
Das ist mir schon bewusst, daher habe ich auch schnelle Lösung geschrieben 🙂

falls es keine keine Lösung seitens Shopware “Core Jungs” geben sollte, werde  
ich eine eigne API&nbsp;&nbsp;hierfür erstellen.

Gruß Denis

&nbsp;
