GX-Bug #68588
geschlossenEs kann zu RaceCondition kommen, wenn man E-Mail Rechnungen mehrfach auf "Senden" klickt / RaceCondition may occur if e-mail invoices "Send" are clicked several times
0%
Der Senden-Button zum Verschicken von mehreren Rechnungen oder Bestellbestätigungen wird nach Klick nun deaktiviert, um Mehrfachklicks und damit verbundene Fehler zu unterbinden
Beschreibung
E-Mail Rechnungen und Bestellbestätigungen können mehrfach erzeugt und gesendet werden, wenn man mehrfach auf den "Senden" Button klickt, was zu fehlerhaften Rechnungen und Race Conditions führt
Kann wie folgt reproduziert werden:
- Gambio Admin öffnen
- Es müssen mehrer Bestellungen im Shop ohne Rechnung vorhanden sein
- Bestellübersicht öffnen
- Alle Bestellungen markieren
- Option "E-Mail Rechnung senden" im Aktion DropDown klicken
- Häkchen bei "fehlende Rechnunge erzeugen" setzen
- Browserkonsole öffnen
- Tab "XHR" öffnen
- Button "Senden" doppelt oder dreifach anklicken
Aktuelles Verhalten:
Es wird für jede Bestellung ein XHR erzeugt und zwar sooft man man den Button geklickt hat, bei 4 Bestellungen werden dann 8 XHR gestartet oder auch 12 wenn man dreimal geklickt hat. Das sorgt dafür, dass jeder Request von unterschiedlichen Parametern ausgeht und so Rechnungen mehrfach erzeugt und auch per Mail gesendet werden, was dann dazu führt, dass die parallel XHR sich gegenseitig stlören
Erwartetes Verhalten:
Der Button "Senden" muss deaktiviert werden sobald dieser geklickt wurde um weitere Klickst und somit eine ReceCondition von mehreren Ajax Reqeusts zu verhindern.
Das Gleiche gilt für den Versand von Bestellbestätigungen und Rechnungen von der Rechnungen- statt Bestellungen-Übersicht (siehe Screenshots)
Email invoices and order confirmations can be created and sent multiple times when clicking the "Send" button multiple times, resulting in incorrect invoices and race conditions
Can be reproduced as follows:
- open Gambio Admin
- there must be several orders in the store without invoice
- open order overview
- select all orders
- click option "send email invoice" in action dropdown
- check the box "create missing invoice
- open browser console
- open tab "XHR
- double or triple click "Send" button
Current behavior:
For each order an XHR is created as often as the button is clicked, for 4 orders 8 XHRs are started or 12 if the button is clicked three times. This ensures that each request is based on different parameters and so invoices are generated multiple times and also sent by mail, which then leads to the fact that the parallel XHR interfere with each other.
Expected behavior:
The "Send" button must be deactivated as soon as it is clicked to prevent further clicks and thus a ReceCondition of multiple Ajax Reqeusts.
The same applies to sending order confirmations and invoices from the invoices instead of orders overview (see screenshots)
Run yarn admin:scripts
before testing and clear the browser cache!