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
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