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: Kunden ohne Bestellung haben Bestellung anderen Kunden

    gonzo88

    • Mitglied
    • Beiträge: 171
    Hallo Community,

    ich habe einen 2.0.2.2 Shop neu aufgesetzt und die Daten mittels SQL-Dumpers und Anleitung in den neuen Shop eingespielt (inkl. Datenbankanpassung, Datenbank-Updates über den Installer).
    Soweit alles gut.

    Jetzt entdecke ich, dass Kunden, welche noch nicht bestellt haben, wenn ich in der Kundenliste bei denen auf "Bestellung" klicke, eine reale Bestellung eines anderen Kunden angezeigt bekomme. Ich habe vorhin testweise eine Musterkundin neu registriert und auch hier ist es so. Obwohl nichts bestellt erscheint, wenn ich auf "Bestellungen" klicke, eine Bestellung eines anderen Kunden (vom 16.04.). Erwarten würde ich den Hinweis (keine Bestellung vorhanden - oder so ähnlich).

    Ist das ein Bug oder ein DB Fehler und wie könnte man diesen (händisch) lösen?

    Danke im Voraus!

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

    Mike Randoo

    • Fördermitglied
    • Beiträge: 159
    • Geschlecht:
    Re: Kunden ohne Bestellung haben Bestellung anderen Kunden
    Antwort #1 am: 27. April 2017, 12:08:34
    Hallo gonzo88,
    hast Du das DB-Backup 1:1 wieder eingespielt oder zwischendrin was verändert?
    Mit meinem laienhaften Verständnis von Datenbanken kann ich mir nur vorstellen, dass die Zuordnung von Bestellungen zu Kundennummern o.ä. nicht mehr passt.

    Ggfs. mal in die Datenbank gehen und schauen, wie die Zuordnung vorher und nachher war.

    Gruß,
    Mike

    gonzo88

    • Mitglied
    • Beiträge: 171
    Re: Kunden ohne Bestellung haben Bestellung anderen Kunden
    Antwort #2 am: 02. Mai 2017, 16:50:06
    So, ich habe mir einmal die alte Datenbank (Shopbetrieb bis 25.04.) und die neue Datenbank (Import der alten DB und Betrieb ab 25.04.) angeschaut.

    Ich habe da Fehler in der adress_book_id. Die alte Datenbank geht bis #2832 und customers_id #2620 - die neue Datenbank adress_book_id #2825 und customers_id #2612

    Die letzte Bestellung von heute (oders_id #2876), hat Kunde Herr Schulz (customers_id #2612).
    Frau Schmidt hat eine andere oders_id #2826, aber die selbe customers_id #2620, diese Bestellung ist jedoch vom 24.04.

    Demzufolge bei diversen Kunden auch andere Bestellungen angezeigt werden.

    Ich DACHTE, ich könnte die Tabellen adressbook, customers (ff), orders (ff), paypal (ff) im neuen Shop leeren, die alte Datenbanktabellen neu einlesen und dann die neuen Daten ab letzten Eintrag der alten Datenbank auch wieder einlesen, aber das geht alles so kreuz und quer, dass ich mich das nicht getraue.

    Eine andere Idee, um solche falschen Querverbindungen abzustellen:
    Kann man die adress_book_id, die customers_id und die orders_id erhöhen, so dass es keine älteren Querverbindungen mehr gibt? Also die adress_book_id (aktuell 2825) auf 4000, die customers_id (aktuell auf 2612) auf 4000 und die orders_id (aktuell auf 2876) auf 4000 - so dass die Nummernkreise ab 4000 weitergezählt werden und (so meine Denkweise) es keine alten, falschen, doppelten oderd_id's gibt?
    Wenn ich keinen Denkfehler habe, wo in der DB finde ich die Nummernkreise? Unter configuration finde ich nichts.

    Danke & Grüße

    gonzo88

    • Mitglied
    • Beiträge: 171
    Re: Kunden ohne Bestellung haben Bestellung anderen Kunden
    Antwort #3 am: 03. Mai 2017, 10:59:03
    Ich habe jetzt die Kunden-Nummer des letzten Kunden händisch in den relevanten Tabellen der Datenbank auf 2700 erhöht und nachfolgend einen neuen Kunden angelegt. Dieser hat nun die customer_id 2701 und zeigt keine alten Bestellungen anderer Kunden mehr an.
    Anscheinend gab es bei der Zusammenführung der Datenbanken ein Überschneidungsproblem aufgrund zuvor gelöschter Kunden.

    eichhörnchen

    • Neu im Forum
    • Beiträge: 47
    • Geschlecht:
    Re: Kunden ohne Bestellung haben Bestellung anderen Kunden
    Antwort #4 am: 02. Juli 2018, 19:13:52
    Ich muss das Thema nochmal aufgreifen. Leider hat sich auch in unserem Shop ein Fehler eingeschlichen. Ab Kundennummer 38 laufen die Daten auseinander. Am Ende sind sie dann bei address_book_id 430 und customers_id 415. Warum passiert sowas?

    Ich hätte verstanden, wenn das die neuen Kunden betrifft bei 400+, aber doch nicht welche, die schon vorm Backup einspielen vorhanden waren? (Shop wurde auf anderem Server frisch installiert und dann alte Daten importiert)

    Die Lösung steht ja nun hier. Mir ist nur nicht klar, was überhaupt address_book_id und customers_id aussagen. Das eine ist die Kundennummer und das andere? Und wo werden die Bestellungen den Kundennummern zugeordnet? Ich muss dann jetzt versuchen, das irgendwie von Hand zu retten...

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.373
    • Geschlecht:
    Re: Kunden ohne Bestellung haben Bestellung anderen Kunden
    Antwort #5 am: 03. Juli 2018, 12:13:01
    Sowas passiert, wenn man einzelne Tabellen aus einem Backup zurück sichert. Dann kann es schonmal sein, dass Kunden die Adressen anderer Kunden zugewiesen bekommen.

    Zu den Kundentabellen gehören alle "customers*" Tabellen, sowie die Tabelle "address_book", siehe dazu auch: Kunden löschen

    [...] Am Ende sind sie dann bei address_book_id 430 und customers_id 415. Warum passiert sowas?
    [...]

    Das ist nicht weiter verwunderlich, da je Kunde auch mehrere Einträge in der Tabelle "address_book" hinterlegt werden können, wenn beispielsweise separate Versand- und Rechnungsadresse hinterlegt werden.

    [...] Mir ist nur nicht klar, was überhaupt address_book_id und customers_id aussagen. Das eine ist die Kundennummer und das andere? Und wo werden die Bestellungen den Kundennummern zugeordnet? [...]

    In der Tabelle "customers" gibt es die "customers_id" die jedem Kunden eindeutig identifiziert. Außerdem gibt es die Spalte "customers_default_address_id" in der Tabelle "customers" mit der die Standardadresse aus der Tabelle "address_book" zugeordnet ist.
    Über die Tabelle "address_book" wiederum können dem Kunden anhand der "customers_id" weitere Adresse zugeordnet sein, wenn der Kunde wie oben bereits erwähnt eine separate Versand- und Rechnungsadresse hinterlegt hat.
    Die Bestellungen werden den Kunden aus der Tabelle "orders" anhand der "customers_id" zugeordnet, aber auch an der Tabelle "orders" hängen weitere abhängige "orders*" Tabellen, siehe dazu auch: Bestellungen löschen

    Hier noch eine generelle Übersicht der Tabellen: Datenbanktabellen Referenz

    Grüße

    Torsten
    4 Antworten
    3694 Aufrufe
    05. September 2013, 11:15:36 von DokuMan
    1 Antworten
    2486 Aufrufe
    08. Juni 2015, 20:23:47 von sylsch
    6 Antworten
    4430 Aufrufe
    02. Juni 2010, 07:21:01 von Phantom
    8 Antworten
    3866 Aufrufe
    07. Oktober 2012, 07:55:27 von Eichenhorn