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 für UPS deaktivieren

    jakko

    • Fördermitglied
    • Beiträge: 39
    Nachnahme für UPS deaktivieren
    am: 01. Januar 2011, 13:23:57
    Hallo,
    nach längerer erfolgloser Suche im Forum schreib ich nun doch die Frage hier rein.
    Ich habe DHL, UPS und UPS Express als Versandarten.
    Als Bezahlung soll Nachnahme nur für DHL im Inland möglich sein, was auch klappt. Mit ausländischer Adresse wird die DHL Bezahlart NN nicht angeboten, soweit also OK.
    Ich habe jedoch nirgendwo gefunden wie ich Nachnahme für UPS deaktivieren könnte.

    Die Einstellungen des Modul "ot_cod_fee" anbei.
    Hab auch alle caches geleert und auf anderem PC getestet, ist derselbe Effekt.
    Nachnahme wird bei UPS immer noch als Bezahlart angeboten.

    Für Euch ist das sicher easy, ich bin aber als torler Newbie (ehem. Shopfactory user) hier etwas am verzweifeln.

    Danke im Voraus

    Jakko

    Shopversion:
    modified eCommerce Shopsoftware v1.05 dated: 2010-07-18

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



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

    jakko

    • Fördermitglied
    • Beiträge: 39
    Nachnahme für UPS deaktivieren
    Antwort #1 am: 02. Januar 2011, 10:16:43
    Hallo,
    ich habe nun weiter im Forum gesucht, und einen prima Beitrag (= Newbie geeignet) gefunden, der das hinzufügen von Nachnahme Anbietern beschreibt: ANLEITUNG: Weitere Nachnahme Anbieter ergänzen

    Auch wenn die Pfadangaben nicht ganz stimmen, ich ging davon aus dass die von einer älteren Version stammen, sich die Funktion aber nicht wesentlich geändert hat, habe ich einfach mal das Ganze rückwärts gemacht. Also anstatt Zeilen eines neuen Anbieters hinzuzufügen, habe ich die jeweiligen UPS und UPSE relevanten Zeilen in den Dateien entfernt.
    Positiv ist, dass ich keine Fehlermeldungen bekomme und auch nach Deinstallieren/Installieren des Moduls in dem Nachnahme Modul kein UPS mehr erscheint. (siehe screenshot)
    Leider wird aber beim Checkout die Nachnahme immer noch als Bezahlart bei UPS angeboten.

    jetzt gehen mir die Ideen langsam echt aus.

    Jakko

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

    franky_n

    • Experte
    • Beiträge: 4.950
    Nachnahme für UPS deaktivieren
    Antwort #2 am: 02. Januar 2011, 12:04:04
    Hallo jakko,

    hier mal ein Versuch! :)

    In der Datei "/includes/modules/ot_cod_fee.php" nach ca. Zeile 53:

    Code: PHP  [Auswählen]
            //Will become true, if cod can be processed.
            $cod_country = false;

    das einfügen:

    Code: PHP  [Auswählen]
            $code_not_allowed = false;
            $no_cod_zones = preg_split("/[,]/", MODULE_ORDER_TOTAL_COD_FEE_NOT_AVAILABLE);
            for ($j = 0; $j <count($no_cod_zones); $j++) {
              if ($_SESSION['shipping']['id'] == $cod_zones[$j]) {
                $code_not_allowed = true;
              }
            }

    Dann in Z.55 das ändern:

    Code: PHP  [Auswählen]
            //check if payment method is cod. If yes, check if cod is possible.
            if ($_SESSION['payment'] == 'cod') {

    in das:

    Code: PHP  [Auswählen]
            //check if payment method is cod. If yes, check if cod is possible.
            if ($_SESSION['payment'] == 'cod' || $code_not_allowed == false) {

    Dann function keys () suchen – ca. zeile 154 und nach

    Code: PHP  [Auswählen]
    'MODULE_ORDER_TOTAL_COD_FEE_SORT_ORDER',

    folgendes einfügen:

    Code: PHP  [Auswählen]
    'MODULE_ORDER_TOTAL_COD_FEE_NOT_AVAILABLE',

    Dann function install () suchen. ca. Zeile 158 dort z.B. als 3. Zeile folgendes Einfügen:

    Code: PHP  [Auswählen]
    xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_ORDER_TOTAL_COD_FEE_NOT_AVAILABLE', 'flat_flat,item_item,table_table,zones_zones,ap_ap,dp_dp,chp_ECO,chp_PRI,chp_URG,chronopost_chronopost,dhl_ECX,dhl_DOX,dhl_SDX,dhl_MDX,dhl_WPX,ups_ups,upse_upse,free_free,freeamount_freeamount', 6, 0, now())");

    Dann in der Datei "/lang/german/modules/ot_cod_fee.php" folgendes ergänzen:

    Code: PHP  [Auswählen]
    define('MODULE_ORDER_TOTAL_COD_FEE_NOT_AVAILABLE_TITLE','Keine Nachname');
    define('MODULE_ORDER_TOTAL_COD_FEE_NOT_AVAILABLE_DESC', 'Module die keine Nachname haben sollen!');

    Dann in der Datei "/lang/english/modules/ot_cod_fee.php" folgendes ergänzen:

    Code: PHP  [Auswählen]
    define('MODULE_ORDER_TOTAL_COD_FEE_NOT_AVAILABLE_TITLE','No COD_FEEK');
    define('MODULE_ORDER_TOTAL_COD_FEE_NOT_AVAILABLE_DESC', 'Modules with no COD_FEE!');

    Dann solltest Du eine Einstellmöglichkeit haben bei welchen Modulen Nachname sein soll und wo nicht.
    Derzeit sind alle ohne Nachname. Habe es so gemacht damit man die Modulnamen sieht und nur die  raus löscht die Nachname haben sollen... :)

    Viele Grüße

    Franky

    jakko

    • Fördermitglied
    • Beiträge: 39
    Nachnahme für UPS deaktivieren
    Antwort #3 am: 02. Januar 2011, 15:01:09
    Hallo Franky
    erst einmal Vielen Dank !
    Ich habe die Änderungen eingebaut und bekomme leider folg. Fehlermeldung wenn ich im admin / Module / Zusammenfassung aufrufe:

    Code: PHP  [Auswählen]
    Parse error: syntax error, unexpected T_FOR in /www/htdocs/w00d1e8c/manzell-city/testshop/includes/modules/order_total/ot_cod_fee.php on line 56

    habe mal meine Datei beigefügt, vielleicht kannst Du mal 'nen Blick drauf werden.
    Danke
    Jakko

    web28

    • modified Team
    • Beiträge: 9.404
    Nachnahme für UPS deaktivieren
    Antwort #4 am: 02. Januar 2011, 15:04:22
    Der Änderungsvorschlag von Franky wird wohl nicht funktionieren (habe ich aber nicht ausprobiert)

    Was funktioniert ist das (getestet):

    includes/modules/payment/cod.php

    Suche in ca. Zeile 77 nach:

    Code: PHP  [Auswählen]
    $cod_country = false;
    und füge direkt danach ein:

    Code: PHP  [Auswählen]
    $cod_hidden = false;
    Dann diesen Code suchen:

    Code: PHP  [Auswählen]
    } elseif ($cod_zones[$i] == '00') {
              $cod_cost = $cod_zones[$i + 1];
              $cod_country = true;
              break;
    und direkt danach dies einfügen:

    Code: PHP  [Auswählen]
    } elseif ($cod_zones[$i] == '99') {
              $cod_hidden = true;
              break;
    Dann noch diesen Codeblock:

    Code: PHP  [Auswählen]
    return array ('id' => $this->code,
                      'module' => $this->title,
                      'description' => $this->info,
                      'module_cost'=>$this->cost
                      );
    so abändern:

    Code: PHP  [Auswählen]
    return array ('id' => $this->code,
                      'module' => $this->title,
                      'description' => $this->info,
                      'hidden' => $cod_hidden,
                      'module_cost'=>$this->cost
                      );
    Damit haben wir jetzt das Nachnahmemodul um ein neues Feature "hidden" ergänzt!

    Jetzt müssen wir noch das Template checkout_payment_block.html leicht abändern:

    Direkt nach der ersten foreach Schleife kommt neu in Zeile 2:

    Code: PHP  [Auswählen]
    {if !$module_data.hidden}
    und am Ende vor dem letzten {/foreach} schließen wir unsere neue If-Abfrage mit

    Code: PHP  [Auswählen]
    {/if}
    Im Admin kann man jetzt im Modul Nachnahmegebühr mit dem Eintrag 99:0.00 die Nachnahme im Checkout deaktivieren. Das ganze ist auch wie gewohnt kombinierbar!

    Beispiele - Eintrag bei UPS:

    AT:5.00,99:0.00

    Das bedeutet: Nachnahmegebühr nach Österreich 5.00 EUR, bei allen anderen Ländern wird Nachnahme im Checkout nicht angezeigt (und natürlich nicht berechnet)

    99:0.00

    Es wird bei dieser Zahlungsart keine Nachnahme im Checkout angezeigt

    Gruss Web28

    franky_n

    • Experte
    • Beiträge: 4.950
    Nachnahme für UPS deaktivieren
    Antwort #5 am: 02. Januar 2011, 15:23:46
    Hallo jakko,

    hier fehlt ein Semikolon:

    Code: PHP  [Auswählen]
    $no_cod_zones = preg_split("/[,]/", MODULE_ORDER_TOTAL_COD_FEE_NOT_AVAILABLE)
    Das muß so lauten:

    Code: PHP  [Auswählen]
    $no_cod_zones = preg_split("/[,]/", MODULE_ORDER_TOTAL_COD_FEE_NOT_AVAILABLE);

    Wurde oben geändert!

    Aber die Lösung von web28 sieht auch gut aus.
    Ich denke die ist wahrscheinlich schon mal im Einsatz gewesen und getestet...

    Viele Grüße

    Franky

    jakko

    • Fördermitglied
    • Beiträge: 39
    Nachnahme für UPS deaktivieren
    Antwort #6 am: 02. Januar 2011, 16:38:10
    @Web28
    Hallo,
    hab den Code eingebaut, ohne Fehlermeldung, Nachnahme wird mir jedoch nach wie vor beim Checkout angeboten.
    Kannst Du bitte mal 'nen Blick drauf werfen ?

    @Franky
    Ich werde das auch noch testen.

    Danke an Euch Beide, der Support ist wirklich super hier.
    Gruss
    Jakko

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Nachnahme für UPS deaktivieren
    Antwort #7 am: 02. Januar 2011, 17:06:09
    Wäre schön, wenn sich hier noch andere Testwillige mit einklinken würden. Das Thema sollte eigentlich für viele interessant sein.

    Grüße

    Torsten

    10 Antworten
    6237 Aufrufe
    06. Januar 2010, 19:50:57 von Markus
    14 Antworten
    9345 Aufrufe
    16. Dezember 2013, 10:56:27 von Josch2013
    1 Antworten
    2007 Aufrufe
    30. Januar 2014, 14:10:57 von Stitt
    6 Antworten
    3115 Aufrufe
    25. Februar 2015, 14:52:29 von Toby