• Resolved mike8040

    (@mike8040)


    Ich zerbreche mir seit 24 Stunden den Kopf um die Ursache folgendes Problems herauszufinden. Seit Mitte / Ende Januar fehlen 98% der completed Orders in den WC Analytics. Das geht um über 100 Bestellungen. Der Shop ist seit jeher auf Date type:?Date completed eingestellt. Bislang lief dies auch.
    Weil Bestellung jedoch von einer Zahlungsart dennoch gelistet sind und das sind n?mlich die zur Lieferung wo keine Versandmarken gedruckt werden und diese manuell auf complete gesetzt werden, bin ich drauf gekommen dass dieses Problem mit Germanized zusammenh?ngt. Testweise hat ich die Funktion “Mark shipment as shipped after label has been created successfully.” deaktiviert und siehe da die Order erschien direkt in den WC Analytics, sobald sie auf completed gespeichert wurde.
    Wenn über Germanized automatisch best?tigt wird fehlen im table “wc_order_stats” die completed date Eintr?ge.

    Ich hatte gestern bereits das Woocommerce Team informiert, weil nicht klar war was dies verursacht. Mehr Infos und bereits fehlgeschlagene L?sungsang?nge gibt es hier:
    https://www.ads-software.com/support/topic/severe-analytic-issue-completed-order-is-missing/#post-17409242

    Jetzt muss ich per SQL die Eintr?ge korrigieren, weil über WP muss ich sonst alle manuell erneute speichern, wo jedoch dann das Rechnungsdatum nicht mehr mit der Rechnung stimmt.
    Ich hatte bereits vor einigen Tagen über Probleme mit den Automation seit den Neuerungen berichtet und ich gehe davon aus dass dies zusammenh?ngend ist.

    • This topic was modified 9 months, 3 weeks ago by mike8040.
Viewing 6 replies - 1 through 6 (of 6 total)
  • Plugin Author vendidero

    (@vendidero)

    Hi,

    ganz kurz vorab: Was passiert denn genau wenn die Sendung als versandt markiert wurde? Hast du Germanized so konfiguriert, das im Anschluss der Bestellstatus auf Fertiggestellt gesetzt wird? Oder inwiefern wird der Bestellstatus hier von Germanized beeinflusst?

    Wenn Germanized über die Automatisierung den Bestellstatus von Woo aktualisiert, dann passiert das über die von Woo bereitgestellte Datenstruktur, d.h. da gibt es kaum bis gar kein Fehlerpotential auf Seiten von Germanized. An der Logik dafür hat sich auch seit geraumer Zeit nichts mehr ge?ndert. S.: https://github.com/vendidero/woocommerce-germanized-shipments/blob/master/src/Automation.php#L174

    Germanized verwendet WC_Order::update_status() um den Bestellstatus zu aktualisieren. Gibt es bei dir vllt. Probleme in Zusammenhang mit der neuen HPOS-Funktionalit?t von Woo?

    Grü?e

    Thread Starter mike8040

    (@mike8040)

    Korrekt, über Germanized wird die Bestellung seit je her immer als Fertiggestellt hinterlegt sobald die Sendung als Versandt gespeichert wurde.
    Das klappte bis seit 2021 so und nun scheint es ein Problem zu geben, denn speichert man über den Woocommerce Dialog “Update” (Auf Complete im Dropdown – dann Update) wird das Datum richtig erfasst und die Analytics sind korrekt. Ich sagte in dem WC Thread: Speichert man den Status der nicht erfassten Orders erneut mit WC ab, tauchen die auch wieder in den Analytics auf.
    Also scheint es sehr offensichtlich daraufhin zu deuten, dass Germanized neuerdings eine andere Routine verwendet als WC vorsieht oder selbst nutzt um den Status weiterzugeben. Es ist zumindest ein Teil des Problems.

    Zu dem passt auch nun dass Problem, was wir ebenfalls durch die Germanized’s Neuerung des Sendemanagments feststellten. Wenn man “Mark shipment as shipped after label has been created successfully.” deaktiviert, wird dies bei der aller erste Bestellung die man danach durchführt ignoriert. Es wird indem Fall dennoch die Bestellung als Fertiggestellt hinterlegt.

    Es ist kein HPOS aktiviert und auch kein Caching im Backend. Mir graut es aber dass Germanizeds Logik nicht mit Memcached zusammenspielt.

    Mittlerweile konnte ich die SQL Tabellen der stats per Anweisung korrigieren und es ist nun vorerst, ?rgerlich weil deutlich mehr Zeitaufwand, die Funktion “Mark shipment as shipped after label has been created successfully.” deaktiviert. Diese Funktion trigger ja dann “Mark order as completed after order is fully shipped.”, korrekt? Denke diese spielt nicht mehr im Einklang.

    • This reply was modified 9 months, 3 weeks ago by mike8040.
    • This reply was modified 9 months, 3 weeks ago by mike8040.
    • This reply was modified 9 months, 3 weeks ago by mike8040.
    • This reply was modified 9 months, 3 weeks ago by mike8040.
    • This reply was modified 9 months, 3 weeks ago by mike8040.
    Thread Starter mike8040

    (@mike8040)

    K?nnte ihr verraten wie man den DHL Sandbox Mode zum laufen bekommt? User / Pass ist korrekt. Aber wo ich die Fake EPK erhalte keine Angabe in euren Docs bzw gar keine Hinweise au?er für die DPD. Ich hab eine App erstellt aber auch das gibt nichts her. Was für eine Package für die App ist notwenig Die DHL Menschen in ihren Docs schreiben:
    To create labels in the sandbox, you have the option of using our testsuite with the following user data:

    • Username: “sandy_sandbox”
    • Password: “pass”
    • EKP: “3333333333”
      Was ja schon wieder v?lliger k?se ist und nicht so l?uft. Ich muss jetzt die Orderbest?tigungen testen und verifizieren..
    Plugin Author vendidero

    (@vendidero)

    Wir haben in Germanized nichts an der Logik ver?ndert. Ich habe dir ja die entsprechenden Stellen genannt und auch darauf hingedeutet, das wir eben genau die von Woo bereitgestellte Datenstruktur bzw. dessen Methoden aufrufen. Da gibt es, wie gesagt, kaum Potential für ein Problem. Gibt es andere Probleme, die in dem Zusammenhang ggf. auftreten, z.B. logs, fatale Fehler o.?.? Kannst du das isoliert, d.h. in deiner Staging-Umgebung mit deaktivieren Plugins (bis auf Woo, Germanized) + default theme reproduzieren? Nutzt ihr die neueste Woo Version?

    Diese Funktion trigger ja dann “Mark order as completed after order is fully shipped.”, korrekt? Denke diese spielt nicht mehr im Einklang.

    Korrekt. Die sind aber ziemlich gut im Einklang denn der Bestellstatus wird doch korrekt aktualisiert auf Fertiggestellt aktualisiert oder? Ich h?tte eine andere Vermutung: Werden eure Labels automatisch erzeugt? Tritt dieses Problem auch bei einem manuellen Label-Request, d.h. beim manuellen erstellen des Labels auf?

    Was den Sandbox-Modus angeht: Das kommt darauf an ob in deiner Installation die REST oder SOAP API verwendet wird. Du kannst das unter WooCommerce > Status > DHL & Post prüfen. Ich empfehle dir, wenn du mit der Sandbox arbeiten willst, die REST API zwangsweise zu nutzen, da die alte SOAP API eine legacy API ist. Dafür stellt DHL mittlerweile kein Portal mehr bereit und auch keine docs (d.h. die neuen docs beziehen sich auf die REST API). Via:

    define( 'WC_GZD_DHL_LEGACY_SOAP', false );

    in deiner wp-config.php kannst du zwangsweise die neue REST API nutzen. Da brauchst du dann im Sandbox-Modus (den du ja in den Einstellungen aktivieren kannst) auch nichts mehr konfigurieren. Die Konfiguration wird im Hintergrund automatisch für dich angepasst.

    Grü?e

    Thread Starter mike8040

    (@mike8040)

    Hallo,
    Danke für die Rückmeldung. Ich habe jetzt alles M?gliche durchprobiert. Die die Labels werden bei uns nicht automatisch generiert. Sobald ein Order erstellt wird, wird jedoch eine Sendung erstellt. Das klappt aber neuerdings mit der COD Gateway nicht. Da muss man jetzt manuell eine Sendung erstellen. Für die restlichen Gateways liegt dieser Fehler nicht vor.

    Ich hatte es nun mehrfach hin und her probiert, sobald die folgenden Germanized Automationen deaktiviert sind, werden der Complete Status direkt an WC Analytics weitergeben:
    “Mark shipment as shipped after label has been created successfully.”
    “Mark order as completed after order is fully shipped.”

    Es ist so, dass wenn über den Dropdown-Dialog von WC auf Completed gesetzt wird und dann der übliche Update-Button gedrückt wird, dann aktualisiert sich auch die WC Analytics Daten.

    Der Unterschied den ich sehe, ist das Germanized den Status per AJAX aktualisiert und WC nicht? Also bei dem Bet?tigen von “Update” mit WC wird die Order Detail Seite neu geladen. Das passiert nicht wenn Germanized die Order aktualisiert.

    Eine weitere Vermutung ist die wp_cache funktion. Ich gehe hierbei stark von aus das es zu einem Problem mit Memcached und dem cache keys bei status ?nderungen kommt. Ich hatte es mit folgenden Definitionen versucht die Status ?nderungen vom Object Cache auszuschlie?en aber ohne Erfolg.
    wp_cache_add_non_persistent_groups(‘wc_orders’); wp_cache_add_non_persistent_groups(‘wc_order_data_store_cpt’); wp_cache_add_non_persistent_groups(‘wc_get_order’); wp_cache_add_non_persistent_groups(‘wc_order_status_update’); wp_cache_add_non_persistent_groups(‘wc_orders_meta’);

    HPOS ist wie erw?hnt nicht aktiviert. Die Order werden auch korrekt im wp_posts table hinterlegt, jedoch aber nicht im wc_order_stats aktualisiert sobald die Automation genutzt wird. Ich habe mittlerweile keine Idee mehr was ich noch testen k?nnte.

    Aktuell behelfe ich mir um die Automationen weiterhin verwenden zu k?nnen, mit einen Cron Job der folgendes ausführt:
    UPDATE wp93_wc_order_stats
    JOIN wp93_posts ON wp93_posts.ID = wp93_wc_order_stats.order_id
    SET wp93_wc_order_stats.date_completed = wp93_posts.post_modified
    WHERE wp93_posts.post_status = ‘wc-completed’
    AND wp93_wc_order_stats.date_completed IS NULL
    AND wp93_posts.post_modified >= ‘2024-01-01 00:00:00’;

    Danke für den Hinweis zur Sandbox. Ich hatte es noch nicht ausprobieren k?nnen, der Fehler ist aber auch reproduzierbar ohne ein Label zu erstellen, wie ich herausfand. Also einfach auf Versandt und speichern, dann greift die Automation “Mark order as completed after order is fully shipped.” und der Fehler mit den Stats passiert

    • This reply was modified 9 months, 2 weeks ago by mike8040.
    Plugin Author vendidero

    (@vendidero)

    Hi,

    ich würde dir wirklich empfehlen das in einer Staging-Umgebung in Ruhe und isoliert zu testen. Insbesondere die Sache mit dem Cache (ggf. Object Cache deaktivieren).

    Der Unterschied den ich sehe, ist das Germanized den Status per AJAX aktualisiert und WC nicht? Also bei dem Bet?tigen von “Update” mit WC wird die Order Detail Seite neu geladen. Das passiert nicht wenn Germanized die Order aktualisiert.

    Genau. Germanized aktualisiert die Sendung (und damit auch die Bestellung) via AJAX. Grunds?tzlich dürfte es da aber keinerlei Unterschied geben, au?er du nutzt irgendein Caching-Plugin, das auf den “normalen” Speichern-Dialog der Bestellung irgendwie gesondert reagiert. Wie bereits erw?hnt nutzt Germanized hier exakt die Methoden, die der Woo Core für das Aktualisieren der Bestellung bzw. des Bestellstatus vorsieht. Deine Logs hast du geprüft?

    Grü?e

Viewing 6 replies - 1 through 6 (of 6 total)
  • The topic ‘Schweres Problem mit WC Analytics und Germanized Auto Complete’ is closed to new replies.