Virtue Mart integration
Uma solução de e-commerce gratuita.
A integração com o Virtue Mart é feita colocando o script de rastreamento de vendas na página de confirmação.
Editar modelo
Encontre e abra o arquivo checkout.thankyou.php.
Deve estar em “administrator/components/com_virtuemart/html/“.
Integração
Substitua por último:
?>
com o seguinte código:
$q = "SELECT * FROM #__{vm}_user_info WHERE user_id='$user_id'";
$db->query( $q );
$pap_user_email = $db->f('user_email');
$q = "SELECT * FROM #__{vm}_orders WHERE order_id='$order_id'";
$db->query( $q );
$pap_order_subtotal = $db->f('order_subtotal' );
$pap_coupon_code = $db->f("coupon_code");
$pap_coupon_discount = $db->f("coupon_discount");
if (!is_null($pap_coupon_discount) && $pap_coupon_discount != '') {
$pap_order_total = $pap_order_subtotal - $pap_coupon_discount;
} else {
$pap_order_total = $pap_order_subtotal;
}
$q = "SELECT * FROM #__{vm}_order_item WHERE order_id='$order_id'";
$db->query( $q );
$pap_product_id = $db->f('product_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');var sale = PostAffTracker.createSale();
sale.setTotalCost('<?php echo $pap_order_total ?>');
sale.setOrderID('<?php echo $order_id ?>');
sale.setProductID('<?php echo $pap_product_id ?>');
sale.setData1('<?php echo $pap_user_email ?>');
sale.setCoupon('<?php echo $pap_coupon_code ?>');
PostAffTracker.register();
</script>
Este código acompanhará o subtotal do preço (com desconto de cupom). Se você quiser rastrear outra coisa, você pode usar uma destas variáveis: order_total, order_subtotal, order_tax, order_shipping, order_shipping_tax, cupom_discount, order_discount, order_status, customer_note
Use da forma como pode ser visto no código acima na terceira linha.
Produtos separados
Há também a possibilidade de gerar transações únicas em PAP para cada tipo de produto. Com isso, você poderá editar tipos de produtos separados em um pedido. É útil se ocorrer algum reembolso. Em seguida, você recusará apenas uma transação (comissão) atribuída ao tipo de produto que foi reembolsado.
Nesse caso, use este código de integração em vez do código acima:
$q = "SELECT * FROM #__{vm}_user_info WHERE user_id='$user_id'";
$db->query( $q );
$pap_user_email = $db->f('user_email');
$q = "SELECT * FROM `#__{vm}_orders` WHERE `order_id`='$order_id'";
$db->query( $q );
$pap_coupon_code = $db->f('coupon_code');
$pap_coupon_discount = $db->f('coupon_discount');
$pap_order_subtotal = $db->f('order_subtotal');
$q = "SELECT * FROM #__{vm}_order_item WHERE order_id='$order_id'";
$number_of_items = @ mysql_fetch_array ($q);
$db->query( $q );
$i='0';
while ($db->next_record()) {
$pap_product_id[$i] = $db->f('product_id');
$pap_item_price[$i] = $db->f('product_final_price');
$pap_item_quantity[$i] = $db->f('product_quantity');
$i++;
}
?>
<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=0; $j<=$i; $j++){
$pap_final_price[$j] = ($pap_order_subtotal - $pap_coupon_discount) * $pap_item_price[$j] * $pap_item_quantity[$j] / $pap_order_subtotal;
echo "var sale".$j." = PostAffTracker.createSale();\n".
"sale".$j.".setTotalCost('". $pap_final_price[$j]."');\n".
"sale".$j.".setOrderID('".$order_id."');\n".
"sale".$j.".setData1('".$pap_user_email."');\n".
"sale".$j.".setCoupon('".$pap_coupon_code."');\n".
"sale".$j.".setProductID('".$pap_product_id[$j]."');\n\n";
}
?>
PostAffTracker.register();
</script>
Se você quiser ver o nome do item em vez do número do item, use a variável “order_item_name” em vez de “product_id” nesta linha:
$pap_product_id[$i] = $d
Finalizado
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 que indicou.
Versão 1.4
Parece que a versão 1.4 precisa de edição de outro arquivo – checkout.result.php
É uma sugestão de um de nossos clientes; não testamos.
VirtueMart com PayPal
Caso você esteja usando o VirtueMart com PayPal em seu Joomla, você tem que fazer alguns passos especiais para fazer a integração funcionar.
Primeiro, em administrator/components/com_virtuemart/notify.php (no seu servidor) adicione as linhas abaixo da linha com o código: if ($_POST) {
/* PAP integration */
$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);
/* end of PAP integration */
Agora salve o arquivo e faça login no seu Joomla.
VirtueMart com PayPal
Navegue até Componentes > VirtueMart > Loja > Listar métodos de pagamento > PayPal > Configuração > Informações extras de pagamento e adicione estas linhas:
"custom" => 'Account_ID'$_COOKIE['PAPVisitorId'], // for version of PAP 4.4.x.x and higher
ou (dependendo da sua versão PAP):
"custom" => $_COOKIE['PAPCookie_Sale'], // for version of PAP 4.3.x.x and lower
Insira abaixo da linha com “notify_url”=>…