0 0,00 

Есть вопрос? Звоните!

+7 923 192-46-05

Копировать товары между сущностями

03.11.2022
2
Копирование товаров

Рассмотрим задачи по копированию товаров между сущностями в коробочной версии Битрикс24.

Содержание

Копирование товаров из сделки в предложение

При создании нескольких коммерческих предложений Битрикс учитывает только измененные товары и добавляет в КП только их. Менеджерам же зачастую нужно, чтобы в предложение добавлялись все товары из сделки. Что можно сделать?

Создадим бизнес-процесс в первой стадии предложения. Для этого перейдем в CRM —> Продажи —> Предложения —> Роботы. 

 

В первом статусе нажимаем Редактировать в дизайнере бизнес-процессов.

Автоматизация продаж. Предложения

Заходим в Параметры шаблона.

Параметры шаблона

Вводим название и сохраняем.

Действия БП

Запись в отчет

Действие Запись в отчет.

  • Заголовок — Запись в отчет;
  • Текст — Сделка {{Сделка}};
    Предложение {{ID}};
  • Загрузить отчет для доступа из бизнес-процесса — оставляем пустым.
Запись в отчет
PHP-код

PHP код: все товары из сделки в предложение

Действие PHP код.

  • Заголовок — PHP код: все товары из сделки в предложение;
  • PHP код:
				
					$deal_id = '{{Сделка}}';
$quote_id = '{{ID}}';
 
if(!\Bitrix\Main\Loader::includeModule('crm') || $deal_id <= 0 || $quote_id <= 0)
    return;
 
// вытащить товары из сделки
$ar = \CCrmProductRow::LoadRows('D', $deal_id); // D - Deal(Сделка), L - Lead(Лид), Q - Quote(Предложение)
if (count($ar) <= 0) // проверка наличия товаров в сделке
    return;
$rows = array();
foreach($ar as $item)
{
    unset($item['ID']);
    reset($item);
    $rows[] = $item; 
}
unset($ar, $item);
 
 
// удалить товары из предложения
$ar = \CCrmProductRow::LoadRows('Q', $quote_id); // D - Deal(Сделка), L - Lead(Лид), Q - Quote(Предложение)
foreach($ar as $item)
{
    \CCrmProductRow::Delete($item['ID'], false, false);
}
 
// добавить товары в предложение
$obj = new \CCrmQuote(false);
$obj->SaveProductRows($quote_id, $rows, true, false, true);
unset($ar, $item, $obj);
				
			

Получился вот такой маленький бизнес-процесс. Сохраняем.

БП Товары из сделку в предложение

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

Копирование товаров из предложения в сделку

Если по сделке было создано несколько вариантов предложений, и клиент остановился на каком-то одном, то хочется нажатием одной кнопки перенести товары из этого КП в сделку.

 

Создадим бизнес-процесс для нажатия этой волшебной кнопки:)

Переходим в CRM —> Настройки —> Настройки CRM —> Роботы и бизнес-процессы —> Бизнес-процессы —> Коммерческие предложения.

Нажимаем Добавить шаблон.

Добавить шаблон

Вводим название и сохраняем.

Название БП

Действия БП

Запись в отчет

Действие Запись в отчет.

  • Заголовок — Запись в отчет;
  • Текст — Сделка {{Сделка}};
    Предложение {{ID}};
  • Загрузить отчет для доступа из бизнес-процесса — оставляем пустым.
Запись в отчет
PHP-код

PHP код: все товары из предложения в сделку

Действие PHP код.

  • Заголовок — PHP код: все товары из предложения в сделку;
  • PHP код:
				
					$deal_id = '{{Сделка}}';
$quote_id = '{{ID}}';
 
if(!\Bitrix\Main\Loader::includeModule('crm') || $deal_id <= 0 || $quote_id <= 0)
    return;
 
// вытащить товары из предложения
$ar = \CCrmProductRow::LoadRows('Q', $quote_id); // D - Deal(Сделка), L - Lead(Лид), Q - Quote(Предложение)
if (count($ar) <= 0) // проверка наличия товаров в предложении
    return;
$rows = array();
foreach($ar as $item)
{
    unset($item['ID']);
    reset($item);
    $rows[] = $item; 
}
unset($ar, $item);
 
 
// удалить товары из сделки
$ar = \CCrmProductRow::LoadRows('D', $deal_id); // D - Deal(Сделка), L - Lead(Лид), Q - Quote(Предложение)
foreach($ar as $item)
{
    \CCrmProductRow::Delete($item['ID'], false, false);
}
 
// добавить товары в сделку
$obj = new \CCrmDeal(false);
$obj->SaveProductRows($deal_id, $rows, true, false, true);
unset($ar, $item, $obj);
				
			

Сохраняем бизнес-процесс.

 

В карточке предложения теперь, при необходимости, можно запустить копирование товаров из КП в сделку, для этого нужно нажать на кнопку бизнес-процесса и выбрать соответствующий пункт:

БП Товары из КП в сделку

Читайте также

5 2 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
2 комментариев
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Иван

Подскажите, сталкивались ли Вы с добавлением товаров в смарт-процессах?

2
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
0
    0
    Корзина
    Корзина пустаВернуться в магазин