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!
Von Moritz Bunjes vor mehr als 3 Jahren aktualisiert
- Thema wurde von Es kann zu ReceCondition kommen, wenn man E-Mail Rechnungen mehrfach auf "Senden" klickt / ReceCondition may occur if e-mail invoices "Send" are clicked several times zu Es 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 geändert
- Status wurde von Gemeldet zu In Bearbeitung geändert
- Zugewiesen an wurde auf Moritz Bunjes gesetzt
- Zielversion wurde von 133 zu 4.5.1.0 beta1 geändert
- Release Notes Langtext aktualisiert (Vergleich)
Von Moritz Bunjes vor mehr als 3 Jahren aktualisiert
- Beschreibung aktualisiert (Vergleich)
- Status wurde von In Bearbeitung zu 30 geändert
- Zugewiesen an wurde von Moritz Bunjes zu Core-Entwickler geändert
Von Moritz Bunjes vor mehr als 3 Jahren aktualisiert
- Release Notes Langtext aktualisiert (Vergleich)
Von Moritz Bunjes vor mehr als 3 Jahren aktualisiert
- Release Notes Langtext aktualisiert (Vergleich)
Von Moritz Bunjes vor mehr als 3 Jahren aktualisiert
- Status wurde von 30 zu Testing geändert
Von Marvin Muxfeld vor mehr als 3 Jahren aktualisiert
- Zugewiesen an wurde von Core-Entwickler zu Marvin Muxfeld geändert
Von Marvin Muxfeld vor mehr als 3 Jahren aktualisiert
- Zugewiesen an wurde von Marvin Muxfeld zu Core-Entwickler geändert
Von Alexandre Ataides vor mehr als 3 Jahren aktualisiert
- Zugewiesen an wurde von Core-Entwickler zu Alexandre Ataides geändert
Von Alexandre Ataides vor mehr als 3 Jahren aktualisiert
- Status wurde von Testing zu Erledigt geändert
Von Moritz Bunjes vor mehr als 3 Jahren aktualisiert
- Tags wurde von Cloud zu Cloud, 4.5.1.0_beta1 geändert
Von Moritz Bunjes vor etwa 3 Jahren aktualisiert
- Tags wurde von Cloud, 4.5.1.0_beta1 zu Cloud geändert