Trade Republic - Provisionsfrei Aktien handeln
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: Lieferung / Versand nach Postleitzahlen (PLZ)

    timopaul

    • modified Team
    • Beiträge: 371
    • Geschlecht:
    Re: MODUL: Lieferung / Versand nach Postleitzahlen (PLZ)
    Antwort #60 am: 22. Juni 2015, 17:05:42
    Ahoi Sascha,

    diese Möglichkeit vom Modul aus würde bestehen, leider hast du dann neben dem roten Text auch eine Möglichkeit zur Auswahl, was ja sicherlich nicht der Fall sein soll. Um dieses Feld zur Auswahl dieser Versandart im Falle des nicht Erreichens des Mindestbestellwert auch nicht anzuzeigen, kommst du um eine Änderung am Shop-Core nicht herum. Wenn du selbst von PHP keine Ahnung hast solltest du diese Aufgabe von einem kundigen Fachmann ausführen lassen.

    Besten Gruß,
    Timo

    sascha@solnet.ch

    • Neu im Forum
    • Beiträge: 21
    Re: MODUL: Lieferung / Versand nach Postleitzahlen (PLZ)
    Antwort #61 am: 22. Juni 2015, 17:19:56
    Hallo Timo,
    Vielen Dank für Deine Antwort.
    Somit muss ich es erstmals abhaken und vergessen.

    Nochmals Dankeschön

    Gruss Sascha

    fishnet

    • Fördermitglied
    • Beiträge: 4.853
    • Geschlecht:
    Re: MODUL: Lieferung / Versand nach Postleitzahlen (PLZ)
    Antwort #62 am: 05. August 2015, 16:00:08
    hat jemand ggf eine Idee zu folgender Situation:
    Modul installiert mit DE - weight - PLZ Bereich 00000-99999
    Mindestwert 0.01
    Versandkosten 25:5.50,50:8.50

    Produkt hat 1 Kilo
    DE ist erlaubt
    tollzipzones ist auch nicht in den Kundengruppen verboten
    Maximal Wert Versandoptionen steht auf 100 Kilo
    Paketleergewicht 0 Kilo
    Zuwachs 0%

    Schritt 1
    Ich lege das Produkt in den Warenkorb. Es kommt im Versandrechner auf der shopping_cart.php die Meldung
    Zitat
    Es ist leider kein Versand in dieses Land möglich (Germany)

    Schritt 2
    Ich klicke auf "zur Kasse". Dort stehen ganz korrekt die Versandkosten.

    Schritt 3
    Ich klicke wieder auf Warenkorb. Nun stehen auch hier wieder die Versandkosten.

    Schritt 4
    Ich klicke darunter auf "Aktualisieren" - und das Spielchen geht wieder los "Es ist leider kein Versand in dieses Land möglich..."

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.743
    • Geschlecht:
    Re: MODUL: Lieferung / Versand nach Postleitzahlen (PLZ)
    Antwort #63 am: 05. August 2015, 19:49:00
    Ohne die Erweiterung genau zu kennen:
    Sieht nach einem Session-Problem aus.
    Such doch mal nach gesetzten $_SESSION['IRGENDWAS'] in den in Frage kommenden Dateien.

    Kann auch oder außerdem noch sein, daß das Modul nicht modified-Standards entspricht und deshalb die /includes/shipping_estimate.php nicht mit dem Teil klar kommt.

    Gruß,
    noRiddle

    timopaul

    • modified Team
    • Beiträge: 371
    • Geschlecht:
    Re: MODUL: Lieferung / Versand nach Postleitzahlen (PLZ)
    Antwort #64 am: 05. August 2015, 21:55:33
    Moin,

    das Zahlungsmodul benötigt zum Berechnen der Versandkosten eine Lieferadresse. Datei /includes/modules/shipping/tollzipzones.php Zeile 55 - 57:

    Code: PHP  [Auswählen]
        // get zipcode and country from the order
        $zipcode = $order->delivery['postcode'];
        $country = $order->delivery['country']['iso_code_2'];

    Im Warenkorb gibt es noch keine Versandadresse zu der Bestellung wenn der Checkout noch nicht gestartet wurde. In diesem Fall würde ich auf die Standard-Adresse des Kunden zur Berechnung zurückgreifen.

    Viel Erfolg,
    Timo

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.743
    • Geschlecht:
    Re: MODUL: Lieferung / Versand nach Postleitzahlen (PLZ)
    Antwort #65 am: 07. August 2015, 18:57:21
    Hmm, das wird doch in der bereits von mir zitierten /includes/shipping_estimate.php gesetzt,
    und zwar nicht auf die Standard-Adresse des Kunden bezogen sondern auf die Auswahl der Zone/des Landes bezogen die der Kunde vornimmt.

    Code: PHP  [Auswählen]
    if (!isset($order->delivery['country']['iso_code_2']) || $order->delivery['country']['iso_code_2'] == ''  || SHOW_ALWAYS_LANG_DROPDOWN) {
      unset($_SESSION['shipping']);
      $delivery_zone_query = xtc_db_query("SELECT countries_id,
                                                  countries_iso_code_2,
                                                  countries_name
                                             FROM "
    .TABLE_COUNTRIES."
                                            WHERE countries_id = '"
    . (int)$selected."'
                                         "
    );
      $delivery_zone = xtc_db_fetch_array($delivery_zone_query);
     
      $order->delivery['country']['iso_code_2'] = $delivery_zone['countries_iso_code_2'];
      $order->delivery['country']['title'] = $delivery_zone['countries_name'];
      $order->delivery['country']['id'] = $delivery_zone['countries_id'];
      $order->delivery['country_id'] = $delivery_zone['countries_id'];
      $order->delivery['zone_id'] = 0;
    }

    Sieht also so aus als wenn die Definition für $order->delivery['postcode'] in der zitierten Datei fehlt.

    Gruß,
    noRiddle

    timopaul

    • modified Team
    • Beiträge: 371
    • Geschlecht:
    Re: MODUL: Lieferung / Versand nach Postleitzahlen (PLZ)
    Antwort #66 am: 07. August 2015, 20:57:17
    Aloha,

    wenn das Land bekannt ist fehlt dem Modul also nur noch die Postleitzahl um die Versandkosten berechnen zu können, Zeilen 55-64:

    Code: PHP  [Auswählen]
        // get zipcode and country from the order
        $zipcode = $order->delivery['postcode'];
        $country = $order->delivery['country']['iso_code_2'];
       
        // check zipcode
        if (!xtc_not_null(trim($zipcode))) {
          // Something is wrong, we didn't find any zone
          $this->enabled = false;
          return false;
        }

    Das Modul müsste dahin gehend erweitert werden dass in diesem Fall eine Standard-Postleitzahl verwendet wird oder dem Kunden an dieser Stelle eine weitere Eingabemöglichkeit dazu geboten wird. Weitere Vorschläge sind gern gesehen.

    Besten Gruß,
    Timo

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.743
    • Geschlecht:
    Re: MODUL: Lieferung / Versand nach Postleitzahlen (PLZ)
    Antwort #67 am: 09. August 2015, 15:32:50
    Da dieser Code im Modul
    Code: PHP  [Auswählen]
        if (!xtc_not_null(trim($zipcode))) {
          // Something is wrong, we didn't find any zone
          $this->enabled = false;
          return false;
        }
    macht, daß das Modul "deaktiviert" gesetzt wird im Falle $order->delivery['postcode'] und somit $zipcode leer ist;
    und da, wenn tollzipzones das einzige installierte Versandmodul ist, es zu der monierten Anzeige kommt "Es ist leider kein Versand in dieses Land möglich", siehe dieser Code
    Code: PHP  [Auswählen]
        if (sizeof($quotes) < 1) {
          $shipping_content[] = array('NAME' => _MODULE_INVALID_SHIPPING_ZONE);
        }
    wie wär's hiermit ?

    1. Den oben zuerst zitierten Code auskommentieren, denn auf der checkout_shipping ist $order->delivery['postcode'] sowieso nie leer und
    2. in /includes/shipping_estimate.php suchen
    Code: PHP  [Auswählen]
        foreach ($quotes as $quote) {
          if ($quote['id'] == 'freeamount') {
            $has_freeamount = true;
            if (isset($quote['methods'])) {
              $free_shipping_freeamount = true;
              break;
            }
          }
        }

    erweitern zu
    Code: PHP  [Auswählen]
        foreach ($quotes as $quote) {
          if ($quote['id'] == 'freeamount') {
            $has_freeamount = true;
            if (isset($quote['methods'])) {
              $free_shipping_freeamount = true;
              break;
            }
          } else if($quote['id'] == 'tollzipzones') {
            $nozipcode = true;
          }
        }

    und etwas tiefer das
    Code: PHP  [Auswählen]
        } else if ($free_shipping_freeamount) {
            $shipping_content[] = array(
                'NAME' => $quote['module'] . ' - ' . $quote['methods'][0]['title'],
                'VALUE' => $xtPrice->xtcFormat(0, true, 0, true)
            );
        } else {

    erweitern zu
    Code: PHP  [Auswählen]
        } else if ($free_shipping_freeamount) {
            $shipping_content[] = array(
                'NAME' => $quote['module'] . ' - ' . $quote['methods'][0]['title'],
                'VALUE' => $xtPrice->xtcFormat(0, true, 0, true)
            );
        } else if($nozipcode === true) {
            $shipping_content[] = array(
                'NAME' => _MODULE_NO_ZIP_CODE_YET,
                'VALUE' => ''
            );
        } else {

    und die Konstante _MODULE_NO_ZIP_CODE_YET in der entsprechenden Sprachdatei definieren in der Art:
    Code: PHP  [Auswählen]
    define('_MODULE_NO_ZIP_CODE_YET', 'Die Versandkosten können erst berechnet werden wenn Ihre PLZ zur Verfügung steht.<br />Melden Sie sich dafür an und gehen Sie zur Kasse');

    Gruß,
    noRiddle

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.195
    • Geschlecht:
    Re: MODUL: Lieferung / Versand nach Postleitzahlen (PLZ)
    Antwort #68 am: 09. August 2015, 18:38:26
    Guter Ansatz! Wäre prima, wenn du dafür wieder ein Komplettpaket bereitstellst.

    Grüße

    Torsten

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.743
    • Geschlecht:
    Re: MODUL: Lieferung / Versand nach Postleitzahlen (PLZ)
    Antwort #69 am: 11. August 2015, 15:26:50
    Ich habe mir das Modul nicht genau angeschaut und es nicht getestet.
    Anleitungen und Pakete schnüren tue ich ungern wenn dies so ist.
    Deshalb bitte ich jemand anders das zu tun (timo_paul ?).

    Gruß,
    noRiddle

    timopaul

    • modified Team
    • Beiträge: 371
    • Geschlecht:
    Re: MODUL: Lieferung / Versand nach Postleitzahlen (PLZ)
    Antwort #70 am: 11. August 2015, 16:28:41
    Ahoi Matrosen,

    würde mich dazu bereits erklären sofern der Bedarf auch an anderen Stellen existiert. Nur nicht mehr Heute und auch nicht mehr diese Woche.

    Karsten, ruf mich doch mal bitte dazu an, auch wenn du zu dem Thema lange nichts mehr von dir hören lassen hast.

    Besten Gruß,
    Timo

    fishnet

    • Fördermitglied
    • Beiträge: 4.853
    • Geschlecht:
    Re: MODUL: Lieferung / Versand nach Postleitzahlen (PLZ)
    Antwort #71 am: 13. August 2015, 07:44:51
    Ich bin im Urlaub  :-D
    aber ein Kollege hat mir eine geänderte shipping_estimate geschickt, die nach seiner Aussage den Fehler behebt.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.743
    • Geschlecht:
    Re: MODUL: Lieferung / Versand nach Postleitzahlen (PLZ)
    Antwort #72 am: 14. August 2015, 19:00:25
    Nach Überfliegen deiner hier geposteten /includes/shipping_estimate.php denke ich, daß das nicht ausreicht.
    Und zwar aus den bereits hier von mir im Thread genannten Gründen.
    Zumindest dürfte, wenn der Kunde nicht eingeloggt ist $order->customer['postcode'] nicht zur Verfügung stehen (weiß gerade nicht ob es eingeloggt zur Verfügung steht).

    Auch verstehe ich nicht warum in der Query $delivery_zone_query nun mittels * alle Felder geholt werden, auch die die unnötig sind.

    Gruß,
    noRiddle

    fishnet

    • Fördermitglied
    • Beiträge: 4.853
    • Geschlecht:
    Re: MODUL: Lieferung / Versand nach Postleitzahlen (PLZ)
    Antwort #73 am: 17. August 2015, 16:08:27
    Anbei eine neue Version der tollzipzones. Mag mal jemand drüber gucken?
    Gruß
    Karsten

    fishnet

    • Fördermitglied
    • Beiträge: 4.853
    • Geschlecht:
    Re: MODUL: Lieferung / Versand nach Postleitzahlen (PLZ)
    Antwort #74 am: 17. August 2015, 16:55:09
    Dazu gehört dann noch die neue Version der shippping estimate, anbei.
    Shop Hosting
    5 Antworten
    5956 Aufrufe
    30. Dezember 2016, 00:29:34 von md_kks
    24 Antworten
    10542 Aufrufe
    28. Dezember 2016, 02:23:21 von md_kks
    8 Antworten
    7682 Aufrufe
    20. Juni 2018, 15:45:01 von fishnet
               
    anything