Ругается на:
if (!empty($order_email)){
$emailPropValue->setValue($order_email);
}
Вы достаёте:
$emailPropValue = $propertyCollection->getUserEmail();
У Вас видимо нету свойства заказа с галочкой: Использовать как E-Mail: Значение свойства будет использовано как E-Mail при регистрации нового пользователя
Аль сие есть, то может быть не активна, Вам нужно сделать свойство активным и служебным, тогда он не появится в оформление заказа, но значение с данного скрипта будет записываться в заказ.