5 новых функций модуля обмена заказами Битрикс и МойСклад версии 1.4.11



Продолжаем рубрику "5 новых функций модуля", на этот раз версии 1.4.11.

За два месяца лета модуль обмена заказами развивался в основном на тех доработках, которые просили клиенты в рамках бесплатных доработок. Поэтому каждая из этих функций полезна и используется в реальной работе с модулем.

Прежде чем мы начнем разбирать новый функционал модуля обмена заказов, хочется прорекламировать наш новый модуль обмена товарами между БУС и МС, основанный на API версии 1.2, что позволяет ему работать с большими объемами данных и работать со всеми картинками товара.

Ссылка на модуль: модуль обмена товарами
Сейчас к модулю записана подробная видео-инструкция, где показаны основные возможности.
[spoiler]

Давайте подробнее рассмотрим, что нового в модуле обмена заказов версии 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;
}



Модуль уже начинает поддерживать создание отгрузок на стороне МС на основе отгрузки в БУС. На текущий момент это работает так:
  1. В БУС ставим статус отгрузки "Отгружено".
  2. В МС создается отгрузка с позициями заказа.
Необходимо использовать только 1 отгрузку в БУС. Остальные действия с отгрузками выполняются вручную.
Настройки создания отгрузки находятся во вкладке "Отгрузки" настроек модуля:






Модуль поддерживает выгрузку нового типа свойства "файл" в одинарном варианте. На стороне МС необходимо создать также свойство типа "файл" и проставить соответствие выгрузки свойств в настройках модуля.



Думаем данная функция будет особенно полезна пользователям редакции "Интернет-магазин + CRM", где в интерфейсе Б24 ведется учет заказов, однако это будет также работать на обычной редакции БУС (без Б24).

Задача состояла в том, чтобы привязывать ответственного на стороне МС на основе ответственного на стороне БУС. Данная задача легко решилась тем, что на стороне МС мы создаем сотрудников с определенным почтовым ящиком и в БУС мы также проставляем тот же почтовый ящик, тем самым связываем сотрудника между БУС и МС. Далее в настройках модуля необходимо выставить параметры, чтобы данная функция заработала.







Очень важная функция, которая была анонсирована в предыдущем посте. Бывают такие ситуации, при которых заказ не может выгрузиться в МС и время жизни агента истекает, чтобы это предотвратить, модуль присылает письмо на указанную в настройках модуля (вкладка "Отладка";) почту.


Еще приятные мелочи:
  1. Добавлена функция перерасчета стоимости товаров в комплекте при передаче его в МС. Здесь специфичный функционал, однако он позволяет передавать корректную стоимость каждой позиции заказа в составе комплекта БУС.
  2. Добавлена опция обратной синхронизации склада отгрузки из заказа МС в первую отгрузку БУС.
  3. Добавлена опция для обработки заказов с конкретного ID
Итог хочется подвести следующий: программа бесплатных доработок модуля полностью себя оправдала, все клиенты получают актуальный продукт, а новые клиенты не боятся его покупать, т.к. он изначально решает их проблему.

До конца августа на модуль действует скидка 20%, поэтому если еще думаете, то есть возможость купить модуль по привлекательной цене и воспользоваться бесплатными доработками. Условия бесплатных доработок просты: необходимо купить модуль по полной цене, указанной в карточке модуля.

Ссылка на модуль