Wie komme ich an die OrderLineItem bzw Details einer Bestellung?
// Kunden-ID aus dem SalesChannelContext
$customerId = $context->getCustomer()->getId();
// Lade Kundendaten
$customerCriteria = new Criteria([$customerId]);
$customer = $this->customerRepository->search($customerCriteria, $context->getContext())->first();
// Lade Bestellungen des Kunden
$orderCriteria = new Criteria();
$orderCriteria->addFilter(new EqualsFilter('order.orderCustomer.customerId', $customerId));
$orders = $this->orderRepository->search($orderCriteria, $context->getContext());
Danke und Gruss
Würde das in einem query zusammenfassen, solche beziehungen kriegst du mit addAssociation:
$orderCriteria = new Criteria();
$orderCriteria->addFilter(new EqualsFilter('order.orderCustomer.customerId', $customerId));
$orderCriteria->addAssociation('order.orderCustomer');
$orderCriteria->addAssociation('order.lineItems');
$orders = $this->orderRepository->search($orderCriteria, $context->getContext());
foreach($orders as $order){
dd($order->getOrderCustomer(), $order->getLineItems());
// ...
}
1 „Gefällt mir“
das lineItem bleibt null.
Das LineItem sind doch die Details des Artikels bzogen auf die Bestellung, oder? (Anzahl,Name etc…)
->addAssociation(‚lineItems‘) ist korrekt
Siehe: shopware/src/Core/Checkout/Order/OrderDefinition.php at trunk · shopware/shopware · GitHub
Das sind alle einzelnen line items. Damit könntest du (falls verfügbar) über
->addAssociation(‚lineItems.product‘)
auch direkt an das Shopware Produkt kommen.
Viele Grüße
1 „Gefällt mir“
system
Geschlossen,
14. November 2024 um 13:26
5
Dieses Thema wurde automatisch 30 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Antworten mehr erlaubt.