5 новых функций модуля обмена заказами Битрикс и МойСклад версии 1.4.11
24 августа 2020
Автор: РосБизнесСайт
Продолжаем рубрику "5 новых функций модуля", на этот раз версии 1.4.11.
За два месяца лета модуль обмена заказами развивался в основном на тех доработках, которые просили клиенты в рамках бесплатных доработок. Поэтому каждая из этих функций полезна и используется в реальной работе с модулем.
Прежде чем мы начнем разбирать новый функционал модуля обмена заказов, хочется прорекламировать наш новый модуль обмена товарами между БУС и МС, основанный на API версии 1.2, что позволяет ему работать с большими объемами данных и работать со всеми картинками товара.
Ссылка на модуль: модуль обмена товарами
Давайте подробнее рассмотрим, что нового в модуле обмена заказов версии 1.4.11.
Данный функционал планировался еще весной, однако подходящей задачи под него не было. По-началу все кастомные доработки были не сильно специфичны и не требовали отдельных событий, т.к. выполняли стандартные вещи. Однако, когда поступил заказ на следующую доработку, то было принято решение ввести события в модуль, чтобы такую специфику не вписывать в сам алгоритм работы модуля.
Задача была следующая: необходимо было проставлять определенную организацию в заказе МС, если была отмечена галочка в заказе. Если галочка не была отмечена, то организация по-умолчанию. Также необходимо было проставлять НДС при отмеченной галочке в заказе.
Поскольку организацию мы можем проставить до отправки заказ в МС, то необходимо было ввести соответствующее событие: OnBeforeOrderApiCreate. При этом НДС нельзя проставлять до формирования заказа, тогда вводим событие OnAfterOrderApiCreate. Таким образом, внутри события мы можем управлять полями заказа и изменять его.
Пример такого события:
//Ставим событие (файл init.php) \Bitrix\Main\EventManager::getInstance()->addEventHandler( 'rbs.moysklad', 'OnBeforeOrderApiCreate', 'OnBeforeOrderApiCreateHandler' ); function OnBeforeOrderApiCreateHandler(\Bitrix\Main\Event $event) { //считываем параметры $eventParams = $event->getParameters(); $orderId = $eventParams[0]; // ID заказа в БУС $orderChangeStack = $eventParams[1]; // массив изменений, который отправляется в МС //... делаем нужные действия //$orderChangeStack['organization'] // возвращаем результат в виде массива изменений $result = new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS, $orderChangeStack); return $result; } |
Модуль уже начинает поддерживать создание отгрузок на стороне МС на основе отгрузки в БУС. На текущий момент это работает так:
- В БУС ставим статус отгрузки "Отгружено".
- В МС создается отгрузка с позициями заказа.
Настройки создания отгрузки находятся во вкладке "Отгрузки" настроек модуля:
Модуль поддерживает выгрузку нового типа свойства "файл" в одинарном варианте. На стороне МС необходимо создать также свойство типа "файл" и проставить соответствие выгрузки свойств в настройках модуля.
Думаем данная функция будет особенно полезна пользователям редакции "Интернет-магазин + CRM", где в интерфейсе Б24 ведется учет заказов, однако это будет также работать на обычной редакции БУС (без Б24).
Задача состояла в том, чтобы привязывать ответственного на стороне МС на основе ответственного на стороне БУС. Данная задача легко решилась тем, что на стороне МС мы создаем сотрудников с определенным почтовым ящиком и в БУС мы также проставляем тот же почтовый ящик, тем самым связываем сотрудника между БУС и МС. Далее в настройках модуля необходимо выставить параметры, чтобы данная функция заработала.
Очень важная функция, которая была анонсирована в предыдущем посте. Бывают такие ситуации, при которых заказ не может выгрузиться в МС и время жизни агента истекает, чтобы это предотвратить, модуль присылает письмо на указанную в настройках модуля (вкладка "Отладка" почту.
Еще приятные мелочи:
- Добавлена функция перерасчета стоимости товаров в комплекте при передаче его в МС. Здесь специфичный функционал, однако он позволяет передавать корректную стоимость каждой позиции заказа в составе комплекта БУС.
- Добавлена опция обратной синхронизации склада отгрузки из заказа МС в первую отгрузку БУС.
- Добавлена опция для обработки заказов с конкретного ID
Условия бесплатных доработок просты: необходимо купить модуль по полной цене, указанной в карточке модуля.
Статья полезна для