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.
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.
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...
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: <?phpdate_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($delimiter, array_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üfenif ($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'], 0, 35, '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 = 9 - 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ügenfwrite($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 existiertif (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
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.
@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
Ich habe diesbezüglich ein neues Thema erstellt. Bitte alle Fragen zum Modul ab sofort hier (Link nur für registrierte Nutzer sichtbar.)
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.