Текст площадки «Складчик». Упомянутые цены и обещанные результаты могут быть неактуальны; условия покупки проверяйте у продавца.
Модуль IMDiscount Стратегия скидок позволяет организовать систему скидок с трех уровневым подсчетом для разных вариаций учета. Так же поддерживается массовая генерация стандартных скидок и акций OpenCart.
Читать полное описание
IMDiscount — Стратегия скидок
Модуль IMDiscount Стратегия скидок позволяет организовать систему скидок с трех уровневым подсчетом для разных вариаций учета. Так же поддерживается массовая генерация стандартных скидок и акций OpenCart.
Демо-админки (demo/demo) - Возможности
2. Массовая генерация стандартных скидок и акций OpenCart для товаров.
3. Возможность задания условий сразу для количества и суммы, что облегчает процесс создания правил формирования скидок.
5. Поддержка процента и фиксированной суммы, которые можно указывать одновременно (выбирается максимум для каждой строки таблицы стратегии скидок).
6. Возможность для накопительных скидок указывать фильтры клиентов, периоды действия, статусы заказов, учитываемую сумму (итоговая (total), промежуточная сумма (sub_total), без учета доставки (shipping)) и количество дней.
7. Возможность для текущих заказов указывать разные варианты подсчета сумм и количества товаров в корзине. Так же можно задавать фильтры по клиентам и учитываемым товарам (подробнее ниже в описании). Текущий заказ можно применять как для зарегистрированных клиентов, так и для всех.
9. Три варианта подсчета подсчета процента: в порядке следования, от суммы товаров без скидок и по всем товарам. В текущем заказе так же есть возможность задавать каждый N-товар (подробнее ниже в описании).
10. Практически все сделано с использованием ajax. В теории, модуль после установки можно вообще не перезагружать.
11. Только стандартный функционал OpenCart. Ничего не перезаписывается в ядре. Это позволяет не зависеть и не конфликтовать с другими модулями и шаблонами, что в OpenCart порой вызывает еще «те красочные воспоминания».
13. Можно отключать применение скидок, если используется купон (глобально — смотрите подробности)
15. И другие приятные вещи.
Порядок создания стратегий
В общем и целом, порядок создания стратегий похож на обычное представление OpenCart, но с учетом того, что в модуле практически все сделано с использование ajax (без необходимости перегружать страницу).
1. Открываете вкладку «Все стратегии» и создаете стратегию нужного типа и названия (с прочими полями).
2. Находите в списке нужную стратегию и нажимаете на кнопку слева (редактировать). Или же открываете вкладку с соответствующим типом стратегий, находите нужную в верхнем выпадающем списке, после чего нажимаете рядом кнопку «Загрузить».
3. Заполняете дополнительные параметры подсчета и учета, а так же таблицу скидок и нажимаете кнопку «Сохранить».
ВАЖНО! - Все корректировки применяются сразу!
С версии 1.4.0 можно создавать стратегии или их копии в соответствующих вкладках, без обязательного создания через вкладку «Все стратегии». Для этого нужно нажимать кнопку «Добавить» вместо «Сохранить».
Как осуществляется подсчет
Подсчет осуществляется в три этапа, что позволяет строить весьма гибкие стратегии скидок (пример расчета чуть ниже).
Первый этап. Вначале загружаются все действующие стратегии скидок (критерий - включены и подходят по дате, а так же специфические параметры в ходе расчетов). Смотрится таблица скидок каждой стратегии. И для каждой строчки вычисляется процент и фиксированная сумма. Из этих двух чисел выбирается максимальное.
Пример расчета
Происходит следующий расчет.
Первый этап. Так как применяются только проценты, то всегда будет выбираться процент для каждой строки таблицы стратегии скидок.
Третий этап. Смотрится глобальный параметр — суммирование. Получается 7% от 3456 + 2 % от 2456 = 241,92 + 49,12 = 291,04.
Как видите, сложная схема расчетов легко реализуется модулем.
Как формируется процент
Существует три типа сумм, в общем случае (для N-товар см. ниже).
3. Процент от суммы всех товаров. Если вам нужно учитывать только весь товар, без методов доставки и прочего.
Соответственно, в зависимости от выбранного варианта вычисляется процент.
В рамках данного расчета, так же учитывается тип подсчета количества товаров, чтобы можно было исключить акционные товары. Плюс сохраняется весь алгоритм расчета по таблице скидок и прочих механизмов.
Фильтрация продуктов в текущем заказе
Фильтрация осуществляется по следующему правилу. Продукт подходит в том случаях:
Если товар есть в указанных категориях И указанных производителях И в диапазоне цен
ИЛИ - Если товар указан отдельно
Если для какого-то из пунктов не указаны настройки (например, не заданы продукты), то критерием отбора становится только один пункт (в котором заданы настройки). Если же настроек вообще не задано, то фильтрация не осуществляется - иными словами, считается, что все товары подходят
Для цен. Если значение фильтра стоимости равно или меньше нуля, то считается, что ограничений по данному фильтру цены нет. Например, стоимость ОТ равная 10 и стоимость ДО равная 0 означает, что стоимость товара должна быть больше или равна 10. Учтите, что цены задаются в базовой валюте.
Эффективная цена означает, что для проверки используется та цена, которая отображается в корзине. Например, если товар с ценой 100 после стандартных скидок и применения опций стал стоить 120, то при фильтрации будет использовано значение 120.
Стоит учитывать, что фильтрация применяется для всех настроек, которые зависят от продуктов. Это означает, что при подсчете сумм и количества (как для оценки в таблице строк, так и для формирования процента) единственным, что не пересчитывается, является опция «Полученная сумма до применения IMDiscount».
Например, в корзине было два товара А за 500 и Б за 200. После фильтра остался только товар Б за 200. В настройках выставлено, что процент применяется ко всем товарам. Это означает, что при подсчете сумм из таблицы скидок, будет учитываться только товар Б. Допустим, если в таблице скидок задано 10%, то будет не (500 + 200) * 0,1 = 70, а (200 * 0,1) = 20.
Массовая генерация стандартных скидок и акций OpenCart для товаров
Обратите внимание, что массовая генерация это не стратегии, поэтому они создаются прямо во вкладке и не отображаются в общем списке.
Фильтрация осуществляется по следующему правилу. Продукт подходит в том случаях:
Если товар есть в указанных категориях И указанных производителях И в диапазоне цен И с соответствующим статусом
ИЛИ - Если товар указан отдельно
Учтите, что если требуется генерация ТОЛЬКО для отдельных товаров, то необходимо убедиться, что фильтры для первого пункта пусты (не выставлены цены в фильтрах, не заданы производители и категории, а так же не задан статус).
Для цен. Если значение фильтра стоимости равно или меньше нуля, то считается, что ограничений по данному фильтру цены нет. Например, стоимость ОТ равная 10 и стоимость ДО равная 0 означает, что стоимость товара должна быть больше или равна 10. Учтите, что цены задаются в базовой валюте.
ВАЖНО! Учтите, что если вообще все фильтры будут пустыми, то генерация и очистка применяется ко всем товарам (по сути, отсутствие фильтров = не проверять товары)!
Массовая генерация стандартных скидок и акций - как происходит расчет цен для типов и модификаторов
Первый этап. Существует два типа представления числа: фиксированное число (отображается как «.») и процент (отображается как «%»).
На основании этих данных формируется [значение для корректировки]. В случае фиксированного числа — это просто число, а в случае процента — это цена умноженная на процент и деленная на 100.
Например, число 50 для «.» это будет 50. А в случае «%» это будет [price] * 50 / 100.
Второй этап. Существует 5 арифметических модификаторов: равно («=»), вычесть («-»), прибавить («+»), умножить («*»), разделить («/»). Тут как в арифметике.
Модификатор «=». Формула [next_price] = [значение для корректировки]
Модификатор «-». Формула [next_price] = [price] - [значение для корректировки]
Модификатор «+». Формула [next_price] = [price] + [значение для корректировки]
Модификатор «*». Формула [next_price] = [price] * [значение для корректировки]
Модификатор «/». Формула [next_price] = [price] / [значение для корректировки]
ВАЖНО! Аккуратно заполняйте типы и модификаторы. Суть в примере. Например, умножить на 50% это значит, что [next_price] = [price] * [значение для корректировки] = [price] * ( [price] * 50 / 100 ). Иными словами, половина от цены в квадрате!
Поэтому в модуле не производится дополнительных проверок для цен, в плане отрицательного значения. Мало ли вы, как клиент, используете данную особенность. Поэтому будьте внимательны и аккуратны!
Логирование
Логирование включается во вкладке «Настройки»
Файлы лога располагаются в каталоге «/system/IMDiscount/Log/» (от корня сайта).
Несколько существенных моментов:
1. ВАЖНО!!! Лог формирует достаточно много данных (один клиент за минуту легко формирует 1МБ и более). Поэтому не стоит постоянно держать его включенным. Лучше подходить к логу следующим образом: включили лог, выполнили нужные действия и тут же отключили лог.
2. Учтите, что во время формирования лога в файлах сохраняется масса «деликатной» информации. Поэтому после того, как вы скачаете лог, файлы внутри каталога стоит удалить.
Обратите внимание, что лог содержит массу технической информации и предназначена для сложных ситуаций, при которых вы не можете самостоятельно найти ошибку в настройках.
Настройка действует глобально, то есть для всех скидок сразу.
Известные ограничения
2. Подсчет суммы предыдущих заказов в накопительной стратегии осуществляется в зависимости от настроек: от итоговой суммы (total), промежуточной сумма (sub_total) или без учета доставки (shipping).
3. Если статусы заказа не указаны, то суммируются все заказы.
4. Фильтр по группам и клиентам осуществляется по правилу ИЛИ. То есть или в списке групп или в списке пользователей.
5. (с версии 1.4.0 не актуально, так как перенесено в соответствии со стандартной схемой опенкарт) Для русского языка переводы находятся в system/IMDiscount/Lang
7. Принцип действия округления чисел при массовой генерации стандартных скидок и акций аналогичен.
10. По умолчанию, в списках с ajax подгрузкой клиентов отображается 10 клиентов, а время задержки между запросами 500 мс.
11. Учтите, что все цены задаются и учитываются в базовой валюте.