cseo111Plus- Gutschein per E-Mail versenden

  • Hallo,

    gestern haben wir das Anlegen eines Gutscheins als Artikel, das "Kaufen" des Gutscheins, das Versenden und anschließende Einlösen erfolgreich getestet und dachten schon "Alles prima".


    Nun kommt der Spezialfall, wo (scheinbar!) nix geht:

    im Admin gibt es nach Aktivierung des Rabatt+Gutscheinsystems unter Gutscheine/Kupons via Gutschein eMail eine Möglichkeit, an eine E-Mailadresse einen Gutschein zu versenden.

    Der Gutschein (im Test: 10EUR) wurde generiert und kam auch als E-Mail an.
    Nach dem Klicken auf den Link in der Mail, wurde ein Konto angelegt und ein Artikel in den Warenkorb gelegt. Unter der Warenkorbanzeige erschien auch zunächst ein Hinweis, dass ein Guthaben von 10 EUR vorhanden sei.

    Oben erschien die Meldung, dass der Gutscheincode gültig ist.

    Soweit so gut, allerdings wurde der eingelöste Gutschein anschließend nicht vom Warenwert abgezogen!!!
    ------------------------------------------------------------------------------------------------------------------

    Nachtrag/Grund:

    Zahlungsweise Bitte wählen Sie die gewünschte Zahlungsweise für Ihre Bestellung aus.

    (O)- PayPal Kaufabwicklung

    (O)- Vorkasse

    (O)+ 7,60 EURNachnahme

    (O)- EU-Standard Bank Transfer
    Überweisen Sie den Rechnungsbetrag auf unser Konto. Die Kontodaten erhalten Sie nach Bestellannahme per E-Mail


    - Guthaben
    Gutscheine
    Anwählen, wenn Sie Ihr Guthaben verwenden möchten (O)
    -----------------------------------------------------------------------------------------------------------------

    Wenn ich das "Guthabenfeld" am Ende der Zahlungsoptionen schon in der "Eile" des Testens übersehe, wie soll es erst dann unseren Kunden ergehen?
    Bei den Zahlungsweise/Xt Module im BAckend kann man die Reihenfolge der Zahlungsmöglichkeiten ändern. Leider sind die Gutscheine nicht dabei.

    Habe ihr eine Lösung, wie ich die Anzeige der Gutscheinoption im Falle eines Guthaben in der Darstellung beim checkout_payment ganz nach oben bekomme?


    ???
    Bernd E.

    3 Mal editiert, zuletzt von bernd888 (10. Dezember 2009 um 16:36)

  • ...ich habe heute gesehen, dass auch jemand anderes so etwas schon gemacht hat (bei demjenigen allerdings mit einer Komplettveränderung des gesamten Rabattkupon - u. Gutscheinsystems).

    Mir wäre es lieber, die Lösung käme von Euch, weil wir dann vermutlich alle und auch bei künftigen Versionen davon Nutzen haben können.

    Vermutlich funktioniert auch der bei Euch gekaufte Gutscheingenerator nur mit Eurer modifizierten Lösung.

    Deshalb halte ich meine Interessenbekundung (Jaaa! Haaaben!) aufrecht.:)

    Gruß
    Bernd E.

    PS: ...wenn ich die Änderungen heute noch einbauen könnte, wäre das super, damit wir nach dem tagelangen Rumprobieren endlich mit dem Rabatt/Gutscheinsystem online gehen können.

    Einmal editiert, zuletzt von bernd888 (11. Dezember 2009 um 14:27)

  • Hier ist der Ansatz für die korrrekte Darstellung:

    /includes/classes/order_total.php:

    Suche:

    PHP
    function credit_selection() {        $selection_string = '';        $close_string = '';        $credit_class_string = '';        if (MODULE_ORDER_TOTAL_INSTALLED) {            $header_string = '<div>'."\n";            $output1_string .= ''."\n";            $header_string .= '<b>'.TABLE_HEADING_CREDIT.'</b>'."\n";            $close_string = '</div>';            reset($this->modules);            $output_string = '';            while (list (, $value) = each($this->modules)) {                $class = substr($value, 0, strrpos($value, '.'));                if ($GLOBALS[$class]->enabled && $GLOBALS[$class]->credit_class) {                    $use_credit_string = $GLOBALS[$class]->use_credit_amount();                    if ($selection_string == '')                        $selection_string = $GLOBALS[$class]->credit_selection();                    if (($use_credit_string != '') || ($selection_string != '')) {                        $output_string = ' <div><b>'.$GLOBALS[$class]->header.'</b></div>'.$use_credit_string;                        $output_string .= '  </div>'."\n";                        $output_string .= $selection_string;                    }                }            }            if ($output_string != '') {                $output_string = $header_string.$output_string;                $output_string .= $close_string;            }        }        return $output_string;    }

    Ersetze mit:

    PHP
    function credit_selection() {        $selection_string = '';        $class_desc = str_replace(' ','_',TABLE_HEADING_CREDIT);        $start_string = '<div class="'.strtolower($class_desc).'">';        $close_string = '</div>';        $credit_class_string = '';        if (MODULE_ORDER_TOTAL_INSTALLED) {            $header_string = '<h3>'.TABLE_HEADING_CREDIT.'</h3>'."\n";            reset($this->modules);            $output_string = '';            while (list (, $value) = each($this->modules)) {                $class = substr($value, 0, strrpos($value, '.'));                if ($GLOBALS[$class]->enabled && $GLOBALS[$class]->credit_class) {                    $use_credit_string = $GLOBALS[$class]->use_credit_amount();                    if ($selection_string == '')                        $selection_string = $GLOBALS[$class]->credit_selection();                    if (($use_credit_string != '') || ($selection_string != '')) {                        $output_string = '<strong>'.$GLOBALS[$class]->header.'</strong><br /> '.$use_credit_string;                        $output_string .= "\n";                        $output_string .= $selection_string;                    }                }            }            if ($output_string != '') {                $output_string = $start_string.$header_string.$output_string;                $output_string .= $close_string;            }        }        return $output_string;    }

    Wobei

    PHP
    $class_desc = str_replace(' ','_',TABLE_HEADING_CREDIT);$start_string = '<div class="'.strtolower($class_desc).'">';

    eine Klasse mit dem Namen ausgibt. In diesem Fall wird

    HTML
    <div class="gutschein">

    herauskommen. Das kann dann einfach mittels CSS abgesprochen werden.

    /templates/cseo-css-001/module/checkout_payment.html:

    Suche:

    HTML
    {if $GV_COVER !='true'}            {$PAYMENT_BLOCK}            {if $module_gift !=''}<div><br style="clear:both" /><br />{$module_gift}{/if}        {else}            <br style="clear:both" />            {#text_gccover#}        {/if}

    Ändere zu:

    HTML
    {$PAYMENT_BLOCK}

    Und weiter oben, wo Du es willst:

    HTML
    {if $GV_COVER !='true'}
            {if $module_gift !=''}
                {$module_gift}<br /><hr /><br />
            {/if}
        {else}
            {#text_gccover#}<br />
        {/if}

    Die Gutscheinabfrage rein. Das ist alles.

    Einmal editiert, zuletzt von siekiera (14. Dezember 2009 um 08:30)

  • Vielen Dank!!!

    Endlich kann man das Guthaben und die Einlösemöglichkeit nicht mehr übersehen!

    ...nun noch schnell Euren Generator eingebaut, den auch noch testen und dann kann es im Echtbetrieb losgehen.

    :)

    Gruß
    Bernd