Un système de panier d’achat convivial basé sur PHP.
L’intégration avec ZenCart se fait en plaçant le script de suivi des ventes dans la page de confirmation de la commande.
Éditer le template
Pour intégrer ZenCart, vous devez modifier le modèle de confirmation de commande. Ouvrez le fichier includes/templates/template_default/templates/tpl_checkout_success_default.php
Localiser l’un emplacement de l’intégration
Repérez la ligne avec le code suivant qui devrait déjà exister dans le fichier.
<div id="checkoutSuccessOrderNumber"><?php echo TEXT_YOUR_ORDER_NUMBER . $zv_orders_id; ?></div>
Intégration
Copiez et collez le code suivant dans le fichier, sous la ligne trouvée ci-dessus :
<?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>';
?>
Voilà, l’intégration est terminée. Maintenant, chaque fois qu’une vente est réalisée, la boutique appelle notre script et enregistre la commission de vente.
Intégration des commissions à vie
Si vous souhaitez intégrer le plugin Lifetime commissions, il suffit d’ajouter le code ci-dessous dans le code de l’étape 3. après cette ligne :
$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();
}
Vous devez également ajouter ce code :
sale.setData1(\''.$email.'\');
juste après :
sale.setOrderID(\''.$orderId.'\');
Si vous souhaitez connaître le nom du mode de paiement utilisé dans la commande, vous pouvez utiliser cette variable :
$orders->fields['payment_method']
zenCart + PayPal – étape 1
Si vous utilisez PayPal comme passerelle de paiement dans ZenCart, une approche d’intégration différente est nécessaire.
Dans ‘zenCart_installation_directory/includes/functions/html_output.php‘, recherchez la ligne suivante :
$field = '<input type="hidden" name="' . zen_sanitize_string(zen_output_string($name)) . '"';
et la remplacer par :
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 – étape 2
Dans ‘zenCart_installation_directory/includes/templates/template_default/common/tpl_footer.php‘ ajoutez le code :
<!-- 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 – étape 3
Dans ‘zenCart_installation_directory/ipn_main_handler.php‘ ajoutez le code :
/* 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 */
C’est tout.
Maintenant, connectez-vous au panneau marchand de Post Affiliate Pro (Network), accédez à la section “Plugins” et activez le plugin “Gestion IPN PayPal“.
NOTE : Si vous souhaitez activer l’intégration des commissions à vie lorsque vous utilisez cette méthode d’intégration ‘zenCart + PayPal‘, alors dans la configuration du plugin “Gestion IPN PayPal” activez l’option ‘Support des commissions à vie‘.
N’oubliez pas d’intégrer votre site avec le code de suivi des clics pour assurer le bon fonctionnement du suivi des ventes.