Вы находитесь на странице: 1из 11

Техническое задание

Концепция программы: мониторинг динамики продаж ТОП-10 и нашего


товара.
Задача: создание программы для сравнения наших продаж и продаж
конкурентов.
Программа должна в автоматическом режиме в определенное время
обновлять данные.
Добавление данных в программу:
Предварительно в программу оператор загружает список артикулов:
Возможность импортировать данные из таблицы:

Программа должна находиться на удаленном сервере.


Добавить возможность необновления конкурентов конкурентов для
определенных товаров.
Добавить возможность пометки товаров цветом.
Таблица, из которой происходит импорт: (эксель документ)
Также оператор может добавлять данные вручную:

При нажатии на кнопку «Добавить данные», открывается следующее окно:

Оператор выбирает нужное место для добавления товара, нажимает на


существующие строки ПКМ и в сплывающем меню выбирает одну из кнопок
«Добавить строку снизу», «Добавить строку сверху». При нажатии на кнопку
«Добавить», появляется строка вверху таблицы.
Для того, чтобы добавить ключевые запросы, оператор нажимает напротив
нужного артикула на строку «Добавить ключевой запрос».
Оператор может редактировать и удалять ключевые запросы, для этого
необходимо нажать ПКМ на интересующий ключевой запрос и выбрать
необходимое действие из всплывающего меню. Оператор может закрепить
ключевой запрос, по этому запросу будет выводиться график сравнения
продаж.
Оператор может добавлять товары вручную, не через ключевые запросы, для
этого необходимо выбрать интересующий артикул и запрос для этого
артикула, далее нужно нажать ПКМ и в сплывающем меню нажать «Список
товаров конкурентов»
Оператор может нажать на кнопку «Добавить товар конкурента» и в
появившейся сверху строке добавить товар конкурента, может удалить не
интересующий его товар конкурента.
Настройка графиков продаж:
Оператор выбирает время обновления графиков:

Вывод графиков:
Программа собирает информацию по 10 конкурентам по каждому ключевому
запросу. Оператор выбирает нужное количество отображаемых конкурентов
на графике (от 1 до 10).
В перечне товаров должна быть указана следующая информация (Артикул,
Название товара)
При нажатии на кнопку «выбрать все», выбираются все товары из списка,
при повторном нажатии все значения становятся не выбранными, по
умолчанию все значения выбраны. При нажатии слева от товара, товар
выбирается, можно выбрать любое количество товаров.
При нажатии на кнопку «сохранить», база со всей информацией сохраняется,
это сделано для того, чтобы если потребуется проанализировать какие-то
другие данные, не связанные с нашим магазином, ее можно было обратно
вернуть, для этого необходимо нажать на кнопку открыть и в проводнике
найти нужную базу.
Оператор может нажать ПКМ на товар и нажать на кнопку «Вывести
графики по всем ключевым запросам»
Сортировка графиков происходит при помощи коэффициентов. Берется
количество продаж нашего товара за 2 недели и делится на количество
продаж конкурентов, коэффициенты сравниваются между собой и
выбирается наименьший. Так необходимо сделать для всех наших товаров. И
все полученные коэффициенты нужно сортировать по уменьшению.
Графики выводятся на интерфейс один за другим, их можно проматывать
колесиком.
Линейный график состоит из:
 дата;
 кол-во продаж по каждому конкуренту и наших продаж (с подписью
данных каких данных).
На графике также отображено:
 Названия графика (ключевое слово);
 Фото товара;
 № нашего артикула;
 Название категории/товара
 Цветные линии – № артикула.
На графике есть возможность убирать не интересующие нас линии.
!Важно понимать, что ТОП-10 товаров изо дня в день может меняться, чтобы
обозначить на графике, что товар изменился нужно применять другие цвета к
линиям, обозначающим новые товары в ТОП-10 и этот цвет присваивать к
товару, пока он не выпадет из ТОП-10.
Пример:

* компании и сопоставленные ключевые слова к ним, по которому будет


вестись парсинг маркет плейса с возможностью последующего
редактирования данного списка (добавлять и убирать не интересующие нас
ключевые слова).
*Список артикулов – эта таблица, которую предоставляет компания. В таблице
содержатся: артикулы нашего товара, категория к которой они относятся,
подкатегория/название товара, фото и ключевые слова по которым необходимо
производить поиск ТОП-10 ежедневно (ключевых слов по каждому товару может быть
неограниченное кол-во, но ежедневный поиск происходит, лишь по одному заданным
пользователем изначально).

Необходимо, чтобы программа в автоматическом режиме ежедневно


добавляла данные к предыдущим результатам. А также, чтобы была
возможность самостоятельно запросить вывод данных по определенному
ключевому слову или по определенному артикулу.
Алгоритм программы
Бот заходит на сайт ВБ в поиске находит ТОП-10 по ключевому слову, и
фиксирует первые 10 артикулов. Бот переносит/парсит номера артикулов к
себе в базу.
Пример:

Далее бот переходит на сайт mpstats.io.


1 путь: на странице сайта mpstats.io (https://mpstats.io/wb/search) выбирает
раздел Wildberries  поиск по SKU, и в окне поиска вводит № каждого
артикула ТОП-10 из своей базы и артикул нашей компании, закрепленный за
поисковым запросом.

Когда бот первый раз собирает информацию, необходимо собрать данные за


1 месяц. Далее для подгрузки нужно добавлять информацию на новый день.
Из загруженной таблицы необходимо вынести информацию лишь по двум
столбцам «Дата» и «Продажи». Данную информацию необходимо добавить в
общую таблицу (таблица по предыдущим дням) по каждой категории
товаров. Т.е. по итогу у нас появляется таблицы в определенном месте.
Дальше программа будет использовать их для построения графиков.
2 путь: по API.
https://mpstats.io/integrations
«Краткое описание
API интерфейс используется для того, чтобы интегрировать возможности сервиса Mpstats.so в
личный проект клиента. API предназначен для разработчиков и сопровождается детальной
документацией.
REST API сервиса работает по протоколу HTTP и представляет собой набор методов, с помощью
которых совершаются запросы и возвращаются ответы для каждой операции. Все ответы
приходят в виде JSON структур.
Авторизация
Процесс авторизации возможен при наличии персонального ключа (далее токен), которым в
дальнейшем должен быть подписан каждый запрос к API.
Токен можно сформировать в настройках личного кабинета в блоке "Настройки интеграции".
Токен автоматически будет обновлен в случае смены пароля пользователя или по нажатию
кнопки "Сформировать новый токен".
Токен необходимо использовать как значение заголовка X-Mpstats-TOKEN для совершения
авторизованных запросов.
Пример ключа:
X-Mpstats-TOKEN: 5a2a5f0e538dd5.6691914852255446e23a9bcac46ee5255625f5d5
Как альтернатива использованию токена в качестве значения заголовка, допускается
использование параметра auth-token в запросе
Пример:
&auth-token=5a2a5f0e538dd5.6691914852255446e23a9bcac46ee5255625f5d5
Основной URL
Все ссылки на запросы к API в данной документации включают обязательный основной
URL: https://mpstats.io/api/
Коды ответов сервера

Код Описание

200 Успешный запрос

202 Запрос был принят на обработку, но он не завершен. Повторите запрос позже.

401 Ошибка авторизации

Исчерпан лимит запросов по текущему тарифному плану. Подробное описание


ошибки доступно в поле message.
429
В заголовке Retry-After ответа сервера указанно время (в секундах), через которое
клиенту рекомендуется повторить запрос.

500 Внутренняя ошибка сервера. Подробное описание ошибки доступно в поле message

Примеры использования
cURL

curl --location --request POST 'https://mpstats.io/api/wb/get/category?d1=2020-07-


13&d2=2020-08-11&path=%D0%96%D0%B5%D0%BD%D1%89%D0%B8%D0%BD%D0%B0%D0%BC/%D0%9E
%D0%B4%D0%B5%D0%B6%D0%B4%D0%B0' \
--header 'X-Mpstats-TOKEN: 5edfe8277ff2a5.941835169784f269a9244f13350db36eedb814d1' \
--header 'Content-Type: application/json' \
--data-raw '{"startRow":0,"endRow":100,"filterModel":{},"sortModel":
[{"colId":"revenue","sort":"desc"}]}'

PHP - cURL

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => "https://mpstats.io/api/wb/get/category?d1=2020-07-13&d2=2020-08-
11&path=%D0%96%D0%B5%D0%BD%D1%89%D0%B8%D0%BD%D0%B0%D0%BC/%D0%9E
%D0%B4%D0%B5%D0%B6%D0%B4%D0%B0",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>"{\"startRow\":0,\"endRow\":100,\"filterModel\":
{},\"sortModel\":[{\"colId\":\"revenue\",\"sort\":\"desc\"}]}",
CURLOPT_HTTPHEADER => array(
"X-Mpstats-TOKEN: 5edfe8277ff2a5.941835169784f269a9244f13350db36eedb814d1",
"Content-Type: application/json"
),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

NodeJs - Native

var https = require('https');


var fs = require('fs');

var options = {
'method': 'POST',
'hostname': 'mpstats.io',
'path': '/api/wb/get/category?d1=2020-07-13&d2=2020-08-11&path=%D0%96%D0%B5%D0%BD
%D1%89%D0%B8%D0%BD%D0%B0%D0%BC%2F%D0%9E%D0%B4%D0%B5%D0%B6%D0%B4%D0%B0',
'headers': {
'X-Mpstats-TOKEN': '5edfe8277ff2a5.941835169784f269a9244f13350db36eedb814d1',
'Content-Type': 'application/json'
},
'maxRedirects': 20
};

var req = https.request(options, function (res) {


var chunks = [];

res.on("data", function (chunk) {


chunks.push(chunk);
});

res.on("end", function (chunk) {


var body = Buffer.concat(chunks);
console.log(body.toString());
});

res.on("error", function (error) {


console.error(error);
});
});

var postData = JSON.stringify({"startRow":0,"endRow":100,"filterModel":


{},"sortModel":[{"colId":"revenue","sort":"desc"}]});

req.write(postData);

req.end(); »

 Если идем по 1 пути - из таблицы необходимо внести в БД столбец «Дата»


и «Продажи».
 Если по 2 пути, то запрос нужно сделать на «Дата» и «Продажи».

Итоговый результат программы: ежедневно обновляемый график продаж.

Вывод результата при обновлении данных по запросу пользователя


через ключевые слова или артикул: происходит в автоматическом режиме
после выбора критериев в диалоговом окне запуска программы.
Вывод результата при ежедневном автоматическом обновлении: заходим
в программу, выбираем кнопку «График продаж». При необходимости
выбираем нужный интервал времени, артикул, ключевой запрос. (Вопрос:
«выбираем нужный артикул», что в итоге хотим увидеть? Т.е. мы выводим
один лишь артикул (товар) на график или же нужно ввести артикул и
выбрать для него категорию, и тогда получается мы проделываем тоже самое
с ТОП-10, но добавляем еще нужный для нас артикул?). В результате выдачи
отображаются все данные за каждую дату.
Пример:

В программе автоматически формируется окно с графиком, на котором


отображена динамика продаж каждого артикула в сравнении с ТОП - 10 по
каждому дню.

Вам также может понравиться