Андрей Богомолов Автоматизация дистрибуции информации о наличии и цене товара для различных каналов генерации лидов в сегменте B2C
1. Автоматизация дистрибуции информации
о наличии и цене товара
для различных каналов генерации лидов
в сегменте B2C
Андрей Богомолов, основатель проекта ERPVault.com
Андрей Коротких, PI-consult.by, ведущий разработчик
sales@erpvault.com
Минск, 2011
2. БИЗНЕС-ЗАДАЧИ
обеспечить масштабируемость
доставки информации
о наличии, цене и характеристиках товара;
обеспечить своевременность, точность,
полноту, различное представление
информации;
SLA 99.9%, 4 ч., 24/7/365
3. КАНАЛЫ ГЕНЕРАЦИИ ЛИДОВ
|| требования к масштабируемости
веб сайт компании;
веб сайты дочерних компаний (до 8);
поисковые системы на порталах рекламных
партнеров (до 64);
веб-сайты компаний-партнеров с
самостоятельным формированием цены, сроков
поставки и ассортимента по условным группам
(до 64);
мобильное приложение Android;
мобильное приложение iOS;
online API для настольных систем дилеров.
4. ДОП. ТЕХНИЧЕСКИЕ ТРЕБОВАНИЯ
Время обновления информации <60 минут
Период обновления: 2 раза / 24 ч
Ассортимент: ~200 тыс. наименований
товара
Количество запросов: 2*10^6 / 24ч, Uniform
Distribution
Исполнение запроса: 0.1-4 с
6. ТЕХНИЧЕСКИЕ ЦЕЛИ
Scalability of component interactions
Generality of interfaces
Independent deployment of components
Intermediary components to reduce latency,
enforce security and encapsulate legacy
systems
9. СВОЙСТВА ReST
Client–server
Stateless
Cacheable
Layered system
Uniform interface
HTTP-based
10. ПРИНЦИПЫ ПОСТРОЕНИЯ ИНТЕРФЕЙСА
Идентификация ресурсов
Управление ресурсами через
представление
Self-descriptive сообщения
Hypermedia как "движок" стостояний
14. ПРИМЕР ВНЕДРЕНИЯ: Моторлэнд
веб сайт компании, веб сайты дочерних компаний –
автоматическая и ручная репликация из ERP системы
с различными параметрами по ассортименту,
формированию цен, расположению товара;
поисковые системы на порталах рекламных
партнеров, веб-сайты компаний партнеров с
самостоятельным формированием цены, сроков
поставки и ассортимента по условным группам –
виджеты с авторизацией и настройками для каждого из
партнеров (ассортимент, цены, доставка и т.д.);
мобильное приложение Android, мобильное
приложение iOS – отображение информации через
точку входа для мобильных устройств;
online API для настольных систем дилеров – запрос к
специальной точке доступа при помощи POST и GET,
получение результата в удобном виде (XML, CSV,
текст и т.д.).
15. Примеры запросов
Все необходимые методы для отображения
формы поиска, отправки запросов, получения
результатов,
находятся в подключаемом JavaScript-классе
API.
Используется механизм AJAX, который
отправляет данные поисковой формы методом
GET и получает данные в виде JSON. Эти
данные обрабатываются и отображаются
клиенту в виде HTML.
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 );
}
17. Примеры передачи данных
Данные отправляется методом GET, массив имеет вид:
Array
(
[auto_brand] => 6
[auto_model] => 160
[part_type] => 5
...
)
Заданы параметры для поиска запчастей по марке, модели и названию запчасти (индексы берутся из элементов
SELECT поисковой формы).
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 получает, обрабатывает и выводит
клиенту.
19. ПРИМЕР ИМПЛЕМЕНТАЦИИ: виджет
Для вызова виджета используется
JavaScript-код на странице клиента. Также
можно задать индивидуальные CSS-стили
для отображения формы поиска и
результатов и элемент HTML, в котором
будет отображаться содержимое виджета.
При вызове виджета можно указать
уникальный ключ идентификации партнера,
кодировку для генерации контента и т.д.
20. ПРИМЕР ИМПЛЕМЕНТАЦИИ: виджет
Для вызова виджета используется
JavaScript-код на странице клиента. Также
можно задать индивидуальные CSS-стили
для отображения формы поиска и
результатов и элемент HTML, в котором
будет отображаться содержимое виджета.
При вызове виджета можно указать
уникальный ключ идентификации партнера,
кодировку для генерации контента и т.д.
26. ПРИМЕР МОБИЛЬНОГО ПРИЛОЖЕНИЯ
Платформа: Android
Motorland – мобильное приложение
для поиска автозапчастей и двигателей б/у
Актуальная информация о наличии и цене
Более 180 000 ассортиментных позиций в наличии
на складах в г. Минске и в товаропроводящей сети в Республике Беларусь
Ассортимент обновляется 2 раза в день из системы планирования
ресурсов предприятия ERPVault™
Функциональные возможности:
Поиск запчастей
Публичный стол заказов
Запрос в стол заказов
Где купить? – Интерактивная карта
27. Технические особенности
Интерфейсы приложения оптимизированы для работы на современных
мобильных устройствах на базе ОС Android версии 1.6 с HVGA (320x480),
что позволяет охватить наибольшее количество пользователей
Возможна работа приложения с другими версиями ОС Android (1.5+) и
распространенными разрешениями экрана с оптической плотностью ldpi
(120), mdpi (160), hdpi (240)
Размещение элементов управления, скорость обработки и представление
информации позволяет за минимальное время получать необходимую
информацию о наличии и цене автозапчастей б/у, интерактивно устранять
информационную асимметрию, исторически обусловленную свойствами
товара и обычаями делового оборота в данном сегменте рынка
Применяется эффективная технология обмена данных
Серверная часть приложения позволяет держать высокую нагрузку,
построена на собственной архитектуре "облачных" вычислений
Приложение использует такие технологические особенности мобильных
устройств, как: сенсорный дисплей, GPS-приемник
Тщательно тестировано и рекомендовано для работы в 3G|3G+ сетях Velcom
29. Результаты поиска
Показываются только запчасти в
наличии
Подробные сведения о запчасти
Цена (при наличии >5 единиц)
Прямой телефон продавца
Возможность сделать звонок
прямо из приложения при
нажатии на номер телефона
Удобный скроллинг списка,
ориентированный на
возможности сенсорного экрана
Удобная навигация для частого и
быстрого использования
31. ЭКОНОМИЧЕСКИЙ ЭФФЕКТ
увеличение количества лидов с
2 тыс. до 30-100 тыс. /24 часа
AVG Цена 1 лида < 0.005$ при
стоимости высокочастотной
контекстной рекламы в yandex >
0.1$
отсутствие роста постоянных
затрат, связанных с поддержкой
инфраструктуры и персоналом
32. TODO
Уровень универсальной
абстракции дескрипторов
товара
Возможность
масштабируемой записи, не
только получение контента
Встроенные средства для
SEO и интернет-маркетинга