Олег Захаров
С нами с 14 октября 2017; Место в рейтинге пользователей: #134[simpleQueue] Простая очередь сообщений для других компонентов
После подготовки статей решил довести до ума удобный компонент, который изначально был задуман как публичный и создан для нужд АСУ. Удобен, чтобы в каждом из компонентов, где требуется очередь, не реализовывать одно и то же.
Простая очередь сообщений для использования в любых сторонних компонентах.
Очередь сообщений удобно использовать в случаях, когда необходимо в одном потоке добавить сообщение о новом действии, а в другом потоке его выполнить.
Простой пример: отправка писем. В основном процессе добавляется сообщение о новом исходящем письме, а отдельным скриптом осуществляется отправка письма.
Простая очередь сообщений для использования в любых сторонних компонентах.
Очередь сообщений удобно использовать в случаях, когда необходимо в одном потоке добавить сообщение о новом действии, а в другом потоке его выполнить.
Простой пример: отправка писем. В основном процессе добавляется сообщение о новом исходящем письме, а отдельным скриптом осуществляется отправка письма.
АСУ для кофеен. Часть 2
Вторая статья из цикла.
Часть 1. Предыстория.
Часть 2. Почему выбран MODX Revolution. Серверная часть.
Часть 3. Работа с оборудованием. Примерная хронология проекта.
Часть 4. Синхронизация данных и обновление компонентов АСУ
Часть 5. Пути решения проблем при «непонятном» поведении движка/компонентов. Реализация складского учета
Часть 6, 7. Текущие функциональные возможности АСУ
Часть 8. Текущие показатели АСУ. Желаемые планы. Заключение
Ключевые технические требования к АСУ, которые были выявлены до начала технических работ:
Главная причина выбора MODX Revolution банальна: на момент начала работ я знал данный инструмент лучше всех остальных. Из-за ограниченных сроков сравнение с другими инструментами не рассматривалось, так как любой из других движков/фреймворков, помимо чтения теории о них, потребовал бы значительного времени на вникание в его подходы.
Часть 1. Предыстория.
Часть 2. Почему выбран MODX Revolution. Серверная часть.
Часть 3. Работа с оборудованием. Примерная хронология проекта.
Часть 4. Синхронизация данных и обновление компонентов АСУ
Часть 5. Пути решения проблем при «непонятном» поведении движка/компонентов. Реализация складского учета
Часть 6, 7. Текущие функциональные возможности АСУ
Часть 8. Текущие показатели АСУ. Желаемые планы. Заключение
Почему выбран MODX Revolution
Ключевые технические требования к АСУ, которые были выявлены до начала технических работ:
- Язык программирования — PHP;
- WEB-сервис для упрощения процесса замены клиентского терминала;
- Локальный сервер в каждой кофейне для минимизации влияния отсутствующего интернета;
- Возможность передачи проекта для развития сторонним разработчикам;
Главная причина выбора MODX Revolution банальна: на момент начала работ я знал данный инструмент лучше всех остальных. Из-за ограниченных сроков сравнение с другими инструментами не рассматривалось, так как любой из других движков/фреймворков, помимо чтения теории о них, потребовал бы значительного времени на вникание в его подходы.
АСУ для кофеен. Часть 1
Данная статья открывает цикл статей о создании и функционировании крупной автоматизированной системы учета для федеральной сети кофеен, о которой я так или иначе многократно упоминал в сообществе. В частности, мои доклады в Минске в декабре 2015 г. и ноябре 2017 г. основаны на отдельных составляющих данной АСУ.
Часть 1. Предыстория.
Часть 2. Почему выбран MODX Revolution. Серверная часть.
Часть 3. Работа с оборудованием. Примерная хронология проекта.
Часть 4. Синхронизация данных и обновление компонентов АСУ
Часть 5. Пути решения проблем при «непонятном» поведении движка/компонентов. Реализация складского учета
Часть 6, 7. Текущие функциональные возможности АСУ
Часть 8. Текущие показатели АСУ. Желаемые планы. Заключение
Предыстория
Все началось в 2014 году, когда ко мне обратились владельцы сети кофеен с вопросом о возможности создания системы управлению (далее СУ или АСУ) сетью заведений под их бизнес-требования.Модуль оплаты Robokassa и успешная оплата
В системных настройках модуля есть переменная ms2_payment_rbks_success_id, с помощю которой указывается ID страницы, на которую возвращается пользователь после успешной оплаты. Как можно сделать так, чтобы после успешной оплаты товара А, пользователь попадал на страницу 1. А после оплаты товара Б, на страницу 2. Ну, а если случится такое, что пользователь купил А+Б, то на страницу 3.
Сейчас у меня срабатывает плагин на событие msOnChangeOrderStatus и производятся некоторые действия, однако, как при этом перенаправить пользователя туда, куда надо я ума не приложу.
Сейчас у меня срабатывает плагин на событие msOnChangeOrderStatus и производятся некоторые действия, однако, как при этом перенаправить пользователя туда, куда надо я ума не приложу.
[mSync+MsOptionprice] Импорт торговых предложений
Размещаю здесь, так как рейтинга не хватает)
Добрый день! Была довольно интересная задача по интеграции каталога 1-с с каталогом интернет магазина. В 1-с есть такая замечательная вещь как торговые предложения, которые по сути являются одним и тем же товаром только имеют различные параметры(размер/цвет/запах/количество и пр.) и так же могут обладать своими уникальными артикулами с ценами, для решения подобного функционала был использован отличный компонент msOptionsPrice2, который реализует модификации товара, куда и будем в последствии помещать наши торговые предложения. Но прежде чем создавать модификации требуется этот каталог еще получить из 1-с, в этом нам поможет компонент mSync, в его использовании нет никаких секретов, главное понимать что и откуда берется, а так же заранее изучить структуру файлов импорта.
Добрый день! Была довольно интересная задача по интеграции каталога 1-с с каталогом интернет магазина. В 1-с есть такая замечательная вещь как торговые предложения, которые по сути являются одним и тем же товаром только имеют различные параметры(размер/цвет/запах/количество и пр.) и так же могут обладать своими уникальными артикулами с ценами, для решения подобного функционала был использован отличный компонент msOptionsPrice2, который реализует модификации товара, куда и будем в последствии помещать наши торговые предложения. Но прежде чем создавать модификации требуется этот каталог еще получить из 1-с, в этом нам поможет компонент mSync, в его использовании нет никаких секретов, главное понимать что и откуда берется, а так же заранее изучить структуру файлов импорта.
VersionX переполнил базу данных
Друзья привет.
столкнулся с болью обнаружил что на обном из сайтов БД выросла но неимоверных размеров!
После недолгого копания выяснилось что VersionX хранит в БД все что произошло за год в размере 3,4 гигов.
И это печаль.
Итак вопрос как говорится к старшим товарищам что с этим можно безопасно сделать?
Мои варианты:
столкнулся с болью обнаружил что на обном из сайтов БД выросла но неимоверных размеров!
После недолгого копания выяснилось что VersionX хранит в БД все что произошло за год в размере 3,4 гигов.
И это печаль.
Итак вопрос как говорится к старшим товарищам что с этим можно безопасно сделать?
Мои варианты:
- Очистить эту таблицу в БД — тут я не великий специалист боюсь угробить сайт...
- Понять как работает дополнение и встроить настройку чтоб сохранялось только 3 последних версий — я тут совсем не специалист.
- Написать автору дополнения и просить помощи
[onlineKassa] 54-ФЗ, 1 июля и другие страшилки
Как многим известно, сегодня вступают в силу изменения ФЗ-54 «О применении контрольно-кассовой техники», в соответствии с которым практически все юридические лица обязаны пробивать кассовые чеки в момент расчета.
Небольшое отступление:
Эта участь не обошла стороной и интернет-магазины. В Законе расплывчато говорится о времени, которое может пройти с момента расчета до момента пробития чека, но это однозначно должно быть какое-то малое разумное время. Таким образом, если покупка в ИМ осуществляется ночью, то и чек должен быть ночью, но никак не утром, когда проснется и придет на работу продавец/оператор.
Небольшое отступление:
Эта участь не обошла стороной и интернет-магазины. В Законе расплывчато говорится о времени, которое может пройти с момента расчета до момента пробития чека, но это однозначно должно быть какое-то малое разумное время. Таким образом, если покупка в ИМ осуществляется ночью, то и чек должен быть ночью, но никак не утром, когда проснется и придет на работу продавец/оператор.
Опция товара minishop2 с дополнительным полем
Добрый день.
Стоит, на первый взгляд, простая задача, но не знаю с какой стороны подступится.
Требуется сделать опцию «Вышивка» к товару, т.е. что бы кликнув на чекбокс можно было добавить такую опцию к товару и увеличить стоимость товара на установленную сумму (например 100 р.). Но! Надо, что бы вместе с такой опцией можно было бы в текстовое поле добавить сам текст вышивки и что бы он вместе с опцией ушел в заказ. Пересмотрел несколько дополнений (msOptionsPrice2, msFieldsManager, msAddLinked) и не могу понять — могу я с их помощью реализовать задуманное или нет?
Или надо писать что-то свое?
Буду благодарен за любую идею или подсказку. Спасибо.
Стоит, на первый взгляд, простая задача, но не знаю с какой стороны подступится.
Требуется сделать опцию «Вышивка» к товару, т.е. что бы кликнув на чекбокс можно было добавить такую опцию к товару и увеличить стоимость товара на установленную сумму (например 100 р.). Но! Надо, что бы вместе с такой опцией можно было бы в текстовое поле добавить сам текст вышивки и что бы он вместе с опцией ушел в заказ. Пересмотрел несколько дополнений (msOptionsPrice2, msFieldsManager, msAddLinked) и не могу понять — могу я с их помощью реализовать задуманное или нет?
Или надо писать что-то свое?
Буду благодарен за любую идею или подсказку. Спасибо.
Собственные модификаторы Fenom
Продолжаю разработку новой версии modstore.pro и хочу поделиться простым способом подключения своих модификаторов.
Обычный способ все знают: нужно создать сниппет, который будет принимать переменные $input и $options и вызвать его в чанке вот так:
Обычный способ все знают: нужно создать сниппет, который будет принимать переменные $input и $options и вызвать его в чанке вот так:
{$variable | snippet}
Но- Сниппеты бывают совсем небольшие и создавать их на каждый чих не хочется
- Вызов сниппета, это всё-таки дополнительная нагрузка
- Лично я уже полностью перешел на файлы, и создавать запись в БД для сниппета, только ради его связи с файлом мне совсем не хочется