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.
9. Integrate the affiliate software with your website
Integrate your affiliate software seamlessly with your website for effective tracking of referrals and commissions. Set it up right!
Discover the seamless Auto-Registering Affiliates feature in Post Affiliate Pro that automatically creates affiliate accounts using email addresses in tracking codes. Activate it in your Merchant panel and effortlessly generate links and banners. Note: Visibility of email addresses may pose a security risk. Explore more at [Quality Unit Support](https://support.qualityunit.com/987859-Auto-Registering-Affiliates).