OpenCart Модули

IMDiscount — Стратегия скидок

Модуль IMDiscount Стратегия скидок позволяет организовать систему скидок с трех уровневым подсчетом для разных вариаций учета.

 

Возможности

1.Накопительные скидки и Скидка в текущем заказе

2. Возможность задания условий сразу для количества и суммы, что облегчает процесс создания правил формирования скидок.

3. Три режима аккумуляции (большая, меньшая скидка и сумма), доступные как на глобальном уровне, так и в рамках расчета по таблице стратегии скидок.

4. Поддержка процента и фиксированной суммы, которые можно указывать одновременно (выбирается максимум для каждой строки таблицы стратегии скидок).

5. Возможность указывать периоды действия, статусы заказов и количество дней для накопительных скидок

6. Возможность указывать разные варианты подсчета сумм и количества товаров для текущих заказов.

7. Три вариант подсчета подсчета процента: в порядке следования, от суммы товаров без скидок и по всем товарам.  В текущем заказе так же есть возможность задавать каждый N-товар (подробнее ниже в описании).

8. Практически все сделано с использованием ajax. В теории, модуль после установки можно вообще не перезагружать.

9. Только стандартный функционал OpenCart. Ничего не перезаписывается в ядре. Это позволяет не зависеть и не конфликтовать с другими модулями, что в OpenCart порой вызывает еще «те красочные воспоминания».

10. Название скидки в строчке с Итого находится в локализационном файле внутри папки catalog, так что если у вас несколько языков, то их поддержка дело пяти минут (Для русского языка переводы находятся в system/IMDiscount/Lang).

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

12. Поддерживается фильтрация по группам и пользователям в текущем заказе и накопительной скидке (в случае текущего заказа игнорируется для случая, когда выбрано для всех пользователей).

13. Поддерживается фильтрация продуктов в текущем заказе.

14. Можно отключать применение скидок, если используется купон (глобально — смотрите подробности)

15. И другие приятные вещи.

 

Демо-админки OpenCart 2.0 — 2.2  (demo/demo) — http://oc2102rs.im-cloud.ru/admin/index.php?route=total/IMDiscount

Демо-админки OpenCart 2.3 (demo/demo) — http://oc2302rs.im-cloud.ru/admin/index.php?route=extension/total/IMDiscount

 

Порядок создания стратегий

В общем и целом, порядок создания стратегий похож на обычное представление OpenCart, но с учетом того, что в модуле практически все сделано с использование ajax (без необходимости перегружать страницу).

1. Открываете вкладку «Все стратегии» и создаете нужного типа и названия стратегию (с прочими полями).

2. Находите в списке нужную стратегию и нажимаете на кнопку слева (редактировать). Или же открываете вкладку с нужными стратегиями, находите нужную в верхнем выпадающем списке, после чего нажимаете рядом кнопку загрузить.

3. Заполняете дополнительные параметры подсчета и учета, а так же таблицу скидок и нажимаете кнопку «Сохранить».

Важно — все корректировки применяются сразу.

 

Как осуществляется подсчет

Подсчет осуществляется в три этапа, что позволяет строить весьма гибкие стратегии скидок (пример расчета чуть ниже).

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

Второй этап. Внутри каждой стратегии определено каким образом выбирать «Тип формирования процента» (большее значение, меньшее или суммарное по всем значениям таблицы скидок с первого этапа).

Третий этап. Когда получены все цифры по действующим стратегиям, смотрится глобальный параметр в настройках — «Тип аккумуляции (Глобально)». И, соответственно, вычисляется итоговая скидка (большее, меньшее или сумма скидок).

 

Пример расчета

Допустим, вам нужно учитывать два варианта скидок. Первый, те скидки, что формируются по накопленным заказам и применяются для суммы всех товаров заказа (за каждые 1000 рублей 1%, до 10%). Второй, дополнительная скидка в рамках текущего заказа только для товаров без акций и скидок (с каждой 1000 так же по 1%, до 5%). При этом нужно, чтобы скидки суммировались.

Соответственно, в модуле выставляются следующие настройки. Тип аккумуляции (Глобально) — суммирование. Создается и заполняется две стратегии — одна в «Накопительная скидка», вторая в «Текущий заказ». Для каждой стратегии так же заполняется таблица скидок с указанием процента и фиксированной суммы (в примере 0, так как задача этого не требует).

Покупатель совершает заказ на 3456 рублей, из которых 1000 рублей это товары со скидкой. Так же покупатель уже совершил несколько заказов на общую сумму 7000 рублей.

Происходит следующий расчет.

Первый этап. Так как применяются только проценты, то всегда будет выбираться процент для каждой строки таблицы стратегии скидок.

Второй этап. Исходя из данных, в таблице первой стратегии подходят все пункты от 1% до 7%. Выбирается максимум т. е. 7%. Во второй стратегии скидок учитываются только обычные товары (2456 руб), т. е. подходят скидки из таблицы от 1% до 2%. Соответственно, выбирается максимум 2%.

Третий этап. Смотрится глобальный параметр — суммирование. Получается 7% от 3456 + 2 % от 2456 = 241,92 + 49,12 = 291,04.
Как видите, сложная схема расчетов легко реализуется модулем.

 

Как формируется процент

Есть три типа сумм.

1. Промежуточная сумма с учетом порядка применения модуля. Таким образом, если в процент нужно включать доставку, бонусы и прочее, то стоит использовать этот тип скидки и указывать нужный порядок следования модуля.

2. Процент от суммы товаров без скидок. Если у вас есть специальные предложения или же действующие скидки для товара, то этот вариант позволяет их не учитывать.

3. Процент от суммы всех товаров. В случае если вам нужно учитывать только весь товар, без методов доставки и прочего.

Соответственно, в зависимости от выбранного варианта вычисляется процент.

 

Текущий заказ — расчет процента — Каждый N-товар (скидка от самых дорогих или от самых дешевых)

Если вам необходимо организовать скидки для каждого N-товара в сортировке от самых дорогих к более дешевым или наоборот от самых дешевых, то это возможно сделать.

Например, для каждой второй пары перчаток предоставлять скидку в 50%. В таком случае, если вы купили 20 простых перчаток и 8 перчаток с узором (т. е. скидка для 14), то скидка будет предоставлена как = 0,5 * стоимость 8 перчаток с узором + 0,5 * стоимость 6 простых перчаток.

В рамках данного расчета, так же учитывается тип подсчета количества товаров, чтобы можно было исключить акционные товары. Плюс сохраняется весь алгоритм расчета по таблице скидок и прочих механизмов.

 

Фильтрация продуктов в текущем заказе

Фильтрация осуществляется по следующему правилу. Продукт подходит в том случаях:

1. Если товар есть в указанных категориях И указанных производителях
2. ИЛИ — Если товар указан отдельно

Если для какого-то из пунктов не указаны настройки (например, не заданы продукты), то критерием отбора становится только один пункт (продолжая пример, проверяется только наличие в категории и производителях).

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

Стоит учитывать, что фильтрация применяется для всех настроек, которые зависят от продуктов. Это означает, что при подсчете сумм и количества (как для оценки в таблице строк, так и для формирования процента) единственным, что не пересчитывается, является опция «Полученная сумма до применения IMDiscount».

 

Не применять скидки в случае наличия купона

В настройках модуля можно отключать применение скидки, в случае, если указан купон. Однако, для этого купон должен применяться ДО применения модуля. Другими словами порядок сортировки модуля IMDiscount должен быть больше сортировки купона.

Настройка действует глобально, то есть для всех скидок сразу.

 

Известные ограничения

1. Скидки применяются только для зарегистрированных пользователей.

2. Подсчет предыдущих заказов осуществляется от итоговой суммы по заказу.

3. Если статусы заказа не указаны, то суммируются все заказы.

4. Фильтр по группам и клиентам осуществляется по правилу ИЛИ. То есть или в списке групп или в списке пользователей.

5. Для русского языка переводы находятся в system/IMDiscount/Lang

 

Установка и использование

1. Распакуйте в корень сайта. Не волнуйтесь, никакие файлы не будут заменены, кроме случая, если у вас уже стоят мои модули (у них есть общие файлы, которые не меняются).

2. Откройте админку и установите модуль

3. Откройте в админке «Учет заказов» (редактирование) и для активации скидок в настройках укажите статус «Включено», а так же порядок следования (как и в других модулях скидок).

 

Лицензия и использование

Лицензия распространяется только для одного сайта. Т.е. 1 домен + все поддомены = 1 оплата.

Купив модуль вы автоматически соглашаетесь с текстом лицензии.

Модуль имеет принцип распространения «as is» («Как есть»).

Ввод лицензионного ключа необходимо осуществить в течение 5 дней после установки модуля. Лицензионный ключ состоит из двух частей.

Ключи необходимо вводить так, как они были присланы, без лишних пробелов и символов.

Запрещается несанкционированное использование, копирование, перепродажа, передача модуля третьим лицам, а также иные способы распространения, в том числе в ознакомительных целях.

Если вы приобрели модуль до введения лицензирования, то вам необходимо написать мне и указать при этом доменное имя сайта и тестовый домен, если таковой имеется (учтите, что тестовый домен должен быть тестовым, то есть поддоменом какого-либо сайта).

Если у вас русский домен, то необходимо указывать то имя, которое указано в config.php в корне сайта.

 

Найти модуль можно тут:

Liveopencart

Версия для OpenCart 2.0 — 2.2

Версия для OpenCart 2.3

Shop.opencart-russian

Версия для OpenCart 2.0 — 2.2

Версия для OpenCart 2.3