Virtue Mart integration
Une solution de commerce électronique gratuite.
L’intégration avec Virtue Mart se fait en plaçant le script de suivi des ventes dans la page de confirmation.
Éditer le modèle
Recherchez et ouvrez le fichier checkout.thankyou.php
Il devrait se trouver dans ‘administrator/com_virtuemart/html/‘
Intégration
Remplacer le dernier :
?>
par le code suivant :
$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>
Ce code va suivre le sous-total du prix (avec le coupon de réduction). Si vous voulez suivre autre chose, vous pouvez utiliser l’une de ces variables :
order_total, order_subtotal, order_tax, order_shipping, order_shipping_tax, coupon_discount, order_discount, order_status, customer_note
Utilisez-le de la façon dont il est montré dans le code ci-dessus à la troisième ligne.
Produits séparés
Il est également possible de générer une transaction unique dans PAP pour chaque type de produit. Vous pourrez ainsi traiter des types de produits distincts dans une même commande. C’est utile en cas de remboursement. Vous ne déclinerez alors qu’une seule transaction (commission) affectée au type de produit qui a été remboursé.
Dans ce cas, veuillez utiliser ce code d’intégration au lieu du code ci-dessus:
$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>
Si vous voulez afficher le nom de l’article au lieu du numéro de l’article, utilisez la variable ‘order_item_name‘ au lieu de ‘product_id‘ dans cette ligne :
$pap_product_id[$i] = $d
Terminé
Il est maintenant intégré. Chaque fois que le client entre dans la page de confirmation de la commande, le code de suivi est appelé et il enregistre une vente pour l’affilié référent.
Version 1.4
Il semble que la version 1.4 nécessite la modification d’un autre fichier – checkout.result.php
C’est une suggestion de l’un de nos clients, nous ne l’avons pas testée.
Virtue Mart avec PayPal
Dans le cas où vous utilisez VirtueMart avec PayPal dans votre Joomla, vous devez faire quelques étapes spéciales pour que l’intégration fonctionne.
Tout d’abord, dans le fichier administrator/components/com_virtuemart/notify.php (sur votre serveur) ajoutez les lignes ci-dessous avec le code : 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 */
Maintenant, enregistrez le fichier et connectez-vous à votre Joomla.
VirtueMart avec PayPal
Naviguez vers Composants> ; VirtueMart> Boutique> Liste des méthodes de paiement> PayPal> Configuration> Informations supplémentaires sur le paiement et ajoutez une de ces lignes :
"custom" => 'Account_ID'$_COOKIE['PAPVisitorId'], // for version of PAP 4.4.x.x and higher
ou (selon la version de votre PAP) :
"custom" => $_COOKIE['PAPCookie_Sale'], // for version of PAP 4.3.x.x and lower
Insérez-le sous la ligne avec “notify_url”=>…