orderLineItem wie holen?

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“

Dieses Thema wurde automatisch 30 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Antworten mehr erlaubt.