Jump to content
xt:Commerce Community Forum
Sign in to follow this  
TBa

Versand von Seriennummern per Mail

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?

Share this post


Link to post
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?

Share this post


Link to post
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.

Edited by mzanier

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites

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 ?

Share this post


Link to post
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

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...