За торговлей в интернет — будущее. И это будущее — Prestashop.

Отключение правил корзины для товаров со скидкой

Возможна ситуация, когда вы хотите ограничить снижение цены товара запретив использование купонов (правил корзины) для товаров со скидкой. В Prestashop такая возможность не предусмотрена, придется модифицировать код ядра системы. Существует два пути — простой (просто добавить ограничения в файл класса правил корзины CartRule.php), и более сложный, подразумевающий также модификацию интерфейса админки, что бы можно было изменять настройки по каждому правилу корзины отдельно, не прибегая всякий раз к модификации кода.

Рассмотрим второй способ, как более функциональный.

Прежде всего, добавим в шаблон бек офиса опцию для отключения правил корзины для товаров со скидкой. Для этого отредактируем файл <ваш admin-каталог>/themes/default/template/controllers/cart_rules/actions.tpl вставив после строки 116 следующий код:

В вкладке «Действие» в подразделе «Правила корзины» из раздела «Ценовые правила» у нас появится новый переключатель «Exclude products on special» (Если хотите название на русском потом переведите его через «Локализация» —  «Переводы» — «Переводы бек-офиса».  Это же относится и к другим сообщениям в примере):

Теперь добавим ограничение, чтобы эта опция отображалась только если скидка по купону назначается в процентах. Для этого отредактируем файл <ваш admin-каталог>/themes/default/template/controllers/cart_rules/forms.js

После строки 142 вставим следующий код:

А после строки 151 этот код:

Далее модифицируем непосредственно файл класса правил корзины classes/CartRule.php

После строки 63 добавим описании новой конфигурационной переменной:

И её определение после строки 104:

После этого кода

добавим проверку случая если все товары в корзине со скидкой:

А после этого:

Добавим функционал запрещения назначения правила корзины на товары со скидкой непосредственно:

После кода:

Удалим код:

И вставим новый код с проверкой не запрещено ли добавление скидки:

После кода:

Удалим код:

И вставим новый проверочный код:

И наконец, после кода:

Удалим код:

И вставим измененное условие:

Теперь только остается модифицировать таблицу в базе данных таблицу ps_cart_rule, чтобы добавить туда поле для сохраения настроек ограничения скидки для каждого правила. Для этого через зайдем в приложение PhpMyAdmin в панели хостинга и выполним следущий SQL-запрос:

Как вы поняли, данная модификация запрещает применение купона с процентным снижением цены. Если вы хотите запретить применение купона и для скидки от суммы, модифицируйте код по аналогии.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

*

code