Alex--77 Posted May 3, 2017 Share Posted May 3, 2017 Bonjour, J'ai un module qui permet de générer des bons de réductions. Je souhaite mettre une priorité sur les bons générés. Le module utilise bien la class CartRule(), j'ai donc ajouter dans le module : $cartRule->priority = 10; // priorité à 10 Le problème ce que je tape directement dans le fichier du module et en cas de mise à jour du module, faut penser à le remettre (pas top). Je souhaite donc faire un override du ficher php du module mais ce fichier est en fait un modèle, il se trouve dans /modules/mon_modules/models/MonModel.php. J'ai tenté dans faire un override dans /override/modules/mon_module/models/MonModel.php (qui contient la modification cité plus haut).Mon override n'est pas pris en compte et garde celui du module. Ma question est donc comment faire un override d'un modèle d'un module sous un prestashop 1.6.1.x ? Link to comment Share on other sites More sharing options...
Alexandre Carette Posted May 3, 2017 Share Posted May 3, 2017 salut, class MonModuleOverride extends MonModule { ... } tu as essayé ca ? Link to comment Share on other sites More sharing options...
Alex--77 Posted May 4, 2017 Author Share Posted May 4, 2017 Merci pour ton retour. Oui j'ai tenté ça et ensuite j'ai mis la méthode que je souhaite override. Voici le code : <?php /** * Mon Override * */ if (!defined('_PS_VERSION_')) exit; class RewardsModelOverride extends RewardsModel { public static function createDiscount($credits) { $context = Context::getContext(); $id_template = (int)MyConf::getIdTemplate('core', (int)$context->customer->id); /* Generate a discount code */ $code = NULL; do $code = MyConf::get('REWARDS_VOUCHER_PREFIX', null, $id_template).Tools::passwdGen(6); while (CartRule::cartRuleExists($code)); /* Voucher creation and affectation to the customer */ $cartRule = new CartRule(); $cartRule->id_customer = (int)$context->customer->id; $cartRule->date_from = date('Y-m-d H:i:s', time() - 1); /* remove 1s because of a strict comparison between dates in getCustomerCartRules */ $cartRule->date_to = date('Y-m-d H:i:s', time() + (int)MyConf::get('REWARDS_VOUCHER_DURATION', null, $id_template)*24*60*60); $cartRule->description = MyConf::get('REWARDS_VOUCHER_DETAILS', (int)$context->language->id, $id_template); $cartRule->quantity = 1; $cartRule->quantity_per_user = 1; $cartRule->highlight = (int)MyConf::get('REWARDS_DISPLAY_CART', null, $id_template); $cartRule->partial_use = (int)MyConf::get('REWARDS_VOUCHER_BEHAVIOR', null, $id_template); $cartRule->code = $code; $cartRule->active = 1; $cartRule->priority = 20;// <-------------- Ma modification $cartRule->reduction_amount = self::getCurrencyValue($credits, $context->currency->id); $cartRule->reduction_tax = 1; $cartRule->reduction_currency = (int)$context->currency->id; $cartRule->minimum_amount = (float)MyConf::get('REWARDS_MINIMAL', null, $id_template); $cartRule->minimum_amount_tax = (int)MyConf::get('REWARDS_MINIMAL_TAX', null, $id_template); $cartRule->minimum_amount_currency = (int)Configuration::get('PS_CURRENCY_DEFAULT'); $cartRule->minimum_amount_shipping = (int)MyConf::get('REWARDS_MINIMAL_SHIPPING', null, $id_template); $cartRule->cart_rule_restriction = (int)(!(bool)MyConf::get('REWARDS_VOUCHER_CUMUL_S', null, $id_template)); // ..... quelqes lignes de code } } Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now