34
Автоматизация дистрибуции информации о наличии и цене товара для различных каналов генерации лидов в сегменте B2C Андрей Богомолов, основатель проекта ERPVault.com Андрей Коротких, PI-consult.by, ведущий разработчик [email protected] Минск, 2011

Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

Embed Size (px)

DESCRIPTION

Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов генерации лидов в сегменте B2C

Citation preview

Page 1: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

Автоматизация дистрибуции информациио наличии и цене товара для различных каналов генерации лидов в сегменте B2C

Андрей Богомолов, основатель проекта ERPVault.comАндрей Коротких, PI-consult.by, ведущий разработчик

[email protected]

Минск, 2011

Page 2: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

обеспечить масштабируемость доставки информации о наличии, цене и характеристиках товара;обеспечить своевременность, точность, полноту, различное представление информации;SLA 99.9%, 4 ч., 24/7/365

БИЗНЕС-ЗАДАЧИ

Page 3: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

веб сайт компании;веб сайты дочерних компаний (до 8);поисковые системы на порталах рекламных партнеров (до 64);веб-сайты компаний-партнеров с самостоятельным формированием цены, сроков поставки и ассортимента по условным группам (до 64);мобильное приложение Android;мобильное приложение iOS;online API для настольных систем дилеров.

КАНАЛЫ ГЕНЕРАЦИИ ЛИДОВ|| требования к масштабируемости

Page 4: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

Время обновления информации <60 минутПериод обновления: 2 раза / 24 чАссортимент: ~200 тыс. наименований товараКоличество запросов: 2*10^6 / 24ч, Uniform DistributionИсполнение запроса: 0.1-4 с

ДОП. ТЕХНИЧЕСКИЕ ТРЕБОВАНИЯ

Page 5: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

классическая распределенная система

=> наследует общепринятые требования по:performance, scalability, simplicity, modifiability, visibility, portability,reliability

ДАНО

Page 6: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

Scalability of component interactionsGenerality of interfacesIndependent deployment of componentsIntermediary components to reduce latency, enforce security and encapsulate legacy systems

ТЕХНИЧЕСКИЕ ЦЕЛИ

Page 7: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

SOA

vs

Client/Server

vs

Пакетный обмен

АРХИТЕКТУРА РЕАЛИЗАЦИИ

Page 8: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

SOAP?CORBA?COM/DCOM?ReST (Representational State Transfer)????

ВЫБОР ПРОТОКОЛОВ ВЗАИМОДЕЙСТВИЯ

Page 9: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

Client–serverStatelessCacheableLayered systemUniform interfaceHTTP-based

СВОЙСТВА ReST

Page 10: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

Идентификация ресурсовУправление ресурсами через представлениеSelf-descriptive сообщенияHypermedia как "движок" стостояний

ПРИНЦИПЫ ПОСТРОЕНИЯ ИНТЕРФЕЙСА

Page 11: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

POSTGETPUTDELETE

???

RESTful Web Service HTTP методы

Page 12: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

XMLJSONGoogle Protocol BuffersTXT/CSVXHTML

???

ОБМЕН ДАННЫМИ

Page 13: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

LAMP

vs

J2EE

???

ТЕХНИЧЕСКАЯ РЕАЛИЗАЦИЯ

Page 14: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

веб сайт компании, веб сайты дочерних компаний – автоматическая и ручная репликация из ERP системы с различными параметрами по ассортименту, формированию цен, расположению товара;поисковые системы на порталах рекламных партнеров, веб-сайты компаний партнеров с самостоятельным формированием цены, сроков поставки и ассортимента по условным группам – виджеты с авторизацией и настройками для каждого из партнеров (ассортимент, цены, доставка и т.д.);мобильное приложение Android, мобильное приложение iOS – отображение информации через точку входа для мобильных устройств;online API для настольных систем дилеров – запрос к специальной точке доступа при помощи POST и GET, получение результата в удобном виде (XML, CSV, текст и т.д.).

ПРИМЕР ВНЕДРЕНИЯ: Моторлэнд

Page 15: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

Все необходимые методы для отображения формы поиска, отправки запросов, получения результатов,находятся в подключаемом JavaScript-классе API.

Используется механизм AJAX, который отправляет данные поисковой формы методом GET и получает данные в виде JSON. Эти данные обрабатываются и отображаются клиенту в виде HTML.

Примеры запросов

Page 16: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

Функция JavaScript для отправки данных поисковой формы и обработки результатов:

this.submit = function() {// Получение данных формы

var myargs = this.getFormData( 'erpvault_ucp_searchform' );

// Инициализация класса JsHttpRequest для отправки AJAX запросаvar req = new JsHttpRequest();

// Функция для обработки результатов

req.onreadystatechange = function() {if ( req.readyState == 4 ) {// Обработка ошибок и вывод результатов// …

}}

// Отправка запроса

req.open( 'GET', this.url, true );req.send( myargs );

}

Примеры запросов

Page 17: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

Данные отправляется методом GET, массив имеет вид:

Array( [auto_brand] => 6 [auto_model] => 160 [part_type] => 5...)

Заданы параметры для поиска запчастей по марке, модели и названию запчасти (индексы берутся из элементов SELECT поисковой формы).

Примеры передачи данных

Page 18: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

Данные ответов генерируются на серверных компонентах системы дистрибуции контента (PHP). В соответствии с полученными параметрами делается выборка из базы данных MySQL, полученные данные обрабатываются, преобразуются в JSON и передаются во Frontend.Пример кода PHP (утрировано для облегчения восприятия):// Инициализация класса JsHttpRequest$JsHttpRequest = new JsHttpRequest( );// Обработка параметров GET, идентификация партнера, получение параметров…// Запрос к БД$sql = "SELECT parts.* FROM parts WHERE true";$sql .= " AND auto_brand =".$db->escape( $_GET['auto_brand'] ).";$sql .= " AND auto_model =".$db->escape( $_GET[auto_model'] ).";$sql .= " AND part_type =".$db->escape( $_GET['part_type'] ).";if ( $tbl = $db -> Exec ( $sql ) )while ( $res = $tbl -> FetchAssoc() ) {

// Обработка данных// ..

}}

// Преобразование результатов в JSON и отправка во Frontend//..

На выходе мы имеем данные в формате JSON, которые класс JavaScript получает, обрабатывает и выводит клиенту.

Примеры ответов

Page 19: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

ПРИМЕР ИМПЛЕМЕНТАЦИИ: виджет

Для вызова виджета используется JavaScript-код на странице клиента. Также можно задать индивидуальные CSS-стили для отображения формы поиска и результатов и элемент HTML, в котором будет отображаться содержимое виджета.

При вызове виджета можно указать уникальный ключ идентификации партнера, кодировку для генерации контента и т.д.

Page 20: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

ПРИМЕР ИМПЛЕМЕНТАЦИИ: виджет

Для вызова виджета используется JavaScript-код на странице клиента. Также можно задать индивидуальные CSS-стили для отображения формы поиска и результатов и элемент HTML, в котором будет отображаться содержимое виджета.

При вызове виджета можно указать уникальный ключ идентификации партнера, кодировку для генерации контента и т.д.

Page 21: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

ПРИМЕР ИМПЛЕМЕНТАЦИИ: виджет<style>.erpvault_ucp_hidden{ display: none; }.erpvault_ucp_parts_title{ margin: 0px 0px 15px 0px; }.erpvault_ucp_searchform_table{ background-color: #deebfb; }.erpvault_ucp_searchform_td1{ padding: 5px; }.erpvault_ucp_searchform_td2{ padding: 5px; }.erpvault_ucp_searchform_footer{ padding: 5px; }.erpvault_ucp_searchform_submit{ font-size: 12px; }.erpvault_ucp_searchform_cancel{ font-size: 12px; }.erpvault_ucp_search_results_div{ margin: 15px 0px 20px 0px; }.erpvault_ucp_err{ color: red;}.erpvault_ucp_parts_table{ width: 100%; border-collapse: collapse; }.erpvault_ucp_parts_th{ border: 1px solid #dddddd; padding: 2px; background-color: #f2f2f2; }.erpvault_ucp_parts_td{ border: 1px solid #dddddd; padding: 2px; }.erpvault_ucp_loading_img { margin: 0px 3px 0px 3px; vertical-align: middle; }.erpvault_ucp_footer { margin: 15px 0px 15px 0px; color: #666666; }

</style>

<div id="erpvaultUcpSearchDiv"></div>

<script language="JavaScript" src="http://www.motorland.by/search_api/" type="text/javascript"></script>

Page 22: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

Примеры GUI

Page 23: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

Примеры GUI

Page 24: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

Примеры каталога уникальных URL

Page 25: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

Примеры каталога уникальных URL

Page 26: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

ПРИМЕР МОБИЛЬНОГО ПРИЛОЖЕНИЯПлатформа: Android

Motorland – мобильное приложение для поиска автозапчастей и двигателей б/у

Актуальная информация о наличии и цене

Более 180 000 ассортиментных позиций в наличии на складах в г. Минске и в товаропроводящей сети в Республике Беларусь

Ассортимент обновляется 2 раза в день из системы планирования ресурсов предприятия ERPVault™

Функциональные возможности:Поиск запчастей

Публичный стол заказов

Запрос в стол заказов

Где купить? – Интерактивная карта

Page 27: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

Технические особенности

Интерфейсы приложения оптимизированы для работы на современныхмобильных устройствах на базе ОС Android версии 1.6 с HVGA (320x480), что позволяет охватить наибольшее количество пользователейВозможна работа приложения с другими версиями ОС Android (1.5+) и распространенными разрешениями экрана с оптической плотностью ldpi (120), mdpi (160), hdpi (240)Размещение элементов управления, скорость обработки и представление информации позволяет за минимальное время получать необходимую информацию о наличии и цене автозапчастей б/у, интерактивно устранять информационную асимметрию, исторически обусловленную свойствами товара и обычаями делового оборота в данном сегменте рынкаПрименяется эффективная технология обмена данныхСерверная часть приложения позволяет держать высокую нагрузку, построена на собственной архитектуре "облачных" вычисленийПриложение использует такие технологические особенности мобильных устройств, как: сенсорный дисплей, GPS-приемникТщательно тестировано и рекомендовано для работы в 3G|3G+ сетях Velcom

Page 28: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

ПРИЛОЖЕНИЕ В РАБОТЕ

Page 29: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

Результаты поиска

Показываются только запчасти в наличииПодробные сведения о запчастиЦена (при наличии >5 единиц)Прямой телефон продавцаВозможность сделать звонок прямо из приложения при нажатии на номер телефонаУдобный скроллинг списка, ориентированный на возможности сенсорного экранаУдобная навигация для частого и быстрого использования

Page 30: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

ПРИМЕР МОБИЛЬНОГО ПРИЛОЖЕНИЯ iOS

Page 31: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

ЭКОНОМИЧЕСКИЙ ЭФФЕКТ

увеличение количества лидов с2 тыс. до 30-100 тыс. /24 часаAVG Цена 1 лида < 0.005$ при стоимости высокочастотной контекстной рекламы в yandex > 0.1$отсутствие роста постоянных затрат, связанных с поддержкой инфраструктуры и персоналом

Page 32: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

TODO

Уровень универсальной абстракции дескрипторов товараВозможность масштабируемой записи, не только получение контентаВстроенные средства для SEO и интернет-маркетинга

Page 33: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

ВОПРОСЫ?

Page 34: Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов

СПАСИБО ЗА ВНИМАНИЕ