OFFRE SPÉCIALE RENTRÉE !
5% de remise immédiate sur tous nos produits + Frais de port offerts avec le code de réduction RENTREE25*
* Offre valable pour toutes commandes validées et réglées avant le 07/09/2025 (hors prix revendeurs et prix spéciaux) et pour une livraison effectuée en France Métropolitaine
Si dans votre démarche marketing, vous souhaitez afficher les promotions par groupe de clients (du reste l'utilité d'afficher des produits en promotions pour un client qui n'en bénéfice pas, revêt peu d'intérêt), vous trouverez ci-dessous une solution.
Celle-ci passe par l'override. Vous devrez donc surcharger la fonction getProductIdByDate de la classe SpecificPrice.
Le chemin se veut donc être votre_dossier_prestashop/override/classes/SpecificPrice.php
Il vous faudra placer le code ci-dessous entre les accolades :
public static function getProductIdByDate($id_shop, $id_currency, $id_country, $id_group, $beginning, $ending, $id_customer = 0, $with_combination_id = false) { if (!SpecificPrice::isFeatureActive()) return array(); $groups = FrontController::getCurrentCustomerGroups(); $sql_groups = (count($groups) ? 'IN ('.implode(',', $groups).')' : '= 0'); $results = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' SELECT `id_product`, `id_product_attribute` FROM `'._DB_PREFIX_.'specific_price` WHERE `id_shop` IN(0, '.(int)$id_shop.') AND `id_currency` IN(0, '.(int)$id_currency.') AND `id_country` IN(0, '.(int)$id_country.') AND `id_group` '.$sql_groups.' AND `id_customer` IN(0, '.(int)$id_customer.') AND `from_quantity` = 1 AND ( (`from` = '0000-00-00 00:00:00' OR ''.pSQL($beginning).'' >= `from`) AND (`to` = '0000-00-00 00:00:00' OR ''.pSQL($ending).'' <= `to`) ) AND `reduction` > 0 '); $ids_product = array(); foreach ($results as $row) $ids_product[] = $with_combination_id ? array('id_product' => (int)$row['id_product'], 'id_product_attribute' => (int)$row['id_product_attribute']) : (int)$row['id_product']; return $ids_product; }
Publié le 16/12/2012 dans Astuces Prestashop version 1.5
COMMENTAIRES