Начиная с 20-й версии в UMI.CMS реализован долгожданный функционал торговых предложений или SKU (Stock Keeping Unit, в переводе — складская учётная единица). Проще говоря, возможность добавления различных вариаций товара с различными характеристиками (цвет, размер, модификация), влияющими на цену. Если каждая такая единица, представлена на сайте отдельным объектом каталога (отдельной страницей), то категории товаров на сайте превращаются в длинные списки однотипных товаров, часто с одинаковой картинкой и малоотличающимся описанием, что совершенно не удобно для пользователя. Впрочем, это уже раритет! Такие сайты в прошлом...
История вопроса и как это реализовывалось на UMI.CMS...
Первоначально, единственная возможность реализовать функционал торговых предложений заключалась в создании отдельных страниц для каждой вариации товара, назовем их страницы "подтоваров". Подтовары создавались дочерними страницами для страниц товаров в структуре сайта. Далее в шаблоне страницы товара реализовывался вывод всех подтоваров в нужном виде. Этот вариант работает и по сей день, дает практически неограниченные возможности работы с данными и вывод вариаций в любом виде. Недостаток такого подхода - разрастается структура сайта и, как следствие, база данных. Далее возникают вопросы нагрузки на сервер, производительсности и т.п.
Второй шаг для удобного представления различных вариаций одного товара было появление опционных свойств товара. Если вариации товара отличались только по одному свойству - этого было бы достаточно, но вариации по 2-3 свойствам превращались в создание длинных справочников с перечислением всевозможных комбинаций этих свойств. Опционные свойства - это прекрасный инструмент, но по сути он предназначен для продажи дополнительных опций. Например, покупаете вы смартфон, а как опцию за дополнительную плату (или без нее) вам предлагается страховка или установка стекла.
Но технологии веб-разработки не стоят на месте! Реализация торговых предложений имеется во всех современных системах управления сайтами, в том числе и в UMI.CMS. Как обещано разработчиками системы, в 20-й версии реализован импорт торговых предложений из 1С. Очень легко торговые предложения добавляются и изменяются в ручном режиме редактирования сайта. Интуитивно понятный интерфейс для администратора сайта всегда был и остается одним из самых главных преимуществ UMI.CMS. Работа с торговыми предложениями - не исключение, все просто, понятно и наглядно. Новый функционал заслуживает самых высоких оценок.
Правда есть и "ложка дегтя"... Как бы заманчиво не выглядел образцовый шаблонный сайт, по факту его всегда приходится дорабатывать под нужды заказчика. В этом случае разработчик обращается к API системы и пишет дополнительный код. В документации по API UMI.CMS описание методов работы с торговыми предложениями и примеры кода очень скудные. Надеемся, что со временем документацию доработают, пока же пришлось искать примеры в системном коде.
Что нам удалось?! В одном из последних наших проектов стояла задача заполнить каталог интернет-магазина, импортируя Excel-евские прайс-листы поставщиков. Стандартный импорт-экспорт из модуля "Обмен данных" не подходил под нужды заказчика. Мы настроили пользовательский импорт из CSV. Написали свой скрипт преобразования данных из CSV в формат UmiDump с использованием торговых предложений.
Следующая проблема нас ожидала в отсутствии фильтрации по характеристикам торговых предложений. Конечно, это нужно большинству заказчиков. Решение: создание вспомогательных полей-справочников, участвующих в фильтре. Для автоматического заполнения этих полей мы написали скрипт, который раз в сутки проверяет все страницы и собирает данные от актуальных тороговых предложений в эти поля-справочники.
Импорт цен и складских остатков мы реализовали также отдельным пользовательским скриптом. Поле "vendor_code" у торговых предложений уникальное, по логике должно совпадать с кодом в 1С. Соответственно, у нас есть возможность распознать товар по уникальному коду и назначить для него цену. Параллельно реализован учет торговой наценки с различным коэффициентом для разных категорий товаров.
Итог: получилось красивое, компактное решение для Интернет-магазина с возможностью быстрого запуска магазина со стандартным шаблоном.