Welches Modul für DPD Versand?

Thema wurde von Anonymous, 11. April 2022 erstellt.

  1. Dennis (MotivMonster.de)

    Dennis (MotivMonster.de) G-WARD 2013/14/15/16

    Registriert seit:
    22. September 2011
    Beiträge:
    31.203
    Danke erhalten:
    6.208
    Danke vergeben:
    1.107
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    Merke: Beiträge die mehr als 12-18 Monate keinen Beitrag mehr hatten passen oft nicht mehr zu akltuellen Versionen und gegebenheiten :)

    Welche Anforderungen hast du den an DPD?
    Shipcloud könntest z.B. nutzen. Erspart viel Zeit, wenn mehr als ne Handvoll Bestellungen am Tag hast, da massenbearbeitung möglich ist statt jede einzeln. und eigenen Vertrag könntest auch hinterlegen.
     
  2. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    14. Juli 2011
    Beiträge:
    995
    Danke erhalten:
    71
    Danke vergeben:
    130
    Wir benötigen das DPD Modul selber täglich und pflegen daher auch die Updates. Wer also Interesse hat kann sich gerne bei mir melden.
     
  3. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    12. März 2015
    Beiträge:
    375
    Danke erhalten:
    22
    Danke vergeben:
    153
    Hallo, da nach dem neuesten GambioUpdate noch immer das Modul "MyDPD/Iloxx" erscheint, würden wir gerne nachfragen, ob es hier Neuigkeiten zur Schnittstelle gibt...
     
  4. Dennis (MotivMonster.de)

    Dennis (MotivMonster.de) G-WARD 2013/14/15/16

    Registriert seit:
    22. September 2011
    Beiträge:
    31.203
    Danke erhalten:
    6.208
    Danke vergeben:
    1.107
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    Wenn du es selfhostet mal installiert hast verschwindet es nicht einfach.
     
  5. DKG - Die Kleine Geschenkidee (Peter)

    Registriert seit:
    2. Oktober 2017
    Beiträge:
    343
    Danke erhalten:
    195
    Danke vergeben:
    120
    #25 DKG - Die Kleine Geschenkidee (Peter), 5. Januar 2025
    Zuletzt bearbeitet: 5. Januar 2025
    Hey,

    mal als Tipp:
    Man kann sich, relativ einfach, selbst eine "Schnittstelle" zu DPD basteln,
    hatte ich bei uns auch gemacht.
    In der Shopdatenbank hat man alle notwendigen Daten,
    diese muss man nur in eine CSV Datei packen und dann damit Labels drucken.
    Wir versenden nicht mehr mit DPD - ich stell daher mal ein Script rein,
    was ich seiner Zeit für DPD Classic geschrieben hatte.
    Für andere Formate, abgesehen von Classic, kopiert man sich
    das Script und passt es auf das andere Format / andere DPD Produkt an.

    ACHTUNG:
    Es dient nur als Idee-Anregung / Vorlage für Dein eigenes Projekt.
    Benutzung auf eigene Gefahr - ich übernehme keine Haftung.
    Ich biete keine Unterstützung bei der Individualisierung!!!


    PHP:
    <?php

    date_default_timezone_set
    ('Europe/Berlin');
    $zeitpunkt date('d-m-Y---H-i-s');

    $offenid $_GET['offenid'];
    $benutzer $_GET['benutzer'];

    function 
    writeCsvLine($file$data$delimiter ';'$enclosure '') {
        
    $line implode($delimiterarray_map(function($value) use ($enclosure) {
            return 
    $enclosure str_replace($enclosure$enclosure $enclosure$value) . $enclosure;
        }, 
    $data));
        
    fwrite($file$line "\n");
    }

    $servername 'localhost';
    $username 'username';
    $password 'password';
    $database 'username';

    // Verbindung herstellen
    $connection = new mysqli($servername$username$password$database);

    // Verbindung überprüfen
    if ($connection->connect_error) {
        die(
    'Verbindung fehlgeschlagen: ' $connection->connect_error);
    }

       
    $query "SELECT orders_id as bestellnummer,
                        delivery_gender,
                        delivery_company,
                        delivery_firstname,
                        delivery_lastname,
                        delivery_country,
                        delivery_postcode,
                        delivery_city,
                        delivery_street_address,
                        delivery_additional_info,
                        customers_id
                   FROM orders
                  WHERE orders_status = '
    $offenid'
                        "
    ;
    $result $connection->query($query);

    if (
    $result === false) {
        die(
    'Abfrage fehlgeschlagen: ' $connection->error);
    }

    // Array für CSV-Daten initialisieren
    $csvData = array();

    // Spaltenüberschriften hinzufügen
    $csvData[] = array('Anrede''Firma''Vorname''Nachname''Land''PLZ''Ort''Straße''Hausnummer''Sendungsreferenz 1''Telefon''E-Mail''Adresszusatz''Bundesstaat''Wareninhalt''Gewicht''default''Sendungsreferenz 2''Versandprodukt''Zusatzleistungen''Anzahl Pakete Sendung''Zollwert''Währung''Frankatur''Pakettyp''Rechnungsnummer''Rechnungsdatum''SPRN''EORI-Nummer (Absender)''UID (Empfänger)''Bemerkung''WTNR''Anzahl Artikel''Länge''Breite''Höhe''Abstellort (Versender-ASG)''Zustellinformation''Artikel''Herkunftsland''Nettogewicht''Bruttogewicht''Warenwert''Stück''Rechnungspositionsnummer''Warenwert (Höherversicherung)''Warenart (Höherversicherung)''Abteilung''Gebäude''Stockwerk''Vollständiger Name gemäß Ausweis''Telefon (ID-Check)''Ausweisnummer''Zielnetzwerk''MRN-Nummer');                                                                                                                                         

    while (
    $row $result->fetch_assoc()) {
        
    // Variablen für Datenbankwerte erstellen und bearbeiten
        
    $bestellnummer $row['bestellnummer'];
        
    $geschlecht $row['delivery_gender'];
        
    $firma mb_substr($row['delivery_company'], 035'UTF-8');
        if(!empty(
    $firma)) {
            
    $anrede 'Firma';
        }
        elseif(empty(
    $firma) && $geschlecht == 'm') {
            
    $anrede '';
        }
        elseif(empty(
    $firma) && $geschlecht == 'f') {
            
    $anrede '';
        }
        elseif(empty(
    $firma) && empty($geschlecht)) {
            
    $anrede '';
        }
        
    $vorname $row['delivery_firstname'];
        
    $nachname $row['delivery_lastname'];
        
    $lieferland $row['delivery_country'];
        if(
    $lieferland == 'Germany') {
            
    $land 'DEU';
        }
        
    $plz $row['delivery_postcode'];
        
    $ort $row['delivery_city'];
        
    $gesamtadresse $row['delivery_street_address'];
     
        
    $words explode(' '$gesamtadresse);
        
    $hausnummer array_pop($words);
        
    $vorstrasse implode(' '$words);
        
    $strasse preg_replace('/\"/'""$vorstrasse);
        
    $strasse preg_replace('/\"/'""$strasse);
     
     
        
    $adressreferenz $bestellnummer;
        
    $telefon ''// Leer lassen
        
    $email 'deinesupportmailadresse@mustermann.de';
        
    $adresszusatz $row['delivery_additional_info'];
        
    $bundesstaat '';
        
    $default ''// Leer lassen
        
    $adresstyp '1';
        
    $sendungsreferenz1 $bestellnummer;
        
    $sendungsreferenz2 'PAKET'// Leer lassen
        
    $kundennummer $row['customers_id'];
        
    $integerString strval($kundennummer);
        
    $anzahlNullen strlen($integerString);
        
    $nullenString str_repeat('0'$anzahlNullen);
        
    $uid 'DE' $nullenString $integerString;
     
        
    $wareninhalt 'Goods';
        
    $gewicht '1';
        
    $versandprodukt '1'// 1 = DPD Classic
        
    $zusatzleistungen '2';
        
    $anzahlPaketeSendung '1';
        
    $zollwert '';
        
    $waehrung 'EUR';
        
    $frankatur '';
        
    $pakettyp '0';
        
    $rechnungsnummer '';
        
    $rechnungsdatum '';
        
    $sprn '';
        
    $eoriNummerAbsender '';
        
    $uidEmpfaenger '';
        
    $bemerkung '';
        
    $wtnr '';
        
    $anzahlArtikel '';
        
    $laenge '';
        
    $breite '';
        
    $hoehe '';
        
    $abstellortVersenderASG '';
        
    $zustellinformation '0';
        
    $artikel '';
        
    $herkunftsland '';
        
    $nettogewicht '';
        
    $bruttogewicht '';
        
    $warenwert '';
        
    $stueck '';
        
    $rechnungspositionsnummer '';
        
    $warenwertHoeherVersicherung '';
        
    $warenartHoeherVersicherung '';
        
    $abteilung '';
        
    $gebaeude '';
        
    $stockwerk '';
        
    $vollstaendigerNameAusweis '';
        
    $telefonIDCheck '';
        
    $ausweisnummer '';
        
    $zielnetzwerk '';
        
    $mrnNummer '';

        
    // Datenzeile für CSV erstellen
        
    $csvRow = array(
        
    $anrede,
        
    $firma,
        
    $vorname,
        
    $nachname,
        
    $land,
        
    $plz,
        
    $ort,
        
    $strasse,
        
    $hausnummer,
        
    $sendungsreferenz1,
        
    $telefon,
        
    $email,
        
    $adresszusatz,
        
    $bundesstaat,
        
    $wareninhalt,
        
    $gewicht,
        
    $default,
        
    $sendungsreferenz2,
        
    $versandprodukt,
        
    $zusatzleistungen,
        
    $anzahlPaketeSendung,
        
    $zollwert,
        
    $waehrung,
        
    $frankatur,
        
    $pakettyp,
        
    $rechnungsnummer,
        
    $rechnungsdatum,
        
    $sprn,
        
    $eoriNummerAbsender,
        
    $uidEmpfaenger,
        
    $bemerkung,
        
    $wtnr,
        
    $anzahlArtikel,
        
    $laenge,
        
    $breite,
        
    $hoehe,
        
    $abstellortVersenderASG,
        
    $zustellinformation,
        
    $artikel,
        
    $herkunftsland,
        
    $nettogewicht,
        
    $bruttogewicht,
        
    $warenwert,
        
    $stueck,
        
    $rechnungspositionsnummer,
        
    $warenwertHoeherVersicherung,
        
    $warenartHoeherVersicherung,
        
    $abteilung,
        
    $gebaeude,
        
    $stockwerk,
        
    $vollstaendigerNameAusweis,
        
    $telefonIDCheck,
        
    $ausweisnummer,
        
    $zielnetzwerk,
        
    $mrnNummer
        
    );



        
    // Datenzeile zum CSV-Datenarray hinzufügen
        
    $csvData[] = $csvRow;
    }

    $connection->close();

    // CSV-Datei erstellen und Daten schreiben
    $filename ''.$benutzer.'---CLASSIC---'.$zeitpunkt.'.csv';
    $file fopen($filename'w');

    // UTF-8 BOM einfügen
    fwrite($file"\xEF\xBB\xBF");

    foreach (
    $csvData as $csvRow) {
        
    $csvRow array_map(function($value) {
            return 
    mb_convert_encoding($value'UTF-8''UTF-8');
        }, 
    $csvRow);
        
    writeCsvLine($file$csvRow';''');
    }

    fclose($file);

    $file_path __DIR__ '/' $filename// Dateipfad relativ zum aktuellen Verzeichnis

    // Checken ob Datei existiert
    if (file_exists($file_path)) {
        
    header('Content-Description: File Transfer');
        
    header('Content-Type: application/csv');
        
    header('Content-Disposition: attachment; filename="' $filename '"');
        
    header('Expires: 0');
        
    header('Cache-Control: must-revalidate');
        
    header('Pragma: public');
        
    header('Content-Length: ' filesize($file_path));

        
    readfile($file_path);
        exit;
    } else {
        die(
    'Error: The file does not exist.');
    }

    ?>
    Wenn man sich selbst solche Scripte schreibt, ist man unabhängig von irgendwelchen shipcloud und ähnlichen Anbietern.

    Das Script muss auf jeden Fall auf den neuesten Stand gebracht werden,
    prepared Statements verwenden, get Variablen durch Post Variablen ersetzen usw. ...

    Viel Spaß damit

    Gruß
    Peter
     
  6. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    14. Juli 2011
    Beiträge:
    995
    Danke erhalten:
    71
    Danke vergeben:
    130
    Vorteile des DPD Print Export Modul:
    • Updatesicher
    • Grafische Benutzer-Oberfläche
    • Export nur für einen bestimmten Bestellstatus möglich
    • Status exportierter Bestellungen kann automatisch geändert werden
    • E-Mail und Telefonnummer werden nur exportiert wenn der Kunde im Bestellprozess eingewilligt hat
    Bei Interesse bitte PN. Individuelle Erweiterungen / Änderungswünsche sind natürlich auch möglich.
     
  7. lutz7

    lutz7 Erfahrener Benutzer

    Registriert seit:
    13. Januar 2014
    Beiträge:
    80
    Danke erhalten:
    8
    Danke vergeben:
    25
    @humpfle, berichte doch mal etwas mehr über das Modul. Ich könnte mir vorstellen, dass der eine oder andere Interesse daran hat.
    Ich würde mich dafür interessieren.

    Gruß Lutz
     
  8. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    14. Juli 2011
    Beiträge:
    995
    Danke erhalten:
    71
    Danke vergeben:
    130
    Ich habe diesbezüglich ein neues Thema erstellt. Bitte alle Fragen zum Modul ab sofort hier :)

    (Link nur für registrierte Nutzer sichtbar.)
     
  9. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    3. Januar 2022
    Beiträge:
    128
    Danke erhalten:
    5
    Danke vergeben:
    38
    Ich mache es mit Shipcloud. Scheint für mich das günstigste zu sein. Wähle manchmal auch UPS bei volumigen Paketen bis 100 cm und "zerbrechlichen" Artikeln. DPD geht extrem rabiat mit Kartons um.

    Allerdings muss ich fast jede Rechnung bei Shipcloud reklamieren, weil ungerechtfertigte Zuschläge von DPD erhoben werden (manchmal kommen die Nachbelastungen auch erst nach Monaten!)
    DPD wähle ich nur, weil ich den direkten Kontakt für die Abholung mit dem Fahrer habe.