Геозависимые скидки на продукт магазина

Возникла необходимость в скидках на продукт в зависимости от города покупателя.
Ниже краткая инструкция как это реализовать с помощью компонента Discontrol.

С версии 1.1.21 добавлена работа с компонентом GeoLocation и классы dcDataMsProductGeoLocationRealRegion и dcDataMsProductGeoLocationRealCity.
Для работы с ними нужно добавить классы в настройку discontrol_product_classes
modResource,msProductData,msVendor,msProductOption,msSessionCart,msSessionCartEx,modUser,GeoLocationRealCity,GeoLocationRealRegion
Скидка на продукт в зависимости от города покупателя
Создаем скидку

указываем класс GeoLocationRealCity, поле name_en, нужный город и скидку.

Скидка на продукт в зависимости от региона покупателя
Создаем скидку

указываем класс GeoLocationRealCity, поле iso, код нужной области и скидку.

Не забываем прописать нужные классы в параметре discontrol_product_option_expression
для расчета скидки
max~$GeoLocationRealCity + max~$GeoLocationRealRegion
max~$modResource + max~$msProductOption + max~$msProductData + max~$msVendor + max~$msSessionCart + max~$msSessionCartEx +
max~$modUser + max~$GeoLocationRealCity + max~$GeoLocationRealRegion
Володя
14 февраля 2017, 07:55
modx.pro
8
1 778
+9
Поблагодарить автора Отправить деньги

Комментарии: 6

Константин Обухов
15 февраля 2017, 15:33
-3
Сделал на основе Geolocation всплывашку С подсказкой города в метрике настроил цель в 70% не угадывает город.
Особенно с мобильных телефонов TELE 2 вечно показывает ОМСК…
    Володя
    15 февраля 2017, 17:33
    +2
    и причем тут это?
    Андрей
    16 февраля 2017, 18:42
    0
    Лучше добавить класс, где будет учитываться не real, а selected city, что бы цены менялись при смене города через компонент geoLocation. А сейчас получается, что меняй не меняй город все равно скидка зависит от того где ты реально находишься.

    Так же хотелось бы указывать город и конкретный продукт или категорию.
      Володя
      16 февраля 2017, 18:44
      0
      Данное решение было сделано наспех по запросу в ТП.
      Соберу немного мнений и сделаем улучшения…
        Андрей
        16 февраля 2017, 18:47
        0
        Я знаю, это мой коллега задавал вам вопрос в поддержку)
          Андрей
          16 февраля 2017, 18:52
          0
          Я там в принципе костыль придумал, что указывать например город, а через разделитель массив с продуктами, например Самара#[1,2,4], парсить это в классе и плагине, но этот город видимо еще где-то раньше проверяется и скидка не применяется, пока не нашел где.
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        6