Jump to content
xt:Commerce Community Forum

Klarna Bezahlmodul nicht für Unternehmen anzeigen


JomyLa

Recommended Posts

Hallo zusammen,

das Klarna Bezahlmodul richtet sich eigenen Angaben zufolge nicht an Unternehmen sondern an Privatleute. Deshalb soll Klarna nur bei Privatkunden angezeigt werden.

Im Shop ist Klarna bereits integriert und funktioniert auch ohne Probleme, jedoch kommt es häufig vor, dass Kunden beim Checkout einen Firmennamen eingeben, Klarna auswählen, dieser Firmenname aber nicht auf der Rechnung von Klarna erscheint, weil diese Daten (der Firmenname) nicht von Klarna verarbeitet werden.

Ich möchte nun erreichen, dass wenn ein Kunde im Checkout Prozess einen Firmennamen in das Formular einträgt, Klarna als Bezahlmöglichkeit nicht mehr angezeigt wird.

Wo fange ich an, das Eingabefeld auf Inhalt zu prüfen und im zweiten Schritt, die Ausgabe des Templates zu verhindern?

Ich hoffe ich habe mich deutlich genug ausgedrückt und mir kann jemand einen Einstiegspunkt aufzeigen.

Danke JomyLa

Link to comment
Share on other sites

  • 3 weeks later...

So nachdem ich mich durch den ganzen Code durchgewühlt habe, kann ich die folgende Lösung präsentieren.

Ist leider ein Core-Hack, die ich auch nicht mag, ich habe es aber mit den Hookpoints (leider) nicht bekommen. Falls jemand noch ein Tipp parat hat, bin ich auf jeden Fall dankbar.

Verwendete XT:Commerce Version 4.0.16

Die Datei /xtFramework/classes/class.checkout.php öffnen und zur Zeile #146 gehen. Der Code beginnt hier mit:

$tmp_data = $template->getTemplate($value['payment_code'].'_payment_smarty', $tpl, $tpl_data);[/PHP]

Diesen tauschen gegen den folgenden Code:

[PHP]if ((count(array_diff($_SESSION['customer']->customer_default_address, $_SESSION['customer']->customer_shipping_address)) == 0)
&& empty($_SESSION['customer']->customer_default_address['customers_company'])
) {
$tmp_data = $template->getTemplate($value['payment_code'].'_payment_smarty', $tpl, $tpl_data);
$data[] = array('payment' => $tmp_data);
}else{
if($key != "xt_klarna"){
$tmp_data = $template->getTemplate($value['payment_code'].'_payment_smarty', $tpl, $tpl_data);
$data[] = array('payment' => $tmp_data);
}
}[/PHP]

Die Logik lautet: "Deaktiviere Klarna nach Eingabe eines Firmen-Namen ODER Rechnung und Lieferadresse sind unterschiedlich"

Vielleicht kann der eine oder andere den Code gebrauchen.

Gruß JomyLa

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...