Marktplatz - Eine große Auswahl an neuen und hilfreichen Modulen sowie 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: Nachnahme ab xy kg deaktivieren

    Chrisip

    • Frisch an Board
    • Beiträge: 81
    Nachnahme ab xy kg deaktivieren
    am: 05. Januar 2010, 14:42:51
    Hallo miteinander,

    jetzt steht der Shop kurz vor der Wiedereröffnung, aber ein großes Problem hab ich leider noch.

    Wie kann ich erreichen, dass der Shop die Zahlungsvariante Nachnahme ab einem bestimmten Gewicht nicht zulässt bzw. deaktiviert?

    Im oscommerce Forum habe ich etwas gefunden, dass folgendermaßen aussieht:

    in der includes/paymen/cod.php suche nach

    Code: PHP  [Auswählen]
    $this->enabled = ((MODULE_PAYMENT_COD_STATUS == 'True') ? true : false);
     
    und füge davor folgendes ein

    Code: PHP  [Auswählen]
    // nur bis X KG
    if ($total_weight <SHIPPING_MAX_WEIGHT_COD)  {
    dann noch eine Klammer
    Code: PHP  [Auswählen]
    }
    nach

    Code: PHP  [Auswählen]
    $this->order_status = MODULE_PAYMENT_COD_ORDER_STATUS_ID;}
     
    und in die Datenbank über den phpmyadmin

    Code: SQL  [Auswählen]
    INSERT INTO
    VALUES ( '','SHIPPING_MAX_WEIGHT_COD', '40', 7, 99,'2009-02-17 17:30:39', '2009-02-17 17:30:39', NULL , NULL );
     
    Die obigen Änderungen hab ich durchgeführt und dann wird im Admin unter Konfiguration->Versandoptionen auch ein Feld hinzugefügt in dem schon 40kg als Höchstgewicht für Nachnahmesendungen eingetragen sind.

    Das dumme nur ist, dass dies im Bestellablauf nicht beachtet wird :-(

    Unter Versandoptionen wird mir im übrigen auch eine Fehlermeldung "in der admin/configuration.php fehlt in Zeile (ich glaube 238 war die eine der beiden)" angezeigt.

    Kann mir jemand dabei helfen, das zum laufen zu bringen?

    beste Grüße
    Chrischan



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

    Markus

    • modified Team
    • Beiträge: 1.396
    • Geschlecht:
    Nachnahme ab xy kg deaktivieren
    Antwort #1 am: 05. Januar 2010, 19:15:40
    Hi ...

    nimm mal anstatt $total_weight ... $shipping_weight ... allerdings weiss ich jetzt nicht ob die Variable an der Stelle zur Verfügung steht.

    Markus

    Chrisip

    • Frisch an Board
    • Beiträge: 81
    Nachnahme ab xy kg deaktivieren
    Antwort #2 am: 06. Januar 2010, 09:09:01
    Hi Markus, danke für deine Rückmeldung.

    ich hab das mal entsprechend geändert in:

    in der includes/modules/payment/cod.php gesucht nach

    Code: PHP  [Auswählen]
    $this->enabled = ((MODULE_PAYMENT_COD_STATUS == 'True') ? true : false);
    davor eingefügt

    Code: PHP  [Auswählen]
    // nur bis X KG
    if ($shipping_weight <SHIPPING_MAX_WEIGHT_COD)  {
    nach

    Code: PHP  [Auswählen]
    $this->order_status = MODULE_PAYMENT_COD_ORDER_STATUS_ID;}
    noch eine

    Code: PHP  [Auswählen]
    }
    und in die Datenbank

    Code: SQL  [Auswählen]
    INSERT INTO configuration
    VALUES ( '','SHIPPING_MAX_WEIGHT_COD', '40', 7, 99,'2009-02-17 17:30:39', '2009-02-17 17:30:39', NULL , NULL );
     
    aber leider wird mir immernoch Nachnahme angeboten bei einem höheren Warenkorbgewicht als dem im Admin eingestellten Maximalgewicht für Nachnahme.

    Die Fehlermeldung im Admin lautet (aber ich denke, dass sich das wohl eher auf die fehlende Beschreibung im Admin bezieht, oder?):
    Warning: constant(): Couldn't find constant SHIPPING_MAX_WEIGHT_COD_TITLE in /hp/aa/ah/bc/www/admin/configuration.php on line 228

    Warning: constant(): Couldn't find constant SHIPPING_MAX_WEIGHT_COD_DESC in /hp/aa/ah/bc/www/admin/configuration.php on line 235
    Wäre schön, wenn mir hierbei nochmal jemand helfen könnte. Im Netz findet sich dazu ja relativ wenig, obwohl ja eigentlich viele Leute im Shop dieses Problem haben müssten.

    beste Grüße
    Chrischan

    Markus

    • modified Team
    • Beiträge: 1.396
    • Geschlecht:
    Nachnahme ab xy kg deaktivieren
    Antwort #3 am: 06. Januar 2010, 09:51:42
    Hi ...

    lass das mal mit der Datenbank weg ... das ist nachher Feinschliff.

    Code: PHP  [Auswählen]
    // nur bis X KG
    if ($shipping_weight <40)  {
    Schreib das mal so in die cod.php .... klappts dann?

    Markus

    Chrisip

    • Frisch an Board
    • Beiträge: 81
    Nachnahme ab xy kg deaktivieren
    Antwort #4 am: 06. Januar 2010, 11:09:50
    Hi Markus,

    ich hab das gerade mal so probiert und auch mit total_weight statt shipping_weight in dem kurzen Codeschnippsel, aber ich bekomme leider immernoch Nachnahme angezeigt

    (ach nochwas: Die Klammer zu hab ich ebenfalls gesetzt, aber die muss auch geschrieben werden, oder?)

    Der Codeausschnitt sieht aktuell dann so aus:

    Code: PHP  [Auswählen]
    function cod() {
                    global $order,$xtPrice;

                    $this->code = 'cod';
                    $this->title = MODULE_PAYMENT_COD_TEXT_TITLE;
                    $this->description = MODULE_PAYMENT_COD_TEXT_DESCRIPTION;
                    $this->sort_order = MODULE_PAYMENT_COD_SORT_ORDER;
                    // nur bis X KG
                    if ($shipping_weight <40)
                    $this->enabled = ((MODULE_PAYMENT_COD_STATUS == 'True') ? true : false);
                    $this->info = MODULE_PAYMENT_COD_TEXT_INFO;
                    $this->cost;

                    if ((int) MODULE_PAYMENT_COD_ORDER_STATUS_ID> 0) {
                            $this->order_status = MODULE_PAYMENT_COD_ORDER_STATUS_ID;
                    }
                    }

                    if (is_object($order))
                            $this->update_status();
            }
    Chrischan

    Markus

    • modified Team
    • Beiträge: 1.396
    • Geschlecht:
    Nachnahme ab xy kg deaktivieren
    Antwort #5 am: 06. Januar 2010, 12:16:15
    Hi ..

    ne so wird das nichts ... nur mal so am Rande ... das gab keine Fehlermeldung?
    Da fehlt die öffnende Klammer. das kannst du bitte wieder komplett rausnehmen.

    suche:

    Code: PHP  [Auswählen]
            function update_status() {
                    global $order;
    danach einfügen:

    Code: PHP  [Auswählen]
                    if ($_SESSION['shipping']['shipping_weight']> 40) {
                            $this->enabled = false;
                    }
    Versuchs mal so .. wobei ich jetzt nicht weiss ob das mit dem shipping_weight so hinhaut ;-)

    Markus

    Chrisip

    • Frisch an Board
    • Beiträge: 81
    Nachnahme ab xy kg deaktivieren
    Antwort #6 am: 06. Januar 2010, 13:10:04
    Hi Markus,

    nö, ne Fehlermeldung kam da erstmal nicht :-)
    Aber leider klappts auch an der anderen Stelle nicht, wenn ich das einfüge.

    Nachnahme bleibt als Zahlungsvariante immernoch stehen. Hab das aber auch mal mit total_weight drin probiert.

    Macht das eigentlich etwas aus, wenn ich die Gewichtsanzeige bei der Auswahl der Versandarten herausgenommen habe? Also bei dem ersten Schritt an der Kasse: Versandart wählen. Da steht doch zum Beispiel Versand nach Zonen: DE: xy kg

    Ich hab das auskommentiert sodass dort nur noch "Versand nach: DE" steht.
    Im Quellcode in html wird das Gewicht noch angezeigt, d.h. er holt sich das eh woanders her für den Code den du oben gepostet hast, oder?

    Danke übrigens für deine Geduld!
    Chrischan

    Markus

    • modified Team
    • Beiträge: 1.396
    • Geschlecht:
    Nachnahme ab xy kg deaktivieren
    Antwort #7 am: 06. Januar 2010, 13:58:34
    Hi ...

    also der Weg ist so schon der richtige ... die Frage ist nur wie du in den Payment-Modulen an das Gesamtgewicht kommst ... ich müsste das selbst mal ausprobieren .. aber vielleicht hat ja noch jemand eine idee ;-)

    Markus

    Markus

    • modified Team
    • Beiträge: 1.396
    • Geschlecht:
    Nachnahme ab xy kg deaktivieren
    Antwort #8 am: 06. Januar 2010, 14:39:30
    dann wollen wir mal ;-)

    zuerst speichern wir mal das Gewicht in die Session rein ... dann haben wir das auch bei den Zahlungsarten zur Verfügung.

    suche in der includes/classes/shipping.php

    Code: PHP  [Auswählen]
        return $quotes_array;

        }

        function cheapest() {
    darüber einfügen:

    Code: PHP  [Auswählen]
        $_SESSION['gesamtgewicht_bestellung'] = $total_weight;
    Danach in der includes/modules/payment/cod.php
    suche:

    Code: PHP  [Auswählen]
            function update_status() {
                    global $order;
                    if ($_SESSION['shipping']['id'] == 'selfpickup_selfpickup') {
                            $this->enabled = false;
                    }
    danach folgendes einfügen:

    Code: PHP  [Auswählen]
                    if ($_SESSION['gesamtgewicht_bestellung']> '40') {
                            $this->enabled = false;
                    }
    und da wir die Variable nach dem Abschluss der Bestellung nicht mehr brauchen löschen wir sie dann auch.

    suche in der checkout_process.php

    Code: PHP  [Auswählen]
            unset ($_SESSION['shipping']);
    danach einfügen:

    Code: PHP  [Auswählen]
            unset ($_SESSION['gesamtgewicht_bestellung']);
    Das wars ... bei mir hat es wunderbar funktioniert ;-)

    Markus

    Chrisip

    • Frisch an Board
    • Beiträge: 81
    Nachnahme ab xy kg deaktivieren
    Antwort #9 am: 06. Januar 2010, 19:37:27
    Markus, das ist spitze von Dir!!!

    Funktioniert 1a! Du hast mit absoluter Sicherheit nicht nur mir super weitergeholfen.

    Besten Dank dafür
    Chrischan

    Markus

    • modified Team
    • Beiträge: 1.396
    • Geschlecht:
    Nachnahme ab xy kg deaktivieren
    Antwort #10 am: 06. Januar 2010, 19:50:57
    Hi Chrischan,

    kein Problem ;-)

    Markus

    7 Antworten
    5899 Aufrufe
    02. Januar 2011, 17:06:09 von Tomcraft
    14 Antworten
    9348 Aufrufe
    16. Dezember 2013, 10:56:27 von Josch2013
    1 Antworten
    2011 Aufrufe
    30. Januar 2014, 14:10:57 von Stitt
    6 Antworten
    3116 Aufrufe
    25. Februar 2015, 14:52:29 von Toby