Jump to content

Prestashop 1.4 - Réduction sur le module produits phares.


Recommended Posts

Bonjour,

J'aimerais afficher l'ancien prix et le pourcentage dans le module produits phares. Sur prestashop 1.3, j'utilisais dans homefeatured.tpl :

Pour le prix :

{if $product.reduction_price != 0 || $product.reduction_percent != 0}{convertPrice price=$product.price_without_reduction}{/if}

Pour le pourcentage (ou réduction)

{if $product.reduction_percent != 0}-{$product.reduction_percent}%{/if}
{if $product.reduction_price != 0}-{$product.reduction_price}{$currency->sign}{/if}

Sur la nouvelle version l'erreur ci-dessus m'est retourné :

“Notice: Undefined variable: special in .../.../tools/smarty/sysplugins/smarty_internal_data.php on line 291”

J'ai récupéré les codes du block promotion (blockspecials.tpl) :

{if !$priceDisplay}{displayWtPrice p=$special.price_without_reduction}{else}{displayWtPrice p=$priceWithoutReduction_tax_excl}{/if}

et

(-{$specific_prices.reduction * 100|floatval}%)

Mais rien a faire cela ne fonctionne pas, si vous avez une solution ou des pistes, je vous remercie d'avance de m'éclairer.

Cordialement

Link to comment
Share on other sites

“Notice: Undefined variable: special in …/…/tools/smarty/sysplugins/smarty_internal_data.php on line 291


Tu as récupéré le code du blockspecial, mais dans homefeatured le tableau de résultats n'est pas dans $special , mais $product

Ex :

{displayWtPrice p=$product.price_without_reduction}
Link to comment
Share on other sites

Bonjour,

j'essaie de faire pareil
et j'arrive pas non plus à récupérer le pourcentage de la réduction

$product.reduction_percent


ne retourne rien


J'arrive pas non plus a détecter si il y a réduction sur le produit ou non

{if ($product.reduction_price != 0 || $product.reduction_percent != 0) && ($product.reduction_from == $product.reduction_to || ($smarty.now|date_format:'%Y-%m-%d' <= $product.reduction_to && $smarty.now|date_format:'%Y-%m-%d' >= $product.reduction_from))}


marche pas

merci

Link to comment
Share on other sites

Homefeatured utilse la methode getProducts de la classe Category.
blockspecials utilise la methode getRandomSpecial de la classe Produit.

Dans le deuxieme cas, les informations complémentaires de prix sont chargées.
Dans le premier , elle ne le sont pas.

Si on veut ces infos dans homefeature, il faut d'abord modifier le php, avant d'assigner la variable $products , il faut parcourir ses données dans un foreach et charger les infos complémentaires...

du style:

function hookHome($params)

    {
       global $smarty;

       $category = new Category(1, Configuration::get('PS_LANG_DEFAULT'));
       $nb = (int)(Configuration::get('HOME_FEATURED_NBR'));
       $products = $category->getProducts((int)($params['cookie']->id_lang), 1, ($nb ? $nb : 10));
       foreach($products as &$product)
       {
            $product=Product::getProductProperties($cookie->id_lang, $product);
       }
       $smarty->assign(array(
       'products' => $products,
       'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'),
       'homeSize' => Image::getSize('home')));

       return $this->display(__FILE__, 'homefeatured.tpl');
   }



avec un peu de chance, on devrait pouvoir ajouter ça dans homefeatured.tpl

                {if $product.specific_prices}
                   {assign var='specific_prices' value=$product.specific_prices}
                   {if $specific_prices.reduction_type == 'percentage' && ($specific_prices.from == $specific_prices.to OR ($smarty.now|date_format:'%Y-%m-%d %H:%M:%S' <= $specific_prices.to && $smarty.now|date_format:'%Y-%m-%d %H:%M:%S' >= $specific_prices.from))}
(-{$specific_prices.reduction * 100|floatval}%)
                   {/if}



Une précision : c'est pas du tout testé ...

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