Modulshop - Eine große Auswahl an neuen und hilfreichen Modulen für die modified eCommerce Shopsoftware
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: Doku Kapitel 9.26: Ab der 2. Bestellung Kundenstatus ändern (z.B. in Stammkunde)

    speedy

    • Viel Schreiber
    • Beiträge: 3.214
    Hallo,

    ich habe gerade ewig im Forum nach dieser Lösung gesucht.
    Evtl. findet man diesen Thread schneller

    Quelle: Anwenderhandbuch (Kapitel 9.26)

    Ansatz ist folgender:

    Man suche in checkout_success.php nach:

    Code: PHP  [Auswählen]
    require (DIR_WS_INCLUDES.'header.php');
    $orders_query = xtc_db_query("select orders_id,orders_status,customers_city,customers_state,customers_country from ".TABLE_ORDERS." where customers_id = '".$_SESSION['customer_id']."' order by orders_id desc limit 1");
    Direkt danach folgendes einfügen:

    Code: PHP  [Auswählen]
    // ab 2. Bestellung Stammkunde (hier: Kundengruppe 4)
    $orders_count_query = xtc_db_query("select count(orders_id) orders_count from ".TABLE_ORDERS." where customers_id = '".$_SESSION['customer_id']." ' "); $orders_count = xtc_db_fetch_array($orders_count_query);
    echo $orders_count[orders_count];
    if ($orders_count[orders_count]> 2 && $_SESSION['customers_status']['customers_status_id'] != 0)
    {
    xtc_db_query("update ".TABLE_CUSTOMERS." set customers_status = '4' where customers_id= '".$_SESSION['customer_id']." ' ");
    }
    // Ende Stammkunde
     
    Wichtig ist dabei auch auf die IDs zu achten, da diese nicht zu 100% Standard sein müssen, wenn man schon etwas an den Gruppen änderte.

    Edit:
    Der Kunde ist dann ab der 3. Bestellung kein "neuer Kunde" mehr, sondern ein "Stammkunde". Die Änderung selbst, damit das so ist, erfolgt nach der 2. Bestellung.

    ----

    Ich hätte jedoch noch ein paar Fragen dazu:

    1.

    Code: PHP  [Auswählen]
    or-ders_status
    mit Bindestrich ist falsch, denke ich ;)

    2.
    Bedeutet

    Code: PHP  [Auswählen]
    orders_count]> 2
    nicht, dass mindestens zwei Bestellungen vorliegen müssen und dann ab der 3. Bestellung der Status gewechselt wird ?

    3.
    Wo gibt man an, wie die ID der Gruppe "neuer Kunde" ist ?
    Verstehe ich das richtig, dass das Code-Schnipsel einfach alle Kundengruppe dann in Stammkunde wechselt ?
    Was macht man aber dann, wenn man Endkunden und Händler hat ?
    Ein Händler soll ja normalerweise in seiner Gruppe bleiben.

    Würde mich über Tipps freuen, vielen Dank



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

    DokuMan

    • modified Team
    • Beiträge: 6.669
    • Geschlecht:
    1. ja da hat der automatische Zeilenumbruch zugeschlagen ;)
    2. richtig, nach der 3. Bestellung wird der Kunde Stammkunde (alternativ könnte mann ">=" setzen)
    3. Das Coding wird nur für die entsprechende Kundennummer (customer_id) durchgeführt und nicht für alle. Die ID für die "Stammkunden" sollte bei

    Code: PHP  [Auswählen]
    customers_status = '4'
    (hier 4) hinterlegt werden.
    Bei Händlern müsstest du vor dem Coding noch eine IF-Abfrage setzen, ob die Kundennummer bereits einem Händlerstatus zugeordnet wurde.

    speedy

    • Viel Schreiber
    • Beiträge: 3.214
    Danke dir. ;)

    Bei 3. meinte ich, dass es für alle Kunden hinsichtlich der Kundengruppe durchgeführt wird. Also nicht immer den kompletten Kundenstamm in Stammkunde ändern, sondern der aktuelle, nur egal welcher Kundengruppe der angehört.

    Meinst du das wäre richtig so, damit die Kundengruppe "Händler" nicht in "Stammkunde" geändert wird ?

    Code: PHP  [Auswählen]
    // Nach der 2. Bestellung in Stammkunde ändern
    // Annahme: Kundengruppe "Händler = ID 3", Kundengruppe "Stammkunde = ID 4"
    // Händler werden nicht automatisch in Stammkunde geändert.

    if ($_SESSION['customers_status']['customers_status_id'] != 3)
    {
      $orders_count_query = xtc_db_query("select count(orders_id) orders_count from ".TABLE_ORDERS." where customers_id = '".$_SESSION['customer_id']." ' "); $orders_count = xtc_db_fetch_array($orders_count_query);
      echo $orders_count[orders_count];
      if ($orders_count[orders_count]> 2 && $_SESSION['customers_status']['customers_status_id'] != 0)
      {
      xtc_db_query("update ".TABLE_CUSTOMERS." set customers_status = '4' where customers_id= '".$_SESSION['customer_id']." ' ");
      }
    }
    // Ende Stammkunde
     
    Achtung: obiger Code ist eine Variante, wenn man Endkunden und Händler hat.

    Da fällt mir noch auf, muss folgendes nicht auch noch aus deinem Code raus, sonst würde es beim Checkout angezeigt werden ?

    Code: PHP  [Auswählen]
    echo $orders_count[orders_count];

    speedy

    • Viel Schreiber
    • Beiträge: 3.214
    So, anbei die fertige, getestete und funktionierende Version für Shops mit Endkunden und Händler.
    Zum Händler wird ein Kunde ja nach Eingabe einer gültigen UstID-Nummer (siehe Shop-Einstellungen unter "Erweiterte Konfiguration> UST ID".
    In dieser Kundengruppe bleibt der Händler dann auch unangetastet.
    Dieses Codeschnipsel konzentriert sich im Vergleich zum Original oben nur noch auf Endkunden.

    Code: PHP  [Auswählen]
    // BOF - Nach der 2. Bestellung in Stammkunde ändern
    // Annahme: Kundengruppe "Händler = ID 3", Kundengruppe "Stammkunde = ID 4"
    // Händler werden nicht automatisch in Stammkunde geändert.

    if ($_SESSION['customers_status']['customers_status_id'] != 3)
    {
      $orders_count_query = xtc_db_query("select count(orders_id) orders_count from ".TABLE_ORDERS." where customers_id = '".$_SESSION['customer_id']." ' "); $orders_count = xtc_db_fetch_array($orders_count_query);
      if ($orders_count[orders_count]>= 2 && $_SESSION['customers_status']['customers_status_id'] != 0)
      {
      xtc_db_query("update ".TABLE_CUSTOMERS." set customers_status = '4' where customers_id= '".$_SESSION['customer_id']." ' ");
      }
    }
    // EOF - Nach der 2. Bestellung in Stammkunde ändern
     
    Beim Original muss man folgendes korrigieren, wenn wirklich nach der 2. Bestellung und nicht erst nach der 3. Bestellung die Kundengruppe in Stammkunde geändert werden soll.
    Also das>=
    Anders ausgedrückt ab der 3. Bestellung ist der "neue Kunde" dann Stammkunde.

    Code: PHP  [Auswählen]
    if ($orders_count[orders_count]>= 2 && $_SESSION['customers_status']['customers_status_id'] != 0)
    Folgende Zeile sollte auch raus, da sonst eine Zahl links oben beim Checkout angezeigt wird.

    Code: PHP  [Auswählen]
    echo $orders_count[orders_count];
    Evtl. mag das bitte jemand hier im Thread korrigieren und DokuMan im Handbuch, dann stimmt das Code-Schnipsel auch mit der Beschreibung exakt überein :)
    Oder Ihr macht das einfach so, wie in diesem Post beschrieben, dann passts auch.

    DokuMan

    • modified Team
    • Beiträge: 6.669
    • Geschlecht:
    Danke für die tolle Lösung, ich werds in der neuen Fassung der Doku einbauen! :)

    Martina

    • Mitglied
    • Beiträge: 160
    ich kann im Adminbereich, wenn ich eine neue Kundengruppe einfüge keine ID Nr vergeben.
    Woran liegt das?

    Martina

    • Mitglied
    • Beiträge: 160
    mhhh, wird im adminbereich nicht angezeigt bei den Kundengruppen, aber es funktioniert.

    DokuMan

    • modified Team
    • Beiträge: 6.669
    • Geschlecht:
    Die Kundengruppe kannst du über die URL im Browser erfahren, z.B.:
    Zitat
    customers_status.php?page=1&cID=3
    Wäre in dem Fall "Händler" ;)

    Haina

    • Fördermitglied
    • Beiträge: 217
    Kann man bei der aktuellen Version 1.04 irgendwo einstellen (ohne in den Code einzugreifen) dass ein Kunde nach erster Bestellung, also wenn diese auf "versendet" gesetzt wird, automatisch von Gast nach "neuer Kunde" wandert?

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Nein, ohne Code-Änderung geht das nicht. Schau mal ins Anwenderhandbuch unter Kapitel "9.26 Ab der 2. Bestellung Kundenstatus ändern (z.B. in Stammkunde)", dort ist es ganz genau erklärt.

    Nachtrag: So heisst ja das Thema hier sogar schon. *gg*

    Grüße

    Torsten

    mantis

    • Viel Schreiber
    • Beiträge: 1.188
    • Geschlecht:
    Sollte da nicht auch die Admins ausgenommen werden, wenn ich als Admin eine Testbestellung mache würde ich so zum Stammkunden geändert, oder sehe ich dass falsch?

    Gruss
    mantis

    speedy

    • Viel Schreiber
    • Beiträge: 3.214
    Hallo Mantis,

    nein, bei Admins kann nichts passieren.
    Zumindest, wenn man es wie oben mit einer IF-Abfrage macht.

    Schau:

    Code: PHP  [Auswählen]
    if ($_SESSION['customers_status']['customers_status_id'] != 3)
     
    Viele Grüße

    speedy

    Pierre

    • Neu im Forum
    • Beiträge: 15
    • Geschlecht:
    äh ähm , ich bin erst eben auf diese Möglichkeit gestoßen

    Was muss ich den ändern, wenn ich möchte, dass bestehende Händler die mehr als 2 mal bestellt haben doch automatisch in Stammkunden geändert werden?

    Sandro

    • Schreiberling
    • Beiträge: 309
    Berichtigung: Im Benutzerhandbuch ist es Kapitel 9.17

    Onlineshop2014

    • Neu im Forum
    • Beiträge: 17
    • Geschlecht:
    Hallo zusammen,

    ich habe aktuell mit dem hier beschriebenen Lösungsansatz für das Verschieben ab der 3. Bestellung ein kleines Problem, vielleicht hatte ja schon mal jemand ein ähnliches Problem und kann mir einen Lösungsansatz mitteilen.

    Ich verschiebe Kunden (Standardgruppe I: 2 Zahlungsarten erlaubt) mittlerweile "automatisiert" ab der 3 Bestellung in eine neue Kundengruppe (Gruppe II: mehr Zahlungsarten erlaubt). Nun habe ich festgestellt, dass wenn ich einen dieser Kunden in eine weitere Kundengruppe schiebe (Gruppe 3: alle Zahlunsgarten erlaubt) und er erneut eine Bestellung ausführt, er wieder in der Kundengruppe 2 landet.

    Hat vielleicht jemand einen Tipp für mich?

    Viele Grüße & vorab schon vielen Dank!

    Mark
    8 Antworten
    433 Aufrufe
    04. April 2024, 21:54:26 von Ben
    1 Antworten
    2892 Aufrufe
    18. Januar 2013, 22:16:21 von Zaldoran
    2 Antworten
    2194 Aufrufe
    26. April 2012, 15:25:03 von crahlfs
               
    anything