Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Добавить коммерческое предложение crm.quote.add», проанализируем лучшие практики и покажем, как правильно использовать crm.quote.add в реальных задачах.
Добавить коммерческое предложение crm.quote.add
Тут может не хватать некоторых данных — дополним в ближайшее время
- нужны правки под стандарт написания
- не указаны типы параметров
- не указана обязательность параметров
- отсутствуют примеры (должно быть три примера — curl, js, php)
- отсутствует ответ в случае ошибки
- отсутствует ответ в случае успеха
> Scope: crm
>
> Кто может выполнять метод: любой пользователь
Метод crm.quote.add создаёт новое коммерческое предложение. Если необходимо в предложении указать какие реквизиты покупателя/продавца (т.к. их может быть несколько у компании), то используйте метод crm.requisite.link.register.
В создаваемом предложении обязательно должны быть указаны компании продавца и покупателя:
COMPANY_ID, если покупатель — компания илиCONTACT_ID, если покупатель — контакт.MYCOMPANY_ID— продавец.
Идентификаторы, указанные в crm.requisite.link.register и в создаваемом предложении, должны соответствовать покупателю и продавцу.
| Параметр / Тип | Описание |
|---|---|
fieldsunknown | Набор полей — массив вида array("поле"=>"значение"[, ...]), содержащий значения полей предложения, где «поле» может принимать значения из возвращаемых методом crm.quote.fields.Чтобы узнать требуемый формат полей, выполните метод crm.quote.fields и посмотрите формат пришедших значений этих полей. |
Практический пример и готовый код на PHP
- JS
try
{
const response = await $b24.callMethod(
"crm.quote.add",
{
fields:
{
"TITLE": "Черновик",
"STATUS_ID": "DRAFT",
"OPENED": "Y",
"ASSIGNED_BY_ID": 1,
"CURRENCY_ID": "USD",
"OPPORTUNITY": 5000,
"COMPANY_ID": 1,
"COMMENTS": "Новое коммерческое предложение.",
"BEGINDATE": "2016-03-01T12:00:00",
"CLOSEDATE": "2016-04-01T12:00:00"
}
}
);
const result = response.getData().result;
console.info("Создано предложение с ID " + result);
}
catch( error )
{
console.error(error);
}- PHP
try {
$response = $b24Service
->core
->call(
'crm.quote.add',
[
'fields' => [
'TITLE' => 'Черновик',
'STATUS_ID' => 'DRAFT',
'OPENED' => 'Y',
'ASSIGNED_BY_ID' => 1,
'CURRENCY_ID' => 'USD',
'OPPORTUNITY' => 5000,
'COMPANY_ID' => 1,
'COMMENTS' => 'Новое коммерческое предложение.',
'BEGINDATE' => '2016-03-01T12:00:00',
'CLOSEDATE' => '2016-04-01T12:00:00',
],
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Создано предложение с ID ' . $result;
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error creating quote: ' . $e->getMessage();
}- BX24.js
BX24.callMethod(
"crm.quote.add",
{
fields:
{
"TITLE": "Черновик",
"STATUS_ID": "DRAFT",
"OPENED": "Y",
"ASSIGNED_BY_ID": 1,
"CURRENCY_ID": "USD",
"OPPORTUNITY": 5000,
"COMPANY_ID": 1,
"COMMENTS": "Новое коммерческое предложение.",
"BEGINDATE": "2016-03-01T12:00:00",
"CLOSEDATE": "2016-04-01T12:00:00"
}
},
function(result)
{
if(result.error())
console.error(result.error());
else
console.info("Создано предложение с ID " + result.data());
}
);💡 Экспертное мнение и рекомендации
Советы эксперта по интеграции:
- Всегда используйте кэширование при частых запросах к crm.quote.add, чтобы разгрузить базу данных.
- Соблюдайте стандарты PSR при написании обработчиков для «Добавить коммерческое предложение crm.quote.add».
- Регулярно проводите аудит производительности системы с помощью встроенного монитора 1С-Битрикс.
Похожая задача в бизнесе?
Помогу автоматизировать процессы и внедрить ИИ
Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.
или на почту: gorandvas@yandex.ru