logs00 Posted December 1, 2011 Share Posted December 1, 2011 Bonjour à tous, je voulais vous faire partager une petite astuce que j'ai mis en place sur le site http://webstore.dunlopillo.com. Il s'agit de la gestion de l'affichage du 3x sans frais dans le bloc panier avec mise à jour de la valeur en ajax. Alors voici les lignes à rajouter : 1 - Dans le fichier : blockcart-json.tpl (celui d'origine ou celui de votre template) : Il faut ajouter la ligne : "mensualite": "{$mensualite|html_entity_decode:2:'UTF-8'}", Juste à après la ligne : "productTotal": "{$product_total|html_entity_decode:2:'UTF-8'}", 2 - Dans le fichier : /modules/blockcart/ajax-cart.js : Il faut remplacer : updateCartEverywhere : function(jsonData) { $('.ajax_cart_total').text(jsonData.productTotal); $('.ajax_cart_shipping_cost').text(jsonData.shippingCost); $('.ajax_cart_tax_cost').text(jsonData.taxCost); $('.cart_block_wrapping_cost').text(jsonData.wrappingCost); $('.ajax_block_cart_total').text(jsonData.total); Par : updateCartEverywhere : function(jsonData) { $('.ajax_cart_total').text(jsonData.productTotal); $('.ajax_cart_shipping_cost').text(jsonData.shippingCost); $('.ajax_cart_tax_cost').text(jsonData.taxCost); $('.cart_block_wrapping_cost').text(jsonData.wrappingCost); $('.ajax_block_cart_total').text(jsonData.total); $('.ajax_block_cart_mensualite').text(jsonData.mensualite); 3 - Dans le fichier : /modules/blockcart/blockcart.php : Il faut remplacer : $smarty->assign(array( 'products' => $products, 'customizedDatas' => Product::getAllCustomizedDatas((int)($params['cart']->id)), 'CUSTOMIZE_FILE' => _CUSTOMIZE_FILE_, 'CUSTOMIZE_TEXTFIELD' => _CUSTOMIZE_TEXTFIELD_, 'discounts' => $params['cart']->getDiscounts(false, Tools::isSubmit('id_product')), 'nb_total_products' => (int)($nbTotalProducts), 'shipping_cost' => Tools::displayPrice($params['cart']->getOrderTotal($useTax, Cart::ONLY_SHIPPING), $currency), 'show_wrapping' => $wrappingCost > 0 ? true : false, 'show_tax' => (int)(Configuration::get('PS_TAX_DISPLAY') == 1 && (int)Configuration::get('PS_TAX')), 'wrapping_cost' => Tools::displayPrice($wrappingCost, $currency), 'product_total' => Tools::displayPrice($params['cart']->getOrderTotal($useTax, Cart::BOTH_WITHOUT_SHIPPING), $currency), 'total' => Tools::displayPrice($params['cart']->getOrderTotal(intval(Configuration::get('PS_PRICE_DISPLAY')) == 1 ? false : true, 4), $currency), 'id_carrier' => (int)($params['cart']->id_carrier), 'order_process' => Configuration::get('PS_ORDER_PROCESS_TYPE') ? 'order-opc' : 'order', 'ajax_allowed' => (int)(Configuration::get('PS_BLOCK_CART_AJAX')) == 1 ? true : false Par : $smarty->assign(array( 'products' => $products, 'customizedDatas' => Product::getAllCustomizedDatas((int)($params['cart']->id)), 'CUSTOMIZE_FILE' => _CUSTOMIZE_FILE_, 'CUSTOMIZE_TEXTFIELD' => _CUSTOMIZE_TEXTFIELD_, 'discounts' => $params['cart']->getDiscounts(false, Tools::isSubmit('id_product')), 'nb_total_products' => (int)($nbTotalProducts), 'shipping_cost' => Tools::displayPrice($params['cart']->getOrderTotal($useTax, Cart::ONLY_SHIPPING), $currency), 'show_wrapping' => $wrappingCost > 0 ? true : false, 'show_tax' => (int)(Configuration::get('PS_TAX_DISPLAY') == 1 && (int)Configuration::get('PS_TAX')), 'wrapping_cost' => Tools::displayPrice($wrappingCost, $currency), 'product_total' => Tools::displayPrice($params['cart']->getOrderTotal($useTax, Cart::BOTH_WITHOUT_SHIPPING), $currency), 'mensualite' => Tools::displayPrice($params['cart']->getOrderTotal($useTax, Cart::BOTH_WITHOUT_SHIPPING)/3, $currency), 'total' => Tools::displayPrice($params['cart']->getOrderTotal(intval(Configuration::get('PS_PRICE_DISPLAY')) == 1 ? false : true, 4), $currency), 'id_carrier' => (int)($params['cart']->id_carrier), 'order_process' => Configuration::get('PS_ORDER_PROCESS_TYPE') ? 'order-opc' : 'order', 'ajax_allowed' => (int)(Configuration::get('PS_BLOCK_CART_AJAX')) == 1 ? true : false Attention : Ce code PHP divise le total des produits hors frais de port par 3 ! Si vous voulez diviser par un autre chiffre, il faut changer le /3 par votre valeur : 'mensualite' => Tools::displayPrice($params['cart']->getOrderTotal($useTax, Cart::BOTH_WITHOUT_SHIPPING)[b]/3[/b], $currency), 4 - Dans le fichier blockcart.tpl (celui d'origine ou celui de votre template) : Ajouter la ligne : <span id="cart_block_total" class="price ajax_block_cart_mensualite">{$mensualite}</span> Juste après : <span id="cart_block_total" class="price ajax_block_cart_total">{$total}</span><br /> Fonctionnel sur Prestashop v1.4.4.1 ! Aller @++ 1 Link to comment Share on other sites More sharing options...
helpunlock Posted May 22, 2012 Share Posted May 22, 2012 bonsoir, j ai essayer de suivre vos conseille mais ca ne marche pas , je voi effectivemen le prix diviser en trois dans le panier mais il nya rient d ecri devant ; et sur la fiche produits ca ne s affiche pas du tt pouvez vous m aidez svp Bonjour à tous, je voulais vous faire partager une petite astuce que j'ai mis en place sur le site http://webstore.dunlopillo.com. Il s'agit de la gestion de l'affichage du 3x sans frais dans le bloc panier avec mise à jour de la valeur en ajax. Alors voici les lignes à rajouter : 1 - Dans le fichier : blockcart-json.tpl (celui d'origine ou celui de votre template) : Il faut ajouter la ligne : "mensualite": "{$mensualite|html_entity_decode:2:'UTF-8'}", Juste à après la ligne : "productTotal": "{$product_total|html_entity_decode:2:'UTF-8'}", 2 - Dans le fichier : /modules/blockcart/ajax-cart.js : Il faut remplacer : updateCartEverywhere : function(jsonData) { $('.ajax_cart_total').text(jsonData.productTotal); $('.ajax_cart_shipping_cost').text(jsonData.shippingCost); $('.ajax_cart_tax_cost').text(jsonData.taxCost); $('.cart_block_wrapping_cost').text(jsonData.wrappingCost); $('.ajax_block_cart_total').text(jsonData.total); Par : updateCartEverywhere : function(jsonData) { $('.ajax_cart_total').text(jsonData.productTotal); $('.ajax_cart_shipping_cost').text(jsonData.shippingCost); $('.ajax_cart_tax_cost').text(jsonData.taxCost); $('.cart_block_wrapping_cost').text(jsonData.wrappingCost); $('.ajax_block_cart_total').text(jsonData.total); $('.ajax_block_cart_mensualite').text(jsonData.mensualite); 3 - Dans le fichier : /modules/blockcart/blockcart.php : Il faut remplacer : $smarty->assign(array( 'products' => $products, 'customizedDatas' => Product::getAllCustomizedDatas((int)($params['cart']->id)), 'CUSTOMIZE_FILE' => _CUSTOMIZE_FILE_, 'CUSTOMIZE_TEXTFIELD' => _CUSTOMIZE_TEXTFIELD_, 'discounts' => $params['cart']->getDiscounts(false, Tools::isSubmit('id_product')), 'nb_total_products' => (int)($nbTotalProducts), 'shipping_cost' => Tools::displayPrice($params['cart']->getOrderTotal($useTax, Cart::ONLY_SHIPPING), $currency), 'show_wrapping' => $wrappingCost > 0 ? true : false, 'show_tax' => (int)(Configuration::get('PS_TAX_DISPLAY') == 1 && (int)Configuration::get('PS_TAX')), 'wrapping_cost' => Tools::displayPrice($wrappingCost, $currency), 'product_total' => Tools::displayPrice($params['cart']->getOrderTotal($useTax, Cart::BOTH_WITHOUT_SHIPPING), $currency), 'total' => Tools::displayPrice($params['cart']->getOrderTotal(intval(Configuration::get('PS_PRICE_DISPLAY')) == 1 ? false : true, 4), $currency), 'id_carrier' => (int)($params['cart']->id_carrier), 'order_process' => Configuration::get('PS_ORDER_PROCESS_TYPE') ? 'order-opc' : 'order', 'ajax_allowed' => (int)(Configuration::get('PS_BLOCK_CART_AJAX')) == 1 ? true : false Par : $smarty->assign(array( 'products' => $products, 'customizedDatas' => Product::getAllCustomizedDatas((int)($params['cart']->id)), 'CUSTOMIZE_FILE' => _CUSTOMIZE_FILE_, 'CUSTOMIZE_TEXTFIELD' => _CUSTOMIZE_TEXTFIELD_, 'discounts' => $params['cart']->getDiscounts(false, Tools::isSubmit('id_product')), 'nb_total_products' => (int)($nbTotalProducts), 'shipping_cost' => Tools::displayPrice($params['cart']->getOrderTotal($useTax, Cart::ONLY_SHIPPING), $currency), 'show_wrapping' => $wrappingCost > 0 ? true : false, 'show_tax' => (int)(Configuration::get('PS_TAX_DISPLAY') == 1 && (int)Configuration::get('PS_TAX')), 'wrapping_cost' => Tools::displayPrice($wrappingCost, $currency), 'product_total' => Tools::displayPrice($params['cart']->getOrderTotal($useTax, Cart::BOTH_WITHOUT_SHIPPING), $currency), 'mensualite' => Tools::displayPrice($params['cart']->getOrderTotal($useTax, Cart::BOTH_WITHOUT_SHIPPING)/3, $currency), 'total' => Tools::displayPrice($params['cart']->getOrderTotal(intval(Configuration::get('PS_PRICE_DISPLAY')) == 1 ? false : true, 4), $currency), 'id_carrier' => (int)($params['cart']->id_carrier), 'order_process' => Configuration::get('PS_ORDER_PROCESS_TYPE') ? 'order-opc' : 'order', 'ajax_allowed' => (int)(Configuration::get('PS_BLOCK_CART_AJAX')) == 1 ? true : false Attention : Ce code PHP divise le total des produits hors frais de port par 3 ! Si vous voulez diviser par un autre chiffre, il faut changer le /3 par votre valeur : 'mensualite' => Tools::displayPrice($params['cart']->getOrderTotal($useTax, Cart::BOTH_WITHOUT_SHIPPING)[b]/3[/b], $currency), 4 - Dans le fichier blockcart.tpl (celui d'origine ou celui de votre template) : Ajouter la ligne : <span id="cart_block_total" class="price ajax_block_cart_mensualite">{$mensualite}</span> Juste après : <span id="cart_block_total" class="price ajax_block_cart_total">{$total}</span><br /> Fonctionnel sur Prestashop v1.4.4.1 ! Aller @++ bonsoir,j ai essayer de suivre vos conseille mais ca ne marche pas , je voi effectivemen le prix diviser en trois dans le panier mais il nya rient d ecri devant ; et sur la fiche produits ca ne s affiche pas du tt pouvez vous m aidez svp Link to comment Share on other sites More sharing options...
julien325cab Posted August 22, 2014 Share Posted August 22, 2014 Bonjour, Je remonte ce post car je viens de l'appliquer sur ma boutique en PS1.6 et cela fonctionne parfaitement. Je souhaite l'adapter sur la page de résumé de panier (shopping-cart) et sur la page de chaque produit. (pour le moment j'ai uniquement renseigné une formule qui divise par 3 le prix sans que le recalcul se fasse en ajax) J'ai essayé d'ajouter : <span>{$mensualite}</span> dans mon fichier shopping-cart.tpl mais cela n'affiche rien, j'imagine que la valeur mensualité n'est pas reprise, pouvez vous m'aider et m'indiquer quel fichier modifier pour que cela fonctionne? url du site : www.elec-auto.com Merci par avance. Julien Link to comment Share on other sites More sharing options...
julien325cab Posted August 26, 2014 Share Posted August 26, 2014 Personne pour m'aider ? Link to comment Share on other sites More sharing options...
Recommended Posts