Templateshop - Eine große Auswahl an neuen und modernen Templates für die modified eCommerce Shopsoftware
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: DHL Versand & Label-Erstellung

    Timm

    • Fördermitglied
    • Beiträge: 6.255
    Re: MODUL: DHL Versand & Label-Erstellung
    Antwort #405 am: 20. Oktober 2022, 08:59:19
    Moin

    Im Bugtracker beim Reiter „Neues Ticket“.

    https://trac.modified-shop.org/newticket

    Gruß Timm

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.984
    • Geschlecht:
    Re: MODUL: DHL Versand & Label-Erstellung
    Antwort #406 am: 21. Oktober 2022, 09:16:59
    @CBaumi02
    Um es auch beim nächsten mal zu finden:
    Im Menu oben unter

    modified
    eCommerce Shopsoftware


    gibt es den Menu-Punkt "Bug-Tracker". Der Rest ergibt sich von selbst.

    @Timm
    Hast du die Sache mit den Regex weiter verfolgt ?

    Gruß,
    noRiddle

    Timm

    • Fördermitglied
    • Beiträge: 6.255
    Re: MODUL: DHL Versand & Label-Erstellung
    Antwort #407 am: 23. Oktober 2022, 22:36:45
    @noRiddle
    Sorry beim Update des Shops wurde das überschrieben.

    Ich hab mir die letzten Seiten nochmal durchgelesen und der Code müsste aus Antwort #384 und Antwort #392 zusammengesetzt so sein, korrekt?

    Code: PHP  [Auswählen]
    function parse_street_address($street_address) {
      preg_match_all("#(?<!^str\. )(?<!^str\.)(?<![0-9])[0-9]{1,5}[\/ \-0-9a-zA-Z,\.]*#im", $street_address, $matches, PREG_SET_ORDER);
      if (count($matches) < 1) {
        preg_match_all("![0-9]{1,5}[/ \- 0-9 a-z A-Z,\.]*!m", $street_address, $matches, PREG_SET_ORDER);
      }
      if (count($matches) < 1) {
        preg_match_all("/^([\d][a-z-\/\d]*)|[\s]+([\d][a-z-\/][\d]*)/i", $street_address, $matches, PREG_SET_ORDER);
      }
      if (count($matches) < 1) {
        preg_match_all("![0-9]{1,5}[/ \- 0-9 a-z A-Z]*!m", $street_address, $matches, PREG_SET_ORDER);
      }
     
      $addr = end($matches);
     
      return array(
        'street_name' => ((isset($addr[0])) ? trim(str_replace(array(trim($addr[0]), '/'), '', $street_address), ', ') : $street_address),
        'street_number' => ((isset($addr[0])) ? trim($addr[0]) : ''),
      );
    }

    Dann würde ich das nochmal einbauen.

    Gruß Timm

    EDIT:
    Du hast aus private function das private herausgenommen. Mit Absicht? In deinen ersten beiden Versionen war es noch drin, aber in den letzten beiden nicht mehr.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.984
    • Geschlecht:
    Re: MODUL: DHL Versand & Label-Erstellung
    Antwort #408 am: 24. Oktober 2022, 03:44:51
    Wenn ich das richtig sehe, habe momentan nicht die Zeit mich da nochmal komplett reinzudenken, ist der Code aus Antwort #387 mein letzter Vorschlag. Dazu dann noch den Austausch des ersten preg_match_all() wie in Antwort #392 beschrieben vornehmen.
    In der kurz darauf folgenden Antwort #394 habe ich ja auch mal die getesteten Adressformen aufgeführt.

    Gruß,
    noRiddle

    Timm

    • Fördermitglied
    • Beiträge: 6.255
    Re: MODUL: DHL Versand & Label-Erstellung
    Antwort #409 am: 24. Oktober 2022, 10:37:06
    Moin

    Und was ist mit "function" statt "private function"?

    Gruß Timm

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.984
    • Geschlecht:
    Re: MODUL: DHL Versand & Label-Erstellung
    Antwort #410 am: 24. Oktober 2022, 10:51:36
    Naja, wenn es im Original private function heißt, dann natürlich so.
    Hat allerdings keinen Einfluß auf die Funktion.

    Gruß,
    noRiddle

    online-beobachter

    • Schreiberling
    • Beiträge: 417
    Re: MODUL: DHL Versand & Label-Erstellung
    Antwort #411 am: 25. Oktober 2022, 09:06:40
    Hallo,

    ich nutze das Modul seit längerem und auch in der aktuellsten Version in einem 2.0.4.2
    Es kommt gelegentlich vor, dass nach einem Labeldruck - meist mehrere Minuten (ohne zutun) später das selbe alte Label nochmals heruntergeladen wird und am Desktop erscheint.
    Kennt jemand dieses Phänomen und wenn ja was kann man dagegen machen?
    Hatte deswegen schon mehrfach falsche Frankierungen, weil das alte Label gedruckt wurde, weil es nicht das war, was erwartet wurde.
    Bei dem alten DHLGKAPI Modul tritt dieses Problem nicht auf.

    Gruß

    Timm

    • Fördermitglied
    • Beiträge: 6.255
    Re: MODUL: DHL Versand & Label-Erstellung
    Antwort #412 am: 28. Oktober 2022, 23:38:03
    @noRiddle
    Habs jetzt wie in Antwort #407 geschrieben eingebaut nach deiner Antwort #384 & Antwort #392.

    Deine Antwort #387 war nicht nötig, wie ich in Antwort #388 geschrieben hatte, da ich es im falschen  Shop eingebaut hatte.

    Gruß Timm

    Timm

    • Fördermitglied
    • Beiträge: 6.255
    Re: MODUL: DHL Versand & Label-Erstellung
    Antwort #413 am: 02. November 2022, 21:14:40
    Moin

    Ich hab heute ein Label nach Frankreich gehabt, das nicht leitcodierbar war mit der Meldung, dass die Strasse zu lang sei und deshalb gekürzt wurde. Erstellung aber nicht möglich.

    Hausnummer wurde aus Diskretion von mir verändert, war aber auch vorher zweistellig.

    99 Rue Jean Monnet
    wurde vom Kunde angegeben und führte zu der Meldung.

    Rue Jean Monnet 99
    hab dann die Hausnummer dahinter geschrieben und es wurde ein leitcodierbares Label erstellt.

    Auf dem Label stand es dann wieder automatisch andersherum als
    99 Rue Jean Monnet

    Die Fehlermeldung, dass die Strasse zu lang sei kann dann doch gar nicht passen. Ob Hausnummer davor oder dahinter ist am Ende genauso lang.

    @noRiddle
    An deiner Änderung kann es nicht liegen, oder?

    Gruß Timm

    Viol

    • Fördermitglied
    • Beiträge: 2.279
    Re: MODUL: DHL Versand & Label-Erstellung
    Antwort #414 am: 03. November 2022, 06:40:41
    Moin Timm,

    Wir verschicken regelmäßig auch nach Frankreich. Diese Fehlermeldung hatte ich noch nicht. "56, rue Edouard Branly" lief ganz normal durch.

    Timm

    • Fördermitglied
    • Beiträge: 6.255
    Re: MODUL: DHL Versand & Label-Erstellung
    Antwort #415 am: 03. November 2022, 09:38:16
    Moin

    @Viol
    Danke für die Rückmeldung. In meinem Testshop funktioniert es mit der Strasse und Hausnummer voran auch.

    @noRiddle
    Wenn ich die original includes/external/dhl/DHLBusinessShipment.php in meinem Testshop abändere mit deinem Vorschlag, so wie es auch im Liveshop drin ist (siehe Antwort #412), dann kommt es zu folgender Fehlermeldung, wenn Hausnummer vor Strasse.

    Code: XML  [Auswählen]
    [2022-11-03 09:32:18]   [debug] [dhl]   [pid:471]       CreateLabel     {"exception":["Bitte geben Sie eine Stra\u00dfe an.","Bitte geben Sie eine Stra\u00dfe an.","Bitte geben Sie eine Stra\u00dfe an.","Der eingegebene Wert ist zu lang und wurde gek\u00fcrzt."]} {}

    Grüße Timm

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.984
    • Geschlecht:
    Re: MODUL: DHL Versand & Label-Erstellung
    Antwort #416 am: 03. November 2022, 21:43:00
    Stimmt, weil es so aufgelöst wird:

    Array
    (
        [street_name] =>
        [street_number] => 99 Rue Jean Monnet
    )

    Habe den Grund noch nicht gefunden. Melde mich nochmal dazu.

    Gruß,
    noRiddle

    Timm

    • Fördermitglied
    • Beiträge: 6.255
    Re: MODUL: DHL Versand & Label-Erstellung
    Antwort #417 am: 03. November 2022, 21:47:02
    Danke!

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.984
    • Geschlecht:
    Re: MODUL: DHL Versand & Label-Erstellung
    Antwort #418 am: 05. November 2022, 15:38:46
    Eine Veränderung der Reihenfolge der Regex' scheint Erfolg zu haben (ich habe die Delimiter mal vereinheitlicht in #):
    Code: PHP  [Auswählen]
    function parse_street_address($street_address) {
      preg_match_all("#^([\d][a-z-\/\d]*)|[\s]+([\d][a-z-\/][\d]*)#i", $street_address, $matches, PREG_SET_ORDER);
      if (count($matches) < 1) {
        preg_match_all("#(?<!^str\. )(?<!^str\.)(?<![0-9])[0-9]{1,5}[\/ \-0-9a-zA-Z,\.]*#im", $street_address, $matches, PREG_SET_ORDER);
      }
      if (count($matches) < 1) {
        preg_match_all("#[0-9]{1,5}[\/ \- 0-9 a-z A-Z,\.]*#m", $street_address, $matches, PREG_SET_ORDER);
      }
      if (count($matches) < 1) {
        preg_match_all("#[0-9]{1,5}[/ \- 0-9 a-z A-Z]*#m", $street_address, $matches, PREG_SET_ORDER);
      }
     
      $addr = end($matches);
     
      return array(
        'street_name' => ((isset($addr[0])) ? trim(str_replace(array(trim($addr[0]), '/'), '', $street_address), ', ') : $street_address),
        'street_number' => ((isset($addr[0])) ? trim($addr[0]) : '')
      );
      //return $matches;
    }

    Ob das nun weider mit anderen Adress-Formaten kollidieren könnte weiß ich nicht, weshalb es schön wäre wenn weitere User das testen würden, vor allem auch User die internationale Kunden haben.

    Ich habe diese Adressen erfolgreich getestet:
    $nr_str_address1 = 'Hoejdevej 35, 3.tv';           //Holländische Adresse
    $nr_str_address2 = 'Str. 50 15c';                  //Varianten Berliner Adresse
    $nr_str_address3 = 'Str.50 15c';                   //     "
    $nr_str_address4 = 'Str. 50/15c';                  //     "
    $nr_str_address5 = 'Str.50/15c';                   //     "
    $nr_str_address6 = 'Herforder Str. 75';            //"normale" Adresse
    $nr_str_address7 = 'Im Mansfeld 47';               //"normale" Adresse
    $nr_str_address8 = 'August-Bebel-Allee 115';       //"normale" Adresse
    $nr_str_address9 = 'Heinrich Heine Chaussee 12';   //"normale" Adresse
    $nr_str_address10 = 'Markdorferstr. 4/1';          //Friedrichshafener Adresse
    $nr_str_address11 = 'A 2';                         //Mannheimer Adresse
    $nr_str_address12 = '99 Rue Jean Monnet';          //franz. Adresse

    Ausgabe:
    Hoejdevej 35, 3.tv:
    Array
    (
        [street_name] => Hoejdevej
        [street_number] => 35, 3.tv
    )

    Str. 50 15c:
    Array
    (
        [street_name] => Str. 50
        [street_number] => 15c
    )

    Str.50 15c:
    Array
    (
        [street_name] => Str.50
        [street_number] => 15c
    )

    Str. 50/15c:
    Array
    (
        [street_name] => Str. 50
        [street_number] => 15c
    )

    Str.50/15c:
    Array
    (
        [street_name] => Str.50
        [street_number] => 15c
    )

    Herforder Str. 75:
    Array
    (
        [street_name] => Herforder Str.
        [street_number] => 75
    )

    Im Mansfeld 47:
    Array
    (
        [street_name] => Im Mansfeld
        [street_number] => 47
    )

    August-Bebel-Allee 115:
    Array
    (
        [street_name] => August-Bebel-Allee
        [street_number] => 115
    )

    Heinrich Heine Chaussee 12:
    Array
    (
        [street_name] => Heinrich Heine Chaussee
        [street_number] => 12
    )

    Markdorferstr. 4/1:
    Array
    (
        [street_name] => Markdorferstr.
        [street_number] => 4/1
    )

    A 2:
    Array
    (
        [street_name] => A
        [street_number] => 2
    )

    99 Rue Jean Monnet:
    Array
    (
        [street_name] => Rue Jean Monnet
        [street_number] => 99
    )

    Gruß,
    noRiddle

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.984
    • Geschlecht:
    Re: MODUL: DHL Versand & Label-Erstellung
    Antwort #419 am: 11. November 2022, 13:45:55
    Timm, keine Lust mehr ?

    Gruß,
    noRiddle
    5 Antworten
    5953 Aufrufe
    17. Oktober 2021, 12:11:59 von Timm
    7 Antworten
    1954 Aufrufe
    10. Mai 2022, 14:46:11 von Ben
    3 Antworten
    4035 Aufrufe
    28. Januar 2015, 20:51:26 von Tomcraft
    2 Antworten
    2064 Aufrufe
    07. Oktober 2016, 11:50:48 von h-h-h
               
    anything