B2B Платформа - Разработка и поддержка приложения по анализу цен
Компании, которая занимается оптовой дистрибуцией электронной техники, мобильных телефонов и аксессуаров, требуется backend/fullstack веб-разработчик для доработки и дальнейшей поддержки приложения по анализу цен товаров от различных поставщиков.
На текущий момент реализована первичная версия платформы на следующих технологиях:
DB: Mysql
Backend: PHP 7.4 (Laravel 8)
Frontend: Vue.js (Laravel Nova 3)
Сущности, с которыми работает приложение
Поставщик -- компания, предоставляющая товары.
Товар -- продаваемый товар конкретной модели, конфигурации и цвета (iPhone 11 64Gb Black).
Бренд -- марка продаваемого товара (например, Apple, Samsung...).
Категория -- категория продаваемого товара (например, мобильные телефоны).
Цена – стоимость товара у конкретного поставщика. Привязана к дате или факту получения цены от поставщика (Импорту).
Валюта -- (EUR, CZK)
Импорт -- факт получения данных о товарах, которые попадают в систему в виде импорта из фидов/через API.
Пользователи -- лица, работающие с приложением
Администратор
Покупатель -- фронтенд-посетитель, у которого есть доступ в личный кабинет, а также к фидам товаров/api c уникальными ценами (речь идет уже о проанализированных и обработанных товарах от поставщиков с применением наценок компании)
Группа покупателей -- настройки наценок и видимости для товаров, которые могут быть применимы к определенным покупателям
Основные принципы работы платформы
Каждый новый поставщик добавляется руками в систему
У каждого поставщика есть один из трех вариантов предоставления информации о товарах, их ценах и наличии
XML/CSV Feed
API
CSV файлы
Данные попадают в систему из импортов, которые, в свою очередь, могут быть ручными или автоматическими
Во время каждого импорта происходит
Актуализация цен товаров по каждому поставщику
Актуализация наличия товаров у поставщика
Добавление новых товаров, категорий и брендов в ассортимент
Каждый импорт содержит полный лог и статус обработки каждого товара
Хранение ассортимента товаров (с их категориями, брендами) от различных поставщиков
Сравнение стоимости одного и того же товара у различных поставщиков
Управление фидами и ценообразованием для Покупателей
Текущее состояние приложения
Управление поставщиками
Конфигурирование импортов
Автоматические импорты из фидов/API (настраиваются разработчиком под каждый фид/API)
Ручные импорты из CSV (универсальное решение)
Маппинг товаров в соответствующие категории на основании настроек дерева категорий для поставщика
Импорты работают на механизме фоновых задач Laravel Jobs
Управление брендами
Управление общим деревом категорий и соответствия категориям поставщиков
Детальные отчеты по каждому импорту (и товару)
Общий справочник товаров с актуальными ценами и наличием по поставщикам
Модуль сравнения цен (включая поиск товара по различным параметрам с отображением лучшей цены и поставщика)
Управление администраторами
Управление клиентами (данные, price markup)
Конфигуратор расписания задач (scheduler)
Общие настройки приложения
Личный кабинет покупателя
Что нужно делать (основной род задач)
Дорабатывать и сопровождать механизм импортов от существующих поставщиков
Добавлять новых поставщиков (и импортов в систему)
Доработка модуля сравнения цен и поиска/фильтра товаров
Доработка управления фидами клиента (сегментация по категориям, гибкие наценки по категориям)
Пример одной задачи
Анализ промо-предложений
Представим, что сотрудник компании, отвечающий за закупки (назовем для простоты эту роль “менеджер”), получил от одного из поставщиков промо-предложение по некоторым товарам.
Предложение было прислано в следующей форме:
Razer Kiyo - Web camera
EAN:8886419377108
PN:RZ19-02320100-R3M1
45€ MOQ 300pcs
Razer Kiyo Pro - Webcam
EAN:8886419377146
PN:RZ19-03640100-R3M1
79€ MOQ 300pcs
Garmin HRM-Pro Plus - Heart rate monitor
PN:010-13118-00
EAN:0753759300883
79€ MOQ 300pcs
В данном случае представлено 3 товара с их свойствами (PN (Part Number), EAN), по которым их можно найти в нашей БД. У каждого товара указана закупочная цена. Параметр MOQ (минимальное кол-во единиц товара для заказа) можно в данном случае опустить.
Необходимо разработать форму, в которую менеджер поместит данный текст, после чего алгоритм сделает следующее:
Вычленит из заданного текста параметры PartNumber и/или EAN (структура/формат текста будет определены заранее)
Найдет по вышеуказанным параметрам актуальную информацию в БД приложения
Вычислит наиболее выгодную имеющуюся цену и сравнит ее с поступившим предложением
Отобразит сравнительную таблицу для найденных данных
Product | Part number | EAN | Supplier A | Supplier B | Supplier C | Current Offer |
Razer Kiyo - Web camera | RZ19-02320100-R3M1 | 8886419377108 | € 59.89 100 pcs 27.06.23 9:05 | € 54.99 0 pcs 27.06.23 11:21 | € 54.99 20 pcs 27.06.23 10:15 | € 45.00 |
Razer Kiyo Pro - Webcam | RZ19-03640100-R3M1 | 8886419377146 | € 79.99 300 pcs 27.06.23 9:05 | € 89.50 200 pcs 27.06.23 11:21 | € 75.99 120 pcs 27.06.23 10:15 | € 79.00 |
Razer Kiyo Pro - Webcam | 010-13118-00 | 0753759300883 | € 89.89 0 pcs 27.06.23 9:05 | € 60.99 0 pcs 27.06.23 11:21 | € 80.00 0 pcs 27.06.23 10:15 | € 79.00 |
В каждой ячейке товара для каждого поставщика указаны:
Актуальная стоимость товара у поставщика
Наличие товара (кол-во штук)
Дата последней актуализации
Из предоставленного отчета видно, что товары 1 и 3 выгодно купить по предложению, а вот товар 2 имеется у Supplier C за лучшую цену.
Третий товар есть по лучшей цене у поставщика Supplier B, но его нет в наличии, соответственно, он не предлагается, как лучший вариант.
Также допустимы альтернативные варианты задания промо-предложений:
Вариант 2 (поиск по названию):
Samsung A145 64GB all colors – 109 euro
Samsung S911 256GB black – 581 euro
Apple iPhone 12 pro 256GB grey – 825 euro
Apple iPhone 12 pro 512 grey – 875 euro
Apple iPhone 12 pro max 128GB grey – 935 euro
Вариант 3 (поиск по EAN):
6941487272891 Huawei Nova 10 Pro 8/256GB DS Starry Silver 100+ 380 €
6941487275816 Huawei Nova 10 SE 8/128GB DS Black 19 209 €
6921815622673 OnePlus 10T 5G 16/256GB Moonstone Black 10 450 €
6944284692213 Oppo A16s 4/64GB DS Pearl Blue 18 100 €
6932169302029 Oppo Reno7 5G 8/256GB DS Starry Black 75 265 €
6941399092242 Realme C30 3/32GB DS Denim Black 100+ 65 €
6941764400801 Realme C33 4/128GB DS Night Sea 90 101 €
6941399065635 Realme Narzo 50 4/128GB DS Speed Black 100+ 116 €
8806094581904 Samsung A047 Galaxy A04s 3/32GB DS Awesome White 25 95 €
Дополнительная информация
Первичная постановка задачи, на базе которой была создана текущая версия приложения
https://docs.google.com/document/d/1FajmxvAhM3kcbahua_HQNq0f9hBeUF3McwASQ7xG0R4/edit?usp=sharing
Актуальные фриланс-проекты в категории PHP
Выполнение работ после SEO-аудита
15 000 UAH
Нужен опытный OpenCart-разработчик для выполнения SEO и технических доработок интернет-магазина. Основные задачи: Исправление структуры внутренних ссылок и меню. Добавление ссылок в футер. Реализация хлебных крошек с микроразметкой Schema.org. Исправление генерации sitemap.xml… PHP, Сопровождение сайтов ∙ 1 день 5 часов назад ∙ 50 ставок |
В модуле OpenCart исправить проблемы с Facebook APIВ OpenCart есть модуль интеграции Facebook и Instagram через API, OAuth и Webhook. После открытия страницы модуля в браузере - в Фейсбук начинает расти количество API запросов к Фейсбук и растет количество ошибок gr:get:InvalidID. Нужно найти, что вызывает проблемы, и… PHP, Веб-программирование ∙ 1 день 6 часов назад ∙ 34 ставки |
Создать плагин для опросов (викторин) на WordPress
10 000 UAH
Необходимо разработать плагин для WordPress, который будет уметь - сохранять банк вопросов, все в одном формате - вопрос и 4 ответа, 1 правильный - показывать 12 вопросов в случайном порядке, считать хронометраж - собирать данные пользователя - показывать финальный результат с… PHP, Веб-программирование ∙ 1 день 14 часов назад ∙ 95 ставок |
Нужна интеграция KeyCRM → ПРРО Кашалот |
Сайт на WordPress с использованием темы Kadence и Kadence Blocks.
10 000 UAH
Нам нужно создать сайт на WordPress с использованием темы Kadence и Kadence Blocks. Интернет-магазина не будет (хотя, вероятно, он будет добавлен в будущем). Нужна главная страница и несколько внутренних страниц. Графика уже готова, структура макета в основном определена,… CMS, PHP ∙ 5 дней 11 часов назад ∙ 38 ставок |