Сайт-агрегатор товаров с нескольких интернет-магазинов
1. Введение.
1.1. Цель.
Сайт, который будет парсить товары со сторонних интернет-магазинов (только самую основную информацию - названия и цены), добавлять к себе в базу и предлагать пользователям.
1.2. Условности.
На сайте не будет проводиться никаких финансовых операций.
Не будет регистрации/авторизации пользователей.
Вам будет дан psd-макет с несложным дизайном. Необходимо будет его сверстать.
2. Парсер.
2.1. Описане.
Скрипт должен с некоторой периодичностью (например, по крону, либо можете написать демона на NodeJS - как вам удобнее) парсить несколько страниц определённых
интернет-магазинов, вытаскивать из них названия и цены всех товаров и заносить к себе в базу данных.
2.2. Подводные камни.
В разных интернет-магазах названия одних и тех же товаров могут отличаться, и при добавлении в базу парсер будет считать, что это разные товары, что неверно.
Решение проблемы следующее: когда на сайте интернет-магазина появляется новый товар, и в нашей базе нет ни одного товара с таким же названием, то парсер помечает этот товар "подозрительным" и отправляет уведомление нашему менеджеру, который производит ручное сравнение и либо сопоставляет этот товар с другими, либо отмечает, что на данный момент этот товар уникальный.
3. Сайт.
3.1. Основная идея.
Пользователи заходят на сайт и видят доступные товары со всех интернет-магазинов, сгруппированные по названиям.
Пользователь находит нужный ему товар и сайт предлагает ему список интернет-магазинов, где этот конкретный товар имеется в наличии, а также сортирует эти интернет-магазины по стоимости этого товара.
То есть на первой позиции будет интернет-магазин, в котором есть нужный пользователю товар, и в котором стоимость на этот товар ниже, чем у конкурирующих интернет-магазинов.
Пользователь может либо единовременно посмотреть список из этих интернет-магазинов и открыть карточку интересущего его товара в нужном интернет-магазине,
либо сперва набрать корзину, и потом посмотреть точно такой же список из магазинов, но сортироваться они будут по общему чеку, и чтобы одновременно все интересующие пользователя товары были в этих магазинах. В корзине так же должна быть возможность посмотреть сколько стоит каждый товар в отдельности и в каком магазине он дешевле.
В списке с интернет-магазинами должны отображаться кнопки-ссылки, ведущие на карточки товаров в этих магазинах.
Наш сайт будет монетизироваться за переходы пользователей как раз по этим ссылкам.
На сайте должен быть простой поиск по названиям товаров.
3.2. Админка.
У сайта должна быть простая админ-панель.
Что в ней должно быть:
3.2.1. Список "подозрительных" товаров (см. п. 2.2) с возможностью совершения одного из двух действий. Логику проще объяснить на примере: в магазине А, товар называется "Товар1 100мл", а в магазине Б товар называется "Товар1". Это один и тот же товар, просто там дописали объём, и менеджеру надо будет сказать движку, что это один и тот же товар.
3.2.2. Возможность указания средней стоимости доставки из интернет-магазинов.
2.2.3. Возможность указания скидки при достижении общего чека определённой суммы (например "скидка 5% при заказе от 3 тыс. руб."). Эти скидки должны влиять на логику выбора "лучших" интернет-магазинов для пользователей.
4. Условия.
4.1. Денежное вознаграждение: 28.000 (двадцать восемь тысяч) российских рублей + бонус (оплата по Visa, MasterCard, WebMoney, Yandex.Money, наличкой в СПб).
4.2. Сроки строго ограничены: на работу отводится не более 3х недель. При сдаче проекта за 2 недели и быстрее обещаем бонус - денежное вознаграждение будет увеличено до 32.000 (тридцати двух тысяч) российских рублей.
4.3. Технические требования.
4.3.1. В работе использовать PHP, MySQL и JavaScript.
4.3.2. Использование сторонних движков не запрещено, но требует обязательного согласования.
4.3.3. Узкие и спорные места в коде обязательно комментировать.
5. Примечание.
5.1. Вам будет выдан доступ к серверу по FTP, а также доступ к базе данных.
5.2. Мы открыты к предложениям. По всем вопросам можете смело обращаться - поможем, расскажем.
5.3. Возможность предоплаты оговаривается отдельно в личной беседе.