#2547 closed Bug/Fehler (fixed)
Bei Ändern/Hinzufügen von Artikeln in Bestellungen wird das Gewicht gelöscht.
| Reported by: | oneQ | Owned by: | somebody |
|---|---|---|---|
| Priority: | normal | Milestone: | modified-shop-2.0.8.0 |
| Component: | Admin | Version: | 2.0.7.2 |
| Keywords: | Cc: | ||
| Blocked By: | Blocking: |
Description
Wie im Thread Gewicht ändern in Bestellung beschrieben, wird in der DB das Gewicht in der Tabelle orders_products bei den Artikeln gelöscht, die geändert oder hinzugefügt werden. Dadurch ist das Gesamtgewicht der Bestellung falsch, was zu Folgeprobleme z.B. für die Schnittstellen zu LogDienstleister führt.
Im Trunk am 03.07.23 getestet und bestätigt.
Lösungsansätze tlw. im Thread.
In der ~\admin\includes\functions\orders_functions.php erschließt sich mir z.B. nicht, wieso im SELECT-Query das Gewicht abgefragt, dann aber nirgends verwendet wird, bzw. keine Abfrage erfolgt, ob dieses Attribut im übergeben $data_array enthalten ist. Wenn
$data_array['products_weight']
leer ist, könnte man anstatt dessen
$product['products_weight']
in $sql_data_array verwenden
Attachments (3)
Change History (14)
comment:1 by , 2 years ago
comment:2 by , 2 years ago
Also ein Löschen des Gewichts kann ich nicht nachvollziehen, aber es stimmt etwas mit der Berechnung des Gewichtes nicht, siehe Screenshot anbei.
Der Artikel wiegt 10 Kg und die Bestellung war ursprünglich über 1x Testartikel 3.
Nach Ändern der Bestellung zu 3x Testartikel 3 ist das Gewicht weiterhin 13 Kg (10 Kg Artikelgewicht + 3 Kg Paketleergewicht).
by , 2 years ago
comment:3 by , 2 years ago
Anscheinend klappt das jetzt in den Demo-Shops. Bin ich wohl zu doof. Ich habe es nochmal in meinem Testshop 2.0.7.2 getested. Da wird bei den Artikel das Gewicht immernoch auf 0 gesetzt (siehe Anhänge). Da ich darauf nur aufgrund des Thread opener gestoßen bin, scheint das aber kein Einzelfall zu sein.
comment:4 by , 2 years ago
Dateiversion:
$Id: orders_edit_products.php 14029 2022-02-08 16:19:21Z GTB $
PHP Version: 8.1.16 (Zend: 4.1.16)
Wenn es das Problem nicht (mehr) gibt, einfach das Ticket schließen.
comment:5 by , 2 years ago
Meinen Kommentar samt Screenshot hast du nicht gesehen?
So ganz rund scheint es noch nicht zu funktionieren. Das Gewicht wird zwar nicht mehr gelöscht, aber es wird nicht korrekt berechnet, wie mir scheint.
comment:6 by , 2 years ago
Doch habe ich. Da ich aber nicht kontrolliert habe, ob die Gewichtsangabe bei den Versankosten in der Tabelle - ich glaube order_total - bei Abschluss der Bestellung fix reingeschrieben wird und ich das Problem als "Gewicht wird genullt/gelöscht" formuliert habe (was anscheinend ein individuelles Problem ist), bin ich da nicht weiter drauf eingegangen. Wenn ich morgen Zeit habe, kann ich das gerne noch checken.
comment:9 by , 2 years ago
Gerhard schrieb hier folgendes dazu:
Unschlüssigkeiten beim Gewicht in einer Bestellung wurde in der Tat schon vor einiger Zeit in r15150 korrigiert.
Durch das Ticket ist aber ein anderer Umstand aufgefallen.
Wenn ein Artikel Attribute mit Gewicht hat, wird das Gewicht falsch berechnet, wenn das Attribut in der Bestellung neu gespeichert wird.
comment:10 by , 2 years ago
Das Bestätigt meine Vermutung, dass die Gewichtsangabe bei den Versandkosten beim Abschluss der Bestellung in die orders_total geschrieben wird und das habe ich gerade auch noch mal nachgeschaut (siehe Screenshot).
Wieso jetzt bei mir - und evtl auch bei anderen - bei einer Änderung oder Hinzufügen von Artikel in Bestellungen die Gewichtsangabe auf 0 geht, bleibt mir ein Rätsel. Ich gehe davon aus, dass Ihr das in euren Demo-Shops in der DB auch nachgeschaut habt und nicht irgendwo statt das Gewicht aus der orders_products aus products gezogen wurde.
Bei Gelegenheit werde ich meine Testumgebung mit einer neuen Fullinstall gegenprüfen. Vielleicht sind da durch die Updates Änderungen verschütt gegangen.
comment:11 by , 2 years ago
Wie Gerhard bereits schrieb war für das "Nullen" des Gewichts das Changeset r15150 die Lösung.

Ergänzung: Es betrifft die function orders_product_edit sowie function orders_product_insert in der ~\admin\includes\functions\orders_functions.php. Denke in der zweiten Funktion ist das wie im Thread beschrieben relativ einfach zu lösen.