Jump to content
Bastien

Problème de configuration de prix spécifique

Recommended Posts

Bonjour,

Je rencontre un problème pour configurer des prix spécifiques.

Je souhaiterais mettre en place des prix dégressifs en fonction des quantités (Ex : 1,90€ - 0-4 produits / 1,79€ - 5-9 produits / 1,59€ - 10-14 produits / etc...).

J'ai remarqué que le changement ne se faisait que lorsque la quantité minimum requise pour la réduction de prix était de 1, et non pour 5, 10, 15, ... Je pense de plus en plus qu'il s'agit d'un bug de Prestashop mais je n'y connais pas grand chose.

Pour info, mon thème est Leo Dolphin et je suis en version 1.6.1.20.

Quelqu'un a déjà rencontré ce problème ? Il semble que de nombreuses personnes ont des difficultés avec les prix spécifiques et les déclinaisons.

Merci à vous.

Share this post


Link to post
Share on other sites

On parle de prix spécifique ou de règle panier là ?

Parce que les prix spécifiques, c'est dans la page du produit, onglet Prix et la condition est "A partir de"

Pour les règles panier, si vous en créez plusieurs, mettez les priorités dans le bon sens^^

Share this post


Link to post
Share on other sites

Bonjour,
J'ai mis à jour mon site de 1.7.3 à 1.7.4.2 et depuis lorsque je duplique un produit, les prix spécifiques ne sont pas dupliqués avec le produit (j'ai bien les déclinaisons) mais aucun de prix spécifique alors que je viens de passer 1h à les entrer.
Avez-vous une idée ?

Merci d'avance

Share this post


Link to post
Share on other sites

@Eolia,

 

Non je parle bien des prix spécifiques. En gros, J'ai crée un prix spécifique qui correspond à une réduction de 0,11€ (le prix de base étant de 1,90€) si on commande à partir de 5 unités. Sauf que lorsque je vais sur ma page produit et que je mets la quantité à 5, le prix passe de 1,90€ à -0,11€, soit le montant de la réduction !!! Il y a clairement un bug là non ??

Share this post


Link to post
Share on other sites

il y a 1 bug d'affichage et un paramètre à modifier:

- le paramètre: décochez "Laisser le prix de base"

- le bug est dans le product.tpl qui ajoute un signe "-" devant le prix en calculant à l'envers

 

image.png.39a2d6630ad856941d21981db42e81c0.png

image.thumb.png.d6925cf6c903b11f5a8df5c2a30a4238.png

 

Une fois le tpl corrigé c'est ok^^

https://devcustom.net/test162/accueil/8-large-sofa-laze.htm

ligne 419 de product.tpl à corriger

{$realDiscountPrice=abs($quantity_discount.base_price|floatval-$quantity_discount.real_value)|floatval}

 

Share this post


Link to post
Share on other sites

Merci pour votre réponse.

Malheureusement, mon problème n'est pas résolu. Je suis sur un autre thème (Leo Dolphin). J'imagine que celui que vous avez montré est le thème de base de Presta.

De plus, dans votre cas, c'est le prix final réduit qui est inversé. Dans le mien, il s'agit du montant de la réduction qui se met à la place du prix final réduit. 

J'ai joint des printscreen, si cela peut aider quelqu'un à comprendre le problème...

 

Sans titre 2.png

Sans titre.png

Share this post


Link to post
Share on other sites

Ben en même temps il faut me lire, quand même...

Il y a 3 heures, Eolia a dit :

le paramètre: décochez "Laisser le prix de base"

image.png.8204211dab4a58998afaca20a25b2a4b.png

Share this post


Link to post
Share on other sites

Ok donc quand je coche, le prix réduit apparaît bien mais en négatif. Je n'ai pas réussi à modifier le product.tpl (ou je l'ai mal fait).

 

Quand vous parlez de la ligne à corriger, que faut-il corriger exactement ? (ma connaissance en code est proche du niveau de la mer).

Share this post


Link to post
Share on other sites

Voilà ce que j'ai dans le fichier product.tpl  :

 

<tbody>
                                        {foreach from=$quantity_discounts item='quantity_discount' name='quantity_discounts'}
                                            {if $quantity_discount.price >= 0 || $quantity_discount.reduction_type == 'amount'}
                                                {$realDiscountPrice=$productPriceWithoutReduction|floatval-$quantity_discount.real_value|floatval}
                                            {else}
                                                {$realDiscountPrice=$productPriceWithoutReduction|floatval-($productPriceWithoutReduction*$quantity_discount.reduction)|floatval}
                                            {/if}
                                            <tr id="quantityDiscount_{$quantity_discount.id_product_attribute}" class="quantityDiscount_{$quantity_discount.id_product_attribute}" data-real-discount-value="{convertPrice price = $realDiscountPrice}" data-discount-type="{$quantity_discount.reduction_type}" data-discount="{$quantity_discount.real_value|floatval}" data-discount-quantity="{$quantity_discount.quantity|intval}">
                                            <td>
                                                {$quantity_discount.quantity|intval}
                                            </td>
                                            <td>

 

 

Est-ce-que d'après vous le bug se situe là-dedans ?

Share this post


Link to post
Share on other sites

celle-ci:

 {$realDiscountPrice=$productPriceWithoutReduction|floatval-$quantity_discount.real_value|floatval}

à remplacer par celle que je vous ai mis plus haut:

 {$realDiscountPrice=abs($productPriceWithoutReduction|floatval-$quantity_discount.real_value)|floatval}

 

Share this post


Link to post
Share on other sites

Bonjour,

Malheureusement, je n'ai pas toujours résolu mon problème et mes prix s'affichent toujours en négatif (malgré la réduction bien prise en compte).

Je me permets de poster l'intégralité de mon product.tpl, si quelqu'un passe par là et vois une anomalie. Je ne sais plus quoi faire ! Merci de votre compréhension et pour votre aide.

{*
* 2007-2016 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <contact@prestashop.com>
*  @copyright  2007-2016 PrestaShop SA
*  @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*}
{include file="$tpl_dir./errors.tpl"}
{if $errors|@count == 0}
	{if !isset($priceDisplayPrecision)}
		{assign var='priceDisplayPrecision' value=2}
	{/if}
	{if !$priceDisplay || $priceDisplay == 2}
		{assign var='productPrice' value=$product->getPrice(true, $smarty.const.NULL, 6)}
		{assign var='productPriceWithoutReduction' value=$product->getPriceWithoutReduct(false, $smarty.const.NULL)}
	{elseif $priceDisplay == 1}
		{assign var='productPrice' value=$product->getPrice(false, $smarty.const.NULL, 6)}
		{assign var='productPriceWithoutReduction' value=$product->getPriceWithoutReduct(true, $smarty.const.NULL)}
	{/if}
<div itemscope itemtype="https://schema.org/Product">
	<meta itemprop="url" content="{$link->getProductLink($product)}">
	<div class="primary_block row">
		{if !$content_only}
			<div class="container">
				<div class="top-hr"></div>
			</div>
		{/if}
		{if isset($adminActionDisplay) && $adminActionDisplay}
			<div id="admin-action" class="container">
				<p class="alert alert-info">{l s='This product is not visible to your customers.'}
					<input type="hidden" id="admin-action-product-id" value="{$product->id}" />
					<a id="publish_button" class="btn btn-outline button button-small" href="#">
						<span>{l s='Publish'}</span>
					</a>
					<a id="lnk_view" class="btn btn-outline button button-small" href="#">
						<span>{l s='Back'}</span>
					</a>
				</p>
				<p id="admin-action-result"></p>
			</div>
		{/if}
		{if isset($confirmation) && $confirmation}
			<p class="confirmation">
				{$confirmation}
			</p>
		{/if}
		<!-- left infos-->  
		<div class="pb-left-column col-xs-12 col-sm-12 col-md-5">
			<!-- product img-->        
			<div id="image-block" class="clearfix">
				<div class="p-label">
					{if $product->new}					
						<span class="label-new label label-info">{l s='New'}</span>					
					{/if}
					{if $product->on_sale}					
						<span class="label-sale label label-warning">{l s='Sale!'}</span>					
					{elseif $product->specificPrice && $product->specificPrice.reduction && $productPriceWithoutReduction > $productPrice}
						<span class="label-discount label label-danger">{l s='Reduced price!'}</span>
					{/if}
				</div>
				{if $have_image}
					<span id="view_full_size">
						{if $jqZoomEnabled && $have_image && !$content_only}
							<a class="jqzoom" title="{if !empty($cover.legend)}{$cover.legend|escape:'html':'UTF-8'}{else}{$product->name|escape:'html':'UTF-8'}{/if}" rel="gal1" href="{$link->getImageLink($product->link_rewrite, $cover.id_image, 'thickbox_default')|escape:'html':'UTF-8'}">
								<img class="img-responsive" itemprop="image" src="{$link->getImageLink($product->link_rewrite, $cover.id_image, 'large_default')|escape:'html':'UTF-8'}" title="{if !empty($cover.legend)}{$cover.legend|escape:'html':'UTF-8'}{else}{$product->name|escape:'html':'UTF-8'}{/if}" alt="{if !empty($cover.legend)}{$cover.legend|escape:'html':'UTF-8'}{else}{$product->name|escape:'html':'UTF-8'}{/if}"/>
							</a>
						{else}
							<img id="bigpic" class="img-responsive" itemprop="image" src="{$link->getImageLink($product->link_rewrite, $cover.id_image, 'large_default')|escape:'html':'UTF-8'}" title="{if !empty($cover.legend)}{$cover.legend|escape:'html':'UTF-8'}{else}{$product->name|escape:'html':'UTF-8'}{/if}" alt="{if !empty($cover.legend)}{$cover.legend|escape:'html':'UTF-8'}{else}{$product->name|escape:'html':'UTF-8'}{/if}"/>
							{if !$content_only}
								<span class="span_link no-print status-enable btn btn-outline"></span>
							{/if}
						{/if}
					</span>
				{else}
					<span id="view_full_size">
						<img itemprop="image" src="{$img_prod_dir}{$lang_iso}-default-large_default.jpg" id="bigpic" alt="" title="{$product->name|escape:'html':'UTF-8'}"/>
						{if !$content_only}
							<span class="span_link">
								{l s='View larger'}
							</span>
						{/if}
					</span>
				{/if}
			</div> <!-- end image-block -->
			{if isset($images) && count($images) > 0}
				<!-- thumbnails -->
				<div id="views_block" class="clearfix {if isset($images) && count($images) < 2}hidden{/if}">
					{if isset($images) && count($images) > 4}
						<span class="view_scroll_spacer">
							<a id="view_scroll_left" class="" title="{l s='Other views'}" href="javascript:{ldelim}{rdelim}">
								{l s='Previous'}
							</a>
						</span>
					{/if}
					<div id="thumbs_list">
						<ul id="thumbs_list_frame">
						{if isset($images)}
							{foreach from=$images item=image name=thumbnails}
								{assign var=imageIds value="`$product->id`-`$image.id_image`"}
								{if !empty($image.legend)}
									{assign var=imageTitle value=$image.legend|escape:'html':'UTF-8'}
								{else}
									{assign var=imageTitle value=$product->name|escape:'html':'UTF-8'}
								{/if}
								<li id="thumbnail_{$image.id_image}"{if $smarty.foreach.thumbnails.last} class="last"{/if}>
									<a{if $jqZoomEnabled && $have_image && !$content_only} href="javascript:void(0);" rel="{literal}[spam-filter]/literal}gallery: 'gal1', smallimage: '{$link->getImageLink($product->link_rewrite, $imageIds, 'large_default')|escape:'html':'UTF-8'}',largeimage: '{$link->getImageLink($product->link_rewrite, $imageIds, 'thickbox_default')|escape:'html':'UTF-8'}'{literal[spam-filter]{/literal}"{else} href="{$link->getImageLink($product->link_rewrite, $imageIds, 'thickbox_default')|escape:'html':'UTF-8'}"	data-fancybox-group="other-views" class="fancybox{if $image.id_image == $cover.id_image} shown{/if}"{/if} title="{$imageTitle}">
										<img class="img-responsive" id="thumb_{$image.id_image}" src="{$link->getImageLink($product->link_rewrite, $imageIds, 'cart_default')|escape:'html':'UTF-8'}" alt="{$imageTitle}" title="{$imageTitle}" itemprop="image" />
									</a>
								</li>
							{/foreach}
						{/if}
						</ul>
					</div> <!-- end thumbs_list -->
					{if isset($images) && count($images) > 4}
						<a id="view_scroll_right" title="{l s='Other views'}" href="javascript:{ldelim}{rdelim}">
							{l s='Next'}
						</a>
					{/if}
				</div> <!-- end views-block -->
				<!-- end thumbnails -->
			{/if}
			{if isset($images) && count($images) > 1}
				<p class="resetimg clear no-print">
					<span id="wrapResetImages" style="display: none;">
						<a href="{$link->getProductLink($product)|escape:'html':'UTF-8'}" data-id="resetImages">
							<i class="fa fa-repeat"></i>
							{l s='Display all pictures'}
						</a>
					</span>
				</p>
			{/if}
		</div>
		<!-- end left infos-->
		<!-- center infos -->
		<div class="pb-center-column col-xs-12 col-sm-7 col-md-7">
			<h1 itemprop="name">{$product->name|escape:'html':'UTF-8'}</h1>
			{if isset($HOOK_EXTRA_RIGHT) && $HOOK_EXTRA_RIGHT}{$HOOK_EXTRA_RIGHT}{/if}
			<p id="product_reference"{if empty($product->reference) || !$product->reference} style="display: none;"{/if}>
				<label>{l s='Reference:'} </label>
				<span class="editable" itemprop="sku"{if !empty($product->reference) && $product->reference} content="{$product->reference}"{/if}>{if !isset($groups)}{$product->reference|escape:'html':'UTF-8'}{/if}</span>
			</p>
			<div class="clearfix"></div>
			{if $product->online_only}
				<p class="online_only">{l s='Online only'}</p>
			{/if}
			<div class="box-info-product">
			{if !$product->is_virtual && $product->condition}
			<p id="product_condition">
				<label>{l s='Condition:'} </label>
				{if $product->condition == 'new'}
					<link itemprop="itemCondition" href="https://schema.org/NewCondition"/>
					<span class="editable">{l s='New product'}</span>
				{elseif $product->condition == 'used'}
					<link itemprop="itemCondition" href="https://schema.org/UsedCondition"/>
					<span class="editable">{l s='Used'}</span>
				{elseif $product->condition == 'refurbished'}
					<link itemprop="itemCondition" href="https://schema.org/RefurbishedCondition"/>
					<span class="editable">{l s='Refurbished'}</span>
				{/if}
			</p>
			{/if}
			<!-- availability or doesntExist -->
			<p id="availability_statut"{if !$PS_STOCK_MANAGEMENT || ($product->quantity <= 0 && !$product->available_later && $allow_oosp) || ($product->quantity > 0 && !$product->available_now) || !$product->available_for_order || $PS_CATALOG_MODE} style="display: none;"{/if}>
				<label>{l s='Available:'}</label>
				{*<span id="availability_label">{l s='Availability:'}</span>*}
				<span id="availability_value" class="label{if $product->quantity <= 0 && !$allow_oosp} label-danger{elseif $product->quantity <= 0} label-warning{else} label-success{/if}">{if $product->quantity <= 0}{if $PS_STOCK_MANAGEMENT && $allow_oosp}{$product->available_later}{else}{l s='This product is no longer in stock'}{/if}{elseif $PS_STOCK_MANAGEMENT}{$product->available_now}{/if}</span>
			</p>
			{if ($display_qties == 1 && !$PS_CATALOG_MODE && $PS_STOCK_MANAGEMENT && $product->available_for_order)}
				<!-- number of item in stock -->
				<p id="pQuantityAvailable"{if $product->quantity <= 0} style="display: none;"{/if}>
					<span id="quantityAvailable">{$product->quantity|intval}</span>
					<span {if $product->quantity > 1} style="display: none;"{/if} id="quantityAvailableTxt">{l s='Item'}</span>
					<span {if $product->quantity == 1} style="display: none;"{/if} id="quantityAvailableTxtMultiple">{l s='Items'}</span>
				</p>
			{/if}
			<div class="content_prices clearfix">
				{if $product->show_price && !isset($restricted_country_mode) && !$PS_CATALOG_MODE}
					<!-- prices -->
					<div class="price">
						<p class="our_price_display" itemprop="offers" itemscope itemtype="https://schema.org/Offer">{strip}
							{if $product->quantity > 0}<link itemprop="availability" href="https://schema.org/InStock"/>{/if}
							{if $priceDisplay >= 0 && $priceDisplay <= 2}
								<span id="our_price_display" itemprop="price" content="{$productPrice}">{convertPrice price=$productPrice|floatval}</span>
								{*
									{if $tax_enabled  && ((isset($display_tax_label) && $display_tax_label == 1) || !isset($display_tax_label))}
										{if $priceDisplay == 1} {l s='tax excl.'}{else} {l s='tax incl.'}{/if}
									{/if}
								*}
								<meta itemprop="priceCurrency" content="{$currency->iso_code}" />
								{hook h="displayProductPriceBlock" product=$product type="price"}
							{/if}
						{/strip}</p>
					<p id="reduction_percent" {if $productPriceWithoutReduction <= 0 || !$product->specificPrice || $product->specificPrice.reduction_type != 'percentage'} style="display:none;"{/if}>{strip}
							<span id="reduction_percent_display">
								{if $product->specificPrice && $product->specificPrice.reduction_type == 'percentage'}-{$product->specificPrice.reduction*100}%{/if}
							</span>
						{/strip}</p>
					<p id="reduction_amount" {if $productPriceWithoutReduction <= 0 || !$product->specificPrice || $product->specificPrice.reduction_type != 'amount' || $product->specificPrice.reduction|floatval ==0} style="display:none"{/if}>{strip}
							<span id="reduction_amount_display">
							{if $product->specificPrice && $product->specificPrice.reduction_type == 'amount' && $product->specificPrice.reduction|floatval !=0}
								-{convertPrice price=$productPriceWithoutReduction|floatval-$productPrice|floatval}
							{/if}
							</span>
						{/strip}</p>
						<p id="old_price"{if (!$product->specificPrice || !$product->specificPrice.reduction)} class="hidden"{/if}>{strip}
							{if $priceDisplay >= 0 && $priceDisplay <= 2}
								{hook h="displayProductPriceBlock" product=$product type="old_price"}
								<span id="old_price_display">{if $productPriceWithoutReduction > $productPrice}{convertPrice price=$productPriceWithoutReduction|floatval}{/if}
								{*{if $productPriceWithoutReduction > $productPrice && $tax_enabled && $display_tax_label == 1} {if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}{/if}{/if}*}</span>
							{/if}
						{/strip}</p>
						{if $priceDisplay == 2}
							<br />
							<span id="pretaxe_price">{strip}
								<span id="pretaxe_price_display">{convertPrice price=$product->getPrice(false, $smarty.const.NULL)}</span> {l s='tax excl.'}
							{/strip}</span>
						{/if}
					</div> <!-- end prices -->
					{if $packItems|@count && $productPrice < $product->getNoPackPrice()}
						<p class="pack_price">{l s='Instead of'} <span style="text-decoration: line-through;">{convertPrice price=$product->getNoPackPrice()}</span></p>
					{/if}
					{if $product->ecotax != 0}
						<p class="price-ecotax">{l s='Including'} <span id="ecotax_price_display">{if $priceDisplay == 2}{$ecotax_tax_exc|convertAndFormatPrice}{else}{$ecotax_tax_inc|convertAndFormatPrice}{/if}</span> {l s='for ecotax'}
							{if $product->specificPrice && $product->specificPrice.reduction}
							<br />{l s='(not impacted by the discount)'}
							{/if}
						</p>
					{/if}
					{if !empty($product->unity) && $product->unit_price_ratio > 0.000000}
						{math equation="pprice / punit_price" pprice=$productPrice  punit_price=$product->unit_price_ratio assign=unit_price}
						<p class="unit-price"><span id="unit_price_display">{convertPrice price=$unit_price}</span> {l s='per'} {$product->unity|escape:'html':'UTF-8'}</p>
						{hook h="displayProductPriceBlock" product=$product type="unit_price"}
					{/if}
				{/if} {*close if for show price*}
				{hook h="displayProductPriceBlock" product=$product type="weight" hook_origin='product_sheet'}
				{hook h="displayProductPriceBlock" product=$product type="after_price"}
				<div class="clear"></div>
			</div> <!-- end content_prices -->
			{if $PS_STOCK_MANAGEMENT}
				{if !$product->is_virtual}{hook h="displayProductDeliveryTime" product=$product}{/if}
				<p class="warning_inline" id="last_quantities"{if ($product->quantity > $last_qties || $product->quantity <= 0) || $allow_oosp || !$product->available_for_order || $PS_CATALOG_MODE} style="display: none"{/if} >{l s='Warning: Last items in stock!'}</p>
			{/if}
			<p id="availability_date"{if ($product->quantity > 0) || !$product->available_for_order || $PS_CATALOG_MODE || !isset($product->available_date) || $product->available_date < $smarty.now|date_format:'%Y-%m-%d'} style="display: none;"{/if}>
				<span id="availability_date_label">{l s='Availability date:'}</span>
				<span id="availability_date_value">{if Validate::isDate($product->available_date)}{dateFormat date=$product->available_date full=false}{/if}</span>
			</p>
			<!-- Out of stock hook -->
			<div id="oosHook"{if $product->quantity > 0} style="display: none;"{/if}>
				{$HOOK_PRODUCT_OOS}
			</div>
			</div>
		</div>
		<!-- end center infos-->
		<!-- pb-right-column-->
		<div class="pb-right-column col-xs-12 col-sm-7 col-md-7">
			{if ($product->show_price && !isset($restricted_country_mode)) || isset($groups) || $product->reference || (isset($HOOK_PRODUCT_ACTIONS) && $HOOK_PRODUCT_ACTIONS)}
				<!-- add to cart form-->
				<form id="buy_block"{if $PS_CATALOG_MODE && !isset($groups) && $product->quantity > 0} class="hidden"{/if} action="{$link->getPageLink('cart')|escape:'html':'UTF-8'}" method="post">
					<!-- hidden datas -->
					<p class="hidden">
						<input type="hidden" name="token" value="{$static_token}" />
						<input type="hidden" name="id_product" value="{$product->id|intval}" id="product_page_product_id" />
						<input type="hidden" name="add" value="1" />
						<input type="hidden" name="id_product_attribute" id="idCombination" value="" />
					</p>
					<div class="box-info-product">
						<div class="product_attributes clearfix">
							{if isset($groups)}
								<!-- attributes -->
								<div id="attributes">
									<div class="clearfix"></div>
									{foreach from=$groups key=id_attribute_group item=group}
										{if $group.attributes|@count}
											<fieldset class="attribute_fieldset">
												<label class="attribute_label" {if $group.group_type != 'color' && $group.group_type != 'radio'}for="group_{$id_attribute_group|intval}"{/if}>{$group.name|escape:'html':'UTF-8'}&nbsp;</label>
												{assign var="groupName" value="group_$id_attribute_group"}
												<div class="attribute_list">
													{if ($group.group_type == 'select')}
														<select name="{$groupName}" id="group_{$id_attribute_group|intval}" class="form-control attribute_select no-print">
															{foreach from=$group.attributes key=id_attribute item=group_attribute}
																<option value="{$id_attribute|intval}"{if (isset($smarty.get.$groupName) && $smarty.get.$groupName|intval == $id_attribute) || $group.default == $id_attribute} selected="selected"{/if} title="{$group_attribute|escape:'html':'UTF-8'}">{$group_attribute|escape:'html':'UTF-8'}</option>
															{/foreach}
														</select>
													{elseif ($group.group_type == 'color')}
														<ul id="color_to_pick_list" class="clearfix">
															{assign var="default_colorpicker" value=""}
															{foreach from=$group.attributes key=id_attribute item=group_attribute}
																{assign var='img_color_exists' value=file_exists($col_img_dir|cat:$id_attribute|cat:'.jpg')}
																<li{if $group.default == $id_attribute} class="selected"{/if}>
																	<a href="{$link->getProductLink($product)|escape:'html':'UTF-8'}" id="color_{$id_attribute|intval}" name="{$colors.$id_attribute.name|escape:'html':'UTF-8'}" class="color_pick{if ($group.default == $id_attribute)} selected{/if}"{if !$img_color_exists && isset($colors.$id_attribute.value) && $colors.$id_attribute.value} style="background:{$colors.$id_attribute.value|escape:'html':'UTF-8'};"{/if} title="{$colors.$id_attribute.name|escape:'html':'UTF-8'}">
																		{if $img_color_exists}
																			<img src="{$img_col_dir}{$id_attribute|intval}.jpg" alt="{$colors.$id_attribute.name|escape:'html':'UTF-8'}" title="{$colors.$id_attribute.name|escape:'html':'UTF-8'}" width="20" height="20" />
																		{/if}
																	</a>
																</li>
																{if ($group.default == $id_attribute)}
																	{$default_colorpicker = $id_attribute}
																{/if}
															{/foreach}
														</ul>
														<input type="hidden" class="color_pick_hidden" name="{$groupName|escape:'html':'UTF-8'}" value="{$default_colorpicker|intval}" />
													{elseif ($group.group_type == 'radio')}
														<ul>
															{foreach from=$group.attributes key=id_attribute item=group_attribute}
																<li>
																	<input type="radio" class="attribute_radio" name="{$groupName|escape:'html':'UTF-8'}" value="{$id_attribute}" {if ($group.default == $id_attribute)} checked="checked"{/if} />
																	<span>{$group_attribute|escape:'html':'UTF-8'}</span>
																</li>
															{/foreach}
														</ul>
													{/if}
												</div> <!-- end attribute_list -->
											</fieldset>
										{/if}
									{/foreach}
								</div> <!-- end attributes -->
							{/if}
							<!-- minimal quantity wanted -->
							<p id="minimal_quantity_wanted_p"{if $product->minimal_quantity <= 1 || !$product->available_for_order || $PS_CATALOG_MODE} style="display: none;"{/if}>
								{l s='The minimum purchase order quantity for the product is'} <b id="minimal_quantity_label">{$product->minimal_quantity}</b>
							</p>
							<!-- quantity wanted -->
							{if !$PS_CATALOG_MODE}
							<p id="quantity_wanted_p"{if (!$allow_oosp && $product->quantity <= 0) || !$product->available_for_order || $PS_CATALOG_MODE} style="display: none;"{/if}>
								<label for="quantity_wanted">{l s='Quantity'}</label>
								<a href="#" data-field-qty="qty" class="btn btn-outline status-enable button-minus btn-sm product_quantity_down">
									<span><i class="fa fa-angle-down "></i></span>
								</a>
								<input type="number" min="1" name="qty" id="quantity_wanted" class="text form-control" value="{if isset($quantityBackup)}{$quantityBackup|intval}{else}{if $product->minimal_quantity > 1}{$product->minimal_quantity}{else}1{/if}{/if}" />
								<a href="#" data-field-qty="qty" class="btn btn-outline status-enable button-plus btn-sm product_quantity_up">
									<span><i class="fa fa-angle-up"></i></span>
								</a>
								<span class="clearfix"></span>
							</p>
							{/if}
							<div class="button_add_to_cart " {if (!$allow_oosp && $product->quantity <= 0) || !$product->available_for_order || (isset($restricted_country_mode) && $restricted_country_mode) || $PS_CATALOG_MODE} class="unvisible"{/if}>
								<p id="add_to_cart" class="buttons_bottom_block no-print">
									<button type="submit" name="Submit" class="exclusive btn">
										<span>{if $content_only && (isset($product->customization_required) && $product->customization_required)}{l s='Customize'}{else}{l s='Add to cart'}{/if}</span>
									</button>
								</p>
								{if isset($HOOK_PRODUCT_ACTIONS) && $HOOK_PRODUCT_ACTIONS}{$HOOK_PRODUCT_ACTIONS}{/if}
							</div>
								
								<span class="clearfix"></span>
							{*<p class="buttons_bottom_block no-print">
								<a class="add_to_compare checked" href="{$link->getPageLink('products-comparison')|escape:'html':'UTF-8'}" data-id-product="{$product->id|intval}" title="{l s='Add to compare'}" >
									<i class="fa fa-refresh"></i>{l s='Add to compare'}
								</a>
							</p>*}
						</div> <!-- end box-cart-bottom -->
						{if (isset($quantity_discounts) && count($quantity_discounts) > 0)}
						<div id="volume_discounts">
							<p>{l s='Volume discounts'}</p>
							<div id="quantityDiscount">
								<table class="std table-product-discounts">
									<thead>
										<tr>
											<th>{l s='Minimum quantity'}</th>
											<th>{if $display_discount_price}{l s='Price'}{else}{l s='Discount'}{/if}</th>
											<th>{l s='You save'}</th>
										</tr>
									</thead>
									<tbody>
										{foreach from=$quantity_discounts item='quantity_discount' name='quantity_discounts'}
											{if $quantity_discount.price >= 0 || $quantity_discount.reduction_type == 'amount'}
												{$realDiscountPrice=$productPriceWithoutReduction|floatval-$quantity_discount.real_value|floatval}
											{else}
												{$realDiscountPrice=$productPriceWithoutReduction|floatval-($productPriceWithoutReduction*$quantity_discount.reduction)|floatval}
											{/if}
											<tr id="quantityDiscount_{$quantity_discount.id_product_attribute}" class="quantityDiscount_{$quantity_discount.id_product_attribute}" data-real-discount-value="{convertPrice price = $realDiscountPrice}" data-discount-type="{$quantity_discount.reduction_type}" data-discount="{$quantity_discount.real_value|floatval}" data-discount-quantity="{$quantity_discount.quantity|intval}">
											<td>
												{$quantity_discount.quantity|intval}
											</td>
											<td>
												{if $quantity_discount.price >= 0 || $quantity_discount.reduction_type == 'amount'}
													{if $display_discount_price}
														{if $quantity_discount.reduction_tax == 0 && !$quantity_discount.price}
															{convertPrice price = $productPriceWithoutReduction|floatval-($productPriceWithoutReduction*$quantity_discount.reduction_with_tax)|floatval}
														{else}
															{convertPrice price=$productPriceWithoutReduction|floatval-$quantity_discount.real_value|floatval}
														{/if}
													{else}
														{convertPrice price=$quantity_discount.real_value|floatval}
													{/if}
												{else}
													{if $display_discount_price}
														{if $quantity_discount.reduction_tax == 0}
															{convertPrice price = $productPriceWithoutReduction|floatval-($productPriceWithoutReduction*$quantity_discount.reduction_with_tax)|floatval}
														{else}
															{convertPrice price = $productPriceWithoutReduction|floatval-($productPriceWithoutReduction*$quantity_discount.reduction)|floatval}
														{/if}
													{else}
														{$quantity_discount.real_value|floatval}%
													{/if}
												{/if}
											</td>
											<td>
												<span>{l s='Up to'}</span>
												{if $quantity_discount.price >= 0 || $quantity_discount.reduction_type == 'amount'}
													 {$realDiscountPrice=abs($productPriceWithoutReduction|floatval-$quantity_discount.real_value)|floatval}

												{else}
													{$discountPrice=$productPriceWithoutReduction|floatval-($productPriceWithoutReduction*$quantity_discount.reduction)|floatval}
												{/if}
												{$discountPrice=$discountPrice * $quantity_discount.quantity}
												{$qtyProductPrice=$productPriceWithoutReduction|floatval * $quantity_discount.quantity}
												{convertPrice price=$qtyProductPrice - $discountPrice}
											</td>
										</tr>
										{/foreach}
									</tbody>
								</table>
							</div>
						</div>
						{/if}
                        <div class="prod-reassurance row">
                        	<div class="col-xs-12 col-sm-4">
                                <object data="{$img_dir}icon/shipping-fast.svg" type="image/svg+xml" style="pointer-events: none;"></object>
                                <p>{l s='Livraison gratuite à partir de 180€ d\'achats'}</p>
							</div>
                        	<div class="col-xs-12 col-sm-4">
								<object data="{$img_dir}icon/card-lock.svg" type="image/svg+xml" style="pointer-events: none;"></object>
                                <p>{l s='Paiement sécurisé par carte bancaire'}</p>
							</div>
                        	<div class="col-xs-12 col-sm-4">
								{if $product->labeling_ecocert == 1 || $product->labeling_cosmebio == 1 || $product->labeling_animalcruelty == 1 || $product->labeling_madeinfrance == 1}
									<p class="labelling">
					{if $product->labeling_ecocert == 1}
                		<object data="{$img_dir}icon/garanties-label-ecocert.svg" type="image/svg+xml" style="pointer-events: none;"></object>
					{/if}
					{if $product->labeling_cosmebio == 1}
                		<object data="{$img_dir}icon/garanties-label-cosmebio.svg" type="image/svg+xml" style="pointer-events: none;"></object>
					{/if}
					{if $product->labeling_animalcruelty == 1}
                		<object data="{$img_dir}icon/NoAnimalTesting.svg" type="image/svg+xml" style="pointer-events: none;"></object>
					{/if}
					{if $product->labeling_vegan == 1}
                		<object data="{$img_dir}icon/NoAnimalTesting.svg" type="image/svg+xml" style="pointer-events: none;"></object>
					{/if}
					{if $product->labeling_madeinfrance == 1}
                		<img src="{$img_dir}icon/madeinfrance.jpg" alt="madeinfrance">
					{/if}
                					</p>
								{/if}
							</div>
			
							
                        </div>
					</div>
				</form>
			{/if}
			{if !$content_only}
				<!-- usefull links-->
				<ul id="usefull_link_block" class="clearfix no-print">
					{if $HOOK_EXTRA_LEFT}{$HOOK_EXTRA_LEFT}{/if}
					{*<li class="print">
						<a href="javascript:print();">
							{l s='Print'}
						</a>
					</li>*}
				</ul>
			{/if}
				{if $product->description_short || $packItems|@count > 0}
				<div id="short_description_block">
					{if $product->description_short}
						<div id="short_description_content" class="rte align_justify" itemprop="description">{$product->description_short}</div>
					{/if}
				</div> <!-- end short_description_block -->
			{/if}
					
		</div>
		<!-- end right infos-->
	</div>
</div>
	{if !$content_only}
            {if isset($USE_PTABS) && $USE_PTABS}
                {include file="$tpl_dir./sub/product_info/tab.tpl"}
            {else}
                {include file="$tpl_dir./sub/product_info/default.tpl"}
            {/if}
	{/if}

{strip}
{if isset($smarty.get.ad) && $smarty.get.ad}
	{addJsDefL name=ad}{$base_dir|cat:$smarty.get.ad|escape:'html':'UTF-8'}{/addJsDefL}
{/if}
{if isset($smarty.get.adtoken) && $smarty.get.adtoken}
	{addJsDefL name=adtoken}{$smarty.get.adtoken|escape:'html':'UTF-8'}{/addJsDefL}
{/if}
{addJsDef allowBuyWhenOutOfStock=$allow_oosp|boolval}
{addJsDef availableNowValue=$product->available_now|escape:'quotes':'UTF-8'}
{addJsDef availableLaterValue=$product->available_later|escape:'quotes':'UTF-8'}
{addJsDef attribute_anchor_separator=$attribute_anchor_separator|escape:'quotes':'UTF-8'}
{addJsDef attributesCombinations=$attributesCombinations}
{addJsDef currentDate=$smarty.now|date_format:'%Y-%m-%d %H:%M:%S'}
{if isset($combinations) && $combinations}
	{addJsDef combinations=$combinations}
	{addJsDef combinationsFromController=$combinations}
	{addJsDef displayDiscountPrice=$display_discount_price}
	{addJsDefL name='upToTxt'}{l s='Up to' js=1}{/addJsDefL}
{/if}
{if isset($combinationImages) && $combinationImages}
	{addJsDef combinationImages=$combinationImages}
{/if}
{addJsDef customizationId=$id_customization}
{addJsDef customizationFields=$customizationFields}
{addJsDef default_eco_tax=$product->ecotax|floatval}
{addJsDef displayPrice=$priceDisplay|intval}
{addJsDef ecotaxTax_rate=$ecotaxTax_rate|floatval}
{if isset($cover.id_image_only)}
	{addJsDef idDefaultImage=$cover.id_image_only|intval}
{else}
	{addJsDef idDefaultImage=0}
{/if}
{addJsDef img_ps_dir=$img_ps_dir}
{addJsDef img_prod_dir=$img_prod_dir}
{addJsDef id_product=$product->id|intval}
{addJsDef jqZoomEnabled=$jqZoomEnabled|boolval}
{addJsDef maxQuantityToAllowDisplayOfLastQuantityMessage=$last_qties|intval}
{addJsDef minimalQuantity=$product->minimal_quantity|intval}
{addJsDef noTaxForThisProduct=$no_tax|boolval}
{if isset($customer_group_without_tax)}
	{addJsDef customerGroupWithoutTax=$customer_group_without_tax|boolval}
{else}
	{addJsDef customerGroupWithoutTax=false}
{/if}
{if isset($group_reduction)}
	{addJsDef groupReduction=$group_reduction|floatval}
{else}
	{addJsDef groupReduction=false}
{/if}
{addJsDef oosHookJsCodeFunctions=Array()}
{addJsDef productHasAttributes=isset($groups)|boolval}
{addJsDef productPriceTaxExcluded=($product->getPriceWithoutReduct(true)|default:'null' - $product->ecotax)|floatval}
{addJsDef productPriceTaxIncluded=($product->getPriceWithoutReduct(false)|default:'null' - $product->ecotax * (1 + $ecotaxTax_rate / 100))|floatval}
{addJsDef productBasePriceTaxExcluded=($product->getPrice(false, null, 6, null, false, false) - $product->ecotax)|floatval}
{addJsDef productBasePriceTaxExcl=($product->getPrice(false, null, 6, null, false, false)|floatval)}
{addJsDef productBasePriceTaxIncl=($product->getPrice(true, null, 6, null, false, false)|floatval)}
{addJsDef productReference=$product->reference|escape:'html':'UTF-8'}
{addJsDef productAvailableForOrder=$product->available_for_order|boolval}
{addJsDef productPriceWithoutReduction=$productPriceWithoutReduction|floatval}
{addJsDef productPrice=$productPrice|floatval}
{addJsDef productUnitPriceRatio=$product->unit_price_ratio|floatval}
{addJsDef productShowPrice=(!$PS_CATALOG_MODE && $product->show_price)|boolval}
{addJsDef PS_CATALOG_MODE=$PS_CATALOG_MODE}
{if $product->specificPrice && $product->specificPrice|@count}
	{addJsDef product_specific_price=$product->specificPrice}
{else}
	{addJsDef product_specific_price=array()}
{/if}
{if $display_qties == 1 && $product->quantity}
	{addJsDef quantityAvailable=$product->quantity}
{else}
	{addJsDef quantityAvailable=0}
{/if}
{addJsDef quantitiesDisplayAllowed=$display_qties|boolval}
{if $product->specificPrice && $product->specificPrice.reduction && $product->specificPrice.reduction_type == 'percentage'}
	{addJsDef reduction_percent=$product->specificPrice.reduction*100|floatval}
{else}
	{addJsDef reduction_percent=0}
{/if}
{if $product->specificPrice && $product->specificPrice.reduction && $product->specificPrice.reduction_type == 'amount'}
	{addJsDef reduction_price=$product->specificPrice.reduction|floatval}
{else}
	{addJsDef reduction_price=0}
{/if}
{if $product->specificPrice && $product->specificPrice.price}
	{addJsDef specific_price=$product->specificPrice.price|floatval}
{else}
	{addJsDef specific_price=0}
{/if}
{addJsDef specific_currency=($product->specificPrice && $product->specificPrice.id_currency)|boolval} {* TODO: remove if always false *}
{addJsDef stock_management=$PS_STOCK_MANAGEMENT|intval}
{addJsDef taxRate=$tax_rate|floatval}
{addJsDefL name=doesntExist}{l s='This combination does not exist for this product. Please select another combination.' js=1}{/addJsDefL}
{addJsDefL name=doesntExistNoMore}{l s='This product is no longer in stock' js=1}{/addJsDefL}
{addJsDefL name=doesntExistNoMoreBut}{l s='with those attributes but is available with others.' js=1}{/addJsDefL}
{addJsDefL name=fieldRequired}{l s='Please fill in all the required fields before saving your customization.' js=1}{/addJsDefL}
{addJsDefL name=uploading_in_progress}{l s='Uploading in progress, please be patient.' js=1}{/addJsDefL}
{addJsDefL name='product_fileDefaultHtml'}{l s='No file selected' js=1}{/addJsDefL}
{addJsDefL name='product_fileButtonHtml'}{l s='Choose File' js=1}{/addJsDefL}
{/strip}
{/if}

 

Share this post


Link to post
Share on other sites

Ben vous vous êtes un peu emmelé les pinceaux on dirait...

$realDiscountPrice

est plus haut dans votre code, vous avez modifié la mauvaise ligne^^

Share this post


Link to post
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...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More