amyal Posted November 11, 2008 Share Posted November 11, 2008 Bonjour à tous.Je test un petit système d'affiliation que je greffe sur PS, mais j'ai besoin de mettre un code sur une page sur laquelle l'acheteur arrive après avoir acheté et ce code est censé récupérer le montant total de la commande.Le code est le suivant, et il faut que je remplace obligatoirement les variables setTotalCost() et optionnellement les autres. [removed] sale.setTotalCost('120.50'); sale.setOrderID('ORD_12345XYZ'); sale.setProductID('test product'); [removed] Seul problème, sur PS, si le client paie par chèque ou virement, il redirigé vers une page order-confirmation.php qui dont le code est le suivant : <?php /* SSL Management */ $useSSL = true; include(dirname(__FILE__).'/config/config.inc.php'); include(dirname(__FILE__).'/header.php'); $id_cart = intval(Tools::getValue('id_cart', 0)); $id_module = intval(Tools::getValue('id_module', 0)); $id_order = Order::getOrderByCartId(intval($id_cart)); $secure_key = isset($_GET['key']) ? $_GET['key'] : false; if (!$id_order OR !$id_module OR !$secure_key OR empty($secure_key)) Tools::redirect('history.php'); $order = new Order(intval($id_order)); if (!Validate::isLoadedObject($order) OR $order->id_customer != $cookie->id_customer OR $secure_key != $order->secure_key) Tools::redirect('history.php'); $module = Module::getInstanceById(intval($id_module)); if ($order->payment != $module->displayName) Tools::redirect('history.php'); $smarty->assign(array( 'HOOK_ORDER_CONFIRMATION' => Hook::orderConfirmation(intval($id_order)), 'HOOK_PAYMENT_RETURN' => Hook::paymentReturn(intval($id_order), intval($id_module)))); $smarty->display(_PS_THEME_DIR_.'order-confirmation.tpl'); include(dirname(__FILE__).'/footer.php'); ?> Par contre, s'il paie par paypal, il est redirigé vers l'historique après le paiement, et la page d'historique ne donne évidement pas directement le montant total de la commande qui vient d'être passée.En revanche, j'ai vu un fichier dans chacun des dossiers chèque, bankwire (pour les paiement par virement), et paypal et ce fichier s'appelle validation.php qui se présente comme suit, mais je ne vois pas à quel moment il intervient dans le processus de paiement, ni comment récupérer la variable qui nous intéresse ?*/$! <?php include(dirname(__FILE__).'/../../config/config.inc.php'); include(dirname(__FILE__).'/../../header.php'); include(dirname(__FILE__).'/cheque.php'); $currency = new Currency(intval(isset($_POST['currency_payement']) ? $_POST['currency_payement'] : $cookie->id_currency)); $total = floatval(number_format($cart->getOrderTotal(true, 3), 2, '.', '')); $mailVars = array( '{cheque_name}' => Configuration::get('CHEQUE_NAME'), '{cheque_address}' => Configuration::get('CHEQUE_ADDRESS'), '{cheque_address_html}' => nl2br(Configuration::get('CHEQUE_ADDRESS'))); $cheque = new Cheque(); $cheque->validateOrder($cart->id, _PS_OS_CHEQUE_, $total, $cheque->displayName, NULL, $mailVars, $currency->id); $order = new Order($cheque->currentOrder); Tools::redirectLink(__PS_BASE_URI__.'order-confirmation.php?id_cart='.$cart->id.'&id;_module='.$cheque->id.'&id;_order='.$cheque->currentOrder.'&key;='.$order->secure_key); ?> Si quelqu'un peut m'aider à trouver sur quel fichier je peux retrouver la variable "montant total de la commande" dans tout ce labyrinthe après une commande, ça m'enlèverai une grosse épine du pied. Si en plus il est possible de récupérer cette variable hors TVA et Frais de Port, je me verrai dans l'obligation d'offrir un ptit resto en guise de remerciement ;-)Merci d'avance Link to comment Share on other sites More sharing options...
meandmypresta Posted November 19, 2008 Share Posted November 19, 2008 Bonjour,Voici ce que je peux en dire, et sauf erreurs de ma part ;-) // récupération prix total produits hors promos echo $cart->getOrderTotal(true, 1); // récupération prix total des promotions echo $cart->getOrderTotal(true, 2); // récupération prix total echo $cart->getOrderTotal(true, 3); // récupération prix total sans frais de port echo $cart->getOrderTotal(true, 4); // récupération frais de port seuls echo $cart->getOrderTotal(true, 5); // ou echo $cart->getOrderShippingCost(); // on a aussi les codes 6 et 7 à voir... <?php include(dirname(__FILE__).'/../../config/config.inc.php'); include(dirname(__FILE__).'/../../header.php'); include(dirname(__FILE__).'/cheque.php'); $currency = new Currency(intval(isset($_POST['currency_payement']) ? $_POST['currency_payement'] : $cookie->id_currency)); // on a donc, récupération du montant total, avec formatage du format du montant au passage, ici : $total = floatval(number_format($cart->getOrderTotal(true, 3), 2, '.', '')); $mailVars = array( '{cheque_name}' => Configuration::get('CHEQUE_NAME'), '{cheque_address}' => Configuration::get('CHEQUE_ADDRESS'), '{cheque_address_html}' => nl2br(Configuration::get('CHEQUE_ADDRESS'))); $cheque = new Cheque(); $cheque->validateOrder($cart->id, _PS_OS_CHEQUE_, $total, $cheque->displayName, NULL, $mailVars, $currency->id); $order = new Order($cheque->currentOrder); Tools::redirectLink(__PS_BASE_URI__.'order-confirmation.php?id_cart='.$cart->id.'&id;_module='.$cheque->id.'&id;_order='.$cheque->currentOrder.'&key;='.$order->secure_key); ?> Link to comment Share on other sites More sharing options...
Jean-Bruno Posted February 10, 2009 Share Posted February 10, 2009 Alors résolu ou pas résolu ? ;-) Link to comment Share on other sites More sharing options...
philanderson Posted February 16, 2009 Share Posted February 16, 2009 Bonjour,Je suis aussi intéressé pour savoir si c'est résolu ou pas. Et savoir sur quelle page du site tu as mis ton code à insérer ?Merci d'avance... Link to comment Share on other sites More sharing options...
philanderson Posted February 24, 2009 Share Posted February 24, 2009 Bon alors pour être plus précis, j'ai donc insérer mon code de mon programme d'affiliation dans la page :order-confirmation.phpLe tracking de la vent s'éffectue correctement (pour les chèques dans un premier temps)mais voilà je n'arrive pas à récupérer la variable prix total de la commande.Mon code : <?php /* SSL Management */ $useSSL = true; include(dirname(__FILE__).'/config/config.inc.php'); include(dirname(__FILE__).'/header.php'); $id_cart = intval(Tools::getValue('id_cart', 0)); $id_module = intval(Tools::getValue('id_module', 0)); $id_order = Order::getOrderByCartId(intval($id_cart)); $secure_key = isset($_GET['key']) ? $_GET['key'] : false; if (!$id_order OR !$id_module OR !$secure_key OR empty($secure_key)) Tools::redirect('history.php'); $order = new Order(intval($id_order)); if (!Validate::isLoadedObject($order) OR $order->id_customer != $cookie->id_customer OR $secure_key != $order->secure_key) Tools::redirect('history.php'); $module = Module::getInstanceById(intval($id_module)); if ($order->payment != $module->displayName) Tools::redirect('history.php'); $smarty->assign(array( 'HOOK_ORDER_CONFIRMATION' => Hook::orderConfirmation(intval($id_order)), 'HOOK_PAYMENT_RETURN' => Hook::paymentReturn(intval($id_order), intval($id_module)))); ?> <!-----insertion javascript ici !!------> var sale = PostAffTracker.createSale(); sale.setTotalCost('<?php echo $cart->getOrderTotal(true, 3); ?>'); sale.setOrderID('<?php echo $id_order; ?>'); PostAffTracker.register(); [removed] <?php $smarty->display(_PS_THEME_DIR_.'order-confirmation.tpl'); include(dirname(__FILE__).'/footer.php'); ?> cette variable est à renseigner dans : sale.setTotalCost();Pourquoi cela ne marche pas alors que la variable $id_order retourne bien un résultat ?J'ai mal placé mon code ou alors ce n'est pas le bon pour récupérer le prix total ?Merci d'avance de votre aide. Link to comment Share on other sites More sharing options...
AgriToys Posted January 10, 2011 Share Posted January 10, 2011 Bonjour,Voici comment j'ai fait pour inserér le code de Google Conversions pour qu'il prenne en compte le montant HT de la commande (sans le port). Je suis en PrestaShop 1.3.1Dans le fichier order-confirmation.php il faut ajouter les lignes suivantes :$_cart = new Cart($id_cart);$smarty->assign('total_prod', $_cart->getOrderTotal(false, 4)); Juste avant la ligne :$smarty->display(_PS_THEME_DIR_.'order-confirmation.tpl');Dans le fichier order-confirmation.tpl il faut coller le code fourni par Google directement en haut de la page puis modifier une des lignes de cette façon :var google_conversion_value = {$total_prod};En espérant vous avoir aidéPhilippe Link to comment Share on other sites More sharing options...
Corinne Posted February 4, 2011 Share Posted February 4, 2011 Bonjour Philippe,J'ai fait ce que tu as mis dans ton post du 10 janvier 2011mais cela ne fonctionne pas pour moiversion 1.3.6As tu tester cela sur la dernière version de presta stable ?Merci de ton retour Link to comment Share on other sites More sharing options...
Jovicyr Posted January 11, 2012 Share Posted January 11, 2012 Bonjour, Je suis en PS 1.4.3 et souhaite pouvoir récupérer la valeur totale de la transaction sur la page de confirmation de commande. J'ai testé la portion de code d'AgriToys, mais cela ne fonctionne pas. Avez-vous davantages d'info pour permettre cette remontée de donnée ? Merci, Link to comment Share on other sites More sharing options...
itimik Posted April 5, 2013 Share Posted April 5, 2013 +1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now