FixPrice

Web, Android, iOS
-

What did we do?

We were approached by Fix Price - a company with a large network of retaile conomy-class stores in Russia and the CIS. They needed a clear service from which to download Excel reports with all the information they needed for eachretail store on the network: the financial condition of a particular point, thenearest competitors, the existing contractors, and much more.

What technologies have decided to use

After the discussion the team decided to create a service called «Passport of the object», where the objects are active stores, and the passport - all administrative and financial information on them.

Implementation proved impossible without the use of faceted filtering. This tool was ideally suited to the request of the service, because it could work with a large amount of data and nested filters, giving the possibility of multiple selection with blocking inappropriate parameters.

When designing the service, we encountered several difficulties.

First, thenumber of stores exceeded 3000 in the Russian Federation and the CIS. It was necessary to collect information on all addresses and nearby competitors.

Second, administrative and financial information was contained in different bases, under the responsibility of different departments of the company. Took us a while to get all the reports. An additional complication was that in somereports some data was embedded in others, so they did a step-by-step parsing toextract all the necessary data.

To solve the first problem worked with parsing Yandex.Kart.

We had to find all the competitors of the customer who are within 500 meters of therequested point (specific store).

Since Yandex itself gave out no more than 500 options for one request, we divided each area and each major city into small separate segments to enter the limits of Yandex, and thus unloaded the list of competitors from them.

After a long period of data collection, we organized all the information on customer’s stores and competitor’s points into one database.

In order to solve the second problem, we addressed the client directly. All information onfinancial and administrative indicators was contained in existing services. Each country had its own database. By API-methods we made queries into databases and received reports, from which we took the necessary information and structured it under «Client’s passport».

There were two difficulties when working with faceted filtering. First, it was necessary to make filters dependent on financial performance. A large amount of data from one unit was not easy to deploy into a linear index. We had to come up with our own nesting schemes. Second, the Yii framework that the client used has few third-party libraries to work with Elasticsearch. We had to develop a system for indexing documents and then processing query filters for Elasticsearch.

The following technologies were used in the development of the service:

Backend -PHP Yii2

Frontend -Vue.js

Design -Figma

Что делали?

В Hiplabs.dev обратилась компания Fix Price — крупная сеть розничных магазинов эконом-класса на территории РФ и СНГ. Ей был нужен понятный сервис, из которого можно было бы выгружать отчёты в формате Excel со всей интересующей информацией по каждому розничному магазину сети: финансовое состояние конкретной точки, ближайшие конкуренты, действующие подрядчики и многое другое.

Какие технологии решили использовать

После обсуждения команда приняла решение создать сервис под названием «Паспорт объекта», где объекты – это действующие магазины, а паспорт – вся административная и финансовая информация по ним.

Реализация оказалась невозможна без использования фасетной фильтрации. Данный инструмент идеально подходил под запрос сервиса, потому что мог работать с большим объемом данных и вложенностью фильтров, давая возможность множественного выбора с блокировкой неподходящих параметров.

Фасетная фильтрация

Сложности, с которыми мы столкнулись

При разработке сервиса мы столкнулись с несколькими сложностями.

Во-первых, количество магазинов переваливало за 3000 на территории РФ и СНГ. Нужно было собрать информацию по всем адресам и близлежащим конкурентам.

Во-вторых, административная и финансовая информация содержалась в различных базах, в ведении разных отделов компании. Пришлось потратить время на сбор всех отчётов. Дополнительная сложность была в том, что в некоторых отчетах одни данные были вложены в другие, поэтому провели поэтапный парсинг, чтобы извлечь всё нужное.

Данные, которые были получены после парсинга карт

Решения задач

Для решения первой задачи поработали с парсингом Яндекс.Карт. 

Нам нужно было найти всех конкурентов клиента, которые находятся в радиусе 500 метров от запрашиваемой точки (конкретного магазина). 

Так как сам Яндекс выдавал не больше 500 вариантов за один запрос, мы разделили каждую область и каждый крупный город на маленькие отдельные сегменты, чтобы входить в лимиты Яндекса, и таким образом выгрузили из них список конкурентов.

После длительного сбора данных структурировали всю информацию по магазинам клиента и точкам конкурента в одну базу данных.

Для решения второй задачи мы обратились напрямую к клиенту. Вся информация по финансовым и административным показателям находилась в существующих сервисах. У каждой страны, где располагались точки клиента, была своя база данных. По API-методам мы делали запросы в базы данных и получали отчеты, из которых брали нужную информацию и структурировали её под «Паспорт клиента».

Сложностей при работе с фасетной фильтрацией было две. Во-первых, нужно было сделать фильтры, зависимые от финансовых показателей. Большое количество данных у одного подразделения было непросто развернуть в линейный индекс. Пришлось самостоятельно придумывать схемы с вложенностью. Во-вторых, фреймворк Yii, который использовал клиент, имеет мало сторонних библиотек для работы с Elasticsearch. Нам понадобилось разработать систему для индексирования документов, а потом и для обработки фильтров с генерированием запросов для Elasticsearch.

Стек

При разработке сервиса использовали следующие технологии:
Backend – PHP Yii2
Frontend – Vue.js
Дизайн – Figma

As a result, the company received a service with a clear interface, where all the necessary quantitative, administrative and financial information on the retailoutlets of the network was collected into a single database.

The use of faceted filtering has facilitated the search and unloading of end-to-end reports on the desired parameters.

According to the client, «Object Passport» helped to automate and accelerate internal business processes.

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

Использование фасетной фильтрации облегчило поиск и выгрузку сквозных отчётов по нужным параметрам.

По словам клиента, «Паспорт объекта» помог автоматизировать и ускорить внутренние бизнес-процессы.

Связаться с нами

FixPrice

Web, Android, iOS
-

What did we do?

We were approached by Fix Price - a company with a large network of retaile conomy-class stores in Russia and the CIS. They needed a clear service from which to download Excel reports with all the information they needed for eachretail store on the network: the financial condition of a particular point, thenearest competitors, the existing contractors, and much more.

What technologies have decided to use

After the discussion the team decided to create a service called «Passport of the object», where the objects are active stores, and the passport - all administrative and financial information on them.

Implementation proved impossible without the use of faceted filtering. This tool was ideally suited to the request of the service, because it could work with a large amount of data and nested filters, giving the possibility of multiple selection with blocking inappropriate parameters.

When designing the service, we encountered several difficulties.

First, thenumber of stores exceeded 3000 in the Russian Federation and the CIS. It was necessary to collect information on all addresses and nearby competitors.

Second, administrative and financial information was contained in different bases, under the responsibility of different departments of the company. Took us a while to get all the reports. An additional complication was that in somereports some data was embedded in others, so they did a step-by-step parsing toextract all the necessary data.

To solve the first problem worked with parsing Yandex.Kart.

We had to find all the competitors of the customer who are within 500 meters of therequested point (specific store).

Since Yandex itself gave out no more than 500 options for one request, we divided each area and each major city into small separate segments to enter the limits of Yandex, and thus unloaded the list of competitors from them.

After a long period of data collection, we organized all the information on customer’s stores and competitor’s points into one database.

In order to solve the second problem, we addressed the client directly. All information onfinancial and administrative indicators was contained in existing services. Each country had its own database. By API-methods we made queries into databases and received reports, from which we took the necessary information and structured it under «Client’s passport».

There were two difficulties when working with faceted filtering. First, it was necessary to make filters dependent on financial performance. A large amount of data from one unit was not easy to deploy into a linear index. We had to come up with our own nesting schemes. Second, the Yii framework that the client used has few third-party libraries to work with Elasticsearch. We had to develop a system for indexing documents and then processing query filters for Elasticsearch.

The following technologies were used in the development of the service:

Backend -PHP Yii2

Frontend -Vue.js

Design -Figma

As a result, the company received a service with a clear interface, where all the necessary quantitative, administrative and financial information on the retailoutlets of the network was collected into a single database.

The use of faceted filtering has facilitated the search and unloading of end-to-end reports on the desired parameters.

According to the client, «Object Passport» helped to automate and accelerate internal business processes.

I want the same