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: MODUL: Export von Bestellungen für Labelprint DPD, GLS, HERMES, etc.

    karsta.de

    • Experte
    • Beiträge: 3.056
    Ich meinte zusätzlich aber auch noch unser Thema weiter oben bzgl. TABLE_ORDERS_STATUS_HISTORY.

    Da bin ich noch dran, hab nur momentan dafür noch keine Zeit gefunden.

    BG Karsta

    andrewx

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

    wir benutzen dieses GLS Export Modul schon seit langem, das Exportfile wird in ein Verzeichnis geschrieben, das sekündlich von der GLS Software ausgelesen wird, dann wird automatisch das Label gedruckt und die Daten an GLS weitergesendet. So weit, so gut :)

    ABER seit kurzen haben wir immer mehr Bestellungen aus dem Ausland und bei dem Modul scheint es so zu sein das die Länderkennung DE Hardcoded ist, was natürlich zu Fehler in der GLS Software und zu unnötiger Nacharbeit führt

    gls.php Zeile
    118: $country_short = 'D';
    119: $country = 'DE';

    Das Exportfile (gls.txt) sieht dann so aus
    89859; ;freeamount_freeamount; ;invoice; ; ;Max Mustermann;Musterstrasse 32 ;D;1030;Wien;0157xxxxx; ;info@nix.at; ; ; ;Max Mustermann;Musterstrasse 32 ;1030;Wien;D;792,78; ;freeamount_freeamount; ;27912; ; ;DE;DE; ;NP; ; ; ;

    Habe schon eines mit meinen rudimentären Programmierkenntnissen ausprobiert, aber schaffe es nicht das dort die korrekte Länderkennung aus der DB ausgelesen und eingefügt wird. :(

    Wer hat einen Tipp für mich, lasse es mir auch 2-3 Kisten Bier kosten ;)

    Vielen Dank im Voraus

    MfG

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.707
    • Geschlecht:
    Ich kenne die Spezifikationen für das Modul nicht.
    Jedenfalls steckt in customers['delivery_country_iso_code_2'] das was du suchst. Es müsste also helfen aus dem
    Code: PHP  [Auswählen]
    $country = 'DE';

    das zu machen
    Code: PHP  [Auswählen]
    $country = customers['delivery_country_iso_code_2'];

    Wozu $country_short dienen soll weiß ich nicht. Dafür gibt es auch keine Entsprechung in der Datenbank.

    Gruß,
    noRiddle

    andrewx

    • Fördermitglied
    • Beiträge: 31
    • Geschlecht:
    Hallo noRiddle,

    danke für deinen Denkanstoss, das war es leider noch nicht, wenn ich die Zeile austausche, sieht das Exportfile (gls.txt) dann so aus:
    898789; ;freeamount_freeamount; ;invoice; ; ;Max Mustermann;Musterstrasse 32 ;D;1030;Wien;0157xxxxx; ;info@nix.at; ; ; ;Max Mustermann;Musterstrasse 32 ;1030;Wien;D;792,78; ;freeamount_freeamount; ;27912; ; ;c;c; ;NP; ; ; ;

    Dort wo "AT" stehen sollte steh nun ein kleines "c"

    MfG

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.707
    • Geschlecht:
    Das war kein Denkanstoss somdern die Lösung.
    Vor customers fehlt das Dollarzeichen, sorry.
    Gehört also so:
    Code: PHP  [Auswählen]
    $country = $customers['delivery_country_iso_code_2'];

    Gruß,
    noRiddle

    andrewx

    • Fördermitglied
    • Beiträge: 31
    • Geschlecht:
    Hallo noRiddle,

    Code: PHP  [Auswählen]
    $country = $customers['delivery_country_iso_code_2'];

    Das sieht schon besser aus, nun wird AT eingesetzt, werde das morgen im Live-Betrieb testen und schauen, ob die GLS Software das so fehlerfrei nimmt, werde berichten, vielen Dank erstmal.

    MfG

    andrewx

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

    das war es leider noch nicht, obwohl im Export-File 2x AT,AT drin steht, nimmt er irgendwoher noch das DE

    Das Label sieht nun so aus:
    [ Für Gäste sind keine Dateianhänge sichtbar ]

    MfG

    karsta.de

    • Experte
    • Beiträge: 3.056
    Versuche es mal hiermit. (Anhang)

    Ich kenne jetzt nicht die Anforderungen von GLS, aber muss nicht irgendwo auch das Land des Shopbetreibers stehen, also von wo der Versand losgeht?

    BG Karsta

    andrewx

    • Fördermitglied
    • Beiträge: 31
    • Geschlecht:
    Nachtrag:
    habe es gefunden, mit diesen Änderungen im gls.php File funktioniert es reibungslos

             $country_short = $customers['delivery_country_iso_code_2'];
             $country = $customers['delivery_country_iso_code_2'];

    PS: Hat sich mit Karste.de Antwort überschnitten!

    Vielen lieben Dank an noRiddle und Karsta!

    MfG

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.161
    • Geschlecht:
    Ich habe den Export für myDPD aus Beitrag 1 mal aktualisiert, da nun wohl eine Kopfzeile in der CSV-Datei erforderlich ist und die Datei latin1 erzeugt sein muss. Zusätzlich sind noch einige Fehler korrigiert.

    Grüße

    Torsten

    rjung

    • Mitglied
    • Beiträge: 120
    • Geschlecht:
    Hallo Torsten,

    danke für das tolle Modul. Das nimmt uns hier viel Schreiberei ab.  Allerdings passiert es immer mal wieder, da jemand im Büro vergisst den Bestellstatus auszuwählen und so eine dicke Versandliste bekommt ;-)

    Es ist doch sicherlich möglich das Script dahin gehend anzupassen, dass ein im Script eingestellter Bestellstatus abgerufen wird.  Bei uns heißt dieser "DPD Export"

    Was müsste ich denn da ändern ?

    Grüße
    René

    karsta.de

    • Experte
    • Beiträge: 3.056
    Schau mal in Zeile 315 und 316:
    Code: PHP  [Auswählen]
                    //$default_oders_status = '2';
                    //$default_oders_status_new = '3';
                    $default_oders_status = '';
                    $default_oders_status_new = '';

    Du kannst hier
    default_oders_status (Bitte wählen Sie den Bestellstatus der Bestellungen, die Sie exportieren wollen) und default_oders_status_new (Bitte wählen Sie den Bestellstatus, der nach dem Export für die jeweilige Bestellung gelten soll:) festlegen.
    Das heißt, du solltest dann die Zeilen so ändern:
    Code: PHP  [Auswählen]
                    $default_oders_status = '2';
                    $default_oders_status_new = '3';
                    //$default_oders_status = '';
                    //$default_oders_status_new = '';
     

    Für die Zahlen natürlich die ID des Bestellstatus eintragen, der für die jeweilige Aktion vorausgewählt sein soll.

    BG Karsta

    rjung

    • Mitglied
    • Beiträge: 120
    • Geschlecht:
    :thx: genau das habe ich gesucht. Mal wieder einfacher als gedacht. Manchmal sieht man den Wald vor lauter Bäumen nicht.

    online-beobachter

    • Schreiberling
    • Beiträge: 405
    Das Modul läuft leider noch nicht mit Version 3.0.0, weiß jemand genaueres was geändert wurde und worauf zu achten ist?
    Bei einem anderen Exportmodul wurde die Sprachdatei wohl ausgelagert, allerdings brachte mein Versuch dieses Modul ähnlich umzugestallten bisher noch nichts.

    online-beobachter

    • Schreiberling
    • Beiträge: 405
    Ich habe nun einen Teil des Codes abgeändert, das Modul (hier Beispiel Hermes) lässt sich dann soweit mal installieren.
    Allerdings werden keine Adressen exportiert (txt-Datei leer) und auch der Status wird nicht abgeändert?

    Code: PHP  [Auswählen]
    class hermes {
            var $code, $title, $description, $enabled;

            function hermes() {
                    global $order;

                    $this->code = 'hermes';
                    $this->title = MODULE_HERMES_TEXT_TITLE;
                    $this->description = MODULE_HERMES_TEXT_DESCRIPTION;
                    $this->sort_order = ((defined('MODULE_HERMES_SORT_ORDER')) ? MODULE_HERMES_SORT_ORDER : 0);
                    $this->enabled = ((defined('MODULE_HERMES_STATUS') && MODULE_HERMES_STATUS == 'True') ? true : false);
                    $this->CAT = array ();
                    $this->PARENT = array ();

            }

            function process($file) {
                    @ xtc_set_time_limit(0);
     

    ändern in:
    Code: PHP  [Auswählen]
    class hermes {
            var $code, $title, $description, $enabled;

            //function hermes() { //(durch function __construct ersetzt)
            //      global $order; //(entfernt - nach unten verschoben)

            function __construct()
            {
                   
                    $this->code = 'hermes';
                    $this->title = MODULE_HERMES_TEXT_TITLE;
                    $this->description = MODULE_HERMES_TEXT_DESCRIPTION;
                    $this->sort_order = ((defined('MODULE_HERMES_SORT_ORDER')) ? MODULE_HERMES_SORT_ORDER : 0);
                    $this->enabled = ((defined('MODULE_HERMES_STATUS') && MODULE_HERMES_STATUS == 'True') ? true : false);
                    $this->CAT = array ();
                    $this->PARENT = array ();

            }

            function process($file) {
                    global $order; //(hierher verschoben)
           
                    @ xtc_set_time_limit(0);
     

    Vielleicht hat jemand eine Idee?
    21 Antworten
    18866 Aufrufe
    08. Mai 2019, 11:15:44 von online-beobachter
    2 Antworten
    2655 Aufrufe
    21. Oktober 2014, 21:02:20 von beeb
    2 Antworten
    2174 Aufrufe
    03. März 2015, 16:54:06 von andreasge1987
    7 Antworten
    3343 Aufrufe
    29. April 2022, 13:47:15 von BirdBox
               
    anything