Hallo zusammen,
ich habe einen Controller welcher via Ajax aufgerufen wird und einen Produktpreis zurückliefern soll.
$productId = $request->get('id');
$result = $this->entityRepository->search(new Criteria([$productId]), Context::createDefaultContext());
var_dump($productId, $result->getEntities()->first()->getId(), $result->getEntities()->first()->getPrice());exit;
572 wäre der zu erwartende Preis, zurückgeliefert wird aber
string(32) “818e3e59870b4ee9bf7ce11b3bdfd7b0”
string(32) “818e3e59870b4ee9bf7ce11b3bdfd7b0”
object(Shopware\Core\Framework\DataAbstractionLayer\Pricing\PriceCollection)#4953 (2) {
[“elements”:protected]=>
array(1) {
[“b7d2554b0ce847cd82f3ac9bd1c0dfca”]=>
object(Shopware\Core\Framework\DataAbstractionLayer\Pricing\Price)#4952 (6) {
[“currencyId”:protected]=>
string(32) “b7d2554b0ce847cd82f3ac9bd1c0dfca”
[“net”:protected]=>
float(823.36448598131)
[“gross”:protected]=>
float(881)
[“linked”:protected]=>
bool(true)
[“listPrice”:protected]=>
NULL
[“extensions”:protected]=>
array(0) {
}
}
}
[“extensions”:protected]=>
array(0) {
}
}
Es spielt dabei keine Rolle, ob ich den SalesChannelContext der Request verwende oder den DefaultContext, oder ob ich product.price als Association der Criteria hinzufüge. Das Ergebnis bleibt immer das gleiche. Ich kann mir nicht erklären woher dieser Preis kommt, da er weder mit den in der Datenbank hinterlegten Preisen, noch mit irgendeinem Currencyfactor zusammenpasst.
Wie kann es sein, dass ein “direkt” aus der Datenbank über das EntityRepo abgefragter Preis nicht dem entspricht was wirklich in der Datenbank steht?
Wenn ich den ProductLoader verwende um das Produkt zu laden, wird der korrekte Preis zurückgegeben.
Ich arbeite in der Entwicklungsumgebung mit SW6.1.1 mit Demodaten.