490
4.76
7.00
за сайт
- Проверено Modstore
- Бесплатные будущие обновления
- Работа на тестовом и публичном домене
- 12 месяцев тех. поддержки
Внимание, этот компонент требует версию PHP
5.5
или выше!
Если ваш сайт использует PHP ниже требуемого, установка этого
дополнения может его сломать.
Возможности
- Изменение цены на указанный процент
- Возможность как увеличить, так и снизить цену
- Формирование цен кратных указанному значению
- К операциям можно добавлять комментарии, которые будут отображаться в истории
- Изменение цен товаров в категории, во всех подкатегориях категории, во всех категориях вообще
- Можно запретить проведение переоценки в определенных категориях и их подкатегориях, а также (если категории являются дочерними ресурсами обычных ресурсов MODX) во всех категориях, которые являются дочерними для определенных ресурсов.
- Цены изменяются с учетом дополнительных категорий Minishop2
- Отмена переоценки в любое время
- Возможность описать логику определения нужно ли выполнять переоценку для каждого товара
- Возможность описать свою логику формирования новой цены как для всех товаров, так и для отдельных
Как происходит переоценка
Для выполнения переоценки нужно нажать на кнопку «Новая переоценка» или кликнуть правой кнопкой мышки на таблице со списком переоценок и выбрать в контекстном меню соответствующий пункт. В появившемся окне выбрать категорию из выпадающего списка, указать процент, на который хотите изменить цены, опционально указать кратность цены, чтобы легче было ориентироваться в истории, добавить комментарий. В процессе переоценки будут изменены цены на товары в выбранной категории и во всех её подкатегориях, а так же модификаций этих товаров, созданных с помощью msOptionsPrice2 у которых установлена логика "=" (можно дополнительно реализовать собственную логику как для определения новой цены на товар, так и для проверки необходимости переоценки для конкретного товара, об этом ниже).
Например, если увеличить цену на товар с ценой 600руб. на 10% и указать коэффициент 100, то в итоге выйдет цена 700руб., а если при тех же условиях коэффициент будет 50, то в итоге цена составит 650руб. Если коэффициент указан не будет, цены округлятся до 1 копейки.
После переоценки вся информация об изменении цен сохраняется в файле истории и создается соответствующая запись в базе данных. В случае возникновения ошибки компонент попытается сразу откатить все изменения. Записи об ошибках делаются в журнал ошибок MODX и в файл лога (/core/components/msevaluation/log.txt).
Чтобы исключить категории из переоценки можно указать их id через запятую в настройках системы, точно также можно поступить и с ресурсами, категории в которых не должны участвовать в переоценке (список ресурсов, и список категорий указываются отдельно).
Возможности для более гибкой настройки процесса переоценки
- В системной настройке msr_must_revaluation_snippet можно указать название сниппета, который будет вызываться перед переоценкой каждого товара и от результатов работы которого будет зависеть выполница переоценка или нет для него (товара)
- В системной настройке msr_get_price_snippet можно указать название сниппета, который будет вызываться перед переоценкой каждого товара и должен будет вернуть новую цену
msr_must_revaluation_snippet
Если указано название сниппета, то он будет запускаться для дополнительной проверки, нужна ли переоценка каждого из товаров подходящих по параметрам. В сниппет будут передаваться все поля товара, основные поля модификации с префиксом «msop2_» (в случае переоценки модификации msOptionsPrice2), режим ($mode со значением «product» для товара или «msop2» для модификации) а так-же настройки переоценки (параметр $config, содержащий json со всеми настройками) в качестве параметров. Если сниппет вернет 0 (или любое значение, которое будет приведено к 0 функцией intval), то переоценка товара выполнена не будет, во всех других случаях — будет.
К примеру необходимо снизить цену в какой-то категории, но Вы не хотите чтоб переоценка коснулась популярных товаров, и без того их хорошо покупают ;-). Для этого достаточно создать сниппет с примерно таким кодом:
<?php
if($popular == 1)
return 0;
else
return 1;
И указать название этого сниппета в системной настойке msr_must_revaluation_snippet.msr_get_price_snippet
Если указано название сниппета, то он будет запускать вместо стандартного метода для определения новой цены. В сниппет будут передаваться все поля товара, основные поля модификации с префиксом «msop2_» (в случае переоценки модификации msOptionsPrice2), режим (product для товара или msop2 для модификации) а так-же настройки переоценки (параметр $config, содержащий json со всеми настройками) в качестве параметров. Если сниппет вернет любое значение кроме пустой строки (включая 0 или строку «false»), то это значение будет преобразовано функцией floatval и установлено для товара.
К примеру необходимо снизить цену в какой-то категории на 10%, но для модификаций, которые дешевле 1000р. цену нужно снизить на 5%. Для этого создаем такой сниппет:
<?php
if($mode == 'msop2' && $msop2_price < 1000)
return $msop2_price * 0,95;
else
return '';
И указать название этого сниппета в системной настойке msr_get_price_snippet. Естественно подразумевается что основной процент изменения (10%) цены устанавливается перед запуском переоценки.Изменение поля «Старая цена»
Так как старая цена используется больше в маркетинговых целях, то и её формирование нельзя привязывать к строгой логике переоценки. Потому я сделал возможность каждому определять собственную логику для установки этого свойства во время переоценки.
- В системной настройке msr_get_old_price_snippet можно указать название сниппета, который будет вызываться перед переоценкой каждого товара и должен будет вернуть новое значение для старой цены
- В системной настройке msr_restore_old_price_snippet можно указать название сниппета, который будет вызываться перед отменой переоценки каждого товара и должен будет вернуть новое значение для старой цены
msr_get_old_price_snippet
Если указано название сниппета, то он будет запускаться в процессе переоценки для каждого товара. В сниппет будут передаваться все поля товара и настройки переоценки (параметр $config, содержащий json со всеми настройками). Сниппет должен вернуть число, во всех других случаях старая цена будет установлена в 0.
msr_restore_old_price_snippet
Если указано название сниппета, то он будет запускаться в процессе переоценки для каждого товара. В сниппет будут передаваться все поля товара и настройки переоценки (параметр $config, содержащий json со всеми настройками). Сниппет должен вернуть число, во всех других случаях старая цена будет установлена в 0.
К примеру необходимо сделать чтоб старая цена в процессе переоценки станавливалась на 10% выше цены. Для этого создаем такой сниппет:
<?php
$k = 1.1; // во сколько раз увеличить цену
$dev = 10; // до какого значения округлять
$old_price = round(($price * $k)/$dev, 0) * $dev;
return $old_price;
И указать название этого сниппета в системных настойках msr_get_old_price_snippet и msr_restore_old_price_snippet. Конечно же можно использовать и разные сниппеты для переоценки и её отмены.Отмена переоценки
В список истории выводятся записи произведенных переоценках. Чтобы произвести откат изменений цен, кликните правой кнопкой мыши по строке с нужной записью и выберите «Отмена переоценки». Цены будут изменены только у тех товаров, которые участвовали в отменяемой переоценке на величину обратную изменению цены во время переоценки. То есть во время отмены цены изменяются не на процент, а на абсолютную разницу цен до и после переоценки.
К примеру:
- в понедельник перестал работать Ваш поставщик, у нового цены на 5% выше, соответственно выполнена переоценка на +5%, на аксессуары
- в среду увеличился какой-нибудь налог, что отразилось на стоимости товаров. Их стоимость увеличилась еще на 8% (сейчас можно ожидать и такого). Выполнена еще одна переоценка, но теперь уже всех товаров.
- в конце следующей недели, снова возобновил работу старый поставщик. Нужно отменить первую переоценку
Если же нужно сделать откат именно на процент, с учетом всех последующих изменений цен, то всегда можно просто сделать еще одну переоценку, только в поле «Действие» указать обратную операцию.
После отмены переоценки и файл с историей о ней, и запись в базе данных удаляются.
revaluation 1.1.3 (21.10.2020)
Добавлена возможность изменять старую цену товаров
revaluation 1.1.2 (30.03.2020)
Значительно увеличена производительность
revaluation 1.1.1 (06.08.2018)
Добавлена поддержка дополнительных категорий miniShop2
revaluation 1.1.0-beta (12.07.2018)
Добавлена поддержка msOptionPrice2 Добавлена возможность реализовать свою логику изменения цены для каждого товара с помощью сниппета Добавлена возможность пропускать переоценку люых товаров (по отдельности) с помощью сниппета Исправлены мелкие недочёты, которые не влияли на логику работы компонента
revaluation 1.0.4-beta (27.03.2017)
Исправлена ошибка, кторая возникала при попытке отмены переоценки удаленного товара
revaluation 1.0.3-beta (17.04.2016)
Убрал несколько мелких багов
revaluation 1.0.2-beta (17.04.2016)
Компонент обновлен для корректной работы с характеристиками товаров
revaluation 1.0.1-beta (12.04.2015)
Добавлена возможность ограничивать выборку товаров для переоценки по производителю
revaluation 1.0.0
Выпуск компонента
Последние обсуждения в сообществе MODX.pro