Атестаційні завдання K2 ERP/Інтернет-магазин
Атестаційне завдання K2 ERP — Інтернет-магазин — це практична задача для перевірки навичок розробника або впроваджувача K2 ERP у створенні модуля онлайн-продажів, інтегрованого з ERP-системою.
Модуль має забезпечувати управління каталогом товарів, категоріями, кошиком, оформленням замовлень, онлайн-оплатою, залишками, медіафайлами, email-сповіщеннями та адміністративним інтерфейсом.
Коротко. Потрібно реалізувати інтернет-магазин на базі K2 ERP: каталог товарів, сторінку товару, кошик, оформлення замовлення, оплату, журнал замовлень, зміну статусів, списання залишків і адміністративне керування товарами.
Назва завдання
Модуль Інтернет-магазин: управління товарами, кошиком, замовленнями та оплатою.
Мета завдання
Мета завдання — створити в K2 ERP модуль інтернет-магазину, який дозволяє компанії продавати товари онлайн і при цьому не відривати сайт від облікової системи.
Система повинна дозволяти:
- вести каталог товарів;
- керувати категоріями;
- створювати сторінки товарів;
- завантажувати фото й медіафайли;
- показувати залишки товарів;
- додавати товари в кошик;
- оформлювати замовлення;
- приймати оплату онлайн або при отриманні;
- автоматично змінювати статус замовлення після оплати;
- зменшувати залишки після покупки;
- повідомляти покупця та співробітників про нове замовлення;
- керувати товарами, категоріями й замовленнями з адміністративної частини;
- завантажувати велику кількість товарів через CSV або Excel.
Головний принцип. Інтернет-магазин у K2 ERP — це не окрема “вітрина”, яка живе сама по собі. Це частина ERP: товар, ціна, залишок, замовлення, оплата, клієнт і склад мають бути пов’язані в одній системі.
Реальний бізнес-контекст
Компанія хоче продавати товари через власний сайт, не використовуючи сторонні маркетплейси або окремі SaaS-платформи.
Покупець повинен зайти на сайт, знайти товар у каталозі, переглянути картку товару, додати позиції в кошик, оформити замовлення, обрати спосіб оплати та отримати підтвердження.
Менеджер у K2 ERP має бачити замовлення в адміністративній частині, контролювати статус, оплату, залишки, відправлення та історію змін.
Основний бізнес-процес
Типовий процес роботи інтернет-магазину виглядає так:
- адміністратор створює категорії товарів;
- додає товари, фото, ціни, описи та SEO-поля;
- система показує товари на сайті;
- покупець відкриває каталог або сторінку товару;
- додає товар у кошик;
- змінює кількість товарів у кошику;
- переходить до оформлення замовлення;
- вводить контактні дані та адресу доставки;
- обирає спосіб оплати;
- система створює замовлення;
- покупець отримує email-підтвердження;
- співробітники отримують повідомлення про нове замовлення;
- після успішної оплати статус змінюється автоматично;
- товар списується із залишків згідно з правилами обліку;
- менеджер обробляє, відправляє та завершує замовлення.
Основні об’єкти модуля
| Об’єкт | Призначення |
|---|---|
| Категорії товарів | Ієрархія каталогу інтернет-магазину |
| Товари | Основні одиниці продажу |
| Фото товарів | Прев’ю та додаткові зображення товару |
| Залишки товарів | Дані про доступну кількість товару на складах |
| Склади | Місця зберігання товарів |
| Кошик | Тимчасовий список товарів, які покупець хоче придбати |
| Рядки кошика | Конкретні товари, кількість і суми в кошику |
| Замовлення | Основний документ онлайн-продажу |
| Рядки замовлення | Товари, кількість, ціни й суми в замовленні |
| Покупці | Дані клієнтів, які оформили замовлення |
| Способи оплати | Оплата при отриманні, онлайн-оплата та інші варіанти |
| Платежі | Дані про оплату замовлення |
| Статуси замовлень | Поточний стан обробки замовлення |
| Email-сповіщення | Повідомлення покупцям і співробітникам |
| Імпорт товарів | Масове завантаження товарів із CSV або Excel |
| SEO-налаштування | URL, Title, Description для категорій і товарів |
Довідник «Категорії товарів»
Довідник категорій товарів потрібен для побудови каталогу інтернет-магазину.
Категорії повинні підтримувати ієрархію. Наприклад:
- Електроніка;
- Електроніка → Ноутбуки;
- Електроніка → Смартфони;
- Одяг → Чоловічий одяг;
- Одяг → Жіночий одяг.
Поля категорії товарів
| Поле | Опис |
|---|---|
| Назва категорії | Назва, яку бачить покупець |
| Батьківська категорія | Для побудови ієрархії каталогу |
| Сортування | Порядок показу категорій |
| URL | Частина адреси категорії |
| Title | SEO-заголовок категорії |
| Description | SEO-опис категорії |
| Статус | Активна або прихована |
Довідник «Товари»
Довідник товарів містить усі товари, які можуть продаватися через інтернет-магазин.
Товар повинен мати не лише назву й ціну, а й опис, артикул, фото, статус, залишок, SEO-поля та зв’язок із категоріями.
Поля товару
| Поле | Опис |
|---|---|
| Назва товару | Основна назва товару |
| Опис товару | HTML-опис через WYSIWYG-редактор |
| Код товару або артикул | Внутрішній код, SKU або артикул |
| Категорія | Категорія каталогу |
| Ціна | Основна ціна продажу |
| Акційна ціна | Опціональна знижена ціна |
| Залишок на складі | Доступна кількість товару |
| Статус товару | Активний або прихований |
| Прев’ю-зображення | Основне фото товару |
| Додаткові фото | Галерея зображень товару |
| SEO title | SEO-заголовок сторінки товару |
| SEO description | SEO-опис сторінки товару |
| URL | Адреса сторінки товару |
Статуси товару
| Статус | Значення |
|---|---|
| Активний | Товар доступний у каталозі |
| Прихований | Товар не показується покупцям, але зберігається в системі |
| Немає в наявності | Товар можна показувати, але не можна купити |
| Архівний | Товар більше не продається |
Критично. Прихований або архівний товар не повинен бути доступний для покупки. Товар без залишку не повинен продаватися, якщо в системі не дозволено продаж “під замовлення”.
Фронтенд магазину для покупців
Фронтенд магазину — це публічна частина, яку бачить покупець.
Вона повинна бути простою, зрозумілою та швидкою: каталог, фільтри, пошук, сторінка товару, кошик і оформлення замовлення.
Каталог товарів
Каталог товарів повинен підтримувати:
- виведення списку товарів за категоріями;
- фільтрацію за ціною;
- фільтрацію за наявністю;
- фільтрацію за акційними пропозиціями;
- пошук товарів по назві;
- пошук товарів по коду або артикулу;
- сортування за ціною;
- сортування за назвою;
- сортування за популярністю або датою додавання, якщо така логіка реалізована.
Сторінка товару
Сторінка товару повинна містити всю інформацію, необхідну для прийняття рішення про покупку.
На сторінці товару потрібно показати:
- фото з можливістю збільшення;
- додаткові фото;
- назву товару;
- артикул або код;
- опис;
- ціну;
- акційну ціну, якщо вона є;
- наявність;
- кнопку «Додати у кошик»;
- пов’язані або рекомендовані товари, опціонально.
Акційні товари
Потрібно передбачити окрему категорію або фільтр «Акції» для товарів з акційною ціною.
Акційний товар має показувати основну ціну й акційну ціну. Покупець повинен чітко бачити, що товар продається зі знижкою.
Кошик
Кошик повинен підтримувати:
- перелік товарів у кошику;
- кількість кожного товару;
- ціну товару;
- суму по кожному рядку;
- загальну суму замовлення;
- можливість змінити кількість товару;
- можливість видалити товар із кошика;
- автоматичний перерахунок загальної суми;
- кнопку «Оформити замовлення».
Важливо. Кількість у кошику не повинна перевищувати доступний залишок, якщо продаж понад залишок не дозволений правилами магазину.
Оформлення замовлення
Форма оформлення замовлення повинна містити контактні дані покупця, адресу доставки, коментар і спосіб оплати.
Поля форми замовлення
| Поле | Опис |
|---|---|
| Ім’я та прізвище покупця | Хто оформлює замовлення |
| Телефон | Основний контактний номер |
| Email для підтвердження замовлення | |
| Адреса доставки | Куди потрібно доставити товар |
| Коментар до замовлення | Додаткова інформація від покупця |
| Спосіб оплати | Оплата при отриманні або онлайн |
Після оформлення система повинна створити замовлення в адміністративній частині та надіслати підтвердження покупцю.
Способи оплати
Потрібно передбачити щонайменше два способи оплати:
| Спосіб оплати | Опис |
|---|---|
| Оплата при отриманні | Покупець оплачує товар під час отримання |
| Оплата онлайн | Покупець оплачує замовлення через платіжну систему |
Інтеграція з платіжною системою
Потрібно реалізувати підключення до однієї з популярних платіжних платформ:
- WayForPay;
- LiqPay;
- Stripe;
- інша платіжна система.
Після успішної оплати система повинна автоматично змінювати статус замовлення.
Платіж має бути пов’язаний із замовленням, сумою, способом оплати, датою, статусом і відповіддю платіжної системи.
Статуси платежу
| Статус | Значення |
|---|---|
| Очікує оплати | Замовлення створене, але оплата ще не проведена |
| Оплачено | Платіж успішно підтверджено платіжною системою |
| Помилка оплати | Платіж не пройшов |
| Повернено | Оплату повернуто покупцю |
Журнал замовлень в адміністративній частині
Журнал замовлень повинен бути доступний в адміністративній частині K2 ERP.
Менеджер має бачити всі замовлення, їхні статуси, покупців, суми, спосіб оплати та поточний етап обробки.
Колонки журналу замовлень
| Колонка | Опис |
|---|---|
| Номер замовлення | Унікальний номер замовлення |
| Дата замовлення | Дата й час оформлення |
| Покупець | Ім’я покупця або клієнта |
| Телефон | Контактний номер покупця |
| Email покупця | |
| Сума | Загальна сума замовлення |
| Статус | Нове, в обробці, відправлено, завершено, скасовано |
| Тип оплати | Оплата при отриманні або онлайн |
| Статус платежу | Очікує оплати, оплачено, помилка, повернено |
Статуси замовлення
| Статус | Значення |
|---|---|
| Нове | Замовлення щойно створено |
| В обробці | Менеджер прийняв замовлення в роботу |
| Відправлено | Замовлення передано на доставку |
| Завершено | Замовлення виконано |
| Скасовано | Замовлення скасовано |
Функціональність журналу замовлень
Журнал замовлень має підтримувати:
- фільтрацію за статусом;
- фільтрацію за періодом;
- фільтрацію за типом оплати;
- фільтрацію за статусом платежу;
- пошук за номером замовлення;
- пошук за телефоном або email покупця;
- перегляд деталей замовлення;
- зміну статусу замовлення;
- перегляд історії зміни статусів;
- експорт списку замовлень, якщо потрібно.
Деталі замовлення
У картці замовлення потрібно показати:
- дані покупця;
- адресу доставки;
- спосіб оплати;
- статус платежу;
- список товарів;
- кількість;
- ціни;
- суми;
- загальну суму;
- коментар покупця;
- історію зміни статусів.
Робота із залишками
Інтернет-магазин має бути пов’язаний зі складським обліком.
Система повинна:
- відображати залишки в реальному часі;
- не дозволяти купити товар у кількості, більшій за доступний залишок;
- автоматично зменшувати залишок товару після покупки або після підтвердження замовлення — залежно від налаштувань;
- показувати статус «Немає в наявності»;
- підтримувати окремі склади, якщо магазин працює з кількома складами.
Правильна логіка. Замовлення в інтернет-магазині має впливати на облік залишків. Якщо товар продано, система повинна відобразити це у складському обліку.
Email-сповіщення
Потрібно реалізувати email-сповіщення.
Email покупцю
Після оформлення замовлення покупець має отримати підтвердження.
У листі потрібно показати:
- номер замовлення;
- дату;
- список товарів;
- суму;
- спосіб оплати;
- адресу доставки;
- контактну інформацію магазину.
Email співробітникам
Співробітники магазину повинні отримати повідомлення про нове замовлення.
У листі потрібно показати:
- номер замовлення;
- покупця;
- телефон;
- суму;
- спосіб оплати;
- список товарів;
- посилання на замовлення в адмінці.
Адміністративний інтерфейс
Адміністративний інтерфейс повинен підтримувати керування товарами, категоріями, фото, залишками та замовленнями.
Керування товарами
Адміністративний інтерфейс має підтримувати:
- додавання товарів через AJAX;
- редагування товарів через AJAX;
- видалення товарів через AJAX;
- завантаження фото товарів;
- редагування опису через WYSIWYG-редактор;
- зміну ціни;
- зміну акційної ціни;
- зміну статусу товару;
- управління SEO-полями.
Керування категоріями
Категоріями потрібно керувати без перезавантаження сторінки.
Потрібно реалізувати:
- створення категорій;
- редагування категорій;
- зміну батьківської категорії;
- сортування;
- приховування категорій;
- керування SEO-полями категорії.
Імпорт товарів CSV або Excel
Потрібно реалізувати завантаження великої кількості товарів через CSV або Excel.
Імпорт має підтримувати:
- назву товару;
- артикул;
- категорію;
- опис;
- ціну;
- акційну ціну;
- залишок;
- статус;
- SEO-поля;
- посилання або назву фото, якщо це передбачено форматом.
Перед імпортом система повинна перевіряти файл і показувати помилки.
Медіафайли товарів
Для товарів потрібно реалізувати завантаження зображень через FilePond або аналогічний інструмент.
Медіаблок має підтримувати:
- основне фото;
- додаткові фото;
- видалення фото;
- сортування фото;
- прив’язку фото до товару;
- прев’ю фото в адміністративній частині.
AJAX-інтерактив
Ключові дії мають виконуватися без зайвого перезавантаження сторінок.
Через AJAX мають працювати:
- додавання товару;
- редагування товару;
- видалення товару;
- зміна статусу товару;
- керування категоріями;
- додавання товару в кошик;
- зміна кількості в кошику;
- перерахунок суми кошика;
- оформлення замовлення;
- зміна статусу замовлення;
- завантаження фото товарів.
Технічні вимоги
| Параметр | Опис |
|---|---|
| Бекенд | K2 ERP на Python або PHP |
| База даних | PostgreSQL або MySQL |
| Фронтенд | HTML5, JavaScript |
| AJAX | Fetch або Axios |
| UI-компоненти | DataTables, Select2, WYSIWYG-редактор для опису товару |
| Платіжні шлюзи | WayForPay, LiqPay або Stripe |
| Медіа | Завантаження зображень через FilePond або аналог |
| Імпорт | CSV або Excel |
Рекомендовані сутності бази даних
Для реалізації задачі доцільно передбачити такі сутності:
- категорії товарів;
- товари;
- фото товарів;
- залишки товарів;
- склади;
- кошики;
- рядки кошика;
- замовлення;
- рядки замовлення;
- покупці;
- способи оплати;
- платежі;
- статуси замовлень;
- історія зміни статусів;
- email-сповіщення;
- імпорт товарів;
- SEO-налаштування.
Практичне завдання
У межах атестації потрібно продемонструвати робочий сценарій.
Мінімальний сценарій:
- створити категорію товарів;
- створити товар із ціною, описом, фото й залишком;
- створити акційний товар;
- перевірити відображення товару в каталозі;
- відкрити сторінку товару;
- додати товар у кошик;
- змінити кількість у кошику;
- перевірити автоматичний перерахунок суми;
- оформити замовлення;
- обрати спосіб оплати;
- перевірити створення замовлення в адмінці;
- виконати або змоделювати онлайн-оплату;
- перевірити автоматичну зміну статусу платежу;
- перевірити зміну статусу замовлення;
- перевірити зменшення залишку товару;
- отримати email-підтвердження покупцю;
- отримати email-сповіщення співробітнику;
- імпортувати товари з CSV або Excel;
- змінити товар через AJAX-адмінку;
- показати журнал замовлень із фільтрами.
Критерії оцінювання
| Критерій | Бали | Що перевіряється |
|---|---|---|
| Реалізація довідника товарів і категорій | 20 | Категорії, товари, ціни, акції, фото, SEO, статуси |
| Робота кошика і оформлення замовлення | 20 | Додавання товарів, зміна кількості, перерахунок сум, форма замовлення |
| Інтеграція з платіжною системою | 20 | Онлайн-оплата, статус платежу, зв’язок платежу із замовленням |
| Журнал замовлень і управління статусами | 20 | Адмінка, фільтри, деталі замовлення, статуси, історія змін |
| Інтерактивність через AJAX | 10 | Каталог, кошик, адмінка, товари, категорії, замовлення без перезавантаження |
| Збереження структури і логіки бізнес-процесів | 10 | Зв’язок магазину зі складом, залишками, оплатами, покупцями й статусами |
| Разом | 100 | Максимальна оцінка |
Шкала оцінювання
| Бали | Рівень | Опис |
|---|---|---|
| 90–100 | Відмінно | Інтернет-магазин повністю працює: каталог, кошик, замовлення, оплата, залишки, адмінка, імпорт і сповіщення реалізовані коректно |
| 75–89 | Добре | Основна логіка працює, є незначні недоліки, які не руйнують процес продажу |
| 60–74 | Зараховано | Базовий сценарій працює, але частина функцій реалізована неповно або потребує доопрацювання |
| 0–59 | Не зараховано | Відсутня критична логіка: каталог, кошик, замовлення, оплата, залишки або журнал замовлень |
Критичні помилки
Критичними помилками вважаються ситуації, коли:
- неможливо створити товар;
- товар не відображається в каталозі;
- неможливо додати товар у кошик;
- сума кошика розраховується неправильно;
- неможливо оформити замовлення;
- замовлення не потрапляє в адміністративну частину;
- статус замовлення не змінюється;
- оплата не пов’язується із замовленням;
- після успішної оплати статус не оновлюється;
- залишки не зменшуються після покупки;
- можна купити товар у кількості, більшій за доступний залишок, якщо це не дозволено правилами;
- покупець не отримує підтвердження;
- співробітники не бачать нового замовлення;
- імпорт товарів спотворює дані або створює дублікати без контролю.
Умова складання. Завдання не може бути зараховане, якщо система не дозволяє пройти базовий цикл онлайн-продажу: товар → кошик → оформлення замовлення → оплата → зміна статусу → списання залишку → журнал замовлень.
Очікуваний результат
У результаті виконання атестаційного завдання має бути створений модуль інтернет-магазину K2 ERP.
Модуль має підтримувати каталог товарів і категорій, сторінки товарів, кошик, оформлення замовлення, онлайн-оплату, журнал замовлень, управління статусами, email-сповіщення, облік залишків, акційні товари, імпорт CSV/Excel та AJAX-адміністрування.
Примітка
Інтернет-магазин є важливим модулем для багатьох бізнесів незалежно від розміру компанії.
Такий модуль допомагає компаніям вийти в онлайн-продажі без залучення сторонніх платформ і при цьому зберегти зв’язок із внутрішнім обліком, складом, оплатами та клієнтською базою.
Коротко
| Питання | Відповідь |
|---|---|
| Що потрібно створити? | Модуль інтернет-магазину |
| Які довідники потрібні? | Категорії товарів і товари |
| Що має бачити покупець? | Каталог, сторінку товару, кошик і форму оформлення замовлення |
| Які способи оплати потрібні? | Оплата при отриманні та онлайн-оплата |
| Які платіжні системи можна використати? | WayForPay, LiqPay, Stripe або іншу платіжну систему |
| Що має бути в адмінці? | Товари, категорії, замовлення, статуси, платежі, імпорт і залишки |
| Що має працювати через AJAX? | Товари, категорії, кошик, замовлення, зміна статусів і завантаження фото |
| Що є критичною вимогою? | Повний цикл онлайн-продажу з оплатою, статусами й залишками |