Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Retoure über das DHL Retourenportal direkt aus dem Admin heraus erstellen

    billybob

    • Fördermitglied
    • Beiträge: 563
    Hi modifiers,
    ich habe neulich eine einfache Lösung für die Nutzung des DHL-Retourenportals in das Admin Backend eingebaut. Vielleicht haben noch andere Interesse daran.

    Datei:
    admin/orders.php
    Suche:

     
    Code: PHP  [Auswählen]
      break;
        // BMC Delete CC Info End
    }
    ?>
    <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">

    (in der 1.05SP1c sind das die Zeilen 279-283)

    Einfügen:

    Code: PHP  [Auswählen]
        break;
        // BMC Delete CC Info End
            // BOF - billybob 2012-06-10 - Retourenschein erstellen
      case 'retoure':
            $url="https://xxx.dpwn.net/ganzlangeurldievondhlzurverfuegunggestellwird/RpOrder.action?delivery=RetourenLagerXX";
            $oID = xtc_db_prepare_input($_GET['oID']);
            $query = 'SELECT `orders_id`,`delivery_name`,`delivery_company`,`delivery_street_address`,`delivery_postcode`,`delivery_city`,`customers_email_address`
                                    FROM `orders`
                                    WHERE `orders_id` = '
    . $oID ;
            $order_query=xtc_db_query($query);
            $order_data=xtc_db_fetch_array($order_query);
            $delivery_company = "";

            /* Prüfen, ob Packstation als Straße eingegeben */
            $street = $order_data["delivery_street_address"];
            $hnr = "";
            $packpos = stripos($street,"packstation");
            if ( $packpos !== FALSE && $packpos > 1 ) {
                    $words = preg_split('/ /', $street, -1, PREG_SPLIT_NO_EMPTY);
                    $delivery_company=$words[0];
                    $street = substr($street, $packpos);
            } else {
                    $delivery_company = $order_data["delivery_company"];
            }

            /* Strasse und Hausnummer trennen
            */

            if ( preg_match('/([^\d]+)(\d+.*)/', $street, $arr_street) !== 0 ) {
                    $street = trim($arr_street[1]);
                    $hnr = $arr_street[2];
            } else {
                    $street = $order_data["delivery_street_address"];
            }

            $url .= "&ADDR_SEND_STREET_ADD=" .$order_data["orders_id"] ."&ADDR_SEND_LAST_NAME=". $order_data["delivery_name"] ."&ADDR_SEND_NAME_ADD=". $delivery_company ."&ADDR_SEND_STREET=". $street ." ". $hnr ."&ADDR_SEND_ZIP=". $order_data["delivery_postcode"] ."&ADDR_SEND_CITY=". $order_data["delivery_city"] ."&ADDR_SEND_EMAIL=". $order_data["customers_email_address"];
            xtc_redirect($url);
            break;
            // EOF - billybob 2012-06-10 - Retourenschein erstellen
    }
    ?>
    <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
     
    Nicht vergessen, die Zeile:
       $url="https://xxx.dpwn.net/ganzlangeurldievondhlzurverfuegunggestellwird/RpOrder.action?delivery=RetourenLagerXX";
    an die eigenen Gegebenheiten anzupassen

    Suchen:
    Code: PHP  [Auswählen]
    <?php //EOF web28 2010-12-09 new table handling ?>
            <td align="right">
        <!-- //BOF - web28 - 2010-03-20 - Send Order by Admin -->
        <a class="button" href="<?php echo xtc_href_link(FILENAME_ORDERS, xtc_get_all_get_params(array ('oID', 'action')).'oID='.$oID.'&action=send&sta=0&stc=1&site=1'); ?>"><?php echo BUTTON_ORDER_CONFIRMATION; ?></a>
        <!-- //EOF - web28 - 2010-03-20 - Send Order by Admin -->
    <?php
      if (ACTIVATE_GIFT_SYSTEM == 'true') {

    (in der 1.05SP1c sind das die Zeilen 700-706)

    Einfügen:

    Code: PHP  [Auswählen]
    <?php //EOF web28 2010-12-09 new table handling ?>
            <td align="right">
            <!-- BOF - billybob 2012-06-10 - Retourenschein erstellen -->
                    <a class="button" target="retoure" href="<?php echo xtc_href_link(FILENAME_ORDERS, xtc_get_all_get_params(array ('oID', 'action')).'oID='.$_GET['oID'].'&action=retoure'); ?>" style="background-color:#f25b17;color:#fff;font-weight:bold;">Retourenschein senden</a>
            <!-- EOF - billybob 2012-06-10 - Retourenschein erstellen -->
        <!-- //BOF - web28 - 2010-03-20 - Send Order by Admin -->
        <a class="button" href="<?php echo xtc_href_link(FILENAME_ORDERS, xtc_get_all_get_params(array ('oID', 'action')).'oID='.$oID.'&action=send&sta=0&stc=1&site=1'); ?>"><?php echo BUTTON_ORDER_CONFIRMATION; ?></a>
        <!-- //EOF - web28 - 2010-03-20 - Send Order by Admin -->
    <?php
      if (ACTIVATE_GIFT_SYSTEM == 'true') {
     

    Ein Klick auf den Retourenbutton öffnet in einem neuen Browserfenster/-tab die Seite des Retourenportals und der Kundenservice kann direkt die Retoure an den Kunden senden.

    Es wäre auch denkbar gleichzeitig den Status der Bestellung auf "Retour versendet" zu ändern. Ausserdem kann man das natürlich alles noch schöner parametriesieren aber es funktioniert.
    Viel Spaß damit,
    billybob

    Have a look
    [ Für Gäste sind keine Dateianhänge sichtbar ] [ Für Gäste sind keine Dateianhänge sichtbar ]

    Linkback: https://www.modified-shop.org/forum/index.php?topic=20577.0
    rechtstexte für onlineshop

    arno_nuehm

    • Mitglied
    • Beiträge: 112
    • Geschlecht:
    Sehr schön, funzt super :-)

    deepblue

    • Schreiberling
    • Beiträge: 291
    • Geschlecht:
    Na das nenne ich mal eine super Erweiterung für modified eCommerce Shopsoftware!  :-B

    Einfach Super, vielen Dank fürs teilen!  :thx:

    billybob

    • Fördermitglied
    • Beiträge: 563
    Hi,
    eine kleine Erweiterung für diejenigen, die auch Retouren aus dem Ausland anbieten wollen/müssen/sollen:

    Dazu in der admin/orders.php
    Code: PHP  [Auswählen]
            // BOC - billybob 2012-06-10 - Retourenschein erstellen
      case 'retoure':
            // URL des DHL Retourenportals (mir abschließendem ? für die Parameter)
            $url="https://xxx.dpwn.net/ganzlangeurldievondhlzurverfuegunggestellwird/RpOrder.action?";
            // Retourenempfänger
            $retourenEmpfaenger = array (
                      'AT' => 'Name des Lagers für AT aus dem Retourenportal',
                      'BE' => 'Name des Lagers für BE aus dem Retourenportal',
                      'CY' => 'usw.',
                      'CZ' => 'usw.',
                      ...
                      'DE' => 'Name des Lagers für DE aus dem Retourenportal' );

            $oID = xtc_db_prepare_input($_GET['oID']);
            $query = 'SELECT `orders_id`,`delivery_name`,`delivery_company`,`delivery_street_address`,`delivery_postcode`,`delivery_city`,`delivery_country_iso_code_2`,`customers_email_address`
                                    FROM `orders`
                                    WHERE `orders_id` = '
    . $oID ;
            $order_query=xtc_db_query($query);
            $order_data=xtc_db_fetch_array($order_query);
            $delivery_company = "";

            /* Prüfen, ob Postnummer der Packstation als Straße eingegeben */
            $street = $order_data["delivery_street_address"];
            $hnr = "";
            $packpos = stripos($street,"packstation");
            if ( $packpos !== FALSE && $packpos > 1 ) {
                    $words = preg_split('/ /', $street, -1, PREG_SPLIT_NO_EMPTY);
                    $delivery_company=$words[0];
                    $street = substr($street, $packpos);
            } else {
                    $delivery_company = $order_data["delivery_company"];
            }
            /* Benutzer vergessen oft das Leerzeichen zwischen Straße und Hausnummer
            * das versuchen wir hier zu korrigieren.
            */

            $arr_street= preg_split('/[0-9]/', $street, -1, PREG_SPLIT_NO_EMPTY);
            if ( $arr_street !== FALSE ) {
                    $hnr = str_replace($arr_street[0], "", $street);
                    $street = trim($arr_street[0]);
            } else {
                    $street = $order_data["delivery_street_address"];
            }

            $url .= "delivery=".$retourenEmpfaenger[ $order_data["delivery_country_iso_code_2"] ]."&ADDR_SEND_STREET_ADD=" .$order_data["orders_id"] ."&ADDR_SEND_LAST_NAME=". $order_data["delivery_name"] ."&ADDR_SEND_NAME_ADD=". $delivery_company ."&ADDR_SEND_STREET=". $street ." ". $hnr ."&ADDR_SEND_ZIP=". $order_data["delivery_postcode"] ."&ADDR_SEND_CITY=". $order_data["delivery_city"] ."&ADDR_SEND_EMAIL=". $order_data["customers_email_address"];
            xtc_redirect($url);
            break;
            // EOC - billybob 2012-06-10 - Retourenschein erstellen
     

    Auch hier nicht vergessen die Zeile:
    Code: PHP  [Auswählen]
       $url="https://xxx.dpwn.net/ganzlangeurldievondhlzurverfuegunggestellwird/RpOrder.action?";
     
    an die eigenen Gegebenheiten anzupassen.

    Gegenüber der ursprünglichen Version haben sich lediglich drei Zeilen verändert. Es sind die Zeilen, die mit $url und $query beginnen. Ausserdem ist der/das Array $retourenempfänger neu.

    Hinweis:
    Name des Lagers für aus dem Retourenportal ist der Name, der im  Drop-Down-Feld "Retourenempfänger" unter dem Menüpunkt Einstellungen des Retourenpotals angezeigt wird.
    Gruß
    billybob

    Security

    • Fördermitglied
    • Beiträge: 188
    • Geschlecht:
    Guten Abend,

    was genau ist mit dieser Aussage gemeint:

    Code: PHP  [Auswählen]
    Nicht vergessen, die Zeile:
       $url="https://xxx.dpwn.net/ganzlangeurldievondhlzurverfuegunggestellwird/RpOrder.action?delivery=RetourenLagerXX";
    an die eigenen Gegebenheiten anzupassen

    Verstehe dies nicht so ganz, sorrry :D

    Gruß Christian

    fishnet

    • Fördermitglied
    • Beiträge: 4.853
    • Geschlecht:
    ...lies es einfach nochmal. Ganz langsam.

    Security

    • Fördermitglied
    • Beiträge: 188
    • Geschlecht:
    Hallo,

    diesen Text habe ich schon gelesen -> ganzlangeurldievondhlzurverfuegunggestellwird :D.

    Muss dieser durch bsp.: http://nolp.dhl.de/nextt-online-public/set_identcodes.do?lang=de&idc=dd25588954445&rfn=&extendedSearch=true  ersetzt werden?

    jannemann

    • modified Team
    • Beiträge: 6.289
    • Geschlecht:
    Hallo billybob,

    vielen Dank für das Teilen deiner Lösung mit uns :!:  :thumbs:

    Schöne Grüße,
    Jan

    billybob

    • Fördermitglied
    • Beiträge: 563
    Hallo,

    diesen Text habe ich schon gelesen -> ganzlangeurldievondhlzurverfuegunggestellwird :D.

    Muss dieser durch bsp.: http://nolp.dhl.de/nextt-online-public/set_identcodes.do?lang=de&idc=dd25588954445&rfn=&extendedSearch=true  ersetzt werden?

    Hallo ShishaChris,
    dazu kann ich nur sagen: NEIN. Das ist lediglich die URL für die Sendungsverfolgung.

    Die URL, die im Beitrag gemeint ist wird mit Abschluß des Vertrages bei DHL von diesen zur Verfügung gestellt. Bei mir hatte die Mail ein Betreff: Retourenportal wurde eingerichtet.
    Dort findet sich die URL für den "Webaufruf für vorkonfigurierte Retourenempfänger" und  der Name des Retourenlagers.

    Gruß billybob

    Ranjid

    • Neu im Forum
    • Beiträge: 28
    Hallo,

    vielen Dank für das Teilen der Erweiterung. Klappt prima.  :thx:

    Habe eine Frage:
    Meine Shop-Bestellnummern haben immer das aktuelle Jahr voranstehen (in z.B. Bestellbestätigungsmails oder Rechnungen): 2013-1234

    Gibt es eine Möglichkeit der im Retourenportal genannten Auftragsnummer (also der Shop-Order-ID) das aktuelle Jahr mit zu übergeben? Es sollte dann im Feld Auftragsnummer (welches bei mir "Bestellnummer" heißt) "2013-1234" stehen. Statt nur "1234".

    Vielen Dank im Voraus.
    1 Antworten
    2456 Aufrufe
    18. Oktober 2011, 15:19:48 von herrkuless
    1 Antworten
    1664 Aufrufe
    30. August 2014, 16:30:46 von Matt
    8 Antworten
    4835 Aufrufe
    13. Januar 2014, 16:30:53 von FutureSell
               
    anything