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

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

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

Просмотров: 9524 | Комментариев: 0
Внимание! все сообщения проходят премодерацию. Ваше сообщение появится после проверки
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Защита от автоматических сообщений
Загрузить файл
Нажимая кнопку "Отправить", Вы принимаете условия
Политики конфиденциальности и обработки персональных данных

Цены на разработку сайта или приложения

Что бы узнать точные стоимость и срок разработки:
достаточно, как можно подробнее, заполнить опросник и выслать на электронную почту info@bazarow.ru.
После ознакомления, смогу задать уточняющие вопросы и оценить.

В стоимость разработки уже включены и не требуют доплат:
  • Лицензия на необходимую редакцию 1С-Битрикс: Управление сайтом и лицензии на дополнительные модули, если требуются для конкретного проекта.
  • Применение технологии композитный сайт: Оптимизация скорости работы проекта под нагрузками.
  • Один год, бесплатной, технической поддержки от 1С-Битрикс
Интернет-магазин от 250 000 рублей
Полно-комплексная разработка интернет-магазина любой сложности. Интеграция с 1С, службами доставки и оплаты. Внутренняя СЕО оптимизация перед запуском.
Сайт компании от 200 000 рублей
Сайт с каталогом товаров или услуг, без функционала магазина. Включает формы обратной связи внутри карточек каталога. Любое количество статичных и динамичных разделов.
Инфоресурс от 200 000 рублей
Портал или доска объявлений с большим количеством разделов. Возможность включения форумов, блогов, регистрации пользователей, внутри сайтовая социальная сеть.
Сайт на готовом решении от 40 000 рублей
Подбор решения из более 200-от готовых сайтов, в соответствии с тематикой бизнеса. Запуск сайта на сервере или хостинге, со всеми настройками. Не большие доработки под задачу.
Мобильное приложение от 200 000 рублей

Кроме сайтов, занимаюсь разработкой мобильных приложений на технологии Apache Cordova. Это полноценные приложения, которые публикуются и распостранияются через официальные магазины GooglePlay и AppStore

  • Полная интеграция с базой данных, основного сайта.
  • Вывод каталогов продукции и услуг, прямо в приложении.
  • Персональные разделы пользователей с историей заказов.
  • Прямой доступ к устройству: GPS, камера, звонки и медиабиблиотека

attention