Problem mit Ländercode bei Kundenerstellung

Thema wurde von carlo_calogero, 2. Februar 2020 erstellt.

  1. carlo_calogero

    carlo_calogero Mitglied

    Registriert seit:
    26. September 2019
    Beiträge:
    10
    Danke erhalten:
    1
    Hallo Gemeinde,

    ich habe gestern ein Update auf die aktuelle Gambio-Version durchgeführt.
    Beim manuellen Anlegen von Kunden passiert es nun dass dies fehlschlägt und eine Fehlermeldung ausgegeben wird:

    FATAL ERROR(1): "Uncaught Exception: Country with the following ID could not be found: 0 in /home/meineseite-de/public_html/GXMainComponents/Services/Core/Country/CustomerCountryRepository.inc.php:54

    Seltsam ist dass im Feld "Land" beim Eingeben der Kundenadresse "Deutschland" steht.
    In der Tabelle "countries" findet sich aber kein Deutschland, da findet sich Germany.
    Es gibt dort auch keine "ID 0"...

    Dasselbe passiert auch wenn ein neuer Kunde bestellen will / sich registrieren will.
    Es können daher keine Bestellungen von Neukunden erfolgen, bei Bestandskunden funktioniert das dagegen.

    Was ist passiert?

    Herzlichen Dank!
     
  2. pema

    pema Erfahrener Benutzer

    Registriert seit:
    17. Juni 2012
    Beiträge:
    440
    Danke erhalten:
    73
    Danke vergeben:
    121
    Hast du das Problem lösen können?
    Wir haben etwas Ähnliches bei einem Kundenkonto aus Frankreich beobachtet, wissen aber nicht woher der Fehler stammt:

    Code:
    FATAL ERROR(1): "Uncaught Exception: Country with the following ID could not be found: 74 in /GXMainComponents/Services/Core/Country/CustomerCountryRepository.inc.php:54
    Stack trace:
    #0 /GXMainComponents/Services/Core/Country/CountryService.inc.php(60): CustomerCountryRepository->getById(Object(IdType))
    #1 /admin/html/compatibility/customer_details.php(358): CountryService->getCountryById(Object(IdType))
    #2 /admin/customers.php(899): include('/home/maijomoy/...')
    #3 {main}
      thrown"
    Der Kunde erhält den Fehler beim Login, auch im Backend erscheint er wenn ich das Konto aufrufe.
    In der Datenbank -> Tabelle countries hat Frankreich die ID 73, wenn ich diese per Hand auf 74 ändere ist der Fehler verschwunden.
     
  3. pema

    pema Erfahrener Benutzer

    Registriert seit:
    17. Juni 2012
    Beiträge:
    440
    Danke erhalten:
    73
    Danke vergeben:
    121
    Ich hab jetzt nochmal in der Datenbank rumgeschnüffelt und es waren nicht nur französische Kunden betroffen.
    Auch einige Kunden aus Serbien und Montenegro hatten eine falsche ID zugewiesen. Ein Kunde aus Vietnam hatte hingegen eine serbische Landes ID, obwohl die Lieferung offensichtlich nach Vietnam ging.

    Speziell für den oben geschilderten mit Frankreich wäre das der SQL Befehl für den Austausch der IDs
    Code:
    UPDATE address_book SET entry_country_id = 73 WHERE entry_country_id = 74
    Alle IDs 74 werden mit 73 in Tabelle address_book getauscht. Evtl. kannst du das für deine ID 0 Einträge anwenden. Die ID für Deutschland findest du in der Tabelle countries (bei uns 81).
    Vorher Sicherung machen!
     
  4. Anonymous

    Anonymous Erfahrener Benutzer
    Mitarbeiter

    Registriert seit:
    22. Juni 2011
    Beiträge:
    4.760
    Danke erhalten:
    1.748
    Danke vergeben:
    137
    Fußnote: country_id 74 war mal „France, Metropolitan“ (FX bzw. FXX), diesen Ländercode hat die ISO aber schon 2002 gelöscht. Die Änderung der Einträge auf 73 (France, FR bzw. FRA) ist die korrekte Vorgehensweise, zumal davon auszugehen ist, dass betroffene Kunden sich sowieso verklickt haben.