Подписка на блог

Customize in /user/extras/follow-sheet.tmpl.php.

Sample text.

Twitter, Facebook, VK, Telegram, LinkedIn, Odnoklassniki, Pinterest, YouTube, TikTok, РСС JSON Feed

Sample text.

Dblk.ru

деловые облака

1C-Bitrix: назначение заказу ответственного менеджера

Задача

Один из моих клиентов занимается производством и оптовой продажей удобрений и товаров для сада/огорода.

Продажи идут по всей стране. За каждым менеджером закреплены свои регионы.

Для снижения нагрузки на персонал, руководство решило запустить сайт и мобильное приложение, где клиенты могли бы формировать заказ на продукцию самостоятельно.

Одна из задач возникла — при оформлении заказа нужно информировать о нем ответственного менеджера по почте.

Решение

Вариантов было несколько:

  • Отдать уведомления о заказе на сторону 1С. Не профильная задача для УТ.
  • Выгрузить всех контрагентов на сайт, привязать к каждому пользователя-менеджера. Сильно усложняет реализацию
  • Написать обработчик на сохранение нового заказа в init.php, который бы анализировал регион, выбирал ответственного менеджера и отправлял письмо. Здесь сложность в последующем обновлении информации (смена регионов у менеджера, увольнение, добавление сотрудников).

В итоге, нашлось красивое решение. У Битрикса в Магазине есть такая сущность, как Компании. Она позволяет привязывать заказы подразделениям.

Отличный вариант для нашей задачи.

Создали по компании на каждого менеджера, для каждой компании создали группу, в нее добавили менеджера.
В правилах автоназначения компании задал регионы (области) из поля Местоположение.

Теперь заказ автоматически назначался нужному менеджеру

Но письмо с уведомлением о новом заказе менеджеру не отправлялось. Штатно такой функции не было.

Пришлось дописать немного кода

AddEventHandler("sale", "OnOrderNewSendEmail", "bxModifySaleMails");
function bxModifySaleMails($orderID, &$eventName, &$arFields)
{
  $additional_information = '';
  $arOrder = CSaleOrder::GetByID($orderID);

if(!empty($arOrder['RESPONSIBLE_EMAIL'])) 
  $arFields["RESPONSIBLE_EMAIL"] = $arOrder['RESPONSIBLE_EMAIL'];
}

Теперь:

  • заказ автоматически присваивается ответственному менеджеру
  • ему приходит уведомление о новом заказе
  • в админке Битрикса можно легко управлять назначением заказов и менеджерами.

Задача решена.

#Время выполнения
Вышло где-то с обсуждениями, поиском готовых решений и промежуточными вариантами около двух часов.

Уведомление о добавлении в корзину

Задача, немного похожая на предыдущую.

Задача

У клиента участились жалобы от покупателей. При добавлении товара в корзину не происходит никаких действий и непонятно, удалось ли добавить товар.

Решение

Сначала я предложил решение из предыдущей задачи. Но, пока собирался сесть и сделать, пришла еще одна идея — просто изменять текст кнопки добавления в корзину.

Здесь товар еще не добавлен
А тут его уже добавили

Ну и сразу же возникла подзадача — менять текст кнопок у уже добавленных в корзину товаров.

Вот, собственно, и все.

Время выполнения

Вышло чуть меньше часа.

Переход в корзину после добавления товара

Задача

У Заказчика был сайт со старым дизайном без адаптивной верстки. При работе на мобильных устройствах детали интерфейса так уменьшались, что не было видно корзину.

В результате, посетитель не мог понять, добавил ли он товар или нет, и испытывал трудность c переходом к оформлению заказа.

Пока решался вопрос с адаптивной версткой, Заказчик попросил сделать прямой переход в корзину после нажатия кнопки «Добавить в корзину».

Решение

Мне показалось, что сразу переводить посетителя в корзину не очень разумно, особенно, когда он на странице со списком товаров.

Удобнее дать посетителю выбор, что делать дальше. В штатном функционале Битрикса такую задачу решает попап с вариантами действий. На примере показано только одно действие.

Идею приняли.

Сложность реализации состояла в том, что этот функционал в битриксе реализован с помощью javascript, а предыдущие разработчики полностью его «выпилили» из шаблона. Ну и чуть переписали компонент.

Пришлось добавлять эту возможность руками, добавлять скрипты и править шаблон.

В результате, при добавлении товара в корзину на странице со списком товаров, посетитель видит вот такой попап

А уже с самой страницы товара, кнопка «добавить в корзину» сразу перекидывает в соответствующий раздел.

Так жек, кстати, как и у битрикса сделано по-умолчанию.

Время выполнения

Задачу оценил в три часа, в реальности получилось почти в два раза больше. Но это уже мои проблемы, большой плюс — разобрался с алгоритмом работы скрипта магазина.

2023   1c-bitrix