Merchgain
PL
Dostępne teraz
Następne, w tej kolejności
  • DeutschDE
  • EspañolES
  • FrançaisFR
  • ItalianoIT
  • PortuguêsPT
  • NederlandsNL

Język pojawia się tutaj wtedy, gdy jego strony są napisane. Nic na tej witrynie nie jest tłumaczone maszynowo.

Zainstaluj za darmoZainstaluj
← Wszystkie odpowiedzi

Zrobiłem zwrot i zmienił mi się historyczny zysk. Dlaczego?

Wystawienie zwrotu każe WooCommerce przeliczyć koszt każdej pozycji pierwotnego zamówienia bieżącym kosztem produktu. To rdzeń i nie da się tego cofnąć.

Grupa
Gdzie brakuje danych
Źródło
R — zachowanie rdzenia WooCommerce
Kod
REWRITE
Aktualizacja

Krótka odpowiedź

Bo wystawienie zwrotu każe WooCommerce przeliczyć koszt każdej pozycji pierwotnego zamówienia z kosztu produktu takiego, jaki jest dzisiaj — a nie z kosztu zapisanego w chwili sprzedaży.

Jeśli cena zakupu zmieniła się w międzyczasie, zapisana historia zmienia się razem z nią. To zachowanie rdzenia WooCommerce, dotyczy każdej wtyczki czytającej to pole i nie ma ustawienia, które by je wyłączyło.

Co naprawdę robi WooCommerce

Na końcu wc_create_refund(), już po zapisaniu zwrotu, rdzeń robi to zamówieniu nadrzędnemu:

if ( ...->feature_is_enabled() && $order->has_cogs() ) {
    $order->calculate_cogs_total_value();
}
$order->save();

a przeliczenie sumy zamówienia przechodzi po każdej pozycji, wołając calculate_cogs_value(), które czyta bieżący koszt produktu. Zapis zamówienia wpisuje potem wszystkie te pozycje z powrotem.

Czyli zwrot jednej sztuki przepisuje zapisany koszt wszystkich pozycji tego zamówienia. A jeśli koszt produktu został w międzyczasie wyczyszczony, przeliczenie daje zero — co, jak opisano w koszt zero a brak kosztu, kasuje wartość zamiast ją zapisać. Pierwotny koszt przepada bezpowrotnie.

Co z tym zrobić

  • Zmieniaj koszty, nie czyść ich. Wyzerowanie pola kosztu to jedyny ruch, który zamienia zwrot w trwałą utratę danych na tym zamówieniu.
  • Eksportuj CSV na koniec każdego miesiąca. Dziesięć sekund, a dostajesz zapis tego, jak miesiąc wyglądał w chwili zamknięcia. To jedyna obrona, która nie zależy od tego, czy rdzeń zmieni zachowanie.
  • Spodziewaj się niewielkich rozjazdów na zamówieniach ze zwrotami i wiedz, skąd biorą się, zamiast podejrzewać raport.

Jak to pokazuje Merchgain

Merchgain pokazuje to, co jest w bazie. Nie trzyma drugiej, własnej kopii historii kosztów i nie zapisuje niczego do zamówienia — więc nie może Cię przed tym uchronić i nie będzie udawał, że rozjazdu nie ma.

To także powód, dla którego eksport CSV jest w wersji darmowej i tam zostanie: dla sklepu, który wystawia zwroty, comiesięczny eksport jest różnicą między posiadaniem historii kosztów a wiarą, że nic jej nie przepisało.

Zobacz to na prawdziwym raporcie

Nie zgadza się z tym, co widzisz w sklepie? Napisz — każda wiadomość jest czytana. contact@merchgain.com