AGI - Andreas Guder Internetagentur

Payment-Modul PayPal PLUS V0.2 BETA: Installation [V1.0]

 

BETA-Status: Das PayPal-PLUS Modul befindet sich derzeit im Beta-Status. Es kann nicht garantiert werden, dass es unter allen Umständen und in Ihrem speziellen Shop problemlos und fehlerfrei funktioniert. Für Ausfälle oder Schäden wird keine Haftung übernommen. Das Risiko liegt bei Ihnen. Sollten tatsächlich Probleme auftreten, informieren Sie mich bitte.

Installationsanleitung des Zahlungsmoduls "PayPal-PLUS"

Geschätzter Installations-Aufwand: 45 Minuten

Zur besseren Lesbarkeit aktivieren Sie bitte Javascript in Ihrem Browser, bzw. lassen das Ausführen von Javascript zu.

Wählen Sie links im Menü die Installationsanleitung für Ihre Shopversion.
Ist Ihre Shopversion nicht aufgeführt, wählen Sie die Anleitung, die Ihrem Shop am nächsten kommt.

Erscheint Ihnen die Installation zu zeitaufwendig, Sie trauen sich die Installation nicht zu, oder möchten sich erkenntlich zeigen, können Sie gerne den kostenpflichtigen Installationsservice nutzen. Diesen bestellen Sie über dieses Formular: http://www.andreas-guder.de/bestelle-paypal-plus-installation.html.

Für die Installation benötige ich:

  1. die Angabe zu Ihrer Shopversion
  2. einen FTP-Zugang zu Ihrem Shop, oder alle zu ändern Dateien aus Ihrem Shop, die in der Installationsanleitung aufgeführt sind

Für die Einrichtung/den Betrieb des Moduls benötigen Sie:

  1. Ein für PayPal PLUS freigeschaltetes PayPal Händlerkonto: https://www.paypal.com/de/webapps/mpp/paypal-plus.
  2. Eine PayPal-App, welche Sie hier einrichten können: https://developer.paypal.com/developer/.
  3. PHP ab Version 5 mit folgenden Extensions: ext-curl und ext-json.
  4. einen SSL-gesicherte Verbindung zu Ihrem Shop.

Einrichtung des Moduls

Sind die hier genannten Menüpunkte nicht sichtbar, prüfen Sie die Adminrechte Ihres Benutzers.

  1. Zur Nutzung des Moduls benötigen Sie eine PayPal-App, welche Sie hier einrichten können: https://developer.paypal.com/developer/.
    • Melden Sie sich mit Ihren PayPal-Daten an.
    • Erstellen Sie Ihre App durch klicken des Buttons "Create App" im Menü "Applications / My Apps".
    • Legen Sie den Namen der App fest und speichern Sie die Einstellungen. (Ich empfehle die Verwendung des Shop-Namens)
    • Anschließend sehen Sie die benötigten Daten "Client-ID" und "Secret" für Live und Sandbox-Account, welche Sie für die Einrichtung des Moduls benötigen.
    • Nutzen Sie den Button rechts oben auf der PayPal-Seite um zwischen den App-Daten der Live- und Sandboxversion zu wechseln.
  2. Zusätzliche Konfiguration der PayPal-App zur Nutzung der "Login mit PayPal"-Funktion:
    • Scrollen Sie auf der PayPal-App-Seite nach unten, bis zu den "APP SETTINGS" (Live oder Sandbox, je nach Auswahl).
    • Tragen Sie die "Return URL" ein. Diese lautet: https://IHRE_DOMAIN.de/login_with_paypal.php
      (SSL-Host Ihres Shops + /login_with_paypal.php)
    • Aktivieren Sie "Log In with PayPal".
    • Öffnen Sie die "Advanced Options" hinter "Log In with PayPal".
    • Markieren Sie:
      • Basic authentication
      • Personal Information (mindestens: Full name)
      • Address Information (mindestens: Email address, Street address, City, Country, Zip-Code)
    • "Privacy policy URL": Tragen Sie die URL zu Ihren Datenschutzbedingungen ein.
    • "User agreement URL": Tragen Sie die URL zu Ihren AGBs ein.
    • Markieren Sie "Use Seamless Checkout".
    • Speichern Sie die Einstellungen und wiederholen Sie die Konfiguration für den Live/Sandbox Betrieb.
  3. Im Menü "Module / Zahlungsoptionen" des Shops finden Sie die Option "PayPal PLUS". Installieren Sie diese.
  4. Konfiguration des Moduls:
    • PayPal-Modus:
      Legen Sie fest, ob Sie in der PayPal-Sandbox arbeiten möchten oder ob Transaktionen wirklich ausgeführt werden sollen.
    • Testmodus:
      Im Testmodus ist das Zahlungsmodul nur für angemeldete Administratoren sichtbar.
    • Shop-Checkout ersetzen?:
      Klickt der angemeldete Kunde auf den "Kasse"-Button im Warenkorb, wird er direkt zum PayPal PLUS-Checkout-Prozess umgeleitet.
      Der Kunde kann dann nur zwischen den PayPal-Zahlungsarten und den unter "Zusätzliche Zahlungsarten" eingegebenen Zahlungsarten wählen. Aktivieren Sie die Option nur, wenn Sie keine Zahlungsarten verwenden, die Eingaben des Kunden erfordern.
    • Zusätzliche Zahlungsarten:
      Tragen Sie die Modulnamen der Zahlungsarten ein, die zusätzlich im PayPal PLUS-Checkout auswählbar sein sollen. Tragen Sie nur Zahlungsarten ein, die keine Eingaben des Kunden erfordern. Die zusätzlichen Zahlungsarten werden im PayPal PLUS-Checkout nur angezeigt, wenn die Option "Shop-Checkout ersetzen?" aktiv ist.
    • Direkt-Checkout im Warenkorb?:
      Zeigt angemeldeten Kunden den Button "direkt zu PayPal" im Warenkorb, mit dem der PayPal PLUS-Checkout ohne Umwege gestartet werden kann. Ist die Option "Shop-Checkout ersetzen?" aktiv, wird der Button im Warenkorb nicht gezeigt.
    • PayPal-Login aktivieren:
      Zeigt nicht angemeldeten Kunden im Warenkorb einen Button, mit dem sie sich über PayPal in den Shop einloggen können. Ist die E-Mail-Adresse des Kunden bereits im Shop vorhanden, wird er mit dieser Adresse angemeldet, andernfalls bekommt der Kunde ein Gast-Konto. Nach erfolgreichem Login wird der Kunde zum PayPal PLUS-Checkout weitergeleitet.
    • PayPal-Express-Button:
      Anstelle des "Login mit PayPal" kann auch der PayPal-Express-Checkout aktiviert werden. Nicht angemeldete Kunden sehen den Button "direkt zu PayPal" im Warenkorb und gelangen über diesen direkt zum PayPal-Checkout. Im Verlauf des Checkout-Prozesses wird dem Kunden ein Gastkonto mit seiner PayPal-Adresse erstellt. Da bei dieser Art des Checkouts die Lieferadresse des Kunden nicht bekannt, ist werden die Versandarten und -Kosten anhand des Shop-Landes ermittelt und erst auf der Bestell-Bestätigungsseite korrigiert.
    • PayPal-Warenkorb zusammenfassen:
      Anonymisieren Sie den Warenkorb in dem Sie die einzelnen Positionen in einer Position zusammenfassen und diese an PayPal übertragen. Die Bezeichnung der zusammengefassten Position legen Sie unter "Titel der Zusammenfassung" fest.
    • Bestellstatus "xxxxx":
      Hier wählen Sie, welchen Status eine Bestellung in Abhängigkeit der PayPal-Rückmeldung bekommt. Den auszuwählenden Status legen Sie im Menü "Konfiguration / Bestellstatus" fest.
    • Bestellstatus "xxxxx" anwenden:
      Entscheiden Sie, ob die gewählte Statusänderung auch angewendet werden soll. Im Fall von "FALSE" wird der Status der Bestellung nicht geändert und in der Status-History des Shops erfolgt kein Eintrag.
    • Bestellstatus für fehlgeschlagene PayPal-Zahlungen:
      Dieser Bestellstatus wird gesetzt, wenn PayPal eine Zahlung nicht ausführen konnte. Die Bestellung befindet sich dann schon in der Datenbank. Der Kunde wird zurück in den Bestellprozess geleitet, mit dem Hinweis, dass seine Bestellung storniert wird und er sie bitte erneut ausführt.
    • PayPal-App Client-ID, PayPal-App Secret:
      Geben Sie hier die Schlüssel ein, die Ihnen in der angelegten PayPal-App (Punkt 1) mitgeteilt wurden.
    • Name der Zahlart/Einleitungstext Zahlart:
      Diesen Text sieht der Kunde in der Auswahl der Zahlungsarten, wenn die Option "Texte aus Sprachdateien verwenden?" nicht aktiviert ist.
    • Shop-Logo:
      Geben Sie die URL zum Logo Ihres Shops an, das PayPal anzeigen soll. Das Logo sollte nicht größer als 190px x 60px sein.
    • Aktualisierung erzwingen:
      Setzen Sie den Wert auf "TRUE" wenn Sie das Logo geändert haben und die Änderung sofort auf PayPal übernommen werden soll. Andernfalls kann eine Änderung bis zu 8 Stunden dauern.

Funktionsumfang des Moduls

Das Modul ergänzt die Zahlungsart "PayPal PLUS" in Ihrem Shop, welche der Kunde im Verlauf des Bestellprozesses auswählen kann:

  • Durch klicken auf "zur Kasse" im Warenkorb.
  • Durch klicken auf "direkt zu PayPal" im Warenkorb.
  • Durch Nutzung des PayPal-Logins für nicht registrierte Kunden im Warenkorb.

Wenn sich der Kunde für die Zahlung mit PayPal PLUS entscheidet, werden sein Warenkorb, sowie seine Adressdaten an PayPal übermittelt. Dem Kunden stehen anschließend die PayPal-Zahlungsmöglichkeiten zur Auswahl. Diese werden gegebenenfalls durch Shop-eigene Zahlungsarten ergänzt.

Hat sich der Kunde für eine PayPal-Zahlungsart entschieden und diese bei PayPal bestätigt, wird er zurück in den Shop geleitet.

Die PayPal-Zahlung wird erst ausgelöst, wenn der Kunde die Bestellung im Shop abschließt.

Im Admin-Bereich:

In den Details einer Bestellung sind Daten zur PayPal-Zahlung und Statusänderungen einsehbar. Eine (Teil-)Rückzahlung kann direkt aus dem Admin-Bereich heraus veranlasst werden.

Ein neuer Menüpunkt "PayPal PLUS" unter "Hilfsprogramme" listet alle PayPal-Transaktionen auf. Dort können Sie nach einzelnen Transaktionen oder Kunden suchen und direkt zur verknüpften Bestellung gelangen.

Installation unter modified eCommerce 1.06

Einleitung

  1. Legen Sie eine Sicherungskopie Ihrer Datenbank und der zu ändernden Dateien an.
  2. Kopieren Sie alle neuen Dateien aus dem beiliegenden Verzeichnis "new_files" in die entsprechenden Verzeichnisse auf Ihrem Server.
  3. Führen Sie die Dateiänderungen zur Neuinstallation aus.
    Im beiliegenden Verzeichnis "changed_files" können Sie alle geänderten Dateien einsehen und vergleichen.
  4. Richten Sie eine PayPal-App ein, wie im Menü "Einrichtung" (links) beschrieben.
  5. Installieren und konfigurieren Sie das Zahlungsmodul "PayPal PLUS" im Admin-Bereich unter "Module / Zahlungsoptionen".

neue Dateien:

  • admin/includes/classes/class.paypal_ppp_admin.php
  • admin/paypal_ppp
  • callback/paypal_ppp/paypal_ppp.php
  • images/paypal-checkout-logo-small-de.png
  • includes/classes/paypal_ppp_rest.class.php
  • includes/modules/payment/paypal_ppp/ALLE DATEIEN
  • includes/modules/payment/paypal_ppp.php
  • lang/english/admin/paypal_ppp.php
  • lang/english/modules/payment/paypal_ppp.php
  • lang/english/modules/payment/paypal_ppp_rechnung.php
  • lang/german/admin/paypal_ppp.php
  • lang/german/modules/payment/paypal_ppp.php
  • lang/german/modules/payment/paypal_ppp_rechnung.php
  • templates/xtc5/module/checkout_paypal_ppp.html
  • checkout_paypal_ppp.php
  • login_with_paypal.php
  • paypal_ppp_ajax_requests.php

Dateiänderungen für Neuinstallation

Achtung, die zu suchenden Zeilen beziehen sich auf unveränderte Shops der Version 1.06 r4642 SP2. In Ihrem Shop können die angegebene Zeilennummern und die zu suchenden Passagen abweichen.


admin/includes/column_left.php

ca. Zeile 150

Suche:


  if (($_SESSION['customers_status']['customers_status_id'] == '0') && (isset($admin_access['paypal']) && $admin_access['paypal'] == '1')) echo '<li><a href="' . xtc_href_link('paypal.php') . '" class="menuBoxContentLink"> -' . BOX_PAYPAL . '</a></li>'; //Tomcraft - 2009-10-03 - Paypal Express Modul in admin access

Darunter einfügen:


  /* BOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */
  if (($_SESSION['customers_status']['customers_status_id'] == '0') && (isset($admin_access['paypal_ppp']) && $admin_access['paypal_ppp'] == '1')) echo '<li><a href="' . xtc_href_link('paypal_ppp.php') . '" class="menuBoxContentLink"> -PAYPAL PLUS</a></li>';
  /* EOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */

admin/includes/stylesheet.css

Am Dateiende

einfügen:


/* BOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */
#paypal_ppp_order_details_box label { display: inline-block; width: 150px; margin-right: 15px; }
/* EOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */

admin/orders.php

ca. Zeile 138

Suche:


while ($orders_status = xtc_db_fetch_array($orders_status_query)) {
  $orders_statuses[] = array ('id' => $orders_status['orders_status_id'], 'text' => $orders_status['orders_status_name']);
  $orders_status_array[$orders_status['orders_status_id']] = $orders_status['orders_status_name'];
}

Darunter einfügen:



/* BOF AGI PAYPAL-PPP www.andreas-guder.de 1/2 */
if(file_exists(DIR_FS_CATALOG.DIR_WS_INCLUDES.'modules/payment/paypal_ppp/hook_admin_orders_1.php'))
  require DIR_FS_CATALOG.DIR_WS_INCLUDES.'modules/payment/paypal_ppp/hook_admin_orders_1.php';
/* EOF AGI PAYPAL-PPP www.andreas-guder.de 1/2 */

ca. Zeile 500

Suche:


              // Paypal Express Modul
              if ($order->info['payment_method']=='paypal_directpayment' or $order->info['payment_method']=='paypal' or $order->info['payment_method']=='paypalexpress') {
                require('../includes/classes/paypal_checkout.php');
                require('includes/classes/class.paypal.php');
                $paypal = new paypal_admin();
                $paypal->admin_notification($oID);
              }

Darunter einfügen:


              
              /* BOF AGI PAYPAL-PPP www.andreas-guder.de 2/2 */
              if(file_exists(DIR_FS_CATALOG.DIR_WS_INCLUDES.'modules/payment/paypal_ppp/hook_admin_orders_2.php'))
                require DIR_FS_CATALOG.DIR_WS_INCLUDES.'modules/payment/paypal_ppp/hook_admin_orders_2.php';
              /* EOF AGI PAYPAL-PPP www.andreas-guder.de 2/2 */

admin/print_order.php

ca. Zeile 71

Suche:


  $smarty->assign('COMMENTS', $order->info['comments']);
  $smarty->assign('DATE',xtc_date_long($order->info['date_purchased']));

Darunter einfügen:


  
  /* BOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */
  if(file_exists(DIR_FS_CATALOG.DIR_WS_INCLUDES.'modules/payment/paypal_ppp/hook_admin_print_order.php'))
    require DIR_FS_CATALOG.DIR_WS_INCLUDES.'modules/payment/paypal_ppp/hook_admin_print_order.php';
  /* EOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */

includes/classes/order_total.php

ca. Zeile 227

Suche:


				include (DIR_WS_LANGUAGES.$_SESSION['language'].'/modules/order_total/'.$value);
				include (DIR_WS_MODULES.'order_total/'.$value);

Ersetzen mit:


        /* BOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */
				include_once (DIR_WS_LANGUAGES.$_SESSION['language'].'/modules/order_total/'.$value);
				include_once (DIR_WS_MODULES.'order_total/'.$value);
        /* EOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */

includes/classes/shipping.php

ca. Zeile 55

Suche:


              include(DIR_WS_LANGUAGES . $_SESSION['language'] . '/modules/shipping/' . $include_modules[$i]['file']);
              include(DIR_WS_MODULES . 'shipping/' . $include_modules[$i]['file']);

Ersetzen mit:


              /* BOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */
              include_once(DIR_WS_LANGUAGES . $_SESSION['language'] . '/modules/shipping/' . $include_modules[$i]['file']);
              include_once(DIR_WS_MODULES . 'shipping/' . $include_modules[$i]['file']);
              /* EOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */

includes/database_tables.php

Am Dateiende über ?>

einfügen:


  /* BOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */
  define('TABLE_PAYPAL_PPP', 'paypal_ppp');
  define('TABLE_PAYPAL_PPP_STATUS_HISTORY', 'paypal_ppp_status_history');
  /* EOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */

includes/filenames.php

Am Dateiende über ?>

einfügen:


/* BOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */
define('FILENAME_CHECKOUT_PAYPAL_PPP', 'checkout_paypal_ppp.php');
define('FILENAME_LOGIN_WITH_PAYPAL', 'login_with_paypal.php');
/* EOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */

lang/english/english.php

ca. Zeile 382

Suche:


define('NAVBAR_GV_SEND', 'Send Voucher');

Darunter einfügen:


/* BOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 1/1 */
define('NAVBAR_TITLE_CHECKOUT_PAYPAL_PPP', 'PayPal Checkout');
define('TEXT_PLEASE_WAIT', 'Please wait');
/* EOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 1/1 */

lang/english/lang_english.conf

Am Dateiende

einfügen:



#BOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 1/1
[checkout_paypal_ppp]
heading_checkout = 'PayPal-Checkout'
title_payment = 'Wie m&ouml;chten Sie bezahlen?'
title_shipping = 'Shipping method:'
title_comments = 'Insert personal message regarding your order'
activate_javascript = 'Aktivieren Sie JavaScript im Browser oder gehen Sie '
back_to_cart = 'back to cart'
title_agb = 'Allgemeine Gesch&auml;ftsbedingungen:'
text_accept_agb = 'Ich akzeptiere die allgemeinen Gesch&auml;fts- und Lieferbedingungen'
text_choose_state = 'Choose a state please: '
#EOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 1/1

lang/german/german.php

ca. Zeile 382

Suche:


define('NAVBAR_GV_SEND', 'Gutschein versenden');

Darunter einfügen:


/* BOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 1/1 */
define('NAVBAR_TITLE_CHECKOUT_PAYPAL_PPP', 'PayPal Checkout');
define('TEXT_PLEASE_WAIT', 'Bitte warten');
/* EOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 1/1 */

lang/german/lang_german.conf

Am Dateiende

einfügen:



#BOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 1/1
[checkout_paypal_ppp]
heading_checkout = 'PayPal-Checkout'
title_payment = 'Wie m&ouml;chten Sie bezahlen?'
title_shipping= 'Versandoptionen'
title_comments = 'F&uuml;gen Sie hier Ihre Anmerkungen zu dieser Bestellung ein'
activate_javascript = 'Aktivieren Sie JavaScript im Browser oder gehen Sie '
back_to_cart = 'Zur&uuml;ck zum Warenkorb'
title_agb = 'Allgemeine Gesch&auml;ftsbedingungen:'
text_accept_agb = 'Ich akzeptiere die allgemeinen Gesch&auml;fts- und Lieferbedingungen'
text_choose_state = 'Bitte w&auml;hlen Sie Ihr Bundesland aus: '
#EOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 1/1

templates/xtc5/admin/print_order.html

ca. Zeile 92

Suche:


      <tr>
        <td nowrap>
          <table width="100%" border="0" cellpadding="3" cellspacing="0">
            {foreach name=aussen item=order_total_values from=$order_total}
              <tr>
                <td nowrap width="100%" class="small">
                  <div align="right">
                    {$order_total_values.TITLE}{$order_total_values.TEXT}
                  </div>
                </td>
              </tr>
            {/foreach}
          </table>
        </td>
      </tr>

Darunter einfügen:


      {if $PPP_PAYMENT_INSTRUCTION}
      <tr>
        <td>
          <table style="border-top:1px solid;border-bottom:1px solid;" width="100%" border="0" cellpadding="0" cellspacing="0">
            <tr>
              <td class="normal">
                {$PPP_PAYMENT_INSTRUCTION}
              </td>
            </tr>
          </table>
        </td>
      </tr>
      {/if}

templates/xtc5/stylesheet.css

Am Dateiende

einfügen:



/* BOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */
#contentfull .content_box_wrapper { overflow: hidden; }
#contentfull .content_box_wrapper .box_left { width: 49%; float: left; border-right: 1px solid #ccc;}
#contentfull .content_box_wrapper .box_right { width: 49%; float: right;}
#contentfull .content_box_wrapper .box_left .agbframe { width: 90%; }
/* EOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */

templates/xtc5/module/shopping_cart.html

ca. Zeile 14

Suche:


{$FORM_END}{/if}

Ersetze durch:


{$FORM_END}
{$PPP_BUTTON}
{/if}

checkout_confirmation.php

ca. Zeile 47

Suche:


// if the customer is not logged on, redirect them to the login page
if (!isset ($_SESSION['customer_id']))
  xtc_redirect(xtc_href_link(FILENAME_LOGIN, '', 'SSL'));

Ersetze durch:


// if the customer is not logged on, redirect them to the login page
/* BOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 1/6 */
if (defined('MODULE_PAYMENT_PAYPAL_PPP_STATUS') && MODULE_PAYMENT_PAYPAL_PPP_STATUS == 'True' && isset($_SESSION['agi_ppp']['express_checkout']) && $_SESSION['agi_ppp']['express_checkout'] == true && isset($_GET['ppp_confirm']))
{
  // the PayPal-Plus modul will create an account later, so dont't redirect
}
elseif (!isset ($_SESSION['customer_id']))
  xtc_redirect(xtc_href_link(FILENAME_LOGIN, '', 'SSL'));
/* EOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 1/6 */

ca. Zeile 73

Suche:


if (isset ($_POST['payment']))
  $_SESSION['payment'] = xtc_db_prepare_input($_POST['payment']);

Darunter einfügen:


/* BOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 2/6 */
if (isset($_GET['payment']) && !empty($_GET['payment']) && isset($_GET['ppp_confirm']))
  $_SESSION['payment'] = xtc_db_prepare_input($_GET['payment']);
/* EOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 2/6 */

ca. Zeile 88

Suche:


if (DISPLAY_CONDITIONS_ON_CHECKOUT == 'true') {

Ersetze durch:


/* BOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 3/6 */
//if (DISPLAY_CONDITIONS_ON_CHECKOUT == 'true') {
if (DISPLAY_CONDITIONS_ON_CHECKOUT == 'true' && (!isset($_GET['ppp_confirm']) || (isset($_GET['ppp_confirm']) && empty($_SESSION['agi_ppp']['ppp_payment_id'])))) {
/* EOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 3/6 */

ca. Zeile 106

Suche:


require (DIR_WS_CLASSES . 'order_total.php');
require (DIR_WS_CLASSES . 'order.php');

Ersetze durch:


/* BOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 4/6 */
require_once (DIR_WS_CLASSES . 'order_total.php');
require_once (DIR_WS_CLASSES . 'order.php');
/* EOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 4/6 */

ca. Zeile 131

Suche:


require (DIR_WS_CLASSES . 'shipping.php');

Ersetze durch:


/* BOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 5/6 */
require_once (DIR_WS_CLASSES . 'shipping.php');
/* EOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 5/6 */

ca. Zeile 184

Suche:


  include_once (DIR_WS_LANGUAGES . '/' . $_SESSION['language'] . '/modules/payment/' . $order->info['payment_method'] . '.php');
  $smarty->assign('PAYMENT_METHOD', constant('MODULE_PAYMENT_' . strtoupper($order->info['payment_method']) . '_TEXT_TITLE'));

Darunter einfügen:


  /* BOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 6/6 */
  if (substr($order->info['payment_method'],0,10) == 'paypal_ppp' && defined('MODULE_PAYMENT_PAYPAL_PPP_STATUS') && MODULE_PAYMENT_PAYPAL_PPP_STATUS == 'True')
    include DIR_FS_CATALOG.'includes/modules/payment/paypal_ppp/hook_checkout_confirmation.php';
  /* EOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 6/6 */

checkout_shipping.php

ca. Zeile 80

Suche:


	if ($check_address['total'] != '1') {
		$_SESSION['sendto'] = $_SESSION['customer_default_address_id'];
		if (isset ($_SESSION['shipping']))
			unset ($_SESSION['shipping']);
	}
}

Darunter einfügen:


/* BOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */
if (defined('MODULE_PAYMENT_PAYPAL_PPP_STATUS') && MODULE_PAYMENT_PAYPAL_PPP_STATUS == 'True')
  include DIR_FS_CATALOG.'includes/modules/payment/paypal_ppp/hook_checkout_shipping.php';
/* EOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */

checkout_success.php

ca. Zeile 30

Suche:


include ('includes/application_top.php');

Darunter einfügen:


/* BOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 1/1 */
if (defined('MODULE_PAYMENT_PAYPAL_PPP_STATUS') && MODULE_PAYMENT_PAYPAL_PPP_STATUS == 'True')
  include DIR_FS_CATALOG.'includes/modules/payment/paypal_ppp/hook_checkout_success.php';
/* EOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 1/1 */

shopping_cart.php

ca. Zeile 276

Suche:


$smarty->assign('language', $_SESSION['language']);
$main_content = $smarty->fetch(CURRENT_TEMPLATE.'/module/shopping_cart.html');

Darüber einfügen:



/* BOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */
if (defined('MODULE_PAYMENT_PAYPAL_PPP_STATUS') && MODULE_PAYMENT_PAYPAL_PPP_STATUS == 'True')
  include DIR_FS_CATALOG.'includes/modules/payment/paypal_ppp/hook_shopping_cart.php';
/* EOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */

Installation unter modified eCommerce 1.05

Einleitung

  1. Legen Sie eine Sicherungskopie Ihrer Datenbank und der zu ändernden Dateien an.
  2. Kopieren Sie alle neuen Dateien aus dem beiliegenden Verzeichnis "new_files" in die entsprechenden Verzeichnisse auf Ihrem Server.
  3. Führen Sie die Dateiänderungen zur Neuinstallation aus.
    Im beiliegenden Verzeichnis "changed_files" können Sie alle geänderten Dateien einsehen und vergleichen.
  4. Richten Sie eine PayPal-App ein, wie im Menü "Einrichtung" (links) beschrieben.
  5. Installieren und konfigurieren Sie das Zahlungsmodul "PayPal PLUS" im Admin-Bereich unter "Module / Zahlungsoptionen".

neue Dateien:

  • admin/includes/classes/class.paypal_ppp_admin.php
  • admin/paypal_ppp
  • callback/paypal_ppp/paypal_ppp.php
  • images/paypal-checkout-logo-small-de.png
  • includes/classes/paypal_ppp_rest.class.php
  • includes/modules/payment/paypal_ppp/ALLE DATEIEN
  • includes/modules/payment/paypal_ppp.php
  • lang/english/admin/paypal_ppp.php
  • lang/english/modules/payment/paypal_ppp.php
  • lang/english/modules/payment/paypal_ppp_rechnung.php
  • lang/german/admin/paypal_ppp.php
  • lang/german/modules/payment/paypal_ppp.php
  • lang/german/modules/payment/paypal_ppp_rechnung.php
  • templates/xtc5/module/checkout_paypal_ppp.html
  • checkout_paypal_ppp.php
  • login_with_paypal.php
  • paypal_ppp_ajax_requests.php

Dateiänderungen für Neuinstallation

Achtung, die zu suchenden Zeilen beziehen sich auf unveränderte Shops der Version 1.05 SP1d. In Ihrem Shop können die angegebene Zeilennummern und die zu suchenden Passagen abweichen.


admin/includes/column_left.php

ca. Zeile 134

Suche:


// BOF - web28 - 2010-05-07 - PayPal API Modul
  if (($_SESSION['customers_status']['customers_status_id'] == '0') && ($admin_access['paypal'] == '1')) echo '<li><a href="' . xtc_href_link('paypal.php') . '" class="menuBoxContentLink"> -' . BOX_PAYPAL . '</a></li>';
// EOF - web28 - 2010-05-07 - PayPal API Modul

Darunter einfügen:


  /* BOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */
  if (($_SESSION['customers_status']['customers_status_id'] == '0') && (isset($admin_access['paypal_ppp']) && $admin_access['paypal_ppp'] == '1')) echo '<li><a href="' . xtc_href_link('paypal_ppp.php') . '" class="menuBoxContentLink"> -PAYPAL PLUS</a></li>';
  /* EOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */

admin/includes/stylesheet.css

Am Dateiende

einfügen:


/* BOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */
#paypal_ppp_order_details_box label { display: inline-block; width: 150px; margin-right: 15px; }
/* EOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */

admin/orders.php

ca. Zeile 137

Suche:


while ($orders_status = xtc_db_fetch_array($orders_status_query)) {
  $orders_statuses[] = array ('id' => $orders_status['orders_status_id'], 'text' => $orders_status['orders_status_name']);
  $orders_status_array[$orders_status['orders_status_id']] = $orders_status['orders_status_name'];
}

Darunter einfügen:



/* BOF AGI PAYPAL-PPP www.andreas-guder.de 1/2 */
if(file_exists(DIR_FS_CATALOG.DIR_WS_INCLUDES.'modules/payment/paypal_ppp/hook_admin_orders_1.php'))
  require DIR_FS_CATALOG.DIR_WS_INCLUDES.'modules/payment/paypal_ppp/hook_admin_orders_1.php';
/* EOF AGI PAYPAL-PPP www.andreas-guder.de 1/2 */

ca. Zeile 471

Suche:


  // Banktransfer - START

Darüber einfügen:


  /* BOF AGI PAYPAL-PPP www.andreas-guder.de 2/2 */
  if(file_exists(DIR_FS_CATALOG.DIR_WS_INCLUDES.'modules/payment/paypal_ppp/hook_admin_orders_2.php'))
    require DIR_FS_CATALOG.DIR_WS_INCLUDES.'modules/payment/paypal_ppp/hook_admin_orders_2.php';
  /* EOF AGI PAYPAL-PPP www.andreas-guder.de 2/2 */

admin/print_order.php

ca. Zeile 64

Suche:


  $smarty->assign('COMMENTS', $order->info['comments']);
  $smarty->assign('DATE',xtc_date_long($order->info['date_purchased']));

Darunter einfügen:


  
  /* BOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */
  if(file_exists(DIR_FS_CATALOG.DIR_WS_INCLUDES.'modules/payment/paypal_ppp/hook_admin_print_order.php'))
    require DIR_FS_CATALOG.DIR_WS_INCLUDES.'modules/payment/paypal_ppp/hook_admin_print_order.php';
  /* EOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */

includes/classes/order_total.php

ca. Zeile 227

Suche:


				include (DIR_WS_LANGUAGES.$_SESSION['language'].'/modules/order_total/'.$value);
				include (DIR_WS_MODULES.'order_total/'.$value);

Ersetzen mit:


        /* BOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */
				include_once (DIR_WS_LANGUAGES.$_SESSION['language'].'/modules/order_total/'.$value);
				include_once (DIR_WS_MODULES.'order_total/'.$value);
        /* EOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */

includes/classes/shipping.php

ca. Zeile 59

Suche:


              include(DIR_WS_LANGUAGES . $_SESSION['language'] . '/modules/shipping/' . $include_modules[$i]['file']);
              include(DIR_WS_MODULES . 'shipping/' . $include_modules[$i]['file']);

Ersetzen mit:


              /* BOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */
              include_once(DIR_WS_LANGUAGES . $_SESSION['language'] . '/modules/shipping/' . $include_modules[$i]['file']);
              include_once(DIR_WS_MODULES . 'shipping/' . $include_modules[$i]['file']);
              /* EOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */

includes/database_tables.php

Am Dateiende über ?>

einfügen:


  /* BOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */
  define('TABLE_PAYPAL_PPP', 'paypal_ppp');
  define('TABLE_PAYPAL_PPP_STATUS_HISTORY', 'paypal_ppp_status_history');
  /* EOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */

includes/filenames.php

Am Dateiende über ?>

einfügen:


/* BOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */
define('FILENAME_CHECKOUT_PAYPAL_PPP', 'checkout_paypal_ppp.php');
define('FILENAME_LOGIN_WITH_PAYPAL', 'login_with_paypal.php');
/* EOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */

lang/english/english.php

ca. Zeile 382

Suche:


define('NAVBAR_GV_SEND', 'Send Voucher');

Darunter einfügen:


/* BOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 1/1 */
define('NAVBAR_TITLE_CHECKOUT_PAYPAL_PPP', 'PayPal Checkout');
define('TEXT_PLEASE_WAIT', 'Please wait');
/* EOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 1/1 */

lang/english/lang_english.conf

Am Dateiende

einfügen:



#BOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 1/1
[checkout_paypal_ppp]
heading_checkout = 'PayPal-Checkout'
title_payment = 'Wie m&ouml;chten Sie bezahlen?'
title_shipping = 'Shipping method:'
title_comments = 'Insert personal message regarding your order'
activate_javascript = 'Aktivieren Sie JavaScript im Browser oder gehen Sie '
back_to_cart = 'back to cart'
title_agb = 'Allgemeine Gesch&auml;ftsbedingungen:'
text_accept_agb = 'Ich akzeptiere die allgemeinen Gesch&auml;fts- und Lieferbedingungen'
text_choose_state = 'Choose a state please: '
#EOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 1/1

lang/german/german.php

ca. Zeile 382

Suche:


define('NAVBAR_GV_SEND', 'Gutschein versenden');

Darunter einfügen:


/* BOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 1/1 */
define('NAVBAR_TITLE_CHECKOUT_PAYPAL_PPP', 'PayPal Checkout');
define('TEXT_PLEASE_WAIT', 'Bitte warten');
/* EOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 1/1 */

lang/german/lang_german.conf

Am Dateiende

einfügen:



#BOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 1/1
[checkout_paypal_ppp]
heading_checkout = 'PayPal-Checkout'
title_payment = 'Wie m&ouml;chten Sie bezahlen?'
title_shipping= 'Versandoptionen'
title_comments = 'F&uuml;gen Sie hier Ihre Anmerkungen zu dieser Bestellung ein'
activate_javascript = 'Aktivieren Sie JavaScript im Browser oder gehen Sie '
back_to_cart = 'Zur&uuml;ck zum Warenkorb'
title_agb = 'Allgemeine Gesch&auml;ftsbedingungen:'
text_accept_agb = 'Ich akzeptiere die allgemeinen Gesch&auml;fts- und Lieferbedingungen'
text_choose_state = 'Bitte w&auml;hlen Sie Ihr Bundesland aus: '
#EOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 1/1

templates/xtc5/admin/print_order.html

ca. Zeile 92

Suche:


      <tr>
        <td nowrap>
          <table width="100%" border="0" cellpadding="3" cellspacing="0">
            {foreach name=aussen item=order_total_values from=$order_total}
              <tr>
                <td nowrap width="100%" class="small">
                  <div align="right">
                    {$order_total_values.TITLE}{$order_total_values.TEXT}
                  </div>
                </td>
              </tr>
            {/foreach}
          </table>
        </td>
      </tr>

Darunter einfügen:


      {if $PPP_PAYMENT_INSTRUCTION}
      <tr>
        <td>
          <table style="border-top:1px solid;border-bottom:1px solid;" width="100%" border="0" cellpadding="0" cellspacing="0">
            <tr>
              <td class="normal">
                {$PPP_PAYMENT_INSTRUCTION}
              </td>
            </tr>
          </table>
        </td>
      </tr>
      {/if}

templates/xtc5/stylesheet.css

Am Dateiende

einfügen:



/* BOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */
#contentfull .content_box_wrapper { overflow: hidden; }
#contentfull .content_box_wrapper .box_left { width: 49%; float: left; border-right: 1px solid #ccc;}
#contentfull .content_box_wrapper .box_right { width: 49%; float: right;}
#contentfull .content_box_wrapper .box_left .agbframe { width: 90%; }
/* EOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */

templates/xtc5/module/shopping_cart.html

ca. Zeile 31

Suche:


<p>{$FORM_END}{/if}

Ersetze durch:


<p>{$FORM_END}
{$PPP_BUTTON}
{/if}

checkout_confirmation.php

ca. Zeile 46

Suche:


// if the customer is not logged on, redirect them to the login page
if (!isset ($_SESSION['customer_id']))
	xtc_redirect(xtc_href_link(FILENAME_LOGIN, '', 'SSL'));

Ersetze durch:


// if the customer is not logged on, redirect them to the login page
/* BOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 1/6 */
if (defined('MODULE_PAYMENT_PAYPAL_PPP_STATUS') && MODULE_PAYMENT_PAYPAL_PPP_STATUS == 'True' && isset($_SESSION['agi_ppp']['express_checkout']) && $_SESSION['agi_ppp']['express_checkout'] == true && isset($_GET['ppp_confirm']))
{
  // the PayPal-Plus modul will create an account later, so dont't redirect
}
elseif (!isset ($_SESSION['customer_id']))
  xtc_redirect(xtc_href_link(FILENAME_LOGIN, '', 'SSL'));
/* EOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 1/6 */

ca. Zeile 72

Suche:


if (isset ($_POST['payment']))
  $_SESSION['payment'] = xtc_db_prepare_input($_POST['payment']);

Darunter einfügen:


/* BOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 2/6 */
if (isset($_GET['payment']) && !empty($_GET['payment']) && isset($_GET['ppp_confirm']))
  $_SESSION['payment'] = xtc_db_prepare_input($_GET['payment']);
/* EOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 2/6 */

ca. Zeile 87

Suche:


if (DISPLAY_CONDITIONS_ON_CHECKOUT == 'true') {

Ersetze durch:


/* BOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 3/6 */
//if (DISPLAY_CONDITIONS_ON_CHECKOUT == 'true') {
if (DISPLAY_CONDITIONS_ON_CHECKOUT == 'true' && (!isset($_GET['ppp_confirm']) || (isset($_GET['ppp_confirm']) && empty($_SESSION['agi_ppp']['ppp_payment_id'])))) {
/* EOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 3/6 */

ca. Zeile 105

Suche:


require (DIR_WS_CLASSES . 'order_total.php');
require (DIR_WS_CLASSES . 'order.php');

Ersetze durch:


/* BOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 4/6 */
require_once (DIR_WS_CLASSES . 'order_total.php');
require_once (DIR_WS_CLASSES . 'order.php');
/* EOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 4/6 */

ca. Zeile 130

Suche:


require (DIR_WS_CLASSES . 'shipping.php');

Ersetze durch:


/* BOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 5/6 */
require_once (DIR_WS_CLASSES . 'shipping.php');
/* EOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 5/6 */

ca. Zeile 231

Suche:


	include_once (DIR_WS_LANGUAGES . '/' . $_SESSION['language'] . '/modules/payment/' . $order->info['payment_method'] . '.php');
	$smarty->assign('PAYMENT_METHOD', constant('MODULE_PAYMENT_' . strtoupper($order->info['payment_method']) . '_TEXT_TITLE'));

Darunter einfügen:


  /* BOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 6/6 */
  if (substr($order->info['payment_method'],0,10) == 'paypal_ppp' && defined('MODULE_PAYMENT_PAYPAL_PPP_STATUS') && MODULE_PAYMENT_PAYPAL_PPP_STATUS == 'True')
    include DIR_FS_CATALOG.'includes/modules/payment/paypal_ppp/hook_checkout_confirmation.php';
  /* EOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 6/6 */

checkout_shipping.php

ca. Zeile 80

Suche:


	if ($check_address['total'] != '1') {
		$_SESSION['sendto'] = $_SESSION['customer_default_address_id'];
		if (isset ($_SESSION['shipping']))
			unset ($_SESSION['shipping']);
	}
}

Darunter einfügen:


/* BOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */
if (defined('MODULE_PAYMENT_PAYPAL_PPP_STATUS') && MODULE_PAYMENT_PAYPAL_PPP_STATUS == 'True')
  include DIR_FS_CATALOG.'includes/modules/payment/paypal_ppp/hook_checkout_shipping.php';
/* EOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */

checkout_success.php

ca. Zeile 30

Suche:


include ('includes/application_top.php');

Darunter einfügen:


/* BOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 1/1 */
if (defined('MODULE_PAYMENT_PAYPAL_PPP_STATUS') && MODULE_PAYMENT_PAYPAL_PPP_STATUS == 'True')
  include DIR_FS_CATALOG.'includes/modules/payment/paypal_ppp/hook_checkout_success.php';
/* EOF AGI PAYPAL-PPP CHECKOUT www.andreas-guder.de 1/1 */

shopping_cart.php

ca. Zeile 183

Suche:


$smarty->assign('language', $_SESSION['language']);

Darüber einfügen:



/* BOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */
if (defined('MODULE_PAYMENT_PAYPAL_PPP_STATUS') && MODULE_PAYMENT_PAYPAL_PPP_STATUS == 'True')
  include DIR_FS_CATALOG.'includes/modules/payment/paypal_ppp/hook_shopping_cart.php';
/* EOF AGI PAYPAL-PPP www.andreas-guder.de 1/1 */

 

©2015 AGI - Andreas Guder Internetagentur