Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Matomo trackt keine Bestellungen für Gastkunden, Fehler in Modified?

    Roberto75

    • Viel Schreiber
    • Beiträge: 845
    Hallo,

    ich meine das ist schon länger der Fall, dass nur die Käufe von registrierten Kunden unter "Ecommerce" und dort in der Übersicht von Matomo aufgeführt sind. Bei einem Kunden habe ich heute noch einmal getestet. Die Bestellungen werden von Matomo tatsächlich nur für Kunden und nicht für Gastkunden getrackt. Zwar werden diese unter "Ecommerce Protokoll" aufgelistet, dort aber auch nur ohne die Angabe der Versandkosten, also nicht der komplette Umsatzbetrag. Komplett fehlen die Bestellungen aber in der Übersicht und folglich auch im "Ziel", wo die Bestellungen als Konversion angelegt wurden.

    In der Übersicht sieht das für die Konversions für die registrierten Kunden dann so aus:

    Umsatz: 43,60 €, Zwischensumme: 37,80 €, Steuer: 6,96 €, Versand: 5,80 €, Rabatt: 0 €

    Für Kunden, die als Gast bestellt haben, fehlt hier die Umsatzangabe.

    Der Shop ist die Version 2.0.5.1, allerdings ist ein gekauftes Template drin, also nicht das von Modified. Gastkonten nach der Bestellung löschen ist auf "nein" gestellt. Es gab da mal früher ein Kommentar im Forum https://www.modified-shop.org/forum/index.php?topic=30530.msg276897#msg276897., wo das Problem mit Gastkonten angesprochen wurde.

    Ist das eventuell noch ein Modified-Fehler oder woran kann das liegen? Ist im Template noch etwas zu beachten?

    Gruß

    Robert

    Linkback: https://www.modified-shop.org/forum/index.php?topic=41136.0

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.729
    • Geschlecht:
    Der von dir verlinkte Thread hat überhaupt nichts mit deiner Frage und Thematik zu tun.

    Ich kenne mich mit dem neuesten Matomo nicht mehr aus.
    Nach dem Code in der /includes/external/smarty/plugins/function.piwik.php zu urteilen müsste alles funktionieren.
    Evtl. mußt du in Matomo noch etwas konfigurieren ?

    Gruß,
    noRiddle

    Roberto75

    • Viel Schreiber
    • Beiträge: 845
    Nein, das könnte ein Bug von Modified zu sein, da das Problem schon seit längerem besteht, dass nicht alle Bestellungen von Matomo mit den Beträgen für Umsatz, Steuer und Versand gezählt werden. Das fiel mir schon früher, ich glaube 2018 oder noch früher auf, hatte das aber als Problem von Matomo angesehen. Da aber nur die Gastbestellungen nicht in der Übersicht als Umsätze gelistet werden, wie ich jetzt herausgefunden habe, könnte das auch an Modified liegen.
    Der Matomo-Code enthält auch nur bei der Bestellung von Gastkunden keine Daten im Quellcode der checkout-Seite, anders als bei den Bestellungen mit Registierten Kunden, da werden alle Daten (Preise, Versandkosten, Umsatzsteuer) erfasst.
    Bei Matomo selbst ist da nichts weiter einzustellen.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.729
    • Geschlecht:
    Schau dir doch mal die von mir genannte Datei function.piwik.php an.
    Alle Bestellungen werden getrackt wenn $_SESSION['customer_id'] gesetzt ist. Die genaue Bedingung ist
    Code: PHP  [Auswählen]
    if ((strpos($PHP_SELF, FILENAME_CHECKOUT_SUCCESS) != false) && isset($_SESSION['customer_id'])) {
    und auch bei Gast-Konten ist die $_SESSION['customer_id'] gesetzt (siehe /create_guest_acount.php).

    Daten "im Quellcode der checkout-Seite" gibt es nur auf der /checkout_success.php, also nach Absenden der Bestellung.

    Ach, stopp, ich hab's.
    In der /checkout_success.php wird man als Gast aufgrund von
    Code: PHP  [Auswählen]
    if ($_SESSION['account_type'] == '1') {
      if (DELETE_GUEST_ACCOUNT == 'true') {
        xtc_db_query("DELETE FROM ".TABLE_CUSTOMERS." WHERE customers_id = '".(int)$_SESSION['customer_id']."'");
        xtc_db_query("DELETE FROM ".TABLE_ADDRESS_BOOK." WHERE customers_id = '".(int)$_SESSION['customer_id']."'");
        xtc_db_query("DELETE FROM ".TABLE_CUSTOMERS_INFO." WHERE customers_info_id = '".(int)$_SESSION['customer_id']."'");
        xtc_db_query("DELETE FROM ".TABLE_CUSTOMERS_IP." WHERE customers_id = '".(int)$_SESSION['customer_id']."'");
      }
      $_SESSION['customer_gid'] = $_SESSION['customer_id'];
     
      unset ($_SESSION['customer_id']);
      unset ($_SESSION['customer_default_address_id']);
      unset ($_SESSION['customer_first_name']);
      unset ($_SESSION['customer_country_id']);
      unset ($_SESSION['customer_zone_id']);
      unset ($_SESSION['comments']);
      unset ($_SESSION['user_info']);
      unset ($_SESSION['customers_status']);
      unset ($_SESSION['selected_box']);
      unset ($_SESSION['shipping']);
      unset ($_SESSION['payment']);
      unset ($_SESSION['ccard']);
      unset ($_SESSION['gv_id']);
      unset ($_SESSION['cc_id']);
     
      require (DIR_WS_INCLUDES.'write_customers_status.php');
    }

    sofort ausgeloggt (in der 1.06 war das nur so wenn DELETE_GUEST_ACCOUNT == 'true').
    Deshalb greift die Kondition
    Code: PHP  [Auswählen]
    if ((strpos($PHP_SELF, FILENAME_CHECKOUT_SUCCESS) != false) && isset($_SESSION['customer_id'])) {

    nicht mehr weil $_SESSION['customer_id'] nicht mehr gesetzt ist.
    Böse Falle.

    Fällt mir momentan auch keine Lösung zu ein.
    Erstelle mal bitte ein Ticket dazu mit Link auf den vorliegenden Thread.

    Gruß,
    noRiddle

    *NACHTRAG*
    Eine Lösung könnte sein die $_SESSION['customer_id'] vor unset() in eine Variable zu speichern und in der Piwik-Funktion dann die Variable abzufragen und nach Abfrage gleich zu unset-ten..

    Roberto75

    • Viel Schreiber
    • Beiträge: 845
    Ich habe ein Ticket dafür angelegt.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.729
    • Geschlecht:
    For the record: Ticket #1839

    Gruß,
    noRiddle

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.729
    • Geschlecht:
    @Roberto75

    Probiere mal folgende Schnelllösung für dich aus (ist update-sicher):
    Hole dir das File includes/external/smarty/plugins/function.piwik.php
    Ändere folgende Code-Zeile
    Code: PHP  [Auswählen]
    if ((strpos($PHP_SELF, FILENAME_CHECKOUT_SUCCESS) != false) && isset($_SESSION['customer_id'])) {

    in das
    Code: PHP  [Auswählen]
    if ((strpos($PHP_SELF, FILENAME_CHECKOUT_SUCCESS) != false) && isset($_SESSION['customer_gid'])) {

    und diese
    Code: PHP  [Auswählen]
    WHERE customers_id = '" . (int)$_SESSION['customer_id'] . "'

    in das
    Code: PHP  [Auswählen]
    WHERE customers_id = '" . (int)$_SESSION['customer_gid'] . "'

    Dann speichere die Datei in deinem Template in den Ordner /smarty/.

    Erbitte kurzes Feedback.

    Gruß,
    noRiddle

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.729
    • Geschlecht:
    @Roberto75 ???

    Roberto75

    • Viel Schreiber
    • Beiträge: 845
    Ich konnte das jetzt erst ändern und gebe Rückmeldung, sobald ich das in Matomo getestet habe.

    Gruß
    Robert

    Roberto75

    • Viel Schreiber
    • Beiträge: 845
    Das funktioniert leider nicht, die Bestellungen der Gastkunden werden weiterhin nicht mit Umsätzen erfasst.
    3 Antworten
    1908 Aufrufe
    26. Dezember 2018, 13:22:42 von Roberto75
    3 Antworten
    501 Aufrufe
    04. Januar 2023, 09:07:00 von derheiko
    11 Antworten
    5378 Aufrufe
    16. Januar 2014, 12:00:19 von Matt
               
    anything