Error while calling Web Service: Field 'id' may not be null

  • Ich hab nun seit neusten das Problem das wenn beim Kunden z.b unter Profil einen haken setzen bei "Keine Mahngebühren berechnen" oder das "Land" änder und speicher kommt der folgende Fehler


    Error while calling Web Service: Field 'id' may not be null


    Jemand eine idee?

    • Offizieller Beitrag

    Seit wann habt ihr das Problem? Was wurde in der zwischenzeit geändert?
    Error while calling Web Service klingt nach einem hook welcher da eine externe Verbindung aufnehmen will und die API den Fehler meldet.
    Passiert dies nur nach Änderung bei den Mahngebühren und dem Land oder auch bei anderen Änderungen?


    Benenne die hooks.php vom LiveConfig Modul mal kurz um und teste es erneut, um auszuschließen das es daran liegt - da hattet ihr ja letztens schon ein Problem mit.

  • Nein der Kunde hat keinen LC Account bzw er hat zwar einen aber der wurde nicht mit dem Modul angelegt und ist somit auch im WHMCS nicht eingetragen.


    Nein hab ich durch Zufall raus gefunden als ich bei dem Kunden das Land ändern wollte


    Edit: Bei Kunden mit LC Account klappt das erste Speichern ohne Fehler, wenn ich danach aber die Änderung z.b den haken bei Mahnung wieder raus nehmen und Speicher erhalte ich folgenden Fehler


    Error while calling Web Service: Contact data update failed (database error)

    • Offizieller Beitrag

    Sofern der Account auch nicht importiert wurde, schau mal bitte in der mod_pl_liveconfig_hosting nach ob es für den Kunden einen Eintrag gibt, denn der Hook startet nur wenn es für die KID (WHMCS Kundennummer) einen Eintrag in der Tabelle gibt.


    Error while calling Web Service: Contact data update failed (database error) prüfe ich gleich.

  • Ja es gibt einen Eintrag, dieser ist aber leer komplett



    Ah ich hab mich verlesen LC_KID gab es nicht nur einen KID Eintrag mit 75 (Kunde hat WHMCS Kundennr #75) dieser ist allerdings trotzdem leer obwohl ich den Kunden nun mit dem Produkt import habe.


    Der Fehler ist natürlich nun weg nachdem der Kunden nun per Modul die Einträge bekommen hat...


    Edit:
    Das Modul von dir hat auch ein Problem wenn im WHMCS en Kunde mehr LC hat. Ich hab gerade bei einem Kunden der 3 x Webspace hat mit 3 Unterschiedlichen LC Account hinzugefügt, allerdings bringt das Modul da alles durcheinander.


    Er ändern die LiveConfig Subscription einfach in eine andere Zahl die ich überhaupt nicht eingetragen habe....


    Mit Lightshot geschossen

    • Offizieller Beitrag

    Ergänzungen bitte nicht immer per Edit, ich lese Beiträge in der Regel recht schnell und bekomme von dem Edit dann nichts mehr mit.


    Wie wurden die Accounts des Kundens angelegt, mit diesem Modul, manuell, per Import oder Import durch ein anderes Modul?
    Bei ersterem prüft das Modul erst ob es die WHMCS KID bereits in der Moduldb gibt, wenn ja wird kein neuer Eintrag angelegt. In meinem eigenen Live-Betrieb funktioniert das ohne Doppeleinträge.

    Ich hab gerade bei einem Kunden der 3 x Webspace hat mit 3 Unterschiedlichen LC Account hinzugefügt, allerdings bringt das Modul da alles durcheinander.


    Er ändern die LiveConfig Subscription einfach in eine andere Zahl die ich überhaupt nicht eingetragen habe....

    Da verstehe ich gerade nicht was du mir sagen willst, wie hast du was hinzugefügt?

    • Offizieller Beitrag

    Bin eben den Code durchgegangen und habe einiges auf LC durchgetestet. Wenn der Vertrag über das Modul angelegt wird dann wird vorher geprüft ob es den Kunden bereits im Modul gibt, wenn ja dann wird kein neuer Account erstellt.
    Das einzige was hier eine Ursache sein könnte ist der Import von der Hosting Suite, die Hosting Suite hat für jeden Vertrag einen Account erstellt welche dann importiert wurden, es gab hier beim Import keine Prüfung ob der Kunde bereits vorhanden ist wodurch Doppeleinträge entstehen konnten. Dies ist mit Version 1.3.1 meines Modules behoben (Release, soweit nichts dazu/dazwischen kommt, gegen Abend).


    Bei Version 1.3.1 wird der Hook welcher ausgelöst wird beim Ändern der Kundendaten auch nur noch ausgelöst wenn sich für LC relevante Daten geändert haben. Die Fehlermeldung Contact data update failed (database error) kommt von LC selber, hier muss ich auf eine Supportantwort warten um zu erfahren was es genau damit aufsich hat.

  • Sorry in vielen Foren ist "Edit" pflicht :)


    Hosting Suite haben wir nie benutzt. Bevor wir euer Modul benutzt haben, haben wir das alles per Hand noch gemacht.


    Also, ich habe einen Kunden der 3 x Webspace Account bei uns auf einen LiveConfig Server. Allerdings hat der Kunde auch 3 Unterschiedliche LiveConfig Login/Verträge mit unterschiedlichen Vertragsnummer und Kundennummern im LiveConfig. (Wurde nicht per Modul angelegt sondern per Import Product)


    Nun habe ich wie in deinem Wiki beschrieben im WHMCS die Felder


    LiveConfig Client Number
    LiveConfig Subscription
    LiveConfig Username


    ausgefüllt in diesem Fall im WHMCS pro Vertrag die Felder


    Vertrag 1 = > 1013
    Vertrag 2 = > 1014
    Vertrag 3 = > 1023


    und dann Import Product => Speichern dann passt das auch alles.


    wenn ich nun im WHMCS bei den Produkte z.b auf Vertrag 2 gehe steht in dem Feld LiveConfig Subscription nicht mehr kle1014 sondern kle1023 bei Vertrag 1 steht nicht mehr kle1013 sondern kle1014 in dem Feld (siehe auch Screenshot oben)


    In der Datenbank sehe ich auch nur ledig einen Eintrag für den Kunden und das ist der einzige Eintrag der im WHMCS von allen 3 Verträgen korrekt angezeigt wird ohne Änderung.

    • Offizieller Beitrag

    Sorry in vielen Foren ist "Edit" pflicht

    Ja, kann auch sehr sinnvoll sein. Aber wenn der Originalbeitrag lautet: "Klappt jetzt" und das Edit dann "Hab noch was gefunden" kann es passieren das das "Hab noch was gefunden" übersehen wird - ausser ich gewöhne mir an nur noch 1 Tag alte Beiträge zu besuchen ;).


    Ahhhhh jetzt verstehe ich, die 3 Accounts wurden manuell erstellt - Hab jetzt gedacht das Modul hätte das gemacht.
    Das ein WHMCS Kunde mehrere LiveConfig Zugänge hat, dieses Szenario wird vom Modul gar nicht berücksichtigt/unterstützt, da es auch eigentlich gegen den Gedanken von WHMCS und LiveConfig ist. Dort ist es ja das Ziel das X Produkte einen zentralen Account haben. Wie soll WHMCS sonst auch entscheiden welcher Account bei einer neuen Bestellung verwendet werden soll?

    • Offizieller Beitrag

    Dann hat der Kunde aber entweder 3 WHMCS Accounts mt jeweils einem Vertrag oder halt 1 LiveConfig Account mit 3 Verträgen, aber nicht 3 getrennte LC Accounts welche über den selben WHMCS Account laufen sollen.
    Denn wie bereits gesagt, wie soll WHMCS dann wissen das der 4. bestellte Webhosting Vertrag nun über Opas, Omas oder über Idas LC Account laufen soll oder über einen eigenständigen Account für Cousin Wilbert?

  • WHMCS ist das doch egal am Ende, den innerhalb WHMCS kann man ja die Verträge umschalten per DropDown Menü. WHMCS verwaltet am Ende ja nur den Kunden/Rechnung/Kundendaten mehr nicht, was hat das mit LiveConfig zutun?


    Wenn Oma Gerda nun einen einen Webspace möchte bestellt der Hauptkunde nun über die Webseite einen Webspace Account mit seinen Daten. WHMCS legt dann unter Produkten das 4 Produkt an für Oma Gerda ich sehe da gerade nicht das Problem durch WHMCS....


    Ich denke das Problem liegt hier er daran das das Modul aus der WHMCS Kundennummer einen LC Account erstellt und dies nicht klappt da es für diesen WHMCS Account schon einen LC Account gibt



    Der Kunde oben wurde nun von Hand angelegt, was passiert den wenn der Kunde per Module angelegt wird wenn schon bereits einer erstellt wurde per Modul? Wird der Vertrag dann Automatisch in einem bestehenden LC Account hinzugefügt?


    Bei uns ist das eigentlich gang und gebe das Kunden mit ihrer WHMCS einen zusätzlichen Webspace bestellen,den der Kunde weiß es ja nicht und bestellt über seinen Account was ja auch funktioniert, wie will man das trennen das es pro Kunden immer einen neuen WHMCS Account mit immer einer anderen Mail Adresse ?

    • Offizieller Beitrag

    Automatisiert kann es genau 2 Arbeitsweisen geben die man, getrennt, nutzen kann.


    Einmal die Arbeitsweise des Modules, welches je WHMCS Kunden einen LiveConfig Account hat, dieser Account kann von mir aus 300 Webhostingverträge haben, die aber über einen LiveConfig Account verwaltet werden.


    Und dann kann es die Arbeitsweise geben das das Modul für jeden neuen Webhostingvertrag einen neuen Benutzer in LiveConfig erstellt, sodass der Kunde zwar einen WHMCS Account hat, aber 20 LiveConfig Accounts wo er dann immer hin und her switchen muss. Was zwar möglich ist, aber eigentlich nicht ganz der Sinn der Sache ist (sonst hätte LiveConfig wohl nicht die Möglichkeit eingebaut das ein Kunde X Verträge haben kann).


    Eine Kombination aus beidem ist aber nicht möglich, denn wenn nun der WHMCS Nutzer einen neuen Webhostingvertrag bestellt (loggt sich ein, bestellt, zahlt, WHMCS führt Einrichtung durch) kann das Modul schlecht hellsehen ob es in LC nun ein neuen Account erstellt werden soll oder welcher der 4 bestehenden Accounts genutzt werden soll (im Bestellprozess kann hier keine Auswahl eingebaut werden).

    Bei uns ist das eigentlich gang und gebe das Kunden mit ihrer WHMCS einen zusätzlichen Webspace bestellen,den der Kunde weiß es ja nicht und bestellt über seinen Account was ja auch funktioniert, wie will man das trennen das es pro Kunden immer einen neuen WHMCS Account mit immer einer anderen Mail Adresse ?

    Das ein Kunde mehrere Webspace bestellt ist ja auch kein Problem, das kann er mit seinem WHMCS Account ja auch gerne machen. Er erhält dann aber keinen zusätzlichen LC Account, sondern der Vertrag wird bei seinem bereits vorhandenen LC Account hinzugefügt, da kann er auch 20 Verträge haben das ist ein Problem (da habe ich selbst einige Kunden von). Vorteil für den Kunden: Er hat nur einen LC Login und nicht für jedes Webprojekt einen anderen.


    Das Modul verwendet wie bereits gesagt den Ansatz pro WHMCS Account 1 LC Account. Beim Import kann ich mir für ein späteres Update gerne notieren das man die Möglichkeit schafft das man manuell angeben kann das Webspace 2 von Kunde X über einen anderen LC Account läuft als Webspace 1. Sollte Kunde X dann aber über WHMCS einen 3. Webspce ordern wird dann der LC Account von Webspace 1 verwendet, denn Hellsehen wird das Modul auch nach einem Update leider noch nicht können.

    • Offizieller Beitrag

    Da kann ich dann höchsten in einem Update eine Option einbauen das keine Verträge mehr gesammelt werden sondern für jeden Webspace ein neuer Account erstellt wird. Das betrifft dann aber alle neuen Bestellungen, ein Mischbetrieb ist nicht möglich.