osCommerce integration
Darmowy program sklepu internetowego z historią zamówień, koszykami zakupowymi, zaawansowanymi opcjami wyszukiwania, recenzjami produktów, bezpiecznymi transakcjami, listami bestsellerów i powiązanymi elementami.
Integracji z osCommerce dokonuje się poprzez umieszczenie skryptu śledzenia sprzedaży na stronie potwierdzenia. Aby uzyskać wartości OrderID i TotalSale, snippet łączy się z bazą danych osCommerce i pobiera stamtąd wartości.
Znajdź plik checkout_success.php
Znajdź i otwórz plik checkout_success.php w plikach źródłowych osCommerce.
Znajdź odpowiednie miejsce dla integracji
W pliku znajdź ten wiersz:
if ($global['global\_product\_notifications'] != '1') {...
Powinien znajdować się gdzieś po tym wierszu:
<! DOCTYPE ........>
Dodaj kod integracji
Umieść następujący kod tuż nad tym wierszem:
//--------------------------------------------------------------------------
// 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
//--------------------------------------------------------------------------
Integracja jest gotowa
Integracja jest zakończona. Za każdym razem, gdy klient wejdzie na stronę potwierdzenia zamówienia, zostanie wywołany kod śledzenia, który przypisze sprzedaż odpowiedniemu partnerowi.
Kolejna integracja
Jeśli planujesz podzielić produkty na więcej kampanii, prawdopodobnie będziesz potrzebować kolejnej integracji, która podzieli całą sprzedaż na sprzedaż pojedynczych produktów.
//--------------------------------------------------------------------------
// 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
//--------------------------------------------------------------------------
Bezpośrednia integracja PayPal z osCommerce
Jeśli chcesz użyć PayPal IPN (ponieważ to bezpieczne rozwiązanie, które gwarantuje w 100%, że transakcja zostanie zarejestrowana), możesz bezpośrednio edytować szablon przycisku PayPal w osCommerce. Zaloguj się do swojego FTP i przejdź do catalog/includes/modules/payment/ i edytuj plik paypal_standard.php.
Znajdź funkcję process_button i przewiń w dół do jej końca. Powinien znajdować się tam ten blok kodu:
} 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;
Spowoduje to dodanie skryptu śledzenia bezpośrednio do przycisku PayPal i wstawienie odpowiedniej wartości do parametru niestandardowego.
Teraz musisz ponownie wysłać IPN z osCommerce do PAP. Zobacz następny krok.
Przekierowanie PayPal do PAP
Po dokonaniu sprzedaży PayPal wysyła powiadomienie IPN do osCommerce. Musisz ponownie wysłać je do PAP, aby zapisać transakcję. Przejdź do catalog/ext/modules/payment/paypal/ w swoim FTP i zmodyfikuj plik standard_ipn.php. Wstaw następujący kod na początku pliku:
$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);
Ostatnim krokiem jest zmiana ID klienta zapisanego w polu niestandardowym na wartość bez ID odwiedzającego PAP. Znajdź wiersz:
if ($result == 'VERIFIED') {
i dodaj następujący kod nad wierszem:
$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];
}
}
Nie zapomnij zintegrować swojej strony z kodem śledzącym kliknięcia.
Zintegruj swój sklep internetowy osCSS z Post Affiliate Pro i ciesz się pełną kontrolą nad marketingiem afiliacyjnym. Dzięki otwartemu kodowi źródłowemu i darmowej licencji GNU, osCSS oferuje bogaty zestaw funkcji e-commerce bez ukrytych kosztów. Sprawdź, jak łatwo dodać kod integracyjny i śledzić sprzedaż, korzystając z naszej szczegółowej instrukcji!
Discover seamless integration solutions with Post Affiliate Pro, the leading affiliate marketing software. Effortlessly connect with platforms like Authorize.net, Calendly, FormAssembly, and more to enhance your e-commerce and reporting capabilities. Enjoy free trials, 24/7 support, and maximize your marketing ROI with advanced tracking and flexible commission options. Visit now to revolutionize your affiliate marketing strategy!