retailcrm / bitrix-module

Bitrix integration plugin
http://www.retailcrm.ru
MIT License
12 stars 43 forks source link

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

Closed pozdeiev closed 4 years ago

pozdeiev commented 5 years ago

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

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

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

Evgeniy-Goroh commented 5 years ago

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

pozdeiev commented 5 years ago

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

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

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

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

gwinn commented 4 years ago

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