Телеграм: @bazarow_ru Почта: mihail@bazarow.ru

Снять ограничение на количество символов в комментарии к заказу магазина на Битрикс

Просмотров: 12635

Как многим известно, в интернет-магазине на Битрикс имеется ограничение на количество символов в комментарии к заказу. Ограничение в 255 символов вполне уместно, так как обычно, покупателю этого достаточно, что бы написать "Звоните с шести вечера до десяти утра" или "Нужна будет сдача с 5000 рублей". Однако, столкнулся с задачкой: для сайта медицинского центра нужно было снять это ограничение, при заказе онлайн консультации. Так как могли быть достаточно длинные описания заболеваний

Способ первый: изменить ограничение напрямую в базе данных

Способ этот не очень кошерный, так как не рекомендуется вносить какие-либо изменения в базу данных сайта Битрикс напрямую. Но расскажу:

Суть в том, что ограничение стоит в таблице "b_sale_order", в поле "USER_DESCRIPTION". Что бы его снять или поправить (например выставить 2000 символов), необходимо подключиться к базе данных напрямую, например через phpmyadmin. Найти таблицу "b_sale_order", открыть на изменение настроек поле "USER_DESCRIPTION"и в поле "Length/Values1" вписать нужное значение (там будет прописано 255) и сохраниться.

ограничение комментарий к заказу битрикс

PS: если у вас битрикс установлен на виртуальной машине Битрикс, там нет установленного phpmyadmin. Вообще это правильно с точки зрения безопасности. Чтобы воспользоваться им, можно не устанавливать полностью, а просто временно воспользоваться и удалить. Для этого качаем архив: PhpMyAdmin для виртуальной машины Битрикс - разархивируем и кидаем в папку с сайтом, прямо в корень. Открываем в браузере http://ВАШСАЙТ.ru/phpMyAdmin-2.11.11.3-english/ вводим имя пользователя и пароль от базы, которые можно подсмотреть в файле /bitrix/php_intarface/dbconn.php. Делаем необходимую правку в базе данных и удаляем папку phpMyAdmin-2.11.11.3-english из корня сайта

Способ второй: через веб-формы

Этот способ подсмотрен в блогах пользователей битрикс на dev.1c-bitrix.ru

Создаем веб-форму с двумя полями: `order` (Integer) и `comments` (text). Так как модуль веб-форм работает в расширенном режиме, нужно создать ещё статус "По умолчанию".

Теперь остаётся используя обработчик события OnOrderAdd, при каждом заказе (при заполненных комментариях к этому заказу) сохранять результат в веб-форму.

<? 
AddEventHandler("sale", "OnOrderAdd", array("CCustomSaleHandlers", "checkOrderProperties")); 
class CCustomSaleHandlers { 
 ... 
 
const ORDER_SUPPLEMENT_FORM_ID = 3; //ID веб-формы с дополнениями к заказу 
const ORDER_SUPPLEMENT_FORM_STATUS_DEFAULT = 4; 
const ORDER_SUPPLEMENT_FORM_FIELD_ORDER_ID = "order"; 
const ORDER_SUPPLEMENT_FORM_FIELD_COMMENTS = "comments"; 
... 
	public static function checkOrderProperties($ID, $arFields) { 
	$sEvents = ""; 
	$sEvents .= "\n" . date("Y-m-d H:i:s") . "\t" . __LINE__ . "\n" . "ID: " . $ID; 
		if (isset($arFields["PERSON_TYPE_ID"]) 
			&& isset($arFields["USER_DESCRIPTION"]) 
			&& (strlen($arFields["USER_DESCRIPTION"]) > 0)) { 
			if (CModule::IncludeModule("form")) { 
			$arValues = array ( 
			"status_SIMPLE_FORM_" . self::ORDER_SUPPLEMENT_FORM_ID => self::ORDER_SUPPLEMENT_FORM_STATUS_DEFAULT, 
		); 
		if ($iResultID = CFormResult::Add(self::ORDER_SUPPLEMENT_FORM_ID, $arValues, "N")) { 
			CFormResult::SetField($iResultID, self::ORDER_SUPPLEMENT_FORM_FIELD_ORDER_ID, $ID); 
			CFormResult::SetField($iResultID, self::ORDER_SUPPLEMENT_FORM_FIELD_COMMENTS, $arFields["USER_DESCRIPTION"]);
			$sEvents .= "\n" . "Дополнительные поля заказа #" . $ID . " сохранены: #" . $iResultID;
		} else { 
		 	$sEvents .= "\n" . "Ошибка сохранения дополнительных полей заказа #" . $ID; 
		} 
	}
	} 
	 
	if ((strlen($sEvents) > 0) && self::DO_LOG) 
	AddMessage2Log("\n" . __CLASS__ . "\t" . __METHOD__ . "\n" . $sEvents); 
	return true; 
	} 
 ... 
} 
?> 

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

Написать первый комментарий:

Перетащите файлы
Ничего не найдено
Защита от автоматических сообщений
Нажимая кнопку "Отправить" вы соглашаетесь
с политикой конфиденциальности и обработки персональных данных.

Записная книжка разработчика

Примерно с 2013-го года пишу заметки по разработке сайтов на Битрикс.
Вы можете задавать уточняющие вопросы в комментариях- отвечаю или дополняю заметки по возможности.

Глобальные фильтры на всякие случаи жизни Просмотров: 47208 Глобальный фильтр, нужен чаще всего, для вывода определенных элементов, из общего массива... Наличие на складах в умном фильтре 1С-Битрикс, с автоматическим обнов... Просмотров: 1160 Задача: добавить возможность фильтрации товаров по складам в умном фильтре. Данные должны ... Создание блога с комментариями, оценками и просмотрами на сайте с 1С-... Просмотров: 24582 Если на вашем сайте требуется создание раздела с блогом или новостями, статьями. Записям в... Установка вебсервера на Apple M1 (нативный ARM стек), оптимизированны... Просмотров: 7441 Появилась задачка, установить стек MAMP (macOS, Apache, MYSQL, PHP) на рабочий ноутбук с п... Дополнительные параметры в меню Битрикс Просмотров: 20802 Иногда нужно присвоить какой-то функционал к конкретному пункту меню в битрикс. Например о... Вывести минимальную и максимальную цену в разделе каталога Битрикс. Просмотров: 3689 Что бы вывести минимальную и максимальную стоимость товаров, из каталога 1С-Битрикс, доста... Бонус за выполненный заказ на внутренний счет пользователя Просмотров: 5096 Задача: после того как заказ, в интернет-магазине, перешел в статус "Выполнен" начислить п... Проверка на наличие элементов, текущего пользователя, в заданном инфо... Просмотров: 6184 Если стоит задача, определить наличие элементов созданных пользователем на сайте. Можно во... Многосайтовость битрикс на разных доменах и поддоменах Просмотров: 63231 Часто спрашивают "как настроить многосайтовость Битрикс на разных доменах", решил записать... Кастомизация компонента восстановления пароля bitrix:system.auth.forg... Просмотров: 26834 Достаточно часто спрашивают как кастомизировать компонент восстановления пароля пользовате... Вывести разделы инфоблока в которых находится элемент Битрикс Просмотров: 17038 Если нужно в карточке товара или новости, вывести структуру разделов в котором находится э... Показ страницы сайта в боковом слайдере, на примере всплывающей формы... Просмотров: 3250 Если вы хотите сделать подгрузку любой страницы сайта в боковой слайдер, для этого в битри... Постраничная навигация в списке разделов Битрикс- catalog.section.lis... Просмотров: 9955 Если в магазине очень много разделов и хочется вывести их с постраничной навигацией: можно... Использование WebP изображений в 1С-Битрикс (на Битрикс: Веб окружени... Просмотров: 28200 WebP это современный формат сжатия изображений, который позволяет, при правильных настройк... Минимальная сумма заказа в корзине и оформлении заказа в 1С-Битрикс Просмотров: 9832 В этой заметке добавим возможность установки минимальной суммы заказа, в новом шаблоне кор... Показать только один тип цены в каталоге Битрикс Просмотров: 14977 Достаточно часто, при создании сайта на битрикс, можно столкнуться с такой проблемой: на с... Связанные элементы в карточке товара, с помощью catalog.section Просмотров: 15800 Достаточно часто, при разработке магазинов на битрикс, требуется выводить связанные элемен... Очистка корзины в 1С-Битрикс одним нажатием Просмотров: 29636 В стандартной корзине Битрикс не хватает кнопки для полной очистки корзины одним нажатием... Автоматически отгрузить заказ и сменить статус отгрузки, при выполнен... Просмотров: 975 Проблема: Заказы, на сайте, обрабатываются только в 1С. При этом 1С не работает с отгрузка... Цвета торговых предложений из Highload инфоблоков в списке товаров Просмотров: 14935 Подвернулся на доработку очень старый сайт, работал еще на 11-ой версии Битрикс. Выполнили...