PayPal Ratenzahlung für xt:Commerce 3

Die aktuellste Version des Plugins für xt:Commerce 3.0.4 SP2.1 erhalten Sie direkt von PayPal nach Freischaltung für Ratenkauf

Installation in xt:Commerce 3.0.4 SP2.1

  1. Sichern Sie Ihre Komplette xt:Commerce 3 Installation und führen Sie eine Installation des Plugins in Ihrem Testsystem durch bevor Sie es in Ihrem Live Shop installieren
  2. Kopieren Sie bitte die Files aus dem Verzeichnis new_files/ in Ihre xt:Commerce 3 Installation, danach folgen Sie bitte den folgenden Anweisungen zur Anpassung Ihrer Shop-Datein.


Grundsätzlich empfehlen wir dringend ein Update auf xt:Commerce 4 (in kürze xt:Commerce 5).

Untere Anleitung bezieht sich auf eine Installation in eine unveränderte xt:Commerce 3 Installation und originaler xt:Commerce Software, das Gutscheinsystem wir in aktueller Pluginversion nicht untersützt.

VersionDatumNotiz
1.015.09.2016Initial Release


Datei admin/configuration.php

         <?php
         	switch ($_GET['gID']) {
         		case 21:
         			echo AFTERBUY_URL;
         		case 19:
         			echo '<table class="infoBoxHeading" width="100%">
            				<tr>
                			<td width="150" align="center">
                			<a href="'.xtc_href_link(FILENAME_CONFIGURATION, 'gID=21', 'NONSSL').'">Afterbuy</a>
                			</td>
                			<td width="1">|
                			</td>
                			<td width="150" align="center">
                			<a href="'.xtc_href_link(FILENAME_CONFIGURATION, 'gID=19', 'NONSSL').'">Google Conversion</a>
                			</td>
                			<td width="1">|
                			</td>
                			<td>
                			</td>
            				</tr>
        					</table>';
         		
         			break;
         	}
         	?> 

ersetzen durch:

					<?php
					switch ($_GET['gID']) {
						case 21:
						case 19:
						case 24:
						case 111125:
							echo '<table width="100%">
											<tr class="dataTableHeadingRow">
												<td width="150" align="center">
													<a class="button" href="'.xtc_href_link(FILENAME_CONFIGURATION, 'gID=21', 'NONSSL').'">Afterbuy</a>
												</td>
												<td width="1">|</td>
												<td width="150" align="center">
													<a class="button" href="'.xtc_href_link(FILENAME_CONFIGURATION, 'gID=19', 'NONSSL').'">Google Conversion</a>
												</td>
												<td width="1">|</td>
												<td width="150" align="center">
													<a class="button" href="'.xtc_href_link(FILENAME_CONFIGURATION, 'gID=111125', 'NONSSL').'">PayPal</a>
												</td>
												<td width="1">|</td>
												<td></td>
											</tr>
										</table>';
							break;
						}
						?>

Datei admin/includes/column_left.php

  if (($_SESSION['customers_status']['customers_status_id'] == '0') && ($admin_access['paypal'] == '1')) echo '<a href="' . xtc_href_link('paypal.php') . '" class="menuBoxContentLink"> -' . BOX_PAYPAL . '</a><br>';

Einfügen vor

if (ACTIVATE_GIFT_SYSTEM=='true') {

Datei admin/includes/application_top.php

1.

  define('FILENAME_PAYPAL','paypal.php');

Einfügen nach

define('FILENAME_XSELL_GROUPS','cross_sell_groups.php');

2.

 define('TABLE_PAYPAL', 'paypal');
 define('TABLE_PAYPAL_STATUS_HISTORY', 'paypal_status_history');

Einfügen nach

define('TABLE_CAMPAIGNS_IP','campaigns_ip');


Datei includes\header.php

<link rel="stylesheet" type="text/css" href="<?php echo 'templates/'.CURRENT_TEMPLATE.'/module/paypal_ratenkauf/xt_paypal_installments.css'; ?>" />

Einfügen nach

<link rel="stylesheet" type="text/css" href="<?php echo 'templates/'.CURRENT_TEMPLATE.'/stylesheet.css'; ?>" />

Datei includes/application_top.php

// Paypal:
require_once (DIR_WS_CLASSES.'paypal_checkout.php');
$o_paypal = new paypal_checkout();

Einfügen vor

// include the who's online functions
xtc_update_whos_online();

Datei includes/application_top_callback.php

Einfügen vor ?>

  require (DIR_WS_FUNCTIONS.'sessions.php');


Datei includes/database_tables.php

Einfügen vor ?>

  // PayPal
  define('TABLE_PAYPAL', 'paypal');
  define('TABLE_PAYPAL_STATUS_HISTORY', 'paypal_status_history');


Datei includes/modules/product_info.php

		$file = DIR_WS_CLASSES . 'paypal_ratenkauf_api.php';
		if (file_exists ( $file )) {
			include_once ($file);
		}
		$ppi = new paypal_ratenkauf_api();

		$info_smarty->assign('PAYPAL_RATENKAUF_INFO',$ppi->renderRatenkaufInfoBox($products_price['plain'],$_SESSION['currency'],'DE'));

Einfügen vor

if ($_SESSION['customers_status']['customers_status_graduated_prices'] == 1)
			include (DIR_WS_MODULES.FILENAME_GRADUATED_PRICE);


Datei shopping_cart.php

	$file = DIR_WS_CLASSES . 'paypal_ratenkauf_api.php';
	if (file_exists ( $file )) {
		include_once ($file);
	}
	$ppi = new paypal_ratenkauf_api();
	
	$smarty->assign('PAYPAL_RATENKAUF_INFO',$ppi->renderRatenkaufInfoBox($_SESSION['cart']->show_total(),$_SESSION['currency'],'DE'));

Einfügen vor:

// minimum/maximum order value
$checkout = true;

Datei checkout_payment.php

1.

unset($_SESSION['reshash']);
unset($_SESSION['nvpReqArray']);
unset($_SESSION['PP_RETURN_RATENKAUF']);

Einfügen vor:

if (ACTIVATE_GIFT_SYSTEM == 'true') {
	$smarty->assign('module_gift', $order_total_modules->credit_selection());
}

2.

if(isset($_SESSION['reshash']['FORMATED_ERRORS'])){
	$smarty->assign('error', $_SESSION['reshash']['FORMATED_ERRORS']);
}

Einfügen vor:

$selection = $payment_modules->selection();

Datei checkout_confirmation.php

1.

if($_GET['PayerID']!='' AND $_SESSION['reshash']['TOKEN']!='' AND (strtoupper($_SESSION['reshash']["ACK"])=="SUCCESS" OR strtoupper($_SESSION['reshash']["ACK"])=="SUCCESSWITHWARNING")) {
	$_POST['conditions']='1';
	
	$file = DIR_WS_CLASSES . 'paypal_ratenkauf_api.php';
	if (file_exists ( $file )) {
		include_once ($file);
	}
	
	$ppi = new paypal_ratenkauf_api();
	$ppi->paypalGetCustomerData();
	
}

Einfügen vor:

if (DISPLAY_CONDITIONS_ON_CHECKOUT == 'true') {
	if ($_POST['conditions'] == false) {
		$error = str_replace('\n', '<br />', ERROR_CONDITIONS_NOT_ACCEPTED);
		xtc_redirect(xtc_href_link(FILENAME_CHECKOUT_PAYMENT, 'error_message=' . urlencode($error), 'SSL', true, false));
	}
}

2.

$order_total_modules->process();

ändern zu:

$order_totals = $order_total_modules->process();

Datei includes/classes/order.php

1.

$order_total_query = xtc_db_query("select text,value from " . TABLE_ORDERS_TOTAL . " where orders_id = '" . $order_id . "' and class = 'ot_total'");
$order_total = xtc_db_fetch_array($order_total_query);

$order_tax_query = xtc_db_query("select SUM(value) from " . TABLE_ORDERS_TOTAL . " where orders_id = '" . $order_id . "' and class = 'ot_tax'");
$order_tax = xtc_db_fetch_array($order_tax_query);
$pp_order_tax=$order_tax['SUM(value)'];
$pp_order_disc=0;
$order_disc_query = xtc_db_query("select SUM(value) from " . TABLE_ORDERS_TOTAL . " where orders_id = '" . $order_id . "' and class = 'ot_discount'");
$order_disc = xtc_db_fetch_array($order_disc_query);
$pp_order_disc+=$order_disc['SUM(value)'];
$pp_order_gs=0;
$order_gs_query = xtc_db_query("select SUM(value) from " . TABLE_ORDERS_TOTAL . " where orders_id = '" . $order_id . "' and class = 'ot_coupon'");
$order_gs = xtc_db_fetch_array($order_gs_query);
$pp_order_gs-=$order_gs['SUM(value)'];
$order_gs_query = xtc_db_query("select SUM(value) from " . TABLE_ORDERS_TOTAL . " where orders_id = '" . $order_id . "' and class = 'ot_gv'");
$order_gs = xtc_db_fetch_array($order_gs_query);
$pp_order_gs-=$order_gs['SUM(value)'];
///  customers bonus
$order_gs_query = xtc_db_query("select SUM(value) from " . TABLE_ORDERS_TOTAL . " where orders_id = '" . $order_id . "' and class = 'ot_bonus_fee'");
$order_gs = xtc_db_fetch_array($order_gs_query);
$pp_order_gs-=$order_gs['SUM(value)'];
$pp_order_fee=0;
$order_fee_query = xtc_db_query("select SUM(value) from " . TABLE_ORDERS_TOTAL . " where orders_id = '" . $order_id . "' and class = 'ot_payment'");
$order_fee = xtc_db_fetch_array($order_fee_query);
            // Rabatt aus Fremd Modul
if($order_fee['SUM(value)'] < 0):
$pp_order_disc+=$order_fee['SUM(value)'];
else:
$pp_order_fee+=$order_fee['SUM(value)'];
endif;
$order_fee_query = xtc_db_query("select SUM(value) from " . TABLE_ORDERS_TOTAL . " where orders_id = '" . $order_id . "' and class = 'ot_cod_fee'");
$order_fee = xtc_db_fetch_array($order_fee_query);
$pp_order_fee+=$order_fee['SUM(value)'];
$order_fee_query = xtc_db_query("select SUM(value) from " . TABLE_ORDERS_TOTAL . " where orders_id = '" . $order_id . "' and class = 'ot_ps_fee'");
$order_fee = xtc_db_fetch_array($order_fee_query);
$pp_order_fee+=$order_fee['SUM(value)'];
$order_fee_query = xtc_db_query("select SUM(value) from " . TABLE_ORDERS_TOTAL . " where orders_id = '" . $order_id . "' and class = 'ot_loworderfee'");
$order_fee = xtc_db_fetch_array($order_fee_query);
$pp_order_fee+=$order_fee['SUM(value)'];
			
			

$order_fee_query = xtc_db_query("select SUM(value) from " . TABLE_ORDERS_TOTAL . " where orders_id = '" . $order_id . "' and class = 'ot_paypal_ratenkauf'");
$order_fee = xtc_db_fetch_array($order_fee_query);
$pp_ratenkauf_fee=$order_fee['SUM(value)'];

Einfügen nach: (Zeile ~78)

      $order_total_query = xtc_db_query("select text from " . TABLE_ORDERS_TOTAL . " where orders_id = '" . $order_id . "' and class = 'ot_total'");
      $order_total = xtc_db_fetch_array($order_total_query);  

2.

Einfügen von:

'pp_total' => $order_total['value'],
'pp_shipping' => $shipping_method['value'],
'pp_tax' => $pp_order_tax,
'pp_disc' => $pp_order_disc,
'pp_gs' => $pp_order_gs,
'pp_fee' => $pp_order_fee,
'pp_ratenkauf_fee'=>$pp_ratenkauf_fee,

nach:

'total' => strip_tags($order_total['text']),

3.

Einfügen von

'country_iso_2' => $order['delivery_country_iso_code_2'],

nach:

'country' => $order['delivery_country'],

4.

Einfügen von

'country_iso_2' => $order['billing_country_iso_code_2'],

nach

'country' => $order['billing_country'],


Änderungen in Sprachfiles:

lang/german/admin/configuration.php

Einfügen am ende der Datei (vor ?>)

include 'paypal_configuration.php';

lang/german/german.php

Einfügen vor ?>

include 'paypal.php'

lang/german/admin/german.php

Einfügen vor ?>

define('BOX_PAYPAL','PayPal');


Änderung in Templates:

Informationsbox auf Produktseite (templates/../module/product_info/DATEI.html

Einfügen von:

{if $PAYPAL_RATENKAUF_INFO}           
    {$PAYPAL_RATENKAUF_INFO}
{/if}

an gewünschter Stelle für die Finanzierungsinfobox

Datei module/shopping_cart.html

Einfügen von:

{if $PAYPAL_RATENKAUF_INFO}
  <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td align="right">{$PAYPAL_RATENKAUF_INFO}</td>
  </tr>
</table>
<br />
{/if}

an gewünschter Stelle für die Finanzierungsinfobox

Datei module/checkout_confirmation.html

Ersetzen von:

<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="right">{$CHECKOUT_FORM} {if $MODULE_BUTTONS!=''} {$MODULE_BUTTONS}<br />{/if} {$CHECKOUT_BUTTON}<br /><br />
	<table width="100%"  border="0" cellpadding="4">
        <tr>
          <td class="mainText">{if $REVOCATION}
		  <b>{$REVOCATION_TITLE}</b><br />
		  
		  {$REVOCATION}<br />
		  <table width="100%" border="0" cellspacing="0" cellpadding="3">
            <tr>
              <td class="main"><img src="{$tpl_path}img/arrow_green.gif" alt="arrow" />{$REVOCATION_TITLE}&nbsp;{$REVOCATION_LINK}</td>
            </tr>
            <tr>
              <td class="main"><img src="{$tpl_path}img/arrow_green.gif" alt="arrow" />{$AGB_TITLE}&nbsp;{$AGB_LINK}</td>
            </tr>
          </table>
		  {/if}</td>
        </tr>
      </table></td>
  </tr>
</table>

durch:

{if $PAYPAL_RATENKAUF_INFO}{$PAYPAL_RATENKAUF_INFO}


<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="right">{$CHECKOUT_FORM} {$CHECKOUT_RATENKAUF_BUTTON}<br /><br />
	<table width="100%"  border="0" cellpadding="4">
        <tr>
          <td class="mainText">{if $REVOCATION}
		  <b>{$REVOCATION_TITLE}</b><br />
		  
		  {$REVOCATION}<br />
		  <table width="100%" border="0" cellspacing="0" cellpadding="3">
            <tr>
              <td class="main"><img src="{$tpl_path}img/arrow_green.gif" alt="arrow" />{$REVOCATION_TITLE}&nbsp;{$REVOCATION_LINK}</td>
            </tr>
            <tr>
              <td class="main"><img src="{$tpl_path}img/arrow_green.gif" alt="arrow" />{$AGB_TITLE}&nbsp;{$AGB_LINK}</td>
            </tr>
          </table>
		  {/if}</td>
        </tr>
      </table></td>
  </tr>
</table>

{else}
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="right">{$CHECKOUT_FORM} {if $MODULE_BUTTONS!=''} {$MODULE_BUTTONS}<br />{/if} {$CHECKOUT_BUTTON}<br /><br />
	<table width="100%"  border="0" cellpadding="4">
        <tr>
          <td class="mainText">{if $REVOCATION}
		  <b>{$REVOCATION_TITLE}</b><br />
		  
		  {$REVOCATION}<br />
		  <table width="100%" border="0" cellspacing="0" cellpadding="3">
            <tr>
              <td class="main"><img src="{$tpl_path}img/arrow_green.gif" alt="arrow" />{$REVOCATION_TITLE}&nbsp;{$REVOCATION_LINK}</td>
            </tr>
            <tr>
              <td class="main"><img src="{$tpl_path}img/arrow_green.gif" alt="arrow" />{$AGB_TITLE}&nbsp;{$AGB_LINK}</td>
            </tr>
          </table>
		  {/if}</td>
        </tr>
      </table></td>
  </tr>
</table>
{/if}

Datei modules/print_order.html

Einfügen von

<link rel="stylesheet" type="text/css" href="templates/{$smarty.const.CURRENT_TEMPLATE}/module/paypal_ratenkauf/xt_paypal_installments.css" />

nach

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />


Plugin-Installation/Konfiguration

  1. Installation von ot_total_ratenkauf und ot_paypal_ratenkauf unter Module→Zusammenfassung
    Bitte beachten Sie die voreingestellte Sortierreihenfolge. Beide Module müssen NACH ot_total (Standard 99) sortiert sein.
     


  1. Installation des Zahlungsmodules paypal_ratenkauf
    Erlaubte Zonen = DE
    Aktivieren = true


  2. Konfiguration der PayPal API Daten unter Konfiguration→xt;Partner→PayPal

    KonfigurationErklärung
    New Order StatusEine Bestellung wurde angelegt (Alle relevanten Bestellstatus konfigurieren Sie im PayPal Plugin)
    Client ID (Live)

    Wie Sie diese Daten anlegen finden Sie hier: Erstellen einer REST Applikation

    In einer Multishop-Installation erstellen Sie bitte für jeden Shop eine eigene REST Applikation.
    Secret (Live)
    Client ID (Sandbox)
    Secret (Sandbox)
    Spezifische Bewerbung mit Wert

    Am Produkt wird der Ratenkauf immer mit echten Preisen beworben.

    Bitte aktivieren Sie diese Funktion nur bei einem wirklich performantem Server.


    DarlehensgeberGeben Sie bitte hier Ihren Firmennamen und Adresse an (z.B: Firma XY Gmbh, Testweg 1, 10928 Musterhausen)


Support
Shop Support: Support zum Shop und anderen
Produkten von xt:Commerce.

Fehler melden
Report a Bug: Fehler gefunden?
Informieren Sie uns.

xt:Commerce Marketplace
Plugins & Templates: Über 500 Möglichkeiten in unserem
Store zur Shop-Optimierung.

xt:Commerce Service Team
Services: Wir übernehmen individuelle
Anpassungen für Ihren Shop.

Impressum