ZenCart integration
Um sistema de carrinho de compras baseado em PHP fácil de usar.
A integração com o ZenCart é feita colocando o script de rastreamento de vendas na página de confirmação do pedido.
Edite o modelo
Para integrar o ZenCart você deve editar o modelo de confirmação do pedido. Abra o arquivo includes/templates/template_default/templates/tpl_checkout_success_default.php.
Localize o local de integração
Encontre a linha com o código a seguir que já deve existir no arquivo.
<div id="checkoutSuccessOrderNumber"><?php echo TEXT_YOUR_ORDER_NUMBER . $zv_orders_id; ?></div>
Integração
Copie e cole o seguinte código no arquivo, na linha encontrada acima:
<?php
$dbreq = $db->Execute("select * from ".TABLE_ORDERS_TOTAL." where orders_id = '".(int)$orders->fields['orders_id']."' AND class in ('ot_coupon', 'ot_gv', 'ot_subtotal', 'ot_group_pricing', 'ot_quantity_discount')");
while (!$dbreq->EOF) {
switch ($dbreq->fields['class']) {
case 'ot_subtotal': $order_subtotal = $dbreq->fields['value']; break;
case 'ot_coupon': $coupon_amount = $dbreq->fields['value']; $coupon_code = $dbreq->fields['title']; break;
case 'ot_group_pricing': $group_pricing_amount = $dbreq->fields['value']; break;
case 'ot_gv': $gv_amount = $dbreq->fields['value']; break;
case 'ot_quantity_discount': $quantity_discount_amount = $dbreq->fields['value']; break;
}
$dbreq->MoveNext();
}
$totalCost = ($order_subtotal - $gv_amount - $coupon_amount - $group_pricing_amount - $quantity_discount_amount);
$totalCost = number_format($totalCost,2,'.','');
$orderId = $dbreq->fields['orders_id'];
// ------------- coupon code --------------------------------------------------
$coupon_code = substr($coupon_code,(strpos($coupon_code,":"))+2);
$coupon_code = substr($coupon_code,0,strlen($coupon_code)-2);
// -------------products---------------------------------------------------------
$productId = "";
$dbreqa = $db->Execute("select products_id from ".TABLE_ORDERS_PRODUCTS." where orders_id = '".(int)$orders->fields['orders_id']."' ");
while (!$dbreqa->EOF) {
$productId = $dbreqa->fields['products_id'];
$dbreqa->MoveNext();
}
// ----------end products--------------------------------------------------------
print '<script id="pap_x2s6df8d" src="https://URL_TO_PostAffiliatePro/scripts/trackjs.js" type="text/javascript"></script>
<script type="text/javascript">';
print "PostAffTracker.setAccountId('Account_ID');";
print 'var sale = PostAffTracker.createSale();
sale.setTotalCost(\''.$totalCost.'\');
sale.setOrderID(\''.$orderId.'\');
sale.setProductID(\''.$productId.'\');
sale.setCoupon(\''.$coupon_code.'\');
PostAffTracker.register();
</script>';
?>
Pronto, a integração está concluída. Agora toda vez que ocorrer uma venda, a loja irá chamar nosso script e registrar a comissão de venda.
Integração de comissões vitalícias
Se você deseja integrar o plugin de comissões vitalícias, basta adicionar o código abaixo no código da etapa 3 após esta linha:
$orderId = $dbreq->fields['orders_id'];
$dbreq = $db->Execute("select * from ".TABLE_ORDERS_TOTAL." where orders_id = '".(int)$orders->fields['orders_id']."' ");
while (!$dbreq->EOF) {
$email = $dbreq->fields['customers_email_address'];
$dbreq->MoveNext();
}
Além disso, você precisa adicionar este código:
sale.setData1(\''.$email.'\');
logo após:
sale.setOrderID(\''.$orderId.'\');
Caso você queira saber o nome da forma de pagamento usada no pedido, você pode usar esta variável:
$orders->fields['payment_method']
zenCart + PayPal – parte 1
Caso você use o PayPal como um gateway de pagamento no ZenCart, é necessária uma abordagem de integração diferente.
Em “zenCart_installation_directory/includes/functions/html_output.php“encontre a seguinte linha:
$field = '<input type="hidden" name="' . zen_sanitize_string(zen_output_string($name)) . '"';
e substitua por esta:
if ($name == 'notify_url') {
$field = '<input type="hidden" id="pap_ab78y5t4a" name="' . zen_output_string($name) . '"';
} else {
$field = '<input type="hidden" name="' . zen_output_string($name) . '"';
}
zenCart + PayPal – parte 2
Em “zenCart_installation_directory/includes/templates/template_default/common/tpl_footer.php“ adicione o seguinte código:
<!-- PAP Integration snippet -->
<script id="pap_x2s6df8d" src="https://URL_TO_PostAffiliatePro/scripts/trackjs.js" type="text/javascript"></script>
<script type="text/javascript">
PostAffTracker.setAccountId('default1');
PostAffTracker.writeCookieToCustomField('pap_ab78y5t4a', '', 'pap_custom');
</script>
<!-- /PAP Integration snippet -->
zenCart + PayPal – parte 3
Em “zenCart_installation_directory/ipn_main_handler.php” adicione o seguinte código:
/* Post Affiliate Pro integration snippet */
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://URL_TO_PostAffiliatePro/plugins/PayPal/paypal.php?pap_custom=".$_GET['pap_custom']);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $_POST);
curl_exec($ch);
/* /Post Affiliate Pro integration snippet */
É isso.
Agora, faça login no painel do comerciante do Post Affiliate Pro (Network), navegue até a seção “Plugins” e ative o plugin “Controle de IPN do PayPal“.
OBSERVAÇÃO: Se você deseja habilitar a integração Comissão Vitalícia ao usar este método de integração “zenCart + PayPal“, na configuração do plugin “Controle de IPN do PayPal“, ative a opção “Suporte à comissão vitalícia“.
Não se esqueça de integrar seu site com o código de rastreamento de cliques para que o rastreamento de vendas funcione corretamente.