NAVIGATION
This shows you the differences between two versions of the page.
deutsch:module:shop:paypal-neu [2012/02/26 14:10] Robert |
deutsch:module:shop:paypal-neu [2018/06/03 18:09] (current) |
||
---|---|---|---|
Line 17: | Line 17: | ||
==== #1: DB-Update ==== | ==== #1: DB-Update ==== | ||
- | Es muß eine neuen Zwischenspeicher-Tabelle angelegt werden. | + | Es muß eine neue Zwischenspeicher-Tabelle angelegt werden. |
<code php|h SQL-Anweisung in phpmyadmin ausführen:|h> | <code php|h SQL-Anweisung in phpmyadmin ausführen:|h> | ||
Line 51: | Line 51: | ||
) ENGINE=MyISAM AUTO_INCREMENT=14 ; | ) ENGINE=MyISAM AUTO_INCREMENT=14 ; | ||
</code> | </code> | ||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
==== #2: Einspielen der notwendige Dateien ==== | ==== #2: Einspielen der notwendige Dateien ==== | ||
- front_order_process.inc.php \\ | - front_order_process.inc.php \\ | ||
- paypal.class.php \\ | - paypal.class.php \\ | ||
- | hier herunterladen | + | hier herunterladen \\ |
- | {{:deutsch:module:shop:phpwcms_paypal.zip|}} | + | {{:deutsch:module:shop:phpwcms_r421andup_paypal.zip|}} |
- | und auf den Server/ in include/inc_module/mod_shop_paypal/inc kopieren. | + | und auf den Server in include/inc_module/mod_shop_paypal/inc kopieren. |
\\ | \\ | ||
- | ==== #3: Modifizieren des bestehenden Orderprocess ==== | ||
\\ | \\ | ||
\\ | \\ | ||
+ | \\ | ||
+ | |||
+ | ==== #3: Modifizieren des bestehenden Orderprocess ==== | ||
=== 1. Template File === | === 1. Template File === | ||
Line 173: | Line 179: | ||
$_SESSION['shopping_cart']['order_number'] = $order_num; | $_SESSION['shopping_cart']['order_number'] = $order_num; | ||
- | switch( $_SESSION['shopping_cart']['payby'] ){ | + | switch( $_SESSION[CART_KEY]['payby'] ){ |
- | + | ||
case 'paypal': | case 'paypal': | ||
headerRedirect(PHPWCMS_URL.$_tmpl['config']['cart_url']."&shop_order_process"); | headerRedirect(PHPWCMS_URL.$_tmpl['config']['cart_url']."&shop_order_process"); | ||
Line 437: | Line 443: | ||
} | } | ||
</code> | </code> | ||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
- | + | ==== #4: Zusammenfassung ==== | |
- | + | Jetzt müßte \\ | |
- | + | a. die Zahlart PayPal Auswahl im Shop verfügbar sein | |
- | + | ||
- | + | ||
- | + | ||
- | ==== #4: Zwischenzusammenfassung ==== | + | |
- | Ab jetzt müßte \\ | + | |
- | a. die Zahlart PayPal Auswahl im Shop verfügbar sein \\ | + | |
b. der Shop innerhalb seiner normalen Parameter funktionieren | b. der Shop innerhalb seiner normalen Parameter funktionieren | ||
c. eine Weiterleitung geschehen (höchstwahrscheinlich fehlerhaft!) | c. eine Weiterleitung geschehen (höchstwahrscheinlich fehlerhaft!) | ||
Line 453: | Line 457: | ||
\\ | \\ | ||
\\ | \\ | ||
+ | \\ | ||
+ | ==== #5: config.inc.php ==== | ||
Mit großer Wahrscheinlichkeit ist die Weiterleitungen beim Abschliessen des Bestellprozesses fehlerhaft. Die Parameter $phpwcms['machine_alias'] und $phpwcms['site_domain'] existieren Standardmäßig nicht und sollten in die config.inc.php nachgetragen werden. | Mit großer Wahrscheinlichkeit ist die Weiterleitungen beim Abschliessen des Bestellprozesses fehlerhaft. Die Parameter $phpwcms['machine_alias'] und $phpwcms['site_domain'] existieren Standardmäßig nicht und sollten in die config.inc.php nachgetragen werden. | ||
Konkret wäre das: | Konkret wäre das: | ||
Line 461: | Line 467: | ||
\\ | \\ | ||
In diesem Zusammenhang auch die frontend.render.php => function validateReferrer() einsehen und verstehen was da passiert! | In diesem Zusammenhang auch die frontend.render.php => function validateReferrer() einsehen und verstehen was da passiert! | ||
- | |||
- | ==== #5.1: Übersetzung ==== | ||
- | Wird ein Kunde zu Paypal weiter geleitet erscheint eine Meldung. Diese ist derzeit in englischer Sprache. Unter paypal.class.php kann dies verändert werden. \\ | ||
- | \\ | ||
- | Such nach | ||
- | <code> | ||
- | // Generate the request header | ||
- | </code> | ||
- | und ersetze das darauf folgende | ||
- | <code php|h beispielhaft mit:|h> | ||
- | echo "<html>\n"; | ||
- | echo "<head><title>PayPal Zahlung...</title></head>\n"; | ||
- | |||
- | echo "<body onLoad=\"document.forms['paypal_form'].submit();\">\n"; | ||
- | |||
- | echo "<center><h2>Bitte warten. Sie werden jetzt zu PayPal weiter geleitet.</h2></center>\n"; | ||
- | echo "<form method=\"post\" name=\"paypal_form\" "; | ||
- | echo "action=\"".$this->paypal_url."\">\n"; | ||
- | |||
- | foreach ($this->fields as $name => $value) { | ||
- | echo "<input type=\"hidden\" name=\"$name\" value=\"$value\"/>\n"; | ||
- | } | ||
- | echo "<center><br/><br/>Sollten Sie nicht innerhalb der nächsten Sekunden weitergeleitet werden "; | ||
- | echo "klicken Sie bitte hier...<br/><br/>\n"; | ||
- | echo "<input type=\"submit\" value=\"Zu PayPal\"></center>\n"; | ||
- | |||
- | echo "</form>\n"; | ||
- | echo "</body></html>\n"; | ||
- | </code> | ||
- | \\ | ||
- | \\ | ||
- | ==== #5.2: Übersetzung ==== | ||
- | Die Success/ Error Page muß ebenso angepasst werden. Diese -wie zuvor angelegt/ eingefügt- im Template ganz am Ende zu finden. \\ | ||
- | \\ | ||
- | <code php|h beispielhafte deutsche übersetzung:|h> | ||
- | <!--PAYPAL_ORDER_DONE_START//--> | ||
- | <h2>Bestellung #{ORDER} erfolgreich platziert</h2> | ||
- | <p>Hallo <strong>{INV_FIRSTNAME} {INV_NAME}</strong>,<br /> | ||
- | Vielen Dank für deine Bestellung. Du erhälst eine Benachrichtigung an <strong>{EMAIL}</strong> sobald uns Deine Bezahlung von PayPal bestätigt wurde.</p> | ||
- | <p>Deine Bestellnummer lautet: <strong>{ORDER}</strong>. Bitte verwende die Nummer bei Rückfragen.</p> | ||
- | <!--PAYPAL_ORDER_DONE_END//--> | ||
- | |||
- | <!--PAYPAL_ORDER_DEBUG_START//--> | ||
- | <h2>Paypal Fehler</h2> | ||
- | <p><strong>{DEBUG_MSG1} </strong></p> | ||
- | <p><strong>{DEBUG_MSG2} </strong></p> | ||
- | <!--PAYPAL_ORDER_DEBUG_END//--> | ||
- | </code> | ||
- | \\ | ||
- | \\ | ||
- | \\ | ||
- | ==== #6: Beheben des Steuerbug ==== | ||
- | Zwar gibt es unter Shop > Produkte die Möglichkeit zu bestimmen ob ein Preis in brutto oder netto vorliegt. Die Erweiterung wertet dies jedoch nicht aus sondern geht standardmäßig von einem Netto-Preis aus. Das bedeutet PayPal rechnet noch einmal die Mehrwertsteuer oben drauf. Diese Erweiterung beseitigt das unerwünschte Verhalten. \\ | ||
- | \\ | ||
- | **ACHTUNG:** Hier wäre eine Abfrage wünschenswert die anhand der Erfassung im Backend entscheidet ob Artikel mit oder ohne MwSt. an Paypal übergeben werden muß. Der folgende Core-Hack erfordert **alle** Produkte des Shops als Brutto. \\ | ||
- | \\ | ||
- | Vorgehensweise: Quick&Dirty wird die Tax-Zeile aus der Übergabe an PayPal entfernt. \\ | ||
- | \\ | ||
- | <code php|h Suche in paypal.class.php: |h> | ||
- | foreach ($this->fields as $name => $value) { | ||
- | echo "<input type=\"hidden\" name=\"$name\" value=\"$value\"/>\n"; | ||
- | } | ||
- | </code> | ||
- | <code php|h Ersetze die Funktion mit: |h> | ||
- | foreach ($this->fields as $name => $value) { | ||
- | //remove tax from data-output + q23.media 23102011 | ||
- | if (substr($name, 0, 3) != 'tax') { | ||
- | echo "<input type=\"hidden\" name=\"$name\" value=\"$value\"/>\n"; | ||
- | } | ||
- | } | ||
- | </code> |