Суть - клиенты не могут держать товар в наличии но готовы его поставить в течении нескольких дней. многие просят именно штатно в 1С Битрикс. Интернет магазин, и в Интернет магазин + CRM Необходимо штатный функционал! Оформить заказ как обычный но в карточке не купить а кнопка "Под заказ" (при отсутствие товара - количество товара 0) если у товара в карточке установлено конкретно свойство - "доступен под заказ" в разделе торгового каталога товара (не всем товарам продавать в минус а конкретно какому); Цена на товар указана или не указана; Клиент оформляет заказ как обычный; Функционал подписка на товар тоже сохраняется но + купить под заказ;
Щас есть возможность связать HL блоки по ID между собой - предлагаю в умном фильтре учесть связи и не выводить если существует связь все лишнее что не попадает под правило - например у нас есть HL Бренд - к нему привязаны HL серии различные - так что при выборе Бренда - далее покажет только те серии какие связаны по ID с HL серий с данным Брендом но скроет все другие тем самым получиться строить связанные справочники и делать сложные отборы по ним. И таких связок может быть цепочка что даст нам строить многоуровневые справочники и отборы по ним и при реализации на HL мы получим и хорошую производительность и грамотные сложные отборы по многоуровневым справочникам.
Так же учесть это при редактировании в карточке товара если 1 свойство типа справочник связано с другим убрать при выборе значения все что не связано с выбранным значением 1 HL с другими.
Не раз приходилось сталкиваться что web сервер находиться на хостинге но то на нем неверно настроена работа с почтой то клиенту хочется работать чтобы почта шла только через его корпоративный почтовый сервер, неплохо на php эти возможности реализованы на классе PHPMailer,. Предлагаю сделать гибкую систему для отправки сообщений и вывести её настройку в настройки главного модуля, как то работать использую функцию mail хостинга или работать через внешний SMTP любой какой мы задаем в настройках в том числе и через защищенные соединения с авторизацией, как то реализовано во многих CMC где за основу либо написан подобный либо взят класс PHPMailer.
Сейчас у нас элементы всех инфоблоков будь то и справочники и товары и новости хранятся все в 1 таблице b_iblock_element собственно переработать структуру базы для хранения реально в разных таблицах: Например у нас есть инфоблоки типа каталог и инфоблоки типа справочник (например справочник по запчастям или каким другим данным) что мы щас имеем все свалено в 1 кучу то есть все элементы в b_iblock_element - в данном варианте у нас есть только возможность хранить свойства инфоблоков в разных таблицах, считаю что такой подход не верен зачем нам все вносить в 1 таблицу элементов b_iblock_element ведь их может быть у нас товары + справочники огромное количество и делая выборку например по инфоблоку в котором у нас 100 записей элементов, мы вынуждены выбирать из 10 000 000 записей, потом еще и выбирать по свойствам из другой таблице (если храним свойства в отдельной).
Доработайте структуры базы данных - реально разнесите разные инфоблоки их элементы и свойства по разным таблицам.
Например 1 типу инфоблоков и каждому инфоблоку (задаеться по желанию) можно будет назначить: свою группа таблиц в которых например храняться товары данного инфоблока или конкретно 1 справочник который может быть огромного размера.
В идеале еще иметь возможность задать при создании и сами инфоблоки (например у нас несколько огромных инфоблоков справочников) - хранить их элементы каждый в своей таблице и свойства в связанных таблицах (хотя если мы будем иметь каждую группу элементов инфоблока в своей таблице не обязательно свойства выносить в отдельную - но это и так задается по желанию щас).
Тоесть мы создаем инфоблок и по желанию все его и элементы и свойства можем задать хранить в отдельной таблице и создается своя группа таблиц для данного инфоблока с его уникальным префиксом в имени таблиц, при удалении инфоблока вся группа таблиц удаляется..
Ввести в инфоблоки для типов полей (строка, число) возможность как опция задать свойство - уникальное с проверкой на уникальность при вводе "на лету". Возможность указать по каким инфоблокам и именам полей (даже при хранении их в раздельных таблицах) проверять уникальность приветствуется.
При импорте XML сделать возможность указать в какой конкртно инфоблок какого типа загружать данные и добавить сопоставления полей инфоблока и файла импорта как щас в импорте из CVS