osCommerce integration
Ein kostenloses Onlineshop-Programm mit einem Bestellverlauf, Warenkörben, vollständiger Suchfunktion, Produktbewertungen, sicheren Transaktionen, Bestsellerlisten und ähnlichen Waren.
Die Integration mit osCommerce findet mithilfe eines Verkaufstrackingskripts auf der Bestätigungsseite statt. Um die Werte für OrderID und TotalSale zu erhalten, verbindet sich Snippet mit der osCommerce-Datenbank und sammelt die Werte von dort.
Suchen Sie die Datei checkout_success.php
Suchen und öffnen Sie die Datei checkout_success.php in den osCommerce-Quelldaten.
Suchen Sie nach der richtigen Stelle für die Integration
Suchen Sie in der Datei nach dieser Zeile:
if ($global['global\_product\_notifications'] != '1') {...
Sie sollte nach dieser Zeile kommen:
<! DOCTYPE ........>
Integrationscode einfügen
Fügen Sie den folgenden Code über dieser Zeile ein:
//--------------------------------------------------------------------------
// integration code
//--------------------------------------------------------------------------
// get order id
$sql = "select orders_id from ".TABLE_ORDERS.
" where customers_id='".(int)$customer_id.
"' order by date_purchased desc limit 1";
$pap_orders_query = tep_db_query($sql);
$pap_orders = tep_db_fetch_array($pap_orders_query);
$pap_order_id = $pap_orders['orders_id'];
// get total amount of order
$sql = "select value from ".TABLE_ORDERS_TOTAL.
" where orders_id='".(int)$pap_order_id.
"' and class='ot_subtotal'";
$pap_orders_total_query = tep_db_query($sql);
$pap_orders_total = tep_db_fetch_array($pap_orders_total_query);
$pap_total_value = $pap_orders_total['value'];
//get product ids
$sql = "select products_id from " .TABLE_ORDERS_PRODUCTS.
" where orders_id=".(int)$pap_order_id;
$pap_orders_products_query = tep_db_query($sql);
$pap_orders_products = '';
while ($row = tep_db_fetch_array($pap_orders_products_query)) {
$pap_orders_products .= $row['products_id'] . ',';
}
$pap_orders_products = substr($pap_orders_products, 0, -1);
// draw invisible image to register sale
if($pap_total_value != "" && $pap_order_id != "")
{
print '<script id="pap_x2s6df8d" src="https://URL_TO_PostAffiliatePro/scripts/trackjs.js" type="text/javascript"></script>
'."<script type=\"text/javascript\">PostAffTracker.setAccountId('Account_ID');
var sale = PostAffTracker.createSale();
sale.setTotalCost('$pap_total_value');
sale.setOrderID('$pap_order_id');
sale.setProductID('$pap_orders_products');
PostAffTracker.register();
</script>";
}
//--------------------------------------------------------------------------
// END of integration code
//--------------------------------------------------------------------------
Die Integration ist abgeschlossen
Jedes Mal, wenn ein Kunde auf der Bestellbestätigungsseite eintrifft, wird der Trackingcode abgerufen und ein Verkauf wird für den jeweiligen Affiliate generiert.
Eine weitere Integration
Wenn Sie Produkte in mehr Kampagnen teilen möchten, benötigen Sie wahrscheinlich eine weitere Integration, die den gesamten Verkauf in einzelne Produktverkäufe einteilt.
//--------------------------------------------------------------------------
// integration code
//--------------------------------------------------------------------------
// get order id
$sql = "select orders_id from ".TABLE_ORDERS.
" where customers_id='".(int)$customer_id.
"' order by date_purchased desc limit 1";
$pap_orders_query = tep_db_query($sql);
$pap_orders = tep_db_fetch_array($pap_orders_query);
$pap_order_id = $pap_orders['orders_id'];
//get variables for script
$sql = "select products_id,products_price,products_quantity from " .TABLE_ORDERS_PRODUCTS.
" where orders_id=".(int)$pap_order_id;
$pap_products_total_query = tep_db_query($sql);
$k = 0;
while ($row = tep_db_fetch_array($pap_products_total_query)) {
$pap_products_total[$k+1] = $row['products_price'] * $row['products_quantity'];
$pap_products[$k+1] = $row['products_id'];
$k++;
}
// draw invisible image to register sale
if($pap_order_id != "")
{
?>
<script id="pap_x2s6df8d" src="https://URL_TO_PostAffiliatePro/scripts/trackjs.js" type="text/javascript"></script>
<script type="text/javascript">
PostAffTracker.setAccountId('Account_ID'); <?php
for ($j=1; $j<=$k; $j++){
echo "var sale".$j." = PostAffTracker.createSale();\n".
"sale".$j.".setTotalCost('". $pap_products_total[$j]."');\n".
"sale".$j.".setOrderID('".$pap_order_id."');\n".
"sale".$j.".setProductID('".$pap_products[$j]."');\n\n";
}
?>
PostAffTracker.register();
</script>;
<?php
}
//--------------------------------------------------------------------------
// END of integration code
//--------------------------------------------------------------------------
Direkte PayPal-Integration mit osCommerce
Wenn Sie PayPal-IPN verwenden möchten (da dies sicher ist und die Transaktion mit 100%-iger Sicherheit aufgezeichnet wird), können Sie die PayPal-Schaltflächenvorlage direkt in osCommerce bearbeiten. Loggen Sie sich auf FTP ein und navigieren Sie zu catalog/includes/modules/payment/. Bearbeiten Sie dann die Datei paypal_standard.php.
Suchen Sie die Funktion process_button und scrollen Sie bis zum Ende. Sie sollten diesen Codeblock finden:
} else {
reset($parameters);
while (list($key, $value) = each($parameters)) {
$process_button_string .= tep_draw_hidden_field($key, $value);
}
}
return $process_button_string;
// --------------------------------------------
// change this whole block of code to this block:
} else {
reset($parameters);
while (list($key, $value) = each($parameters)) {
if ($key == "custom") {
$tofix = tep_draw_hidden_field($key, $value);
$process_button_string .= substr($tofix,0,-1) .' id="pap_ab78y5t4a" >';
}
else {
$process_button_string .= tep_draw_hidden_field($key, $value);
}
}
}
$process_button_string .= '<script type="text/javascript">';
$process_button_string .= 'document.write(unescape("%3Cscript id=%27pap_x2s6df8d%27 src=%27" + (("https:" == document.location.protocol) ? "https://" : "http://") + "URL_TO_PostAffiliatePro/scripts/trackjs.js%27 type=%27text/javascript%27%3E%3C/script%3E"));';
$process_button_string .= '</script><script type="text/javascript">PostAffTracker.setAccountId(\'default1\');';
$process_button_string .= 'PostAffTracker.setAppendValuesToField(\'||\');';
$process_button_string .= 'PostAffTracker.writeCookieToCustomField(\'pap_ab78y5t4a\');</script>';
return $process_button_string;
Dadurch wird ein Trackingskript direkt unter der PayPal-Schaltfläche und der korrekte Wert in dem benutzerdefinierten Parameter eingefügt.
Nun müssen Sie das IPN von osCommerce erneut an PAP senden. Sehen Sie den nächsten Schritt.
PayPal-Weiterleitung zu PAP
Wenn es einen Verkauf gibt, sendet PayPal IPN an osCommerce. Sie müssen es auch an PAP senden, um die Transaktion zu speichern. Navigieren Sie zu catalog/ext/modules/payment/paypal/ in FTP und bearbeiten Sie die Datei standard_ipn.php . Tragen Sie den folgenden Code am Anfang der Datei ein:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://URL_TO_PostAffiliatePro/plugins/PayPal/paypal.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $_POST);
curl_exec($ch);
Der letzte Schritt ist, die Kunden-ID in dem benutzerdefinierten Feld auf den Wert ohne PAP-Besucher-ID zu ändern. Suchen Sie die Zeile:
if ($result == 'VERIFIED') {
und fügen Sie den folgenden Code über der Zeile ein:
$separator = '||';
if ($_POST['custom'] != '') {
$explodedCustomValue = explode($separator, $_POST['custom'], 2);
if (count($explodedCustomValue) == 2) {
$_REQUEST['custom'] = $_POST['custom'] = $explodedCustomValue[0];
$HTTP_POST_VARS['custom'] = $explodedCustomValue[0];
}
}
Vergessen Sie nicht, Ihre Webseite mit dem Klick-Trackingcode zu integrieren.
Entdecken Sie die vielseitigen Integrationsmöglichkeiten von Post Affiliate Pro, die Ihr eCommerce-Geschäft optimieren. Verbinden Sie mühelos Plattformen wie 1ShoppingCart, 2Checkout, AbleCommerce und mehr, um Verkäufe zu verfolgen und Ihre Affiliate-Einnahmen zu maximieren. Starten Sie jetzt Ihre kostenlose Testversion!