Программа умеющей отвечать на отзывы на маркетплейсе OZON
Краткое резюме:
Программа должна отправлять 4 различных https-запроса, (сервер OZON выдает ответ в виде json), записывать полученные ответы в локальную базу данных. Автоматический алгоритм должен с использованием заранее заготовленных шаблонов сгенерировать ответ на отзыв (в зависимости от id товара и оценки, поставленной покупателем) и отправить его через личный кабинет продавца.
Предполагается, что программа будет расположена на VPS или shared-хостинге и будет запускаться по расписанию. Для просмотра результатов работы (информация, записанная в БД) будут использоваться инструменты типа phpMyAdmin (или аналогов).
Виды сетевых запросов:
1. Авторизация
Программа отправляет пароль и логин продавца и проходит авторизацию на сайте https://seller.ozon.ru. Полученный при авторизации access_token необходимо сохранить и использовать при отправке последующих https-запросов.
Авторизация, Запрос:
{"user_name":"some-login","password":"some-password"}
Авторизация, Ответ:
{"result":{"access_token":"ARfXBAAAAAAAFEw1TGlhcWppc0VXVFJmbEJ3V2xQA3dlYioAAAAAaqAyvHwBAABqaLFWfQEAAAENU2VjdXJpdHlTdGFtcA0xNjM0MjkyMjEzMDAw.NkBAQSUG+xzhabBd8jM7bSVVcE5ynpkD6jiB9PRIsiw=", "token_type":"bearer", "expires_in":2592000, "refresh_token":"ARfXBAAAAAAAFEw1TGlhcWppc0VXVFJmbEJ3V2xQA3dlYioAAAAAsJwyvHwBAACwyOMThAEAAAENU2VjdXJpdHlTdGFtcA0xNjM0MjkyMjEzMDAw.mQoXc9p37lGPROl5dQ5LWoG8SOHLVdZTL/BcdAwm6VM="}}
2. Получение списка отзывов
Список отзывов, Запрос:
{"filter":{"interaction_status":["ALL"]},"page":1,"page_size":50,"sort":{"sort_by":"CREATED_AT","sort_direction":"DESC"},"company_id":"127572"}
Список отзывов, Ответ:
{"result":[{"id":89441663, "sku":"284257945", "text":{"positive":"насыщенный цвет ,особенно на блонд )", "negative":"смывается приблизительно после 6 раза ", "comment":"заказывала лочке ,но и сама испытала на себе ))) цвет яркий ,насыщенный ,но смывается к сожаление не с первого раза ( может это для кого то и хорошо ))))"}, "has_unread_comment":false, "created_at":"2021-10-26T08:55:31.660908Z", "rating":4, "interaction_status":"NOT_VIEWED", "comments_amount":0, "likes_amount":0, "dislikes_amount":0, "author_name":"Ольга Ц."}, {"id":89436420, "sku":"256999582", "text":{"positive":"", "negative":"", "comment":""}, "has_unread_comment":false, "created_at":"2021-10-26T08:43:17.760588Z", "rating":5, "interaction_status":"NOT_VIEWED", "comments_amount":0, "likes_amount":0, "dislikes_amount":0, "author_name":"Ольга Л."}], "page_count":63, "total_items":3131}
Информацию об отзывах нужно сохранить в локальной базе данных, дополнив названием продукта (см. п.3).
3. Получение списка продуктов
Список продуктов, Запрос:
{"sku":["284257945", … ,"282409907"],"company_id":127572,"language":"RU"}
Список продуктов, Ответ:
{"items":[{"id":69879432,"company_id":127572,"category_id":0,"spu":1104271964,"sku":284257945,"seller_sku":256278821,"offer_id":"4603773847931","title
Из этого ответа интересует только название товара (поле “title”).
4. Отправка ответа
По аналогии с п 2-3.
Отправленный ответ также должен быть сохранен в локальную базу.
Об алгоритме составления ответа на отзыв.
Ответ на отзыв состоит из двух частей: реакция на оценку и рекомендации похожих товаров.
1. Получить из локальной базы неотвеченные отзывы (выборка по полю "interaction_status").
2. Основная часть ответа составляется на основе выставленной клиентом оценки/рейтинга. Возможные варианты ответов задаются в файле конфигурации, по несколько вариантов для каждой оценки (от 1 до 5). Выбор одного из вариантов происходит рандомно.
3. Часть ответа с рекомендациями других товаров составляется в зависимости от sku товара. Справочник похожих товаров задается в файле конфигурации.