Jump to content

Recommended Posts

Hallo,

hätte folgende Frage:

wie kann man für die Bezahloption "per Nachname" (CashOnDelivery modul) die Kosten festlegen,
welches ich an den Kunden weiterleiten müsste?

Z.B: Kunde kauft für 100,00 € ein und bezahlt per Nachname dann müsste er z.B:
100,00 € + 7,00 € Kosten per Nachname= 107,00 € zahlen.

Wäre dies möglich?

Bitte um eure Hilfe!

Benutze PrestaShop 1.0 RC5

Link to comment
Share on other sites

Hallo, ich habe einen Versanddienstleister angelegt, für den ich dann die 7 Euro draufgeschlagen habe. Ich wohl nicht so unbedingt schlau, theoretisch könnte man normaler Versand auswählen und dann per Nachnahme bezahlen, aber was besseres ist mir nicht eingefallen...

Link to comment
Share on other sites

Hallo,

wollte mal nachfragen ob sich schon mittlerweile was ergeben hat?

Also ich habe es momentan so weit gebracht, das ich die .tpl Datei so abgeändert habe,
das angedeutet wird + 7,00 EUR Versandkosten. Jedoch wäre es mir lieber das dieses auch
in die Gesamtmenge aufgenommen wird.

Anbei lade ich die überarbeite Moduldatei, vielleicht kann mir jemand weiterhelfen.

cashondelivery.zip

Link to comment
Share on other sites

Hi,
ich hatte das gleiche Problem mit der Nachnahmegebühr, habe dies aber etwas anders gelöst.
Ich habe den Hinweis, daß Nachnahme extra kostet mit in den übersetzungstext für das cashondelivery modul mit aufgenommen. Danach wurds etwas tricky.
Ich habe einen Extra Carrier angelegt, den ich "Nachnahme" genannt habe und bei diesem die Versandkosten inkl. Nachnahmegebühr festgelegt. Dieser Carrier hat die ID 9. Den Carrier habe ich auf inaktiv gesetzt, damit er bei der Auswahl nicht angezeigt wird.

In der validation.php des cashondelivery Moduls dann in Zeile 20 folgendes eingefügt:
$cart->id_carrier = 9;
$cart->update();

Hier wird sobald ich Nachnahme auswähle der Spediteur auf Nachnahme gesetzt und die Gebühren entsprechend mit eingerechnet. Da der Carrier aber inaktiv ist, ist noch eine Änderung in der classes/Cart.php fällig.
In Zeile 490 (bei RC5) Funktion "getOrderShippingCost" wird folgende Änderung gemacht:

if (!$carrier->id /* OR !$carrier->active*/)

Dadurch ist es auch dem inaktiven Carrier möglich ShippingCosts hinzuzufügen.

Der korrekte Weg wäre allerdings generell bei Payment modulen eine "Payment Fee" festlegen zu können.
Dafür ist aber einiges mehr an Änderungen nötig.

Gruß
Fabian

p.s.: wenns einen nicht stört, daß der carrier bei versand schon mit angezeigt wird, kann man natürlich den carrier auch aktiv schalten und die Änderung in der cart.php fällt weg.

Link to comment
Share on other sites

noch ein kleiner bugfix für meine änderung...
wenn man auf "Andere Bezahlmethoden" nach der Bestellbestätigung geht, dann bleibt der Versand auf Nachnahme, auch wenn jetzt Überweisung gewählt wird.
Daher habe ich in der cashondelivery.php in der funktion hookPayment folgendes am anfang eingefügt/geändert um beim darstellen der payment optionen den versand wieder auf den default zu stellen:

global $smarty, $cart;
if ($cart->id_carrier == 9) {
$cart->id_carrier = Configuration::get('PS_CARRIER_DEFAULT');
$cart->update();
}

das ganze bleibt trotzdem ein hack und bei mehreren versandoptionen ist das verhalten nicht unbedingt das gewünschte.

Link to comment
Share on other sites

Hallo,

ist ja eine super Lösung mein Kompliment!

Also ich habe es soweit hinbekommen wie du es bereits erklärt hast. Kosten werden miteinberechnet. Entspricht auch vollkommen meiner Vorstellung.

Das einzige was ich nicht hinbekommen habe, ist das mit der Rückstellung auf DEFAULT. Also wenn ich nach der Nachname wähle und danach wieder andere Zahlungsoptionen wähle bleibt der Betrag incl. Nachnamegebühr, auch wenn ich dann z.B Überweisung nehme.

Könntest du deinen letzen posting genauer erklären oder deine cashondelivery.php datei hier hochladen?

Link to comment
Share on other sites

Hi,
hier die ganze funktion hookPayment auf der cashondelivery.php

function hookPayment($params)
   {
       global $smarty, $cart;
       if ($cart->id_carrier == 9) {
           $cart->id_carrier = Configuration::get('PS_CARRIER_DEFAULT');
           $cart->update();
       }

        /* Photo is copyrighted by Leticia Wilson - Fotolia.com, licenced to PrestaShop company */
       $smarty->assign(array(
           'this_path' => $this->_path,
           'this_path_ssl' => (Configuration::get('PS_SSL_ENABLED') ? 'https://' : 'http://').htmlspecialchars($_SERVER['HTTP_HOST'], ENT_COMPAT, 'UTF-8').__PS_BASE_URI__.'modules/'.$this->name.'/'
           ));
       return $this->display(__FILE__, 'payment.tpl');
   }


wichtig ist, daß du die carrier id in der 4. zeile auf die id deines nachnahme carriers anpasst.

Link to comment
Share on other sites

  • 9 months later...

Hallo, ich habe diese Lösung jetzt noch nicht versucht, aber kann mir einer sagen, wie es ist, wenn man ab zb 100 € versandfrei verschickt es dann mit dieser Lösung auch noch funktioniert oder fallen dann dan auch alle Versandkosten weg?

Oder hat jemand schon eine andere Lösung gefunden?

Link to comment
Share on other sites

  • 4 months later...
  • 5 months later...
  • 2 years later...

Warum gräbst du einen Post aus dem Jahre 2008 aus und schreibst die gleiche Frage noch einmal in einen anderen Post dazu ? Sie wird deshalb auch nicht anders beantwortet werden. Auch wenn du alle Fragen bezüglich Thema Nachnahme Modul mit Gebühr ausgräbst aus allen Foren...

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...