Jump to content

Afficher des prix divisés par 3 (ou autre) dans le panier + Ajax


logs00

Recommended Posts

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. :rolleyes:

 

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 @++

  • Like 1
Link to comment
Share on other sites

  • 5 months later...

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. :rolleyes:

 

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

  • 2 years later...

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

Guest
This topic is now closed to further replies.
×
×
  • Create New...