Дело в том, что данный интернет-магазин является частью большого проекта о авиакомпаниях и самолетах России и Мира , общая посещаемость которого уже сейчас превышает 15000 уникальных посетителей в день, и который построен на редакции продукта "Эксперт". А новый интернет-магазин реализован на дополнительном сайте продукта и нашем .
Использование собственного модуля позволило заказчику сэкономить на переходе на более старшую редакцию (Бизнес) на этапе стартапа магазина, а нам позволило легко реализовать некоторые интересные фичи, такие как:
1. предоставить три возможных логических действия с товарами (покупка товаров, которые есть в наличии на складе, заказ товаров, которых нет в наличии на складе, с почтовым уведомлением покупателей при поступлении товара на склад, возможность отложить понравившийся товар в список будущих покупок);
2. реализовать упрощенную процедуру оформления заказа;
3. реализовать собственный нестандартный интерфейс оформления заказа и истории заказов
и другие.
Но, самое интересное на этом сайте это не использование стороннего модуля для организации он-лайн продаж, а спроектированный и разработанный нами "Контроллер" -- сердце публичной части сайта.
"Контроллер" -- это попытка реализации в 1С-Битрикс паттерна программирования Front controller, когда сотни страниц каталога сайта реально имеют всего одну точку входа с одним комплексным компонентом! В этом отношении архитектура публичной части сайта напоминает архитектуру сайта построенного на CMS Joomla!
"Контроллер" генерирует ЧПУ страниц (в зависимости от выбранных параметров фильтра.) И наоборот, по полученному из адресной строки браузера URL (состоящему в том числе из свойств элемента не включенных в публичную форму фильтра) "Контроллер" генерирует контент страницы, а так же ее TITLE, KEYWORDS и DESCRIPTION по определенному алгоритму. Так же, разработана возможность позволяющая при необходимости легко вставлять уникальное содержание включаемых областей на любых виртуальных страницах сайта.
Т.е. мы имеем огромную комбинацию страниц каталога в зависимости от наложенных фильтров и каждая из них имеет свой собственный красивый URL, TILTE и META-данные.
Полностью алгоритм со всеми его заморочками и исключениями не раскрываю, но основная суть его в том, что:
все свойства фильтра -- есть привязка к элементам отдельных справочников инфоблоков, так как по мимо непосредственно названия свойства и вариантов значений свойств нам потребовался еще ряд полей для каждого значения используемых для хранения значений в различных падежах для генерации META данных в целях SEO и других задач.
Плюс правила построения и парсинга ЧПУ с использованием механизмов ЧПУ комплексных компонентов 2.0.
Получилось очень даже забавно. Например, получаем сборные модели (раздел) самолетов авиакомпании Аэрофлот - Российские авиалинии (свойство) в масштабе 1:144 (свойство), вторая страница:
или, получаем сборные модели производства компании "Hasegawa" (раздел) в масштабе 1:200 (свойство):
красивый URL, красивые META-данные и все это генерируется в автоматическом режиме по заданным алгоритмам. Красота!
Администратору требуется только заносить товары в инфоблок в административной части сайта
Сейчас интернет-магазин проходит тестирование, мы будем благодарны вам за багрепорт.










Сильно отличается реализация от компонента?
Заведомо несуществущая страница:
Статус 200 Ok
В данном случае сформировался фильтр и наложился на компонент catalog.section и он просто вывел пустой результат по фильтру.
Да... красивее бы на 404 пнуть посетителя... Наверное надо добавить условие если компонент возвращает 0 элементов то 404 ставить. Однако в таком случае будет 404 и в случае если зайдем в пустой раздел. Помню уже я размыщлял над этим и видимо не доразмышлял...
AddEventHandler('main', 'OnEpilog', '_Check404Error', 1); function _Check404Error() { if (defined('ERROR_404') && ERROR_404=='Y') { GLOBAL $APPLICATION; $APPLICATION->RestartBuffer(); include $_SERVER['DOCUMENT_ROOT'].'/bitrix/templates/'.SITE_TEMPLATE_ID.'/header.php'; require ($_SERVER['DOCUMENT_ROOT'].'/404.php'); include $_SERVER['DOCUMENT_ROOT'].'/bitrix/templates/'.SITE_TEMPLATE_ID.'/footer.php'; } }А расскажите, как оно в плане реализации, дольше обычного?
А как с масштабируемостью, если вдруг клиент дополнительного функционала пожелает?
И насколько это решение переносимо? Можно будет на нём другой сайт сделать или там всю работу придётся начинать с нуля?
А на счет переносимости не понял, что значит другой сайт на нем сделать?
А модуль "Киоск" внедрен уже более чем на 40 сайтах.