Problem mit CheckoutOrderPlacedEvent

Moin,

nach einer abgeschlossenen Bestellung fülle ich durch eine Subscription auf das CheckoutOrderPlacedEvent customFields der Order Entity.

Klappt alles wunderbar, jedoch sind die customFields nicht im E-Mail Template abrufbar. Im Gegenteil, die E-Mail wird nicht gesendet weil die Variable im Twig unbekannt ist.

Was kann man da machen? :slight_smile: Help Pls!

VG

Philipp

Wie greifst du denn darauf zu? 
Die Daten aus der Order Entity und der Order Line Item Entity sollten auf jeden Fall verfügbar sein.

[@Moritz Naczenski](http://forum.shopware.com/profile/14574/Moritz Naczenski „Moritz Naczenski“)‍

Wenn ich in diesem Event für die OrderEntity customFields erstelle, dann sind diese auch in der OrderEntity verfügbar. Problem ist nur, dass ich diese Informationen so noch nicht in meinem E-Mail Template verwenden kann (z.B. ich setze in ein customField den Namen eines Fachhändlers ein und möchte den Namen des Fachhändlers auch in der Bestellbestätigung stehen haben).

    public function onCheckoutOrderPlaced(CheckoutOrderPlacedEvent $event): void
    {
        $session = new Session();
        
        $merchantId = $session->get('moorl-merchant-finder_selected_merchant');

        if (!$merchantId) {
            return;
        }

        $merchant = $this->merchantRepository->search(new Criteria([$merchantId]), $event->getContext())->get($merchantId);

        $merchantAddress = sprintf(
            "%s\n%s %s\n%s %s\n%s\n\n%s",
            $merchant->getCompany(),
            $merchant->getStreet(),
            $merchant->getStreetNumber(),
            $merchant->getZipcode(),
            $merchant->getCity(),
            $merchant->getCountryCode(),
            $merchant->getEmail()
        );
        
        $order = $event->getOrder();
        $customFields = $order->getCustomFields() ?: [];
        
        $customFields = array_merge([
            'moorl_mf_merchant_id' => $merchant->getId(),
            'moorl_mf_merchant_address' => $merchantAddress
        ], $customFields);

        $this->orderRepo->update([[
            'id' => $order->getId(),
            'customFields' => $customFields
        ]], $event->getContext());

        $order->setCustomFields($customFields);
    }

 

Ticket hab ich hier eröffnet :)