Versandmails - Links für verschiedene Versender

Beatmac23

Aktives Mitglied
4. April 2007
31
0
Hallo, Ich habe schon viel gelesen über die Einstellungen der Versandmails,
hier miene Frage:
Wird immer nur ein Link für die Sendungeverfolgung in der Versandmail ausgegeben oder ist das irgendwie wechselbar ?
Ich versende mit DHL und mit UPS, erkennt WAWI oder XTC selber, welcher Versender eingestellt ist (Versandarten angelegt als DHL und UPS) oder muss ich da irgendwas verändern ?
Geht das überhaupt, das der richtige Link angezeigt wird, oder ist es zumindest möglich, immer alle beiden Links in der Mail zu haben ??

Vielen Dank für Eure Hilfe !

Christian
 

shetani

Aktives Mitglied
28. Februar 2007
226
0
Essen
Theoretisch könnte es gehen wenn Du, bevor der Status gesetzt wird und die email versendet wird, eine Shop-db-abfrage startest in der Du die gewählte Versandart für den betreffenden Auftrag checkst und danach die Versandlinkoption setzen lässt.

Ich kenne es nur von oscommerce und dort wird das Modul (Class) in der order_total gesetzt für den entsprechenden Auftrag. Zum Beispiel ot_shipping. der Title dazu lautet zum Beispiel DPD Paketversand.

Eine Abfrage in der Form select title from order_total where class = ot_shipping and orders_id = .intval($_POST['KeyBestellung']) in der SetBestellung.php im Bereich direkt in dem Segement unter

//setze status der Bestellung
if ($einstellungen->StatusVersendet>0 && $_POST["VersandDatum"])

gefolgt von einer Stringabfrage des DB_Ergebnisses nach zum Beispiel if if (strpos($ARRAY['Class'],"UPS")==null)) {
define ('DHL_LINK_IN_MAIL_EINBAUEN',0);
define ('UPS_LINK_IN_MAIL_EINBAUEN',1);
define ('DPD_LINK_IN_MAIL_EINBAUEN',0);}elseif (strpos($ARRAY['Class'],"DHL")==null)) {{
define ('DHL_LINK_IN_MAIL_EINBAUEN',1);
define ('UPS_LINK_IN_MAIL_EINBAUEN',0);
define ('DPD_LINK_IN_MAIL_EINBAUEN',0);}

In der Form sollte es eigentlich funktionieren - da ich die Tabellenstruktur von xtc aber nicht kenne solltest du sie zuvor checken
 

Boby

Sehr aktives Mitglied
5. Juli 2006
1.479
2
Schwerte bei Dortmund
:idea: währe es eventuell möglich über die Anzahl der eingetippten zahlen in der JTL-Wawi für die
Versandmail im Connector automatisch den richtigen Link wählen zu lassen?

oder

es gäbe die Möglichkeit in der JTL-Wawi ein Wahlfeld (Dropdown) bei der Eingabemaske für die Versand ID zum Anklicken.

Gruss Boby
 

Beatmac23

Aktives Mitglied
4. April 2007
31
0
Hallo Boby,
sicher wäre es das Beste, wenn es mittels Dropdown funktioniert. Sicher wird es auch - irgendwann - kommen.
Die andere Methode funktioniert bei mir nicht 🙁
Naja, trotzdem vielen Dank !

Christian
 

shetani

Aktives Mitglied
28. Februar 2007
226
0
Essen
Hallo Bobby,

ich habe mir die Tabellenstruktur von xtc mal angesehen und den Code als snippet erstellt. So müsste es eigentlich funktionieren.
Das Einzige was du noch anpassen müsstest ist in den if abfragen
if (strpos($total_pos['title'],"UPS")) das UPS oder DHL oder wie auch immer.
Hängt davon ab wie es bei Dir eingestellt ist und auf den Auftragsbestätigungen des Kunden erscheint. Wenn dort zum Beispiel DHL Paket [DE] steht kannst Du DHL lassen, wenn UPS Paket [DE] dann ebenfalls ansonsten eben den passenden Stringteil eintragen.

Dafür musst Du in der setbestellung.php direkt unter //Sendungsverfolgungslinks den folgenden Code einfügen ?


Code:
			//Sendungsverfolgungslinks			
			$versand_query = eS_execute_query("select * from orders_total where class=\"ot_shipping\" and orders_id=".intval($_POST['KeyBestellung']));
			$total_pos = mysql_fetch_object($versand_query);
			
			if (strpos($total_pos['title'],"UPS")) { 
				define ('DHL_LINK_IN_MAIL_EINBAUEN',0); 
				define ('UPS_LINK_IN_MAIL_EINBAUEN',1); 
				define ('DPD_LINK_IN_MAIL_EINBAUEN',0);}
			elseif (strpos($total_pos['title'],"DHL")) {
				define ('DHL_LINK_IN_MAIL_EINBAUEN',1); 
				define ('UPS_LINK_IN_MAIL_EINBAUEN',0); 
				define ('DPD_LINK_IN_MAIL_EINBAUEN',0);};
[/quote]
 

Beatmac23

Aktives Mitglied
4. April 2007
31
0
vielen dank für deine hilfe !
ich werds gleich mal checken und nach dem test bescheid geben.
christian
 

Boby

Sehr aktives Mitglied
5. Juli 2006
1.479
2
Schwerte bei Dortmund
@shetani
@Beatmac23
auch vielen dank für eure mühen von mir,

Leider habe ich außer dem gegebenen zusammenstellen und Kombinieren
von Programm Codes vom Programmieren keine weiteren Kenntnisse.

Du sagst: if (strpos($total_pos['title'],"UPS"))

Wie sollte eine Zeichenkette als Beispiel Code DHL ID: 583575903005 also 12 Zeichen in
deiner if Anweisung zur Unterscheidung welcher Link jetzt genommen werden soll aussehen.

Gruss Boby
 

shetani

Aktives Mitglied
28. Februar 2007
226
0
Essen
Ups - hätte gestern abend den Vodka weglassen sollen. Sorry mein Fehler - kleine Änderung im Code notwendig im Bereich der if abfragen
!== false fehlte dort

Code:
         //Sendungsverfolgungslinks          
         $versand_query = eS_execute_query("select * from orders_total where class=\"ot_shipping\" and orders_id=".intval($_POST['KeyBestellung'])); 
         $total_pos = mysql_fetch_object($versand_query); 
          
         if (strpos($total_pos['title'],"UPS") !== false) { 
            define ('DHL_LINK_IN_MAIL_EINBAUEN',0); 
            define ('UPS_LINK_IN_MAIL_EINBAUEN',1); 
            define ('DPD_LINK_IN_MAIL_EINBAUEN',0);} 
         elseif (strpos($total_pos['title'],"DHL") !== false) { 
            define ('DHL_LINK_IN_MAIL_EINBAUEN',1); 
            define ('UPS_LINK_IN_MAIL_EINBAUEN',0); 
            define ('DPD_LINK_IN_MAIL_EINBAUEN',0);};



Hallo Bobby,

strpos vergleicht zwei Zeichenketten miteinander und gibt zwei Ergebnisse zurück, zum Einen ob die gesuchte Zeichenkette überhaupt in der anderen Zeichenkette vorhanden ist und wenn, wie deren erste Position ist. Wir bruachen jedoch nur wissen ob es überhaupt vorkommt

XTC sowie OSC schreiben bei der Kaufabwicklung in die Tabelle orders_total die jeweilige im Auftrag vorkommenden Module (hier zum Beispiel ot_shipping), deren Betrag und Bezeichnung (title) rein.

Die EIngangsbestätigung, die der Kunde dann erhält, führt zum Beispiel dann im unter den einzelnen Positionen auf

Zwischensumme: 61,31€
DHL Paket [DE]: 5,50€ <-- (ot_shipping title)
Summe [incl. MwSt] : 66,81€

Was macht der Connector nun. Er prüft, ob der Status sich geändert hat und ob ein Versanddatum übergeben wurde. Wenn dem so ist, holt er aus der XTC (OSC) Datenbank - dort aus der Tabelle orders_total - die Zeichenkette des Auftrages (orders_is) zu dem Versandmodul (ot_shipping), das den Textteil (title) hier im Beispiel eben "DHL Paket [DE]" enthält.

Danach wird eine Abfrage gestartet, die eben diesen Teil mit einer Zeichenkette, die Du selber vorgibst vergleicht.

if (strpos($total_pos['title'],"xxx") !== false)

wird demnach in der Abfrage automatich zu zu

trifft nicht zu ->> if (strpos("DHL Paket [DE]","UPS") !== false) {
define ('DHL_LINK_IN_MAIL_EINBAUEN',0);
define ('UPS_LINK_IN_MAIL_EINBAUEN',1);
define ('DPD_LINK_IN_MAIL_EINBAUEN',0);}
trifft zu ->> elseif (strpos("DHL Paket [DE]","DHL") !== false) {
define ('DHL_LINK_IN_MAIL_EINBAUEN',1);
define ('UPS_LINK_IN_MAIL_EINBAUEN',0);
define ('DPD_LINK_IN_MAIL_EINBAUEN',0);};

Da in dem Beispiel UPS nicht in der Zeichenkette DHL Paket [DE] vorkommt liefert die Abfrage FALSCH als Ergebniss und prüft die elseif Abfrage die, da DHL vorkommt RICHTIG liefert und die darunter stehenden Variablen danach definiert wie Sie für die Versandemail benötigt werden.

wenn DHL dann setzte alle ausser DHL auf 0 und DHL auf 1

und der übermittelte Trackingcode in den richtigen Part integriert

Hoffe das es nun nach klarem Kopf "klarer" wird ... wobei ich könnt doch schon wieder 😉

[/code]
 

Boby

Sehr aktives Mitglied
5. Juli 2006
1.479
2
Schwerte bei Dortmund
Hallo Danke echt du bist gut drauf.(Vodka :? )

Leider kann ich das nicht nutzen.

Da ich Pauschale Versandkosten im Shop nutze.

Die Anzahl der ID Länge zu unterscheiden währe glaub ich sinnvoller für mich.
Denn
Erst bei der eingabe in JTL WAWI der Versand ID sollte unterscheiden werden können.

Gruss Boby
 

shetani

Aktives Mitglied
28. Februar 2007
226
0
Essen
Hallo Bobby,

in deinem Fall müsste es dann sowas in der Richtung von

Code:
         //Sendungsverfolgungslinks   
        switch (strlen(trim($Tracking))){
         case '8':
         define ('DHL_LINK_IN_MAIL_EINBAUEN',1); 
         define ('DPD_LINK_IN_MAIL_EINBAUEN',0);
         define ('GLS_LINK_IN_MAIL_EINBAUEN',0); 
         break;
         case '10':
         define ('DHL_LINK_IN_MAIL_EINBAUEN',0); 
         define ('DPD_LINK_IN_MAIL_EINBAUEN',1);
         define ('GLS_LINK_IN_MAIL_EINBAUEN',0); 
         break;
         case '12':
         define ('DHL_LINK_IN_MAIL_EINBAUEN',0); 
         define ('DPD_LINK_IN_MAIL_EINBAUEN',0);
         define ('GLS_LINK_IN_MAIL_EINBAUEN',1); 
         break;
         default:
         define ('DHL_LINK_IN_MAIL_EINBAUEN',0); 
         define ('DPD_LINK_IN_MAIL_EINBAUEN',0);
         define ('GLS_LINK_IN_MAIL_EINBAUEN',0); 
         break;
         };

sein wobei du die Länge Deiner Tracking ID´s in den jeweiligen case-werten eintragen müsstest.
 

Ähnliche Themen