–Hidden comment

Use attributes in format region_from and region_to= to change the languages showing in language switcher.
Available regions are:
europe_from europe_to
asia_from asia_to
mideast_from mideast_to
america_from america_to

Example:
europe_from=0 europe_to=22 will put all languages (ordered in language switcher settings) from 1 to 21 to Europe region:
asia_from=22 asia_to=25 will put all languages from 23 to 24 (so only 2) into Asia region.

osCommerce

Un programa de tienda online gratuito con historial de pedidos, carros de la compra, capacidad de búsqueda completa, reseñas de productos, transacciones seguras, listas de los más vendidos y artículos relacionados.

La integración con osCommerce se realiza colocando el script de seguimiento de la venta en la página de confirmación. Para obtener los valores de OrderID y TotalSale, el snippet se conecta a la base de datos de osCommerce y recupera los valores desde allí.

Busca el archivo checkout_success.php

Busca y abre el archivo checkout_success.php en los archivos fuente de osCommerce.

Localiza el lugar adecuado para la integración

Dentro del archivo encuentra esta línea:

if ($global['global\_product\_notifications'] != '1') {...

debe estar en algún lugar después de esta línea:

<! DOCTYPE ........>

Añade el código de integración

Inserta el siguiente código justo encima de esa línea:

  //--------------------------------------------------------------------------
   // 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
   //--------------------------------------------------------------------------

La integración está terminada

Ahora está integrado. Cada vez que el cliente entra en la página de confirmación del pedido, se llama al código de seguimiento y se registra una venta para el afiliado remitente.

Otra integración

Si piensas dividir los productos en más campañas, probablemente necesitarás otra integración, que dividirá toda la venta en ventas de productos individuales.

//--------------------------------------------------------------------------
   // 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
   //--------------------------------------------------------------------------

Integración directa de PayPal con osCommerce

Si quieres confiar en el IPN de PayPal (ya que es seguro y 100% seguro que la transacción será registrada), puedes editar directamente la plantilla del botón de PayPal en osCommerce. Accede a tu FTP y navega hasta catalog/includes/modules/payment/ y edita el archivo paypal_standard.php.

Busca la función process_button y desplázate hasta el final de la misma. Deberías encontrar este bloque de código:

} 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;

Esto añadirá el script de seguimiento directamente al botón de paypal e insertará el valor adecuado en el parámetro personalizado.

Ahora, tienes que reenviar el IPN desde osCommerce a PAP también. Consulta el siguiente paso.

Redirección de PayPal a PAP

Cuando hay una venta, PayPal envía el IPN a tu osCommerce. Tienes que reenviarlo a PAP para guardar la transacción. Navega hasta catalog/ext/modules/paypal/ en tu FTP y modifica el archivo standard_ipn.php . Inserta el siguiente código al principio del archivo:

 $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);

El último paso es modificar el ID de cliente guardado en el campo personalizado, al valor sin ID de visitante de PAP. Encuentra la línea:

if ($result == 'VERIFIED') {

y agrega el siguiente código encima de la línea:

$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];
      }
    }

No olvides integrar tu sitio web con el código de seguimiento de clics.

Volver a Integraciones Crear cuenta GRATIS

Nuestro sitio web utiliza cookies. Al continuar, asumimos tu permiso para implementar cookies como se detalla en nuestro política de privacidad y cookies.

×

Programa una llamada uno a uno y descubre cómo Post Affiliate Pro puede beneficiar a tu negocio.

Estamos disponibles en varias fechas

Programa una llamada