Jump to content
xt:Commerce Community Forum

Versand von Seriennummern per Mail


TBa

Recommended Posts

Hallo zusammen,

wir verkaufen in unserem Shop ausschließlich digitale Produkte, genauer gesagt handelt es sich dabei um Codes, die an anderer Stelle eingetauscht werden können (Vergleichbar mit einer physischen Prepaid-Karte mit Nummernfolge, die an anderer Stelle zum Aufladen eines Kontos genutzt werden kann).

Dazu möchten wir die Seriennummer-Funktion von Veyton verwenden. Out of the Box kann der Kunde die erworbene Seriennummer ja bereits über "Mein Konto" einsehen, wir würden sie allerdings gerne außerdem per Mail verschicken, sobald der Bezahlvorgang erfolgreich abgeschlossen ist (Bestellstatus: Bezahlt).

Hat jemand eine Idee, wie man sowas lösen kann?

Link to comment
Share on other sites

Hm, offenbar kein einfaches Thema. ;) Aktuell versuchen wir, die Seriennummer einfach in die Mail hineinzupacken, die den Kunden über den erfolgreichen Bezahlvorgang informiert (Vorteil: Diese wird automatisch verschickt).

Das Problem ist jedoch, dass die Variable "{$order_serials.serial_number}", die in der Bestellungs-Detailansicht im Shop für die Ausgabe der Seriennummer sorgt, in den Mail-Templates nicht zur Verfügung steht.

Kann mir jemand weiterhelfen?

Link to comment
Share on other sites

Du kannst mal Versuchen es im Mail Template die Funktion über php anzusprechen.

{assign var=ORDER_ID value=$order_data.orders_id}

{php}

$serials = new product_serials();

$serials->getSerialsFrontend((int)$this->get_template_vars('ORDER_ID'));

{/php}

Wenn das nicht funktioniert, müsste man es evlt eigens programmieren und plugin erweitern.

Link to comment
Share on other sites

  • 9 months later...

Hallo,

das hineinkopieren in das Template funktioniert bei mir nicht. in der Mail wird immer der Text "{php}...." ausgegeben, aber nicht die Seriennr.

Was mache ich falsch?

Ausserdem würde ich gerne auch den Link (free) der dem Produkt zugeordnet ist in der email nennen.

Kann mir da bitte jemand helfen?

Link to comment
Share on other sites

  • 2 weeks later...

Wenn ich den oben genannten code in die Email Vorlagen kopiere, bekomme ihc folgendes in der Email angezeigt:


$serials = new product_serials(); $serials->getSerialsFrontend((int)$this->get_template_vars('ORDER_ID')); 

Was läuft hier falsch ?

Link to comment
Share on other sites

hallo mzanier;

funktioniert zwar, schaut aber nicht schön aus, da offensichtlich ein kompletter HTML-Inhalt inkl. Formatierung als String mitgeschickt wird.

Kann man aus {$order_values.products_information.html_content}

die Seriennummer extrahieren bzw. wie heisst das Array dahinter ?

Grüsse

Link to comment
Share on other sites

Lösung gefunden:

zum einen Muss der verwendete Codesniplet angepasst werden:

getSerialsFrontend muss durch getSerialsMail ersetzt werden.


{assign var=ORDER_ID value=$order_data.orders_id}

{php}

$serials = new product_serials();

$serials->getSerialsMail((int)$this->get_template_vars('ORDER_ID'));

{/php} 

Jetzt muss noch die entsprechende Funktion in folgender Datei angelegt werden: /plugins/xt_serials/classes/class.product_serials.php

        function getSerialsMail($orders_id) {

                global $db;

                $serials = array();

                $rs = $db->Execute("SELECT op.*, ps.* FROM ".TABLE_ORDERS_PRODUCTS." op, ".TABLE_PRODUCTS_SERIAL." ps WHERE op.orders_id=ps.orders_id and op.orders_products_id=ps.orders_products_id and op.orders_id='".$orders_id."'");

                if ($rs->RecordCount()>0) {

                        while (!$rs->EOF) {

                                $serials[]=$rs->fields;

                                $rs->MoveNext();

                        }

                }


                if (count($serials)==0) return;


                $tpl_data = array('serials'=>$serials);

                echo $tpl_data['serials']['0']['serial_number'];

        }

Ich habe die Funktion direkt nach der getSerialFrontend gesetzt.

Link to comment
Share on other sites

  • 1 year later...
  • 4 weeks later...

hi,

verwende die Funktion von mzanier für den Versand von Codes von Kauf-Gutscheinen ( die sind bei mir als Seriennummern-Artikel definiert ):

{if $status == 'Versandt'}

{assign var=ORDER_ID value=$order_data.orders_id}

{php}

$serials = new product_serials();

$serials->getSerialsFrontend((int)$this->get_template_vars('ORDER_ID'));

{/php}

{$order_values.products_information.html_content}

{/if}

in der Update-Mail; die Abfrage auf Status "versandt" dient dazu, die SNR erst mitzusenden, wenn der Kauf-Gutschein bzw. das SNR-Produkt auch bezahlt wurde. Dito erscheint die auch erst dann im Kunden-Konto ( Änderung an anderer Stelle ),

Grüsse

Link to comment
Share on other sites

Hallo oldbear,

vielen Dank für Deine Antwort!

Mein Problem fängt hier aber leider schon etwas früher an. Kannst Du mir sagen in welches template/datei der code gehört. Wo wird denn der mail content generiert?

Betrachte mich als DAU was php und den shop angeht. Grundsätzliche Funktionen und Aufbau kann ich einigermassen verstehen , aber darüber hinaus wird's (noch) schnell unünersichlich für mich.

Gruß,

stewe

Link to comment
Share on other sites

  • 2 months later...
  • 3 months later...

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...