osCommerce integration
Un programma gratuito per i negozi online che offre la cronologia degli ordini, i carrelli degli acquisti, la capacità di ricerca completa, le recensioni di prodotti, le transazioni sicure, le liste dei bestseller e degli articoli correlati.
L’integrazione con osCommerce viene fatta inserendo lo script di monitoraggio delle vendite nella pagina di conferma. Per ottenere i valori di OrderID e TotalSale, lo snippet si collega al database di osCommerce e recupera i valori direttamente da lì.
Trova il file checkout_success.php
Trova e apri il file checkout_success.php nei file originali di osCommerce.
Trova il posto giusto per l’integrazione
All’interno del file trova questa linea:
if ($global['global\_product\_notifications'] != '1') {...
dovrebbe essere da qualche parte dopo questa linea:
<! DOCTYPE ........>
Aggiungi il codice d’integrazione
Inserisci il seguente codice proprio sopra la linea:
//--------------------------------------------------------------------------
// 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
//--------------------------------------------------------------------------
Hai completato l’integrazione
Adesso è tutto integrato. Ogni volta che il cliente entrerà nella pagina di conferma dell’ordine il codice di tracciamento si attiverà e registrerà una vendita per l’affiliato di riferimento.
Un’altra integrazione
Se hai intenzione di dividere i prodotti in più campagne, avrai probabilmente bisogno di un’altra integrazione, che dividerà l’intera vendita in vendite di prodotti singoli.
//--------------------------------------------------------------------------
// 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
//--------------------------------------------------------------------------
Integrazione diretta di PayPal con osCommerce
Se vuoi affidarti a PayPal IPN (dato che è metodo sicuro e garantisce al 100% che la transazione venga registrata), puoi modificare direttamente il modello del pulsante PayPal in osCommerce. Accedi al tuo FTP e vai a catalog/includes/modules/payment/ e modifica il file paypal_standard.php.
Trova la funzione process_button e scorri fino alla fine. Dovresti trovare questo blocco di codice:
} 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;
Questo aggiungerà lo script di tracciamento direttamente al pulsante paypal e inserirà il valore corretto nel parametro personalizzato.
Ora, devi reinviare l’IPN da osCommerce anche a PAP. Guarda il prossimo passaggio.
PayPal reindirizza a PAP
Quando c’è una vendita, PayPal invia un IPN al tuo account osCommerce. Devi reinviarlo a PAP per salvare la transazione. Vai a catalog/ext/modules/payment/paypal/ nel tuo FTP e modifica il file standard_ipn.php . Inserisci il seguente codice all’inizio del file:
$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);
L’ultimo passaggio consiste nel modificare l’ID del cliente, che è stato salvato nel campo personalizzato, nel valore senza l’ID del visitatore di PAP. Trova la linea:
if ($result == 'VERIFIED') {
e aggiungi il seguente codice sopra la linea:
$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];
}
}
Non dimenticarti di integrare il tuo sito web con il codice di tracciamento dei clic.