Order Dokument "Angebot" erstellen

Hallo Manuel,

zu der Datenbank, jede eigene und auch freme Entity liefert automatisch ein Repository mit über welches Du die Daten auslesen, schreiben oder löschen kannst. Würde ich auch generell ggü. direkten Datenbankabfragen empfehlen.

Beispiel dafür findest Du hier https://docs.shopware.com/en/shopware-platform-dev-en/how-to/reading-entities-dal

Da es sich nun im Gegensatz zu Shopware5 um Symfony Controller handelt, kannst Du Services direkt mit $this->get(‘service.id’), statt $this->container abfragen. Oder noch besser die Services im Constructor Deiner Klasse injecten

/**
     * OfferController constructor.
     * @param OfferDocumentService $documentService
     * @param ProductLoader $productLoader
     * @param CartService $cartService
     * @param GenericPageLoader $genericPageLoader
     * @param NumberRangeValueGenerator $valueGenerator
     * @param EntityRepositoryInterface $countryRepository
     * @param EntityRepositoryInterface $salutationRepository
     * @param EntityRepositoryInterface $salesChannelRepository
     */
    public function __construct(
        OfferDocumentService $documentService,
        ProductLoader $productLoader,
        CartService $cartService,
        GenericPageLoader $genericPageLoader,
        NumberRangeValueGenerator $valueGenerator,
        EntityRepositoryInterface $countryRepository,
        EntityRepositoryInterface $salutationRepository,
        EntityRepositoryInterface $salesChannelRepository
    )

use Statements nicht vergessen :slight_smile: Falls Du mit PhpStorm arbeitest kannst diese auch direkt importieren lassen.

Variablen ans Template übergeben tust Du beim Rendern wie folgt in der Controller Action selbst

return $this->renderStorefront('@Storefront/storefront/page/offer/index.html.twig', [
            'productId' => $productId,
            'quantity' => $quantity,
            'cartToken' => $cartToken,
            'countries' => $countries,
            'salutations' => $salutations,
            'page' => $page
        ]);

Zu Deinem Fehler mit der DocumentNumber, hast Du denn eine eigene NumberRange für das offer Dokument angelegt? Oder nutzt Du eine bestehende?