Managed Server
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: ANLEITUNG: Versandart ausblenden, wenn Gewichtsstaffel nicht zutreffend

    Marcel1080

    • Neu im Forum
    • Beiträge: 34
    Hi all,

    habe da mal wieder so ein kleines problemchen oder auch herausforderung (hört sich ja besser an). ;-)

    Ich habe 3 Versandarten Selbstabholung, DHL Deutschland und die gute alte Deutsche Post.

    Selbstabholung ist klar 0€
    Deutsche Post ist von 0 g bis 500g
    DHL von 0,5 Kg bis 31,5

    Wenn Jetzt jemand was bestellt das über 0,5 KG ist wird trotzdem die Deutsche Post angezeigt mit dem Wortlaut:

    Zitat
    Kann nicht berechnet werden 0,00€

    Wie sollte es anders sein hat ein Kunde der 5 Kg hatte dieses genommen und auch nur das Geld für die Ware bezahlt. (Nennt man dann wohl pp für mich)

    Nun meine Frage: Wie kann ich die Deutsche Post ausblenden wenn es über ein Gewicht von 0,5 Kg ist?

    Danke euch für eure Hilfe

    Bis denne Marcel

    [EDIT Tomcraft 19.09.2015: Hier geht es direkt zur Anleitung.]

    Linkback: https://www.modified-shop.org/forum/index.php?topic=6655.0

    Marcel1080

    • Neu im Forum
    • Beiträge: 34
    Hi all,

    ist das Thema wirklich so heikel oder ist es so einfach so, dass keiner eine Lösung hat?

    Bis denne Marcel

    Haketing

    • Fördermitglied
    • Beiträge: 49
    • Geschlecht:
    Hallo Marcel, das Problem habe ich auch gerade. Unser Shop hat momentan deswegen nur 2 Versandoptionen, da ich das Optimale noch nicht fertig programmiert habe.

    [...]
    Wenn Jetzt jemand was bestellt das über 0,5 KG ist wird trotzdem die Deutsche Post angezeigt mit dem Wortlaut: "Kann nicht berechnet werden 0,00€".
    [...]

    Das möchte ich, wie bei der Option Versandkostenfrei, mit einer IF Abfrage lösen.
    Wenn Warenkorb über 30 Euro, dann erscheint der Radiobutton zur Auswahl. Wenn Warenkorb unter 30 Euro, dann kann man ihn nicht anklicken.

    In Deinem Fall: "Kann nicht berechnet werden" in "Ihr Warenkorb ist zu schwer für diese Variante" ohne Auswahl Button und ohne Preis, bzw. Warensendung für 1,65 Euro.

    Mein Problem ist auch noch folgendes: Bestellt jemand etwas über 30,- Euro hat er nur die Auswahl von "Versandkostenfrei". Kosten für uns. Und das obwohl er im Ort wohnt und es selbst abholen möchte.

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    Hat jemand eine Idee, wie man diese beiden Varianten gleichzeitig bringt?

    Wenn ich die IF Abfrage fertig habe, stelle ich sie hier zur Verfügung und sende Dir eine PM.

    :search:

    Ich habe nach selfpickup, selbstabholung und Abholung gesucht, aber leider nichts gefunden. Oder gibt es hier schon eine Lösung und ich bin blind? 8)

    Schönen Feierabend

    Thomas

    Haketing

    • Fördermitglied
    • Beiträge: 49
    • Geschlecht:
    Daraus bastele ich die Ausblendung Deutsche Post, wenn Warenkorb zu schwer.
    Heute aber nicht mehr.

    Code: PHP  [Auswählen]
    $module_smarty->assign('FREE_SHIPPING', $free_shipping);

            # free shipping or not...

            if ($free_shipping == true) {

                    $module_smarty->assign('FREE_SHIPPING_TITLE', FREE_SHIPPING_TITLE);

                    $module_smarty->assign('FREE_SHIPPING_DESCRIPTION', sprintf(FREE_SHIPPING_DESCRIPTION, $xtPrice->xtcFormat(MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER, true, 0, true)).xtc_draw_hidden_field('shipping', 'free_free'));

                    $module_smarty->assign('FREE_SHIPPING_ICON', $quotes[$i]['icon']);

            } else {

                    $radio_buttons = 0;

                    #loop through installed shipping methods...

                    for ($i = 0, $n = sizeof($quotes); $i <$n; $i ++) {

                            if (!isset ($quotes[$i]['error'])) {

                                    for ($j = 0, $n2 = sizeof($quotes[$i]['methods']); $j <$n2; $j ++) {

                                            # set the radio button to be checked if it is the method chosen

                                            $quotes[$i]['methods'][$j]['radio_buttons'] = $radio_buttons;

                                            $checked = (($quotes[$i]['id'].'_'.$quotes[$i]['methods'][$j]['id'] == $_SESSION['shipping']['id']) ? true : false);

                                            if (($checked == true) || ($n == 1 && $n2 == 1)) {

    Thomas

    web28

    • modified Team
    • Beiträge: 9.404
    @Marcel

    Das ist ganz einfach zu lösen.

    Beispiel für das DP Modul:

    Diesen Code:

    Code: PHP  [Auswählen]
    if ($shipping == -1) {
              $shipping_cost = 0;
              $shipping_method = MODULE_SHIPPING_DP_UNDEFINED_RATE;
            } else {

    durch diesen ersetzen:

    Code: PHP  [Auswählen]
    if ($shipping == -1) {
              $shipping_cost = 0;
              $shipping_method = MODULE_SHIPPING_DP_UNDEFINED_RATE;
                      $this->quotes['error'] = MODULE_SHIPPING_DP_UNDEFINED_RATE;
                      return $this->quotes;
            } else {

    Gruss Web28

    Haketing

    • Fördermitglied
    • Beiträge: 49
    • Geschlecht:
    Hallo Web28,

    das ging ja doch einfacher als ich gedacht habe.
    Jetzt muss nur noch der graue Balken, wo die Überschrift fehlt, weg.

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    Danke für den Tipp, den Rest finde ich bestimmt noch.

    Thomas

    Marcel1080

    • Neu im Forum
    • Beiträge: 34
    @web28

    Danke Dir für Deine Hilfe!

    Ich habe es auch gleich umgesetzt und es klappt auf anhieb.

    Nochmals vielen Dank.

    Bis denne Marcel

    web28

    • modified Team
    • Beiträge: 9.404
    Das sieht natürlich unschön aus!

    Also auf ein neues.

    Beispiel für das DP Modul:

    Diesen Code:

    Code: PHP  [Auswählen]
    if ($shipping == -1) {
              $shipping_cost = 0;
              $shipping_method = MODULE_SHIPPING_DP_UNDEFINED_RATE;
            } else {

    durch diesen ersetzen:

    Code: PHP  [Auswählen]
    if ($shipping == -1) {
              $shipping_cost = 0;
              $shipping_method = MODULE_SHIPPING_DP_UNDEFINED_RATE;
                      $this->quotes['module']= MODULE_SHIPPING_DP_TEXT_TITLE;
                      $this->quotes['error'] = MODULE_SHIPPING_DP_UNDEFINED_RATE;
                      $this->quotes['hidden'] = 'True';
                      return $this->quotes;
            } else {

    Damit das mit dem hidden funktioniert, muss die checkout_shipping_block.html angepasst werden. Innerhalb der ersten foreach Schleife ist eine if Abfrage einzubauen:

    Code: PHP  [Auswählen]
    {foreach name=aussen item=module_data from=$module_content}
    {if $module_data.hidden!='True'}
    <table class="shippingblock" width="100%" border="0" cellspacing="0" cellpadding="6">

    ....

    </table>
    {/if}
    {/foreach}

    Damit lässt sich die Versandart nach belieben anzeigen, bei $this->quotes['hidden'] = 'False'; wird die Versandart mit dem Textbaustein MODULE_SHIPPING_ZONES2_UNDEFINED_RATE ohne Radiobutton angezeigt

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    Gruss Web28

    [EDIT Tomcraft 19.09.2015: Anleitung in Beitrag 1 verlinkt.]

    tuvalu

    • Neu im Forum
    • Beiträge: 28
    Hi,

    danke, das funktioniert sehr gut. Aber kein Posting ohne Problem.

    Im Warenkorb werden die Versandkostenmodule auch angezeigt. Und da kommt dann "MODULE_SHIPPING_DP_TEXT_TITLE - MODULE_SHIPPING_DP_UNDEFINED_RATE:"

    Ich denke in der order_details.html wird das geregelt. Aber

    Code: PHP  [Auswählen]
        {foreach name=aussen item=shipping_data from=$shipping_content}
            {if $module_data.hidden!='True'}
          {$shipping_data.NAME}: {$shipping_data.VALUE}<br />
            {/if}  
        {/foreach}

     funktioniert da (natürlich) nicht. Sind offenbar unterschiedlich Paar Schuhe.

    Gibt dazu eine Lösung?  :whistle:

    Sonst kann ich das auch auskommentieren und den Link zu den Versandkosten drunter setzen.

    Danke
    Michael

    tuvalu

    • Neu im Forum
    • Beiträge: 28
    Okay, noch mal gelesen und nun wohl verstanden. Soll ja so sein!  :datz:

    Mein Fehler, hatte von der checkout_shipping (da wird der Text bei mir nicht angezeigt) auf den Warenkorb geschlossen. Einfach mal den Text definieren und fertig. Momentan lasse ich aber keine Stolperfalle aus.  :paperbag:

    Danke und weg.

    Michael

    Karfunkel

    • Mitglied
    • Beiträge: 146
    • Geschlecht:
    Also bei mir klappt das nicht, ich finde ja noch nicht mal den richtigen Eintarg in der dp.
    Kann es sein, dass sich die Module in Version v2.0.3.0 rev 10907 geändert haben.

    Würde mir jemand die Datei so editieren, dass es funktioniert, wäre echt super, hänge jetzt schon seit Stunden daran. Die Versandkosten sollen halt einfach nur ausgeblendet werden, wenn der Bestellwert von 20€ erreicht ist.

    Schon mal Danke und viele Grüße
    Andre

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Bitte sehr.

    Karfunkel

    • Mitglied
    • Beiträge: 146
    • Geschlecht:
    Danke schön aber dp erscheint immer noch in der Kasse.

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Hast du auch diese Datei (checkout_shipping_block.html) angepasst?

    Karfunkel

    • Mitglied
    • Beiträge: 146
    • Geschlecht:
    Nein, was muss da geändert werden?
               
    anything