Jump to content

Problème règle panier Prestashop 1.6


Recommended Posts

Bonjour, 

Je rencontre un problème lorsque je crée une règle panier. En effet celle-ci apparaît systématiquement sur mon site dans l'onglet "Mes bons de réduction" dans le compte de tous les clients. Je n'arrive pas à créer une règle sans qu'elle soit visible dans cet onglet. 
Il s'agit d'une règle que je souhaite créer pour mesurer la pertinence d'une publicité spécifique, et je ne peux donc pas les restreindre à certains clients seulement, j'aimerai simplement qu'elle n'apparaisse pas dans les comptes de tous mes clients. Quelqu'un a-t-il une solution svp ? 

Merci d'avance, 

 

Link to comment
Share on other sites

Sujet récurrent depuis 2 ans, il faut modifier le contrôleur DiscountController.php (remplacez le code par celui-ci)

<?php
/*
* 2007-2018 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 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/osl-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 [email protected] 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 <[email protected]>
*  @copyright  2007-2018 PrestaShop SA
*  @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*/

class DiscountControllerCore extends FrontController
{
    public $auth = true;
    public $php_self = 'discount';
    public $authRedirection = 'discount';
    public $ssl = true;

    /**
     * Assign template vars related to page content
     * @see FrontController::initContent()
     */
    public function initContent()
    {
        parent::initContent();

        $cart_rules = CartRule::getCustomerCartRules($this->context->language->id, $this->context->customer->id, true, false);
        $nb_cart_rules = count($cart_rules);

        foreach ($cart_rules as $key => &$discount ) {
		
            if ($discount['quantity_for_user'] == 0 || $discount['gift_product'] != 0 || !$discount['id_customer']) {
                unset($cart_rules[$key]);
            }
			
            $discount['value'] = Tools::convertPriceFull(
                                            $discount['value'],
                                            new Currency((int)$discount['reduction_currency']),
                                            new Currency((int)$this->context->cart->id_currency)
                                        );
        }

        $this->context->smarty->assign(array(
                                            'nb_cart_rules' => (int)$nb_cart_rules,
                                            'cart_rules' => $cart_rules,
                                            'discount' => $cart_rules,
                                            'nbDiscounts' => (int)$nb_cart_rules)
                                        );
        $this->setTemplate(_PS_THEME_DIR_.'discount.tpl');
    }
}

Tout se joue dans les paramètres de cette fonction:

CartRule::getCustomerCartRules($this->context->language->id, $this->context->customer->id, true, false);

en limitant l'affichage aux bons correspondants uniquement à ce client^^

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