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

2936  |  0

Как многим известно, в интернет-магазине на Битрикс имеется ограничение на количество символов в комментарии к заказу. Ограничение в 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 заказа мы можем получить полный комментарий покупателя.

В общем-то все. Надеюсь Битрикс добавит возможность снимать ограничение на комментарий к заказу более кошерно, через админку

Расскажи друзьям-то:
Уважаемый читатель! В связи с участившимся спамом в комментариях, возможность писать доступна только для зарегистрированных пользователей
Зарегистрироваться Войти Напомнить пароль
Или войти через социальную сеть:

© 2011—2016 Частный вебмастер: ИП Базаров, ОГРНИП: 315784700173692. Работает на 1С-Битрикс.
Копирование материалов запрещено: "ГК РФ, часть 4, раздел VII: Права на результаты интеллектуальной деятельности".

Информация размещенная на сайте, не является публичной офертой. Политика конфеденциальности
x
Как к Вам обращаться? *
Ваша электронная почта: *
Доп. материалы (логотип, тех. задание):
 
Обзор
Текст сообщения: