Jump to content

Poids du panier dans le popup panier


Recommended Posts

Bonjour,

 

Cette adaptation va nécessiter de modifier au moins 2 templates (blockcart.tpl et blockcart-json.tpl) et le fichier blockcart.js (le panier fonctionnant en Ajax, chaque manipulation comme l'ajout ou la suppression de produit va demander un rafraîchissement de la valeur).

 

Il est possible que la modification du CartController.php soit nécessaire également.

 

Ca va donc dépendre de votre niveau en développement.

  • Like 1
Link to comment
Share on other sites

Bonjour,

 

Cette adaptation va nécessiter de modifier au moins 2 templates (blockcart.tpl et blockcart-json.tpl) et le fichier blockcart.js (le panier fonctionnant en Ajax, chaque manipulation comme l'ajout ou la suppression de produit va demander un rafraîchissement de la valeur).

 

Il est possible que la modification du CartController.php soit nécessaire également.

 

Ca va donc dépendre de votre niveau en développement.

Merci BeComWeb,

J'avais pensé deja au Bloccart.js et Blockcart.tpl mais pas l'autre

que faudrait-il ajouter pour que cela fonctionne?

j'avais pensé à un truc dans ce style:

$('#layer_cart_product_weight').text('');

Link to comment
Share on other sites

Oups pardon, j'ai parlé un peu vite.

Sur la capture c'est la pop-up qui s'affiche après l'ajout au panier, pas le bloc panier qui se trouve dans le header.

L'idée est la même mais les fichiers sont peut-être différents.

Je regarde ça plus en détails cet après-midi.

  • Like 1
Link to comment
Share on other sites

En fait dans ce contexte la solution était très simple et ne demandait qu'un simple ajout de code dans le template themes/nom-de-votre-theme/modules/blockcart/blockcart.tpl.

Donc après la dernière div.layer_cart_row on en ajoute une nouvelle.

Elle va contenir un <strong> pour le titre ("Weight" que j'ai volontairement laissé en anglais pour que vous puissiez/deviez le traduire depuis le back-office proprement) et un span (à qui j'ai donné une classe même si ce n'était pas indispensable) qui va contenir le résultat de la méthode native getTotalWeight() de la classe Cart qui se charge de calculer le poids d'un panier.

Pas de souci avec l'Ajax ici puisque le template est réappellé/recompilé à chaque ajout au panier.
 

Seule petite limite avec ma technique ci-dessous c'est que j'ai mis le terme "kgs" en dur. Je ne pense pas que ce soit votre cas mais pour une boutique qui travaillerait en grammes ou en unités étrangères (comme les pounds britanniques) ça n'irait pas (il faudrait ajouter un assign smarty dans le fichier PHP du module du style $this->context->smarty->assign('weight_unit', Configuration::get('PS_WEIGHT_UNIT'));).

				<div class="layer_cart_row">
					<strong class="dark">
						{l s='Total' mod='blockcart'}
						{if $use_taxes && $display_tax_label && $show_tax}
							{if $priceDisplay == 1}
								{l s='(tax excl.)' mod='blockcart'}
							{else}
								{l s='(tax incl.)' mod='blockcart'}
							{/if}
						{/if}
					</strong>
					<span class="ajax_block_cart_total">
						{if $cart_qties > 0}
							{if $priceDisplay == 1}
								{convertPrice price=$cart->getOrderTotal(false)}
							{else}
								{convertPrice price=$cart->getOrderTotal(true)}
							{/if}
						{/if}
					</span>
				</div>
				<div class="layer_cart_row">
					<strong class="dark">
						{l s='Weight' mod='blockcart'}
					</strong>
					<span class="ajax_block_cart_weight">
						{$cart->getTotalWeight(null)} kgs
					</span>
				</div>
Edited by BeComWeb (see edit history)
Link to comment
Share on other sites

Merci beaucoup ca fonctionne nikel

juste changer :

ligne 322: {l s='Weight' mod='blockcart'} weight par poids car sinon ca reste à zero!!!

merci encore

greg

 

 

Hum... je ne pense pas que ton bug venait de ça.Je suspecte que tu avais utilisé des double quotes autour de Weight et/ou de blockcart alors que le système de traduction impose les simples quotes.

 

En tout cas pense à passer le topic en "[Résolu]", d'autant qu'il pourrait intéresser d'autres utilisateurs.

 

Bonne soirée

  • Like 1
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...