- PVSM.RU - https://www.pvsm.ru -
Так получилось, что последние полтора года я плотно работаю с SAP hybris [1]. В России к ecommerce-платформам наблюдается большой интерес, поэтому я решил данной статьей на основе своего опыта рассказать просто и доступно об этой теме.
Фундамент. Для создания любого сложного ПО нужно подготовить «фундамент», который впоследствии сделает разработку управляемой, а всю систему обозримой и понятной для архитектора. Этот фундамент представляет собой «многослойный пирог» из универсальных, стандартных и хорошо зарекомендовавших себя технологий и продуктов. Правильный выбор этого набора во многом определяет развитие системы на ближайшие годы. Примеры составляющих такого «пирога» — ORM [2], CMS [3], PCM [4], Search Engine, из конкретных технологий — Hadoop [5], Apache ServiceMix [6], NodeJS [7] и другие. Набор этих технологий зачастую определяется опытом команды разработчиков, а не только и не столько потребностями бизнеса, поэтому часто можно встретить системы на Scala [8], Erlang [9] или Haskell [10]. В eCommerce-платформах нередко встречается такой зоопарк технологий — Java, C++, Perl, C#. Так выходит, когда вендор приобретает различные компоненты у третьих компаний или сами компании целиком. Нам с платформой повезло — там только Java.
Таким образом, eCommerce-платформа представляет собой органичный, подготовленный, настроенный, отлаженный, упакованный и документированный набор таких технологий. Под многие типичные задачи в e-commerce вендором разработаны готовые блоки, которые требуют лишь небольшой «подгонки» под задачу, а некоторые реализованы на абстрактном уровне и требуют «допиливания напильником». Чем органичнее переплетены между собой технологии, чем продуманнее архитектура, тем легче будет расширять ее под свои задачи все ближайшие годы.
Напишем все сами? Конечно, можно разработать магазин и без промышленной платформы, собрав «пирог» самому. Вопрос в том, сколько это займет времени и удастся ли сохранить через год-два хорошую архитектуру, масштабируемость, производительность, безопасность, расширяемость, надежность, документированность. Хороший и редкий пример, когда это удалось для крупного e-commerce — Amazon.com [11]. Опыт говорит о том, что при сегодняшних требованиях к качеству, безопасности, функциональности и темпам развития писать все «с нуля» в итоге выходит очень дорого, долго и рискованно.
Нужна ли вам eCommerce-платформа? Владельцам интернет-магазинов перед принятием решения о платформе стоит подумать о том, где им видится их бизнес через лет пять. Если в этом будущем есть слова «мультирегиональность», «мультиязычность», «мультивалютность», «огромный ассортимент», «большой траффик», «персонализация», «сотни складов», «сотни сотрудников в процессе», то уже сегодня нужно искать платформу, поддерживающую все перечисленное.
При использовании платформы грандиозная задача по построению большого интернет-магазина становится вполне обозримой и управляемой. На передний план выходят особенности автоматизации бизнеса, интеграция с внутренними системами, специфичные бизнес-процессы, пользовательский интерфейс, особенности товаров и услуг. Стоимость разработки и внедрения складывается в существенной части из этих компонентов.
Сроки. Невозможно назвать даже среднее время, но можно назвать минимальное по собственному опыту. У нашей команды есть успешный опыт, когда система выведена в продакшн через 3 месяца после подписания контракта. Первый релиз в «продакшн» был через два месяца после начала работ — каталог без возможности заказа товара. Команда на таком проекте насчитывала шесть человек, включая меня. Есть и другие примеры, где команда и сроки больше.
Для e-commerce срок проекта очень важен. Если есть возможность увеличить команду, сократив сроки — это надо делать (как рассказывал [12] Ф.Брукс, так не всегда). Пока мы разрабатываем новый сайт, развитие существующего заказчик останавливать никогда не будет. Поэтому каждый дополнительный месяц создает огромные риски того, что проект так и не будет запущен.
Стоимость. Грубо оценить стоимость такого проекта можно, перемножив планируемую длительность проекта, средний размер команды и среднюю стоимость человеко-дня специалистов. Стоимость лицензий обычно ниже, чем альтернативная стоимость покупки, разработки и интеграции в единый комплекс сопоставимого по функциональности ПО.
Чтобы не ошибиться с выбором eCommerce-платформы, стоит обратить внимание на
Я бы не советовал обращать много внимания на:
С одной стороны, использование платформы позволяет запустить магазин за считанные месяцы. C другой стороны, ни одна e-commerce-платформа не представляет собой готовый шаблон магазина, который сегодня купили, галочки в «админке» покликали и — запустили. То есть, технически это можно, конечно… Но в 100% случаев нужно допрограммирование под особенности — как внутренние информационные системы клиента, его процессы, нашего рынка, нашего пользовательского опыта, автоматизацию миграции данных и т.д.
eCommerce-система включает в себя взаимодействие с покупателем по разным каналам — от колл-центра и веб-витрины до мобильного приложения и киосков.
Управление мастер-данными e-commerce. Сюда входит набор ПО по управлению мастер-данными интернет-коммерции — контентом, акциями и другими важными объектами e-commerce. Некоторые компоненты этого блока, как управление товарами, могут использоваться вне интернет-магазина как самостоятельная система. Проект по внедрению платформы включает настройку и расширение этого ПО.
Веб-витрина. С одной стороны, интернет-магазин — это пусть и большой, но веб-сайт. Дизайн-концепция, дизайн-макеты, бэкофис, фронтэнд — HTML-верстка, javascript-автоматизация, обмен данными с внутренними системами, информационное наполнение — типичные этапы, привычные для любого проекта веб-сайта.
Бизнес-процессы и документооборот. С другой стороны, это бизнес-процессы по автоматизации интернет-торговли. Сюда входит и работа с каталогом товаров, и маркетинг, склады, логистика и колл-центр. Когда в процессе продажи товара участвует много людей, важно обеспечить прозрачную и надежную систему документооборота.
Прочие каналы взаимодействия с клиентом. Мобильное приложение поставляется в виде рабочего прототипа и набора API. Версия для киосков и версия для мобильных устройств представляют собой дополнительные версии веб-витрины, использующие почти тот же функционал и те же данные, что и основной веб-сайт, но в другой «обертке».
Специальная функциональность. Сюда же входят такие важные темы как возвраты, бракованный товар, частичная оплата, системы лояльности, расчет сроков, стоимости и возможности доставки, триггерные и массовые рассылки.
Поиск. В области электронной коммерции поиск — один из важнейших компонентов системы, так как прямо влияет на конверсию посетителей в покупателей.
Каждая из вышеперечисленных тем имеет в платформе «заготовку» разной степени проработанности, это может быть готовый к подключению модуль, а может быть «полуфабрикат». У готовых модулей есть минус в том, что их не всегда можно легко изменить под специфичные требования, да и изучать их сложнее — неясность и непрозрачность логики требует большего времени на изучение и прототипирование. У «полуфабрикатов» этой проблемы нет, но они требуют большего времени на настройку и доработку. Зато у них есть плюс в том, что система получается стройнее, безопаснее и надежнее за счет более цельной и масштабируемой архитектуры.
На основе одного «полуфабриката» можно сделать сотни различных вариантов реализации функционала, и только один из них может быть реализован в демо-магазине, который презентуют клиентам на первых встречах. Именно поэтому нельзя называть увиденное в демо-магазине «best practice», так как это всего лишь одна из возможных реализаций очень гибкого механизма.
Профессионализм архитектора eCommerce-системы заключается в том числе и в понимании этой гибкости, ограничений и возможностей. Мы почти никогда не говорим клиентам «нет, это сделать нельзя», потому что на современных ecommerce-системах можно сделать абсолютно всё той или иной ценой.
В состав eCommerce-платформы входит набор инструментов бэкофиса, автоматизирующих работу специалистов, вовлеченных в процессы eCommerce со стороны интернет-магазина — операторов колл-центра, маркетолога, контент-менеджера, продукт-менеджера и других. Поскольку многие из этих компонентов часто дорабатываются под конкретные процессы, в идеале они должны быть реализованы на единой технологии, с едиными интерфейсами и подходами к расширению.
Крупные платформы изначально спроектированы на большие объемы данных, на сложные бизнес-процессы, на высокую посещаемость, производительность и доступность. Например, кластеризация и кэширование в них выполнены на промышленном уровне.
Платформа имеет тысячи мест, куда можно «вклиниться» программисту со своей логикой, переопределить или расширить стандартное поведение системы. Разработка интернет-магазина представляет собой проектирование, разработку и тестирование таких модулей отдельно и в составе платформы. Как видно, тут есть два граничных варианта — заменить всю бизнес-логику на свою или использовать поставляемую в дистрибутиве.
В разработке используются известные технологии типа JSP/Spring/Java, что упрощает подключение к проекту программистов без опыта с конкретной eCommerce-платформой.
С точки зрения интернет-покупателя поиск — это получение товаров или страниц сайта в ответ на указанные им ключевые слова. Чем ближе результаты поиска к его запросу, тем выше вероятность, что он купит у вас, а не у конкурентов. Поэтому над улучшением поиска непрерывно работают все крупные интернет-магазины.
Можно написать поиск самим «с нуля». Так делает подавляющее большинство интернет-магазинов с маленьким ассортиментом и траффиком. Но с ростом товарной базы и траффика поиск работает медленнее, интернет-магазин теряет покупателей, и, начиная с какого-то момента, становится ясно, что нужно полностью переписывать механизм на более сложный или подключать внешний «поисковый движок» (search engine).
Упрощенно, «поисковый движок» — это специализированная база данных, которая укладывает информацию о товарах и страницах так, что ее потом можно вынимать быстро и часто, используя при надобности довольно сложные запросы. Эта возможность позволяет применять «поисковые движки» не только для поиска по ключевым словам, но и для поиска, например, по характеристикам товаров или для отображения списка товаров выбранной рубрики. Поиск с постепенным уточнением запроса через удобный интерфейс покупателя — must have для любого крупного магазина. Для «неплатформенных» магазинов эта функциональность — одно из самых узких мест с точки зрения производительности и гибкости.
Среди «поисковых движков» в области e-commerce пользуются уважением Apache SOLR, ElasticSearch, Endeca, Sphinx. Подключение к интернет-магазину поискового движка может быть достаточно трудоемкой процедурой, если все делать как следует. В e-commerce-платформах обычно этот вопрос решен с одним из продуктов в версии «из коробки».
Например, во всех наших проектах используется Apache SOLR, и все листинги товаров также построены на запросах к нему. Такой подход позволяет иметь громадный запас по производительности.
Каталог товаров — основное, с чего начинается интернет-магазин. Данные о товарах могут быть использованы, например, на ценниках в магазине или в печатном каталоге. Хорошей практикой является хранение т.н. «обогащенных данных о товарах» — изображений, технических характеристик (в т.ч. динамических), приложенных файлов — в отдельной системе, специализированной базе знаний по товарам. Такие системы могут являться отдельным продуктом, а могут поставляться в составе платформ.
Общеупотребительное название для таких систем — PIM (Product Information management) или PCM (Product Content Management).
Прямого отношения к интернет-магазину эти системы не имеют, т.к. их назначение — автоматизация управления информацией о товарах и их группах. Если планируется отображать их на веб-сайте, то это уже дело системы управления контентом (CMS), о которой я расскажу в следующем разделе.
В типичный проект по разработке интернет-магазина на eCommerce-платформе входит настройка и внедрение PIM/PCM, а также интеграция с внутренними учетными системами. Обычно разработка каталога — это первое, с чего начинается проект.
Например, в интернет-магазине РИВ ГОШ [15] часть товаров имеет единицу измерения «граммы», есть варианты по цвету и объему, товар может быть привязан к нескольким рубрикам из различных иерархий рубрик, часть из которых не являются навигационными. Товары могут быть сложно связаны друг с другом, а часть информации может подгружаться из различных источников автоматически.
За компоновку и отображение страниц отвечает система управления контентом. Это тоже обязательный компонент любой eCommerce-платформы, так как, как уже говорилось выше, интернет-магазин — это еще и просто большой сайт. Такие задачи, как размещение баннеров, добавление пункта меню, добавление страницы с информацией, персонализация отображения отдельных блоков и многие другие выполняются в CMS.
В eCommerce-платформу уже входят многие готовые компоненты («виджеты»), которые очень вероятно пригодятся в любом магазине, такие как «корзина», «листинг товаров», «карточка товара» и другие. Также с помощью CMS управляют и триггерными рассылками, и страницами мобильной версии.
В CMS входит также персонализация страниц и компонентов. Система будет по-разному компоновать страницы для разных пользователей, точно следуя логике. Для покупателя, поставившего бренду лайк в фейсбуке, при заходе на сайт будет отображен соответствующий баннер, главная страница будет брендирована, а в меню появится новый пункт.
В типичный проект по разработке интернет-магазина на eCommerce-платформе входит разработка, переработка или настройка перечисленных выше компонентов-виджетов.
Например, в проекте 1Платформа для компании Технониколь CMS выдает разные шаблоны страниц и компонентов-виджетов для мобильной версии / версии для десктопа, при этом функциональность страниц и компонентов идентична.
Это самая eCommerce-часть платформы. После того, как заказ был оформлен и, возможно, оплачен покупателем, запускается цепочка его обработки. В каком-то смысле это документооборот: заказ может быть разбит на несколько, по каждому должны сформироваться поручения на конкретные склады, должны обрабатываться нештатные ситуации вида «ой, товара уже нет» или «заказ подозрительный — надо проверить перед отгрузкой».
Это самая «абстрактная» часть платформы, содержащая много того, что практически невозможно показать на демонстрации, т.к. без интеграции это работать не будет. Здесь как у айсберга — немного видимых пользовательских интерфейсов, но очень большая и массивная «подводная» часть.
В типичный проект по разработке интернет-магазина на eCommerce-платформе входит проектирование или изучение бизнес-процессов, настройка логики обработки заказа, интеграция с WMS, с платежными шлюзами, выгрузка заказа в ERP или внешнюю систему управления заказами.
Автор: raliev
Источник [16]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/internet-magaziny/83973
Ссылки в тексте:
[1] SAP hybris: http://hybris.com
[2] ORM: https://ru.wikipedia.org/wiki/ORM
[3] CMS: https://ru.wikipedia.org/wiki/CMS
[4] PCM: http://en.wikipedia.org/wiki/Product_information_management
[5] Hadoop: https://ru.wikipedia.org/wiki/Hadoop
[6] Apache ServiceMix: https://ru.wikipedia.org/wiki/Apache_ServiceMix
[7] NodeJS: https://ru.wikipedia.org/wiki/Node.js
[8] Scala: https://ru.wikipedia.org/wiki/Scala_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)
[9] Erlang: https://ru.wikipedia.org/wiki/Erlang
[10] Haskell: https://ru.wikipedia.org/wiki/Haskell
[11] Amazon.com: http://amazon.com
[12] рассказывал: https://ru.wikipedia.org/wiki/%D0%9C%D0%B8%D1%84%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D1%87%D0%B5%D0%BB%D0%BE%D0%B2%D0%B5%D0%BA%D0%BE-%D0%BC%D0%B5%D1%81%D1%8F%D1%86
[13] Gartner: https://www.hybris.com/en/downloads/analyst-report/gartner-magic-quadrant-digital-commerce-2014/716
[14] Forrester: https://www.hybris.com/en/downloads/analyst-report/forrester-wave-b2c-commerce-suites-2015/718
[15] РИВ ГОШ: http://shop.rivegauche.ru
[16] Источник: http://habrahabr.ru/post/251461/
Нажмите здесь для печати.