retailcrm/bitrix-module

RestNormalizer не позволяет опустошить значение поля 'date'

pozdeiev opened this issue · 3 comments

Например, если в retailCrmBeforeOrderSend() задать значение

$order['delivery']['date'] = '';

то нормализер перепишет текущей датой. Это не то, чего ожидаешь, когда есть цель убрать дату доставки.

Файл RestNormalizer.php можно модифицировать без потерь при обновлении модуля, он должен находиться в /php_interface/retailcrm/RestNormalizer.php

Возможность "скопируй в /bitrix/php_interface/retailcrm и модифицируй" имеет как минимум пару изъянов.

  1. Она не следует рекомендации Bitrix размещать кастомизации в /local.
  2. Копирование файла "замораживает" класс, он перестаёт развиваться вместе с оригинальным кодом модуля, что в будущем может привести к фатальным ошибкам.

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

Можно ожидать изменение поведения оригинального RestNormalizer::setDateTime() относительно пустой даты?

gwinn commented

Пока нет, так как будут проблемы с форматом отправляемых данных в retailCRM