Kundennummer

  • Hallo


    seit dem Update auf VM 2.0.16 lassen sich die Kundennummern nicht mehr ändern. Nach dem Speichern wird einfach die ellenlange Kundennummer wieder angezeigt.


    Vielleicht kann mir jemand helfen, damit die Kundennummern tatsächlich wieder überschreibbar werden (auf meinem System).


    Danke!


    Alles Liebe,
    Eisu

  • Ich schließe mich der Frage mal an.


    Es gibt zwar schon ein Thread dafür, aber das ist für eine ältere Version und logischerweise nicht mehr aktuell.


    Und wenn wir schon dabei sind. Wie sieht es mit den Rechnungs- bzw. Bestellnummern aus? Diese benötige ich in einer anderen Schreibweise.

  • Jup, ich schließe mich an. Ich dachte schon es lag an verschiedenen Plg`s oder COM`s...zum Glück habe ich hier reingeschaut, sonst hätte ich womöglich Stunden damit verbracht die Fehler an externen Programmen zu suchen. Ich hoffe das sich die Sache mit der Kundennummer baldmöglichst wieder löst.

  • Na das bezieht sich jetzt doch nur auf die Rechnungsnummern, nicht auf die Kundennummer. Hab ich was falsch verstanden? Läuft die neue VM Version 2.0.18 wieder richtig, bezüglich des Themas hier?

  • Schon gesehen, aber wo in diesem PLG können auch Kundennummern beliebig eingesetzt werden?


    Die neueste Version 1.6 kann auch das Format der Kundennummern beliebig einstellen. Die Screenshots sind nur von einer früheren Version, die Kundennummern sehen exakt gleich aus wie die Auftrags- oder Rechnungsnummern in der Konfiguration.

  • Vielen Dank für den Hinweis auf das Plugin von reinhold.
    Ich habe es gekauft, sehe aber, dass nur neuen Kunden die Kundennummer zugewiesen werden kann!


    Bestehende Kundennummern (die ellenlangen!!!) können nicht geändert werden!
    Warum steht im Text (VirtueMart) immerf noch "Kundennummer überschreibbar"???

  • Vielen Dank für den Hinweis auf das Plugin von reinhold.
    Ich habe es gekauft, sehe aber, dass nur neuen Kunden die Kundennummer zugewiesen werden kann!


    Bestehende Kundennummern (die ellenlangen!!!) können nicht geändert werden!
    Warum steht im Text (VirtueMart) immerf noch "Kundennummer überschreibbar"???


    Ich habe eine individuelle Lösung für mich gefunden:

    Nach längerem Suchen, wie man die automatische Kundennummer in VirtueMart ändern kann und ich zu keinem Ergebnis gekommen bin, hab ich mich drangemacht und einen eigenen Lösungsweg gesucht, der meinen Anforderungen entspricht.
    Da sich die automatische Vergabe nur schwer ändern läßt, gab es eigentlich nur einen Weg: Ein eigenes Feld für meine eigene Kundennummer.


    Bei mir funktioniert das prima. Ich habe jetzt im Backend in der Kundeninfo ein neues Feld, das ich selber ausfüllen und jederzeit auch beliebig ändern kann. Das Frontend hab ich mir dann so angepasst, dass nicht mehr die automatische Nummer, sondern meine individuelle angezeigt wird.


    Da man davon ausgehen muss, dass jede Aktualisierung der VirtueMart-Versionen die unten genannten Änderungen überschreibt (man es als jedesmal neu anpassen müsste!), wäre es super, wenn die Entwickler diese Möglichkeit mit in die nächsten Versionen übernehmen könnten. Das ist wirklich kein Hexenwerk und würde vielen Leuten einiges erleichtern.


    Bitte dran denken: Bevor Ihr etwas ändert, alle Daten unbedingt vorher sichern und falls möglich, die Änderungen auf einer Testseite vorab prüfen!
    Könnte sein, dass ich jetzt in der Hektik etwas vergessen habe. Falls es nicht funktionieren sollte, könnt ihr mich kontakten. Aber ich weise jetzt schon darauf hin, dass ich keinen Support im üblichen Sinne machen werde und selbstverständlich übernehme ich auch keinerlei Garantie. Wenn ihr was ändert, macht ihr es auf eigene Verantwortung.




    So, hier meine Modifikationen (realisiert in "schnaeppchenfuehrer.com" unter Joomla 2.5.11 und VirtueMart 2.0.20b):



    [B]Datenbank:
    [/B]
    Tabelle (euer Suffix)_virtuemart_vmusers eine Zeile nach

    customer_number


    einfügen. Bei mir:


    my_customer_number, char(32, uft8_general_ci (keine Attribute, Null=Nein)




    Backend:


    Datei: edit_vmshopper.php
    ca. Zeile 61
    eine neue Tabellenzeile einfügen:


    <!-- Feld für eigene Kundennummer -->
    <tr>
    <td class="key">
    <label for="my_customer_number">
    <?php echo JText::_('COM_VIRTUEMART_USER_FORM_MY_CUSTOMER_NUMBER') ?>:
    </label>
    </td>
    <td>
    <input type="text" class="inputbox" name="my_customer_number" size="40" value="<?php echo $this->lists['mycustnumber']; ?>" />
    </td>
    </tr>
    < !-- EO Feld für eigene Kundennummer -->



    Datei: view.html.php
    ca. Zeile 121
    hinter:


    $this->lists['custnumber'] = $model->getCustomerNumberById();


    einfügen:


    // Feld für eigene Kundennummer
    $this->lists['mycustnumber'] = $model->get_my_CustomerNumberById();




    Datei: models/user.php
    ca. Zeile 1424
    hinter:

    function getCustomerNumberById()
    {
    $_q = "SELECT `customer_number` FROM `#__virtuemart_vmusers` "
    ."WHERE `virtuemart_user_id`='" . $this->_id . "' ";
    $_r = $this->_getList($_q);
    if(!empty($_r[0])){
    return $_r[0]->customer_number;
    }else {
    return false;
    }


    }


    einfügen:

    /** Funktion für eigenes Kundennummerfeld
    */
    function get_my_CustomerNumberById()
    {
    $_q = "SELECT `my_customer_number` FROM `#__virtuemart_vmusers` "
    ."WHERE `virtuemart_user_id`='" . $this->_id . "' ";
    $_r = $this->_getList($_q);
    if(!empty($_r[0])){
    return $_r[0]->my_customer_number;
    }else {
    return false;
    }


    }



    Datei: tables/vmusers.php
    ca. Zeile 38
    hinter:


    var $customer_number = 0;


    einfügen:

    /* Feld für eigene Kundennummer */
    var $my_customer_number = 0;




    Das müßte es fürs Backend gewesen sein, kommen wir zum


    Frontend:


    Datei: edit_vmshopper.php
    ca. Zeile 65
    hinter:


    echo $this->lists['custnumber'];
    } ?>
    </td>
    </tr>


    einfügen:


    <!-- Feld für Ausgabe der eigenen Kundennummer -->
    <td class="key">
    <label for="my_customer_number">
    <?php echo JText::_('COM_VIRTUEMART_USER_FORM_MY_CUSTOMER_NUMBER') ?>:
    </label>
    </td>
    <td>
    <?php if(Permissions::getInstance()->check('admin')) { ?>
    <input type="text" class="inputbox" name="my_customer_number" id="my_customer_number" size="40" value="<?php echo $this->lists['mycustnumber'];
    ?>" />
    <?php } else {
    echo $this->lists['mycustnumber'];
    } ?>
    </td>
    </tr>
    < !-- EO Feld für Ausgabe der eigenen Kundennummer -->


    (Hinweis: Falls man die automatisch vergebene Nummer nicht mehr sehen will, einfach die darüberliegende Tabellenzeile auskommentieren oder löschen.


    Datei: view.html.php
    ca. Zeile 383
    hinter:

    $this->_lists['custnumber'] = $this->_model->getCustomerNumberById();


    einfügen:


    // Feld zur Anzeige der eigenen Kundennummer -->
    $this->_lists['mycustnumber'] = $this->_model->get_my_CustomerNumberById();



    Nicht vergessen, die Sprachdateien de.DE.com_virtuemart.ini im Front- und Backend zu ergänzen!


    Ich hoffe, dass ich nix vergessen und ein bißchen weitergeholfen habe ... Viel Erfolg!

  • lol, also wenn du schon den Core hackst,


    warum änderst du nicht gleich die eine Zeile wo das Ding gebaut wird? Oder warum nicht ein plugin? Es sind nur 2 trigger.


    ganz einfach: weil ich kein programmierer bin und nicht weiß, wie man ein plug-in baut ;-)

  • lol, also wenn du schon den Core hackst,


    warum änderst du nicht gleich die eine Zeile wo das Ding gebaut wird? Oder warum nicht ein plugin? Es sind nur 2 trigger.



    Hi,


    ich stehe auch aktuell vor dem Problem.


    Allerdings sollte nach Möglichkeit bei der Registration eine Kundennummer per Autoincrement vergeben werden. Also entweder konfigurierbar, oder zur Not auch Fest mit einer Startnummer.


    So wie ich das gerade in der Core gesehen habe, scheint es aktuell so zu sein, dass der Benutzername als MD5 hierfür herangezogen wird, was den langen String erklärt.


    Jetzt meine Frage:
    Gibt es eine Möglichkeit was externes und somit updatesicheres zu bekommen, wo die Kundennummern per Autoincrement beim Anlegen der Benutzer erzeugt werden können ?


    Für Tipps wäre ich Dankbar.



    P.S.
    Zur Not würde mir auch helfen wenn mir jemand einen Codeschnipsel für die Core einwerfen könnte, wo der Bereich zu ändern ist, so dass die DB erst ausgelesen wird, bevor die Kundennummer mitgeschrieben wird.


    Besten Dank.