Ich habe eine Erstattung ausgelöst, und mein alter Rohertrag hat sich geändert. Warum?
Bei einer Erstattung berechnet WooCommerce den Wareneinsatz jeder Position der ursprünglichen Bestellung aus dem heutigen Wert neu. Verhalten des Kerns, nicht umkehrbar.
Die kurze Antwort
Weil WooCommerce bei einer Erstattung den Wareneinsatz jeder Position der ursprünglichen Bestellung neu berechnet, und zwar mit dem Wareneinsatz jedes Produkts so, wie er heute ist, nicht mit dem, der beim Verkauf erfasst wurde.
Hat sich Ihr Einkaufspreis inzwischen geändert, ändert sich die gespeicherte Historie mit. So verhält sich der WooCommerce-Kern, es betrifft jedes Plugin, das dieses Feld liest, und keine Einstellung schaltet es ab.
Was WooCommerce tatsächlich tut
Am Ende von wc_create_refund(), sobald die Erstattung gespeichert ist, tut der Kern Folgendes mit
der übergeordneten Bestellung:
if ( ...->feature_is_enabled() && $order->has_cogs() ) {
$order->calculate_cogs_total_value();
}
$order->save();
Die Neuberechnung der Bestellsumme geht jede Position durch und ruft calculate_cogs_value()
auf, das den aktuellen Wareneinsatz des Produkts liest. Das Speichern der Bestellung schreibt dann
alle diese Positionen zurück.
Eine Erstattung für einen Artikel schreibt also den erfassten Wareneinsatz jedes Artikels dieser Bestellung neu. Und wurde der Wareneinsatz des Produkts inzwischen geleert, ergibt die Neuberechnung null, was, wie unter Wareneinsatz null oder kein Wareneinsatz beschrieben, den Wert löscht, statt ihn zu speichern. Der ursprüngliche Wareneinsatz ist dann endgültig weg.
Was Sie tun können
- Kosten ändern, nicht leeren. Ein Kostenfeld zu leeren ist der eine Schritt, der eine Erstattung in einen dauerhaften Datenverlust für diese Bestellung verwandeln kann.
- Exportieren Sie die CSV-Datei am Ende jedes Monats. Das dauert zehn Sekunden und gibt Ihnen einen Beleg dafür, wie der Monat beim Abschluss aussah. Das ist der einzige Schutz, der nicht davon abhängt, dass der Kern sein Verhalten ändert.
- Rechnen Sie bei erstatteten Bestellungen mit kleinen Abweichungen und wissen Sie, woher sie kommen, statt den Bericht zu verdächtigen.
So zeigt Merchgain das im Bericht
Merchgain zeigt, was in der Datenbank steht. Es führt keine zweite, private Kopie Ihrer Kostenhistorie und schreibt nichts in die Bestellung. Davor schützen kann es Sie also nicht, und es wird auch nicht so tun, als gäbe es die Abweichung nicht.
Deshalb steckt der CSV-Export auch in der kostenlosen Version und nicht hinter einer Bezahlschranke: Für einen Shop mit Erstattungen ist ein monatlicher Export der Unterschied zwischen einer gesicherten Kostenhistorie und der bloßen Hoffnung, dass nichts sie überschrieben hat.
Verwandte Antworten
Passt das nicht zu dem, was Sie in Ihrem Shop sehen? Schreiben Sie uns — wir lesen jede Nachricht. contact@merchgain.com