Bestellung - Dokumente automatisiert versenden

Hallo,

ich habe den Fall, dass Dokumente zur Bestellung per API erstellt bzw. hochgeladen werden.
Jetzt aber ich aber das Problem, dass diese nicht automatisch an den Kunden versendet werden bzw. nicht als gesendet markiert werden.

Habt ihr einen Vorschlag für mich, wie man das lösen kann bzw. geht dies nur über ein Plugin (DocumentGenerator Decorator)??

Zur Info: Version: 6.7.13.1 - Also der V2 DocumentGenerator funktioniert noch nicht

Danke.
LG

Hallo,

dafür brauchst du kein Plugin und keinen DocumentGenerator-Decorator. Shopware markiert Dokumente selbst als „gesendet“, sobald sie über den Shopware-Mailversand als Anhang verschickt wurden.

Nach dem Erstellen/Hochladen des Dokuments POST /api/_action/mail-template/send aufrufen und die Dokument-ID mitgeben. Das ist derselbe Endpunkt, den die Administration beim „Dokument senden“ nutzt:

{
  "mailTemplateId": "<id des Templates, z. B. Rechnung>",
  "recipients": { "kunde@example.com": "Max Mustermann" },
  "salesChannelId": "<sales-channel-id der Bestellung>",
  "subject": "...", "senderName": "...",
  "contentHtml": "...", "contentPlain": "...",
  "mailTemplateData": { "order": { "id": "<orderId>" } },
  "documentIds": ["<documentId>"]
}

Betreff, Absendername und Inhalt lädst du am einfachsten vorher aus dem Mail-Template (/api/search/mail-template). Nach erfolgreichem Versand setzt Shopware sent = true am Dokument. Kommt die Mail nicht an, lohnt ein Blick in den Log nach mail.sent.error: Fehler im Template verwirft Shopware dort ohne Meldung an die API.