Jump to content

[Résolu] Montant gratuit dans le choix du transporteur


Recommended Posts

Bonjour,

 

N'arrivant pas à trouver la solution à mon problème, je me permet de venir vous le détailler. Mon problème est en rapport à l'affichage du mot "gratuit" au niveau du montant d'un des transporteurs (pendant le choix lors de la commande).

 

Dans une boutique PrestaShop 1.6, j'ai paramétré différents transporteurs par rapport aux poids et aux zones de livraison.

Pour permettre d'offrir les frais de port à partir d'un certain montant et seulement pour la France, j'ai mis en place une règle panier en indiquant le montant minimum, en choisissant correctement le pays et le transporteur.

 

La règle fonctionne correctement et les frais de port sont bien offert pour la France à partir du seuil.

 

Par contre, je n'arrive pas à comprendre pourquoi au niveau du choix d'un transporteur, le mot "gratuit" apparaît à la place du montant des frais de port alors que le seuil n'est pas atteint.

 

Avez-vous une idée de ce qui pourrait causer ce problème ?

 

 

Merci par avance.

Edited by evolutiveWeb.com (see edit history)
Link to comment
Share on other sites

Bonjour,

 

J'allais exposer exactement le même problème!

 

Lorsque le panier minimum n'est pas atteint, il est quand même affiché, lors du choix du transporteur, que les frais de ports sont offerts. Et même s'ils sont facturés au moment du paiement, c'est quand même délicat de les afficher gratuits juste avant.

 

Quelqu'un pourrait nous aider ?

 

Merci.

 

 

Link to comment
Share on other sites

Bonjour,

 

C'est un problème de tpl/traductions.

 

Explication:

Tant que Prestashop n'a pas une adresse de livraison, il est incapable de donner un prix de livraison, donc la fonction qui calcule ce prix renvoie 0. (Sachant que cette fonction renvoie le prix le moins cher s'il y a plusieurs transporteurs)

 

Dans le tpl, une condition implique que si le prix de livraison est égal à 0, il affiche "Offert", ou "gratuit" (selon votre traduction)

 

Si on parle du bloc panier, le fichier concerné est /modules/blockcart/blockcart.tpl  (dans le répertoire racine ou celui de votre thème, s'il existe)

Il faut donc soit modifier le tpl au choix:

- Ne pas afficher de coût de frais de port si le client n'est pas connecté

							{if is_logged}
								<span class="price cart_block_shipping_cost ajax_cart_shipping_cost">
									{if $shipping_cost_float == 0}
										{l s='Free shipping!' mod='blockcart'}
									{else}
										{$shipping_cost}
									{/if}
								</span>
								<span>
									{l s='Shipping' mod='blockcart'}
								</span>
							{/if} 

- Afficher un message à la place

								<span class="price cart_block_shipping_cost ajax_cart_shipping_cost">
									{if $shipping_cost_float == 0}
										{if is_logged}
											{l s='Free shipping!' mod='blockcart'}
										{else}
											{l s='- In wait -' mod='blockcart'}
										{/if}
									{else}
										{$shipping_cost}
									{/if}
								</span>
								<span>
									{l s='Shipping' mod='blockcart'}
								</span>

In wait à traduire par En attente.

 

Si on parle de la page Récapitulatif de la commande (panier)

ça se passe dans themes/votre_theme/shopping-cart.tpl vers la ligne 220

				{if $total_shipping_tax_exc <= 0 && !isset($virtualCart)}
					<tr class="cart_total_delivery" style="{if !isset($carrier->id) || is_null($carrier->id)}display:none;{/if}">
						<td colspan="{$col_span_subtotal}" class="text-right">{l s='Shipping'}</td>
						<td colspan="2" class="price" id="total_shipping">{l s='Free Shipping!'}</td>
					</tr>
				{else}
					{if $use_taxes && $total_shipping_tax_exc != $total_shipping}
						{if $priceDisplay}
							<tr class="cart_total_delivery" {if $total_shipping_tax_exc <= 0} style="display:none;"{/if}>
								<td colspan="{$col_span_subtotal}" class="text-right">{if $display_tax_label}{l s='Total shipping (tax excl.)'}{else}{l s='Total shipping'}{/if}</td>
								<td colspan="2" class="price" id="total_shipping">{displayPrice price=$total_shipping_tax_exc}</td>
							</tr>
						{else}
							<tr class="cart_total_delivery"{if $total_shipping <= 0} style="display:none;"{/if}>
								<td colspan="{$col_span_subtotal}" class="text-right">{if $display_tax_label}{l s='Total shipping (tax incl.)'}{else}{l s='Total shipping'}{/if}</td>
								<td colspan="2" class="price" id="total_shipping" >{displayPrice price=$total_shipping}</td>
							</tr>
						{/if}
					{else}
						<tr class="cart_total_delivery"{if $total_shipping_tax_exc <= 0} style="display:none;"{/if}>
							<td colspan="{$col_span_subtotal}" class="text-right">{l s='Total shipping'}</td>
							<td colspan="2" class="price" id="total_shipping" >{displayPrice price=$total_shipping_tax_exc}</td>
						</tr>
					{/if}
				{/if}

idem, vous rajoutez les conditions $is_logged aux bons endroits :)

Link to comment
Share on other sites

Bonjour Eolia et merci pour votre réponse.

 

Que ce soit sur le bloc panier ou dans le récapitulatif de la commande, c'est bien le bon montant qui s'affiche concernant les frais de livraison.

 

L'endroit ou cela ne fonctionne pas correctement, c'est dans la page qui permet de choisir son transporteur (donc l'adresse postale a déjà été rentrée juste avant).

 

Ce qui est vraiment embêtant, comme l'indique KR2F Diffusion, les clients qui passent commandes voient pendant le choix de la livraison qu'un transporteur est indiqué comme "gratuit" et qu'une fois choisi dans le récapitulatif de la commande, un montant s'affiche pour la livraison (cela pourrait perturber certains clients et les inciter à ne pas finaliser leurs commandes).

Link to comment
Share on other sites

  • 10 months later...

Bonjour,

 

Oui, nous avons changé de méthode pour offrir la livraison à partir d'un certain montant de commande.

 

Nous avons supprimé la règle panier que nous avions au préalable créée, nous avons indiqué un montant à atteindre pour obtenir la livraison gratuite au niveau des préférences de la livraison et nous avons ensuite modifier directement le fichier classes/Cart.php pour ajouter une condition au niveau de "// Free fees" pour offrir la livraison que à tel ou tel transporteur (dans notre cas, en fonction du transporteur et du pays de livraison).

 

 

Voilà.

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