# Artikel-ID beziehen im Decorator für den PriceCalculatorService?

**URL:** <https://forum.shopware.com/t/artikel-id-beziehen-im-decorator-fur-den-pricecalculatorservice/55176>\
**Category:** Programmierung\
**Created:** [15. September 2018 um 08:06 UTC](https://forum.shopware.com/t/artikel-id-beziehen-im-decorator-fur-den-pricecalculatorservice/55176 "2018-09-15T08:06:02Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![bquarta](https://avatars.discourse-cdn.com/v4/letter/b/4af34b/32.png) [@bquarta](https://forum.shopware.com/u/bquarta)\
**Post date:** [15. September 2018 um 08:06 UTC](https://forum.shopware.com/t/artikel-id-beziehen-im-decorator-fur-den-pricecalculatorservice/55176/1 "2018-09-15T08:06:02Z")

</div>

Hallo liebe Community,

ich baue gerade ein Plugin mit einer etwas komplexeren Preismanipulation. Auf den von Shopware berechneten Preis sollen - teilweise abhängig von Artikel-Attributen - noch gewisse Rabatte hinzukommen.

Jetzt habe ich soweit den Decorator und einen Service zur weiteren Preisberechnung gebaut, stelle aber beim verdrahten mit schrecken fest, dass ich nirgends im $context des PriceCalculatorService irgendwie auf die Artikel-ID zugreifen kann des Artikels, dem der Preis gehört. Oder übersehe ich was?

Der reine Decorator sollte etwa so aussehen, allerdings: Woher nehme ich die $articleId? Irgendwie muss ich ja wissen zu welchem Artikel der übergebene Preis gehört 😉  
&nbsp;

```
originalService = $service;
	}

	public function calculatePrice($price, Struct\Tax $tax, Struct\ProductContextInterface $context)
	{
		$price = $this->originalService->calculatePrice($price, $tax, $context);

		$calculator = new DiscountCalculator();
		
        // Hier muss irgendwie die $articleId mit übergeben werden
		$price = $calculator->calculateArticlePrice($articleId, $price);

		return $price;
	}

}

```

Für einen Anhaltspunkt wäre ich dankbar 🙂

Liebe Grüße  
bquarta

---

<div class="post-metadata">

**Author:** ![MrMDeluxe](https://avatars.discourse-cdn.com/v4/letter/m/4da419/32.png) [@MrMDeluxe](https://forum.shopware.com/u/MrMDeluxe)\
**Post date:** [20. September 2018 um 14:31 UTC](https://forum.shopware.com/t/artikel-id-beziehen-im-decorator-fur-den-pricecalculatorservice/55176/2 "2018-09-20T14:31:40Z")

</div>

Hi bquarta,

&nbsp;

du dekorierst den falschen Service.

Du musst den&nbsp;PriceCalculationService und nicht den PriceCalculator dekorieren.

Hier hast Du dann in der Funktion&nbsp;calculateProduct

über das ListProduct Struct zugriff auf die articleID.

&nbsp;
