Länge Gutscheincode

Hallo zusammen,

ich habe schon die Suchfunktion benutzt … aber leider keine Ergebnisse erhalten …

Möchte im Shop eine Serie von Gutscheinen mit verschiedenen (Zufalls)Nummern erzeugen, allerdings sind mir die automatisch generierten Gutscheincodes viel zu lang.

Wenn ich eine Gutscheinnummer angebe, dann hat die zwar die gewünschten 8 Stellen … wo kann ich aber einstellen, dass der Shop mir eine Gutscheinserie mit verschiedenen (Zufalls)Nummern erzeugt, die aber nur 8 Stellen hat?

Hallo,

einstellen kannst Du das nicht. Per Default lebst Du entweder mit den langen zufälligen oder mit den kurzen selbstgemachten.
Es sei denn, Du schreibst ein Modul über die Funktion, die die zufälligen bereitstellt :wink:

Gruss

Hallo zusammen,

also ich mussauch ganz ehrlich sagen das 32 Zeichen absolut praxisfremdsend. Das kann man wirklich keinem Shop-Kunden zumuten, so viele Zeichen abzutippen.
Dabei wäre ein Gutschein-Code mit8 Zeichen (knapp 3 Billionen Varianten) schon absolut ausreichend damit kein Code “erraten” wird.
Das macht den Gutschein-Generator in seiner jetzigen Form ziemlich unbrauchbar. Es wäre schön wenn es hier in einer zukünftigen Version eine Einstellungsmöglichkeit gäbe.

Viele Grüße,

Hi,

[QUOTE=smonkey;45840]Es wäre schön wenn es hier in einer zukünftigen Version eine Einstellungsmöglichkeit gäbe.[/QUOTE]

Coole Idee. Machst Du bitte einen Eintrag in der uservoice?
http://oxid.uservoice.com

Gruß

Auch wenn das keine sauber Lösung ist, aber ich habe die vendor_generate.php aus dem Ordner admin geändert.

Dort einfach in der Funktion “generateVoucher” eine Zeile hinzufügen und schon werden die Codes auf 8 Zeichen getrimmt.

Die komplette Funktion:

public function generateVoucher( $iCnt )
{
    $iAmount  = abs( (int) oxConfig::getParameter( "voucherAmount" ) );
    // creating new vouchers
    if ( $iCnt < $iAmount && ( $oVoucherSerie = $this->_getVoucherSerie() ) ) {
        if ( !$this->_iGenerated ) {
            $this->_iGenerated = $iCnt;
        }
        $blRandomNr = ( bool ) oxConfig::getParameter( "randomVoucherNr" );
        $sVoucherNr = $blRandomNr ? oxUtilsObject::getInstance()->generateUID() : oxConfig::getParameter( "voucherNr" );
  	$sVoucherNr = substr($sVoucherNr, 0, 8); //HIER WERDEN DIE GUTSCHEINCODES AUF 8 STRINGS GETRIMMT
        $oNewVoucher = oxNew( "oxvoucher" );
        $oNewVoucher->oxvouchers__oxvoucherserieid = new oxField( $oVoucherSerie->getId() );
        $oNewVoucher->oxvouchers__oxvouchernr = new oxField( $sVoucherNr );
        $oNewVoucher->save();
        $this->_iGenerated++;
    }
    return $this->_iGenerated;
}

[QUOTE=marcelglaeser;46830]Auch wenn das keine sauber Lösung ist, aber ich habe die vendor_generate.php aus dem Ordner admin geändert.

Dort einfach in der Funktion “generateVoucher” eine Zeile hinzufügen und schon werden die Codes auf 8 Zeichen getrimmt.

Die komplette Funktion:[/QUOTE]

Tach,

Für alle die auf Grund dieses Posts den Code suchen: er ist nicht im vendor_generate.php sondern voucherserie_generate.php.

Habe es jetzt noch nicht eingehend getestet, aber kommt es zu keinen Konflikten (sprich gleiche Vouchers oder Abbruch des Generierungs-Prozesses) wenn eine grössere Anzahl generiert wird?
Funktionieren tuts scheinbar…

Grüsse aus Basel
Marc

Es reicht auch das Datenbankfeld für die generierte Nummer entsprechend kleiner zu machen. Die Tabelle heißt oxvouchers und das betreffende Feld heißt OXVOUCHERNR
Die Datenbank schneidet beim einfügen des Gutscheincodes alles ab, was zuviel ist.
lg heinz

immer die Grabräuber :slight_smile:

hier gibts übrigens auch ein Modul:
http://exchange.oxid-esales.com/de/Datenmanagement/Produktdaten/Gutscheincode-Generierung-1-4-Stable-CE-4-5-x-4-7-x.htm

würde der auch auf PE sauber laufen?

probiere es doch einfach aus, dann weißt du es mit Sicherheit

deine Posts entprechen deinem Avatar :slight_smile:

jup, genau so wars auch gedacht :wink:

Nur mal exemplarisch für alle älteren Links hier. Ich schreibe es mal fett!

Fehler

Die angeforderte Seite ‘de/Datenmanagement/Produktdaten/Gutscheincode-Generierung-1-4-Stable-CE-4-5-x-4-7-x.htm/’ konnte nicht gefunden werden.

Gibt es da von OXID eine Fehlerbeseitigung Versuch/Option/Möglichkeit/Willens?

Hallo Medicus,

ich vermute, in der Zwischenzeit haben sich die Links geändert und es wurde nicht daran gedacht, diese per 301 weiterzuleiten. Das Modul findest Du jetzt hier (über die Suche im Exchange gefunden): http://exchange.oxid-esales.com/de/en/Shopmanagement/Produktdaten/Gutscheincode-Generierung-1-8-Stable-CE-4-5-x-4-9-x-oxid.html

Gruß