Mein Produkt hat wirklich keinen Wareneinsatz. Warum steht es auf der Liste fehlender Kosten?
WooCommerce löscht den Wareneinsatz einer Bestellposition, wenn er null ist. Ein Gratismuster und ein Produkt ohne eingetragene Kosten sehen in der Datenbank gleich aus.
Die kurze Antwort
Weil WooCommerce in einer Bestellposition den Wareneinsatz löscht, wenn er null ist, statt eine Null zu speichern. Ein Gratismuster und ein Produkt, für das niemand Kosten eingetragen hat, sehen in der Datenbank deshalb genau gleich aus: gar kein Wert.
Statt zu raten, welcher der beiden Fälle es ist, sagt Merchgain immer keine Kostendaten und nie Wareneinsatz 0. Gratismuster, Werbegeschenke und herunterladbare Extras erscheinen auf der Liste fehlender Kosten, und kein Plugin kann sie von echten Lücken unterscheiden.
Was WooCommerce tatsächlich tut
Beim Speichern der Daten einer Bestellposition durchläuft der Wareneinsatz diesen Code:
$cogs_value = (float) $cogs_value;
if ( 0.0 === $cogs_value ) {
$this->order_item_data_store->delete_metadata( $item->get_id(), '_cogs_value', '' );
} else {
$this->order_item_data_store->update_metadata( $item->get_id(), '_cogs_value', $cogs_value );
}
Null löscht die Zeile. Und für ein Produkt ohne eingetragenen Wareneinsatz liefert get_cogs_total_value() den Wert 0, beide Wege enden also beim selben Löschen.
Eine Asymmetrie sollten Sie kennen: Beim Produkt wird ein Wareneinsatz von 0 sehr wohl
gespeichert, weil der Datenspeicher für Produkte nur leere Zeichenketten und leere Arrays löscht. Auf
Produktebene lassen sich null und fehlend also unterscheiden, auf Ebene der Bestellposition nicht.
Was Sie tun können
- Nehmen Sie hin, dass echte Gratisartikel auf der Liste stehen. Diese Artikel stehen dort, weil die Daten nichts anderes sagen können, und ein Bericht, der sie verstecken würde, würde Informationen erfinden.
- Hat der Artikel doch Kosten, tragen Sie sie ein. Auch eine Werbetasse hat Sie Einkauf und Druck gekostet; die ehrliche Zahl ist dieser Betrag, nicht null.
- Lesen Sie die Abdeckung als „Umsatz mit bekanntem Wareneinsatz“, nicht als Punktzahl, die auf 100 % kommen muss. Ein Shop, der 6 % seines Umsatzes in Mustern verschenkt, bleibt für immer bei 94 %, und das ist die richtige Antwort.
So zeigt Merchgain das im Bericht
Zwei verschiedene Quellen, mit Absicht. Die Liste der Produkte ohne Wareneinsatz wird auf Produktebene gelesen, wo sich null und fehlend unterscheiden lassen. Der Prozentwert der Abdeckung wird auf Ebene der Bestellpositionen gelesen, wo das nicht geht. Er beantwortet also die einzige Frage, die diese Daten beantworten können: Für welchen Anteil dieses Umsatzes ist ein Wareneinsatz erfasst?
Der Hinweis auf absichtliche Nullen steht im Block der fehlenden Kosten, direkt neben der Liste. Wer dort zum ersten Mal seine Gratismuster sieht, bekommt die Erklärung in derselben Ansicht.
Verwandte Antworten
Passt das nicht zu dem, was Sie in Ihrem Shop sehen? Schreiben Sie uns — wir lesen jede Nachricht. contact@merchgain.com