–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

Um programa de loja online gratuito com histórico de pedidos, carrinhos de compras, capacidade de pesquisas completas, análises de produtos, transações seguras, listas de mais vendidos e itens relacionados.

A integração com osCommerce é feita colocando o script de rastreamento de vendas na página de confirmação. Para obter os valores de OrderID e TotalSale, o snippet se conecta ao banco de dados do osCommerce e recupera os valores de lá.

Encontre o arquivo checkout_success.php

Encontre e abra o arquivo checkout_success.php nos arquivos de origem do osCommerce.

Localize o lugar certo para integração

Dentro do arquivo encontre esta linha:

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

Deve estar em algum lugar após esta linha:

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

Adicione o código de integração

Insira o seguinte código logo acima dessa linha:

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

A integração está concluída

Agora está integrado. Toda vez que o cliente entra na página de confirmação do pedido, o código de rastreamento é chamado e ele registrará uma venda para o afiliado indicado.

Outra integração

Se você planeja dividir produtos em mais campanhas, provavelmente precisará de outra integração, que divida toda a venda em vendas de um único produto.

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

Integração direta do PayPal com osCommerce

Se você quiser confiar no IPN do PayPal (já que isso é seguro e 100% de certeza de que a transação será registrada), você pode editar diretamente o modelo de botão do PayPal no osCommerce. Faça login no seu FTP e navegue até catalog/includes/modules/payment/ e edite o arquivo paypal_standard.php.

Encontre a função process_button e role para baixo até o final. Você deve encontrar este bloco 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;

Isso adicionará o script de rastreamento diretamente ao botão do paypal e inserirá o valor adequado no parâmetro personalizado.

Agora, você também deve reenviar o IPN do osCommerce para o PAP. Veja o próximo passo.

Redirecionamento do PayPal para PAP

Quando há uma venda, o PayPal envia o IPN para o seu osCommerce. Você tem que reenviar para o PAP para salvar a transação. Navegue até catalog/ext/modules/payment/paypal/ em seu FTP e modifique o arquivo standard_ipn.php . Insira o seguinte código no início do arquivo:

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

A última etapa é modificar o ID do cliente salvo no campo personalizado para o valor sem o ID do visitante PAP. Encontrar linha:

if ($result == 'VERIFIED') {

e adicione o seguinte código acima da linha:

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

Não se esqueça de integrar seu site com o código de rastreamento de cliques.

Back to Integrations Create account for FREE

Our website uses cookies. By continuing we assume your permission to deploy cookies as detailed in our privacy and cookies policy.

×

Schedule a one-on-one call and discover how Post Affiliate Pro can benefit your business.

We’re available on multiple dates

Schedule a call