Ein Jahr lang verkauft, heute nicht kaufbar
Produkte, die in den letzten zwölf Monaten Umsatz gebracht haben und heute nicht kaufbar sind, sortiert nach Umsatz: Die Liste beginnt dort, wo das Geld ist.
Woran Sie das Problem erkennen
Gar nicht. Genau das ist das Problem.
Ein Produkt, das sich ein Jahr lang regelmäßig verkauft hat, ist plötzlich nicht mehr kaufbar: nicht vorrätig, nicht bestellbar oder ohne gültigen Preis. Und nirgends steht das. Kein Fehler, kein Hinweis, keine E-Mail. Die Bestellungen für dieses Produkt bleiben einfach aus, und in einem Shop, der jeden Tag Bestellungen bekommt, fällt nicht auf, dass ein bestimmtes Produkt darunter fehlt.
Bemerkt wird das meist erst Monate später, wenn ein Kunde nachfragt.
Was das Problem kostet
Wegen dieser Prüfung gibt es das Plugin überhaupt, und die Rechnung dahinter ist einfach: Sie wissen bereits, was das Produkt wert ist. Es hat in den letzten zwölf Monaten einen bestimmten Betrag eingebracht. Heute bringt es nichts. Die Differenz ist keine Prognose, sondern das, was das Produkt nachweislich eingebracht hat.
Unbemerkt bleibt das, weil WooCommerce beide Hälften der Antwort hat, sie aber nirgends zusammenführt:
- Der Lagerbestandsbericht listet alles auf, was nicht vorrätig ist, auch dreitausend Produkte, die sich nie ein einziges Mal verkauft haben. Niemand liest ihn zweimal.
- Der Verkaufsbericht listet auf, was sich verkauft hat, sagt aber nichts darüber, ob man es noch kaufen kann.
Interessant ist die Schnittmenge: Produkte, die sich verkauft haben und nicht kaufbar sind. Keine Ansicht in WooCommerce zeigt sie, und als Merchlint entstand, gab es auch im Plugin-Verzeichnis von WordPress.org kein Plugin, das sie zeigte. Dabei ist es genau die Liste, mit der ein Shop-Betreiber sofort etwas anfangen kann.
So prüfen Sie selbst nach
Das geht in zwei Schritten. Ermitteln Sie zuerst, was in den letzten zwölf Monaten Umsatz gebracht hat. WooCommerce führt genau dafür eine Analysetabelle, die sich viel schneller abfragen lässt als die einzelnen Bestellpositionen:
wp db query "SELECT product_id, SUM(product_net_revenue) AS revenue, SUM(product_qty) AS qty
FROM wp_wc_order_product_lookup
WHERE date_created > DATE_SUB(NOW(), INTERVAL 12 MONTH)
GROUP BY product_id
ORDER BY revenue DESC"
Prüfen Sie dann den aktuellen Zustand der obersten Produkte dieser Liste, nicht in SQL, sondern über WooCommerce. Ob ein Produkt kaufbar ist, hängt vom Zusammenspiel aus Lagerstatus, Preis, Produkttyp, Varianten und Status ab. Wer diese Logik in einer Abfrage nachbaut, bekommt eine falsche Liste:
wp eval '
foreach ( [123, 456, 789] as $id ) { // IDs aus der Abfrage oben
$p = wc_get_product( $id );
if ( ! $p ) { echo "$id: nicht gefunden\n"; continue; }
if ( ! $p->is_purchasable() || ! $p->is_in_stock() ) {
printf( "%d\t%s\t%s\n", $id, $p->get_name(), $p->get_stock_status() );
}
}'
So beheben Sie das Problem
- Fangen Sie oben in der Umsatzspalte an und hören Sie früh auf. Drei wieder lieferbare Produkte sind ein Ergebnis, das Sie noch diese Woche messen können. Zweihundert geprüfte Produkte sind eine Woche ohne vorzeigbares Ergebnis.
- Entscheiden Sie, statt reflexhaft nachzubestellen. Für jedes Produkt gibt es drei sinnvolle Möglichkeiten: wieder ins Sortiment nehmen, durch das Nachfolgeprodukt ersetzen und die Adresse umleiten, oder aus dem Katalog nehmen, damit das Produkt keinen Traffic mehr bindet. Warum ein ausgeblendetes Produkt besser ist als ein sichtbares, das man nicht kaufen kann, steht auf der Seite WooCommerce-Produkt wird im Shop nicht angezeigt.
- Prüfen Sie, ob das überhaupt jemand so entschieden hat. Ein Produkt, das am Tag eines Imports auf „Nicht vorrätig“ gesprungen ist, ist eine andere Geschichte als eines, das ausverkauft ist.
- Sehen Sie sich dann an, worauf der Befund hinweist. Ein Lieferant, der nicht mehr liefert, eine gelöschte Variante, ein Bestandsabgleich, der seit dem Frühjahr nicht mehr gelaufen ist: Oft ist der Befund nur das Symptom eines größeren Problems.
Wann ein Fehlalarm vorliegt
- Bewusst aus dem Sortiment genommene Produktlinien. Solche Produkte bleiben wegen der Bestellhistorie zu Recht im Katalog. Blenden Sie den Befund im Bericht aus, dann bleibt er über alle Überprüfungen und Updates hinweg ausgeblendet.
- Saisonware außerhalb der Saison.
- Einzelstücke oder limitierte Artikel: Vintage, Handgemachtes, Ware in Stückzahl eins. Solche Artikel werden einmal verkauft und kommen nicht wieder ins Sortiment.
- Produkte, die durch ein Nachfolgeprodukt mit neuer Artikelnummer ersetzt wurden. Der Umsatz ist zum neuen Produkt gewandert, das alte ist zu Recht nicht mehr kaufbar. Hier lohnt sich eine Weiterleitung statt einer Nachbestellung.
- Produkte, die nur zum Preis von 0 bestellt wurden oder bei denen jeder Verkauf erstattet wurde: Seit Version 0.3.5 überspringt Merchlint sie. Der übliche Fall ist ein Geschenk, das zum Preis von 0 in die Bestellung kommt. Der Betrag, um den es geht, war ohnehin null.
- Ein als nicht vorrätig markiertes Produkt, dessen Varianten noch kaufbar sind: Seit Version 0.3.5 landet es stattdessen bei der Prüfung „Ausverkauft, aber die Varianten sind vorrätig“ (Seite auf Englisch). Man kann es kaufen, also gehört es nicht auf diese Liste.
Wie Merchlint das Problem findet
In zwei Stufen, und die Trennung ist wichtiger, als es aussieht.
Eine gezielte Abfrage der Analysetabelle liefert die Kandidaten. wc_order_product_lookup ist die einzige
Stelle, an der der Umsatz pro Produkt schon zusammengefasst ist. Bestellungen über die normale API durchzugehen,
um zwölf Monate Umsatz in einem Shop mit zwanzigtausend Bestellungen zu summieren, dauert zu lange, wenn
jemand vor dem Bildschirm auf das Ergebnis wartet.
Dann wird jeder Kandidat über wc_get_product() von WooCommerce bestätigt, bevor etwas gemeldet wird. Ob ein
Produkt kaufbar ist, ergibt sich aus WooCommerce selbst, nicht aus unserer Auslegung der Tabellen. Seit Version 0.3.5 gilt
das auch für Varianten: Ein variables Produkt zählt nur dann als nicht kaufbar, wenn sich keine seiner Varianten in
den Warenkorb legen lässt. Produkte, deren Verkäufe im Zeitraum nichts eingebracht haben (nur zum Preis von 0
bestellt oder jeder Verkauf erstattet), werden übersprungen.
Daraus folgt etwas, das wir bewusst so entschieden haben: Ändert sich das zugrunde liegende Datenbankschema, kann diese Prüfung einen Befund übersehen, aber nie einen erfinden. Im Zweifel meldet sie zu wenig, aber nie etwas Falsches. In einem Shop, in dem die Analysetabelle leer oder deaktiviert ist, meldet die Prüfung, dass sie nicht ausgeführt werden konnte, statt null Probleme zu melden.
Verlässlichkeit: F – Fakt aus der Datenbank, ein zweites Mal über die API von WooCommerce bestätigt.
Umsätze werden nie über Währungen hinweg addiert. Ein Shop, der in Euro und Schweizer Franken verkauft, bekommt für jede Währung eine eigene Zahl mit der Währung daneben. Beides ohne Wechselkurs zu addieren hieße, eine Zahl zu erfinden, und eine einzige erfundene Zahl kostet den ganzen Bericht seine Glaubwürdigkeit.
Diese Seite wurde noch nicht von Muttersprachlern geprüft. Klingt etwas falsch oder stimmt etwas nicht? Schreiben
Sie an contact@merchlint.com.
Passt das nicht zu dem, was Sie in Ihrem Shop sehen? Schreiben Sie uns, wir lesen jede Nachricht: contact@merchlint.com