Павел Гвоздь
С нами с 31 мая 2015; Место в рейтинге пользователей: #2[msMarketingStatuses] 1.0.0 Автоматическое управление статусами заказов
Компонент позволяет настроить автоматическое управление статусами заказов, что сильно упрощает работу для менеджера, маркетолога или владельца магазина.
Теперь вам будет легко:
– Напомнить клиенту об оплате через 5 минут после оформления заказа,
– Попросить оставить отзыв спустя 1 неделю после отправки заказа,
– Выслать промокод на следующий заказ через 2 недели после отправки заказа клиенту.
Всё это теперь будет происходить автоматически, без вашего участия.
[msBonus2] 1.2.2 Cron-скрипт рутинных действий
В новой версии исправлены некоторые ошибки связанные со списанием устаревших бонусов: у пользователя списывали устаревшие бонусы, даже если он их использовал после начисления. С версии 1.2.2 это было пофиксено.
Важно! После обновления компонента рекомендую выполнить настройку, описанную в документации в разделе Рутинные действия через cron-скрипт, указав при этом системную настройку msb2_routine_running_method = cron.
И на всякий случай лучше предварительно сделать бекап сайта перед обновлением, проверив работоспособность бонусной системы и убедившись, что всё работает корректно!
[videoGallery] 1.4.0 Поддержка VK Video и ещё пара фишек
В комментах к прошлому апдейту компонента подкинули идею добавить поддержку VK Video. Мне стало интересно, а возможно ли с этого сервиса получать такие же данные, как например с Youtube или Rutube. Оказалось, что это сложнее, чем может показаться. Ни гуглинг, ни тесты через их странное API не дали никаких результатов. Да и к тому же, ради парсинга самых простых данных видеоролика (заголовок, превью, embed url), заставлять людей создавать приложение в инструментах разработчика VK и указывать app_id/secret – не комильфо!
Поэтому я решил пойти другим путём и парсить эти данные прямо с веб версии… не знаю, как долго проживёт данный способ, но пока он работает отлично! Кстати, помимо заголовка, превью и embed url, через морду удаётся парсить описание и длительность ролика. Так что пользуйтесь, пока работает! =)
[videoGallery] 1.3.0 Поддержка MIGX
Давно хотел внедрить поддержку MIGX, тем более, что уже очень давно пользователь Гитхаб под ником
SintezCode отправил PR для этого. Единственное, у меня было несколько правок по его коду, поэтому никак не доходили руки, чтобы этим заняться.
[CurrencyCalc] 1.1.4 Новый источник Free Currency Rates API
В Гитхаб есть отличный бесплатный источник курсов валют – Free Currency Rates API. Там парень по имени Fawaz Ahmed на добровольной основе создал это бесплатное API, за что ему большое спасибо!
Прелесть данного источника в том, что в нём есть курс BTC, ETH и некоторых других криптовалют (например, хлам типа DOGE или XRP). Полный список всех валют данного источника смотреть так.
Я решил, что данное API стоит добавить в мой компонент CurrencyCalc. Также из компонента был удалён бесполезный рудимент – сто лет как устаревший YahooApis. На этом пока всё. =)
P.S. Давно я ничего не писал сюда… возвращаться оказалось сложнее, чем я думал. К слову, компонент не обновлялся аж с 2016 года – пусть это будет символом моего возвращения!
[AjaxForm] 1.2.0 Поддержка отключённых сессий у анонимов
Наконец-то дошли руки допилить AjaxForm. Была проблема при отключённых сессиях для анонимов (настройка anonymous_sessions, указывается только для контекстов!) – сессии отключены, а значит пробросить параметры сниппета, которые необходимы при ajax действиях, невозможно.
Теперь, в новой версии, если сессии включены или вы авторизованы на сайте в админке (что соответственно создаёт сессию), работа происходит как и раньше через сессии. А если сессия отключена, то параметры сниппета пробрасываются через кеш сайта – в кеше создаётся файл с параметрами сниппета.
Также, влил некоторые PR, которые давно висели:
– Украинский язык,
– Параметр сниппета clearFieldsOnSuccess, который говорит, надо ли очищать форму при успешной её отправке,
– В отправляемые данные добавлена передача value кнопки, которую юзер нажал (удобно, если на форме несколько кнопок),
– В default.js заменён document.write на document.body.appendChild,
– Вырезан type="text/javascript" из тега <script> при инициализации на фронте.
Теперь, в новой версии, если сессии включены или вы авторизованы на сайте в админке (что соответственно создаёт сессию), работа происходит как и раньше через сессии. А если сессия отключена, то параметры сниппета пробрасываются через кеш сайта – в кеше создаётся файл с параметрами сниппета.
Также, влил некоторые PR, которые давно висели:
– Украинский язык,
– Параметр сниппета clearFieldsOnSuccess, который говорит, надо ли очищать форму при успешной её отправке,
– В отправляемые данные добавлена передача value кнопки, которую юзер нажал (удобно, если на форме несколько кнопок),
– В default.js заменён document.write на document.body.appendChild,
– Вырезан type="text/javascript" из тега <script> при инициализации на фронте.
[xLike] 1.1.2 Работа с отключенными сессиями для анонимов и поддержка IPv6
Если вам, как и мне, нужно ограничивать анонимов в сессиях, чтобы таблица с сессиями не заполнялась на несколько тысяч записей за 10 минут, то вместе с этим вам придётся столкнуться с некоторыми трудностями. Например, когда в сессию пишутся параметры сниппета для проброса их в какой-нибудь action.php, чтобы не делать этого прямиком через фронтенд.
Отключив сессии для анонимов на сайте, xLike перестал корректно работать, выдавая ошибку при попытке проголосовать. Происходит это, потому что session_id в нём играл основную роль для идентификации юзера, даже при включённой проверке по IP. А проблема заключалась как раз в том, что сниппет xLike пишет в сессию свои параметры, которые необходимы в момент установки голоса пользователем.
Отключив сессии для анонимов на сайте, xLike перестал корректно работать, выдавая ошибку при попытке проголосовать. Происходит это, потому что session_id в нём играл основную роль для идентификации юзера, даже при включённой проверке по IP. А проблема заключалась как раз в том, что сниппет xLike пишет в сессию свои параметры, которые необходимы в момент установки голоса пользователем.
[Расширяем miniShop2] Быстрая смена статуса заказа через контекстное меню
Заказчика запарило для смены статуса лазать в полное редактирование заказа, попросил сделать что-то быстрое и простое. На скриншоте выше конечный результат. Чтобы получить такой же, файлы из этого репозитория закиньте себе в папку /assets/ и создайте плагин, который описан в конце статьи. Однако, я настоятельно рекомендую почитать статью, чтобы понимать принцип расширения всего этого дела.
[msPromoCode2] Кейс. Генерация промо-кода в письме на следующий заказ
Не так давно в документации к msPromoCode2 появился интересный кейс, при помощи которого можно поднять процент повторных продаж на сайте. Работает так:
- Клиент оплачивает заказ,
- Статус заказа меняется на «Оплачено»,
- В письме ему приходит промо-код на следующий заказ, который действителен в течение месяца.
[msPromoCode2] 1.1.12 Обратный отсчёт для сгенеренного промо-кода
Сниппет mspc2Generate позволяет сгенерировать промо-код для любого юзера, находящегося на сайте в течение определённого времени. Этот сниппет был не особо функционален. Всё что он позволял – это сгенерировать промо-код для юзера через N секунд после вызова сниппета. Делал он это хорошо, однако ему не хватало больших настроек.
До версии 1.1.12 не было возможности ни задать время жизни такого купона, ни каких-то дополнительных «галочек» из конфига. Сразу скажу – теперь всё это возможно + для промо-кода с указанным временем жизни в окошке появляется обратный отсчёт. Это очень хороший стимул для клиента сделать заказ прямо сейчас, поэтому обновляйтесь! При обновлении надо обновить чанк tpl.msPromoCode2.generate.
До версии 1.1.12 не было возможности ни задать время жизни такого купона, ни каких-то дополнительных «галочек» из конфига. Сразу скажу – теперь всё это возможно + для промо-кода с указанным временем жизни в окошке появляется обратный отсчёт. Это очень хороший стимул для клиента сделать заказ прямо сейчас, поэтому обновляйтесь! При обновлении надо обновить чанк tpl.msPromoCode2.generate.