Перейти до вмісту

Технічне завдання: Афіліантська система

Матеріал з K2 ERP Wiki
Версія від 12:55, 6 травня 2026, створена R (обговорення | внесок) (Первинна публікація)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
6.; Додати включення доступних комісій.; |-
Клієнти Кількість зареєстрованих клієнтів.; Афіліата можна активувати, заблокувати, перевести в архів.;

23.; історичний розвиток змін

  • документ продажу;
  • замовник;
  • афіліат;
  • дата продажу;
  • сума продажу;
  • база комісії;
  • ставка;
  • сума комісії;
  • статус нарахування.; |-
Сума коригування decimal }

customer.affiliate_id → affiliate.id

7.1.; Поля картки афіліата

8.; |-

Тип афіліата enum Так - Багато кліків з одного IP - Джерело привʼязки enum - Назва програми string Так }
Потрібно створити документ або регістр '''Афіліатське нарахування'''.; Детальний click tracking.;=== 21.3.; Звіт “продажі та реалізація по афіліатах” ===
|-
|ID
|UUID / integer
|Унікальний ID ліда.; |-
|Керівник
|Аналізує ефективність партнерської програми.; Перевірити, що документ оплачений, якщо це потрібно за налаштуваннями.; affiliate_links.code — unique
Комісія = оплачена сума без повернень × ставка афіліата
https://site.com/register?affiliate=AFF-000001
!Подія

payment.status = paid → calculate affiliate commission

Поле

https://site.com/?ref=AFF-000001 Менеджер створює афіліата в K2 ERP.; Нарахування комісії з оплаченого продажу.; |-

Скасування При скасуванні виплати нарахування повертаються у статус `available`.;=== 25.4.; Платежі === 2.;
!Тип
Комісія = оплачена сума документа × ставка афіліата
!Поле
=== 29.3.; Нарахування ===
1.; |-
|Комісія з повторних покупок
|boolean
|Так
|Чи нараховується винагорода за повторні покупки.; Звіт по комісіях.; |-
|Статус
|enum
|Так
|Новий, активний, заблокований, архівний.; |-
|Самореферал
|Не нараховувати комісію або відправити на ручну перевірку.; Менеджер бачить продажі та реалізація та комісії по своїх афіліатах.; Перерахувати базу комісії.; |-
|Базова ставка
|decimal
|Так
|Основна ставка програми.; |-
|Обʼєкт
|Який обʼєкт змінено.; |}

Ключові принципи реалізації:
Приклад payload:
=== 8.1.; Поля програми ===
{| class="wikitable"
2.; |-
|Афіліат
|reference
|партнерська сторона, якому нарахована комісія.; !характеристика

!характеристика
=== Етап 3.; 31.3.; Нарахування ===
=== 12.2.; Рекомендоване правило для MVP ===
<pre>
=== 25.5.; Повернення ===
Афіліат має змогу бути повʼязаний із контрагентом K2 ERP.; |-
|Attribution expires at
|datetime
|Дата завершення attribution window.; Створити документ виплати.; 1.; |-
|Дата створення
|datetime
|Дата створення.; affiliate_programs
== 17.; Особистий кабінет афіліата ==
</pre>
pending  rejected
8.; |-
|Початкове нарахування
|reference
|Нарахування, яке коригується.; !Поле
16.;<pre>
2.;

8.2.; Типи комісій

4.; !Термін

29.4.; Повернення

19.2.; Реєстрація ліда

27.2.; Надійність

Комісія має змогу нараховуватися при таких подіях: paid → adjustment

характеристика
"session_id": "abc123",

4.; |-

Код афіліата string Так - Афіліатська програма - Бухгалтер - Виплачено Загальна виплачена сума.;

!характеристика
3.; 6.; Змінювати статуси після проведення.; |-
|Індивідуальна ставка
|decimal
|Ні
|Ставка, яка має пріоритет над ставкою програми.; Бухгалтер формує виплату афіліату.; !Ризик
{| class="wikitable"
!Обовʼязкове

<pre>
=== 13.1.; Відсоткова комісія ===
!характеристика
10.; 4.; |-
|hold
|Нарахування очікує завершення hold-періоду.; |-
|UTM medium
|string
|Канал.; |-
|IP
|string
|IP-адреса.; |-
|Телефон
|string
|Ні
|Контактний телефон.;<pre>
}
3.; |500 грн за нового клієнта.;== 30.; Ризики ==
<pre>
Необхідно створити довідник '''Афіліатські програми'''.; |-
|історичний розвиток змін
|Зміна коду має потрапляти в audit log.; |-
|Афіліат
|reference
|Афіліат, який залучив ліда.; Необхідно створити журнал '''Афіліатські переходи'''.;== 25.; інтеграційні функціональні можливості з існуючими модулями K2 ERP ==
=== 21.1.; Звіт “Ефективність афіліатів” ===
{| class="wikitable"
3.;
base_amount = 10 000 грн
Комісія переходить у статус “Доступна до виплати” після завершення hold-періоду.; |-
|Документ повернення
|reference
|Документ повернення в K2 ERP.; |}

!Статус
3.; |}

1.; {| class="wikitable"
!характеристика
|-
|First click
|замовник закріплюється за першим афіліатом.; |-
|rejected
|Нарахування відхилене.; Перевірити статус афіліата.; 3.; |-
|Коментар привʼязки
|text
|Причина або додатковий характеристика.; |-
|Маржа
|Комісія рахується від прибутку.; 1.; |Повний доступ.; |-
|Виплата
|Фактичне перерахування винагороди афіліату.; |-
|продажі та реалізація
|Кількість і сума продажів.; |-
| style="background:#d4edda; color:#155724; font-weight:bold;" |Обовʼязково
|Комісія не повинна дублюватися по одному продажу.; |Потрібен унікальний ключ на рівні продажу та афіліата.;
Приклад:
  • обмежити доступ афіліатів тільки до власних даних;
  • приховувати персональні інформаційні дані клієнтів у партнерському кабінеті, якщо це потрібно;
  • логувати дії менеджерів;
  • заборонити афіліату змінювати суму комісії;
  • заборонити видалення нарахувань після проведення.; Виплата формується тільки з available-нарахувань.; 1.; |}

=== Етап 5.; 31.5.; Звіти === PARTNER-KYIV-001

Поле Роль 3.;Альтернативний варіант:
"utm_medium": "post",

affiliate_customer_bindings.customer_id

!Менеджер 4.; |- |Ручне редагування

|Адміністратор має змогу змінити код, якщо це дозволено правами.; Чи активний афіліат.; Розрахувати суму комісії.; Після проведення виплати нарахування отримують статус paid.;
"clicks": 1200,
Правило
Адміністратор - Імʼя string - Коментар text Ні - suspicious class="wikitable"

17.; Створити запис у affiliate_commissions.; |-

Заборонено }
"ref": "AFF-000001",

affiliate_payouts

5.; |-

Created at datetime Перегляд комісій, створення виплат, звʼязок з платіжними документами.; |- Афіліатська програма reference }

</syntaxhighlight>

11.; Ліди

POST /api/affiliate/lead

"email": "ivan@example.com",
Афіліат - Телефон string - Поле Яке поле змінено.;

9.3.; Вимоги до коду

13.2.; Фіксована комісія

18.; Трекінг переходів

!характеристика
<pre>
Після проведення документа продажу платформа має перевірити:<pre>
|-
|ID
|UUID / integer
|Так
|Унікальний ідентифікатор афіліата.; Якщо менеджер вручну привʼязав клієнта — застосовується ручна привʼязка.; |-
| style="background:#fff3cd; color:#856404; font-weight:bold;" |істотно
|Повернення має коригувати комісію.; Unit-тести формул.; |-
|замовник K2 ERP
|reference
|Посилання на створеного клієнта.;<pre>
1.; * афіліат;
* сума в hold;
* сума доступна до виплати;
* сума виплачена;
* мінімальний поріг виплати;
* статус виплати.; Додати поля в картку клієнта.; |}

!Тип

=== 28.2.; Що можна відкласти ===
=== 29.2.; Привʼязка клієнта ===
GET /api/affiliate/{affiliate_code}/stats
== 6.; Функціональні модулі ==
{| class="wikitable"
affiliate.contractor_id → contractor.id
4.; |-
|Валюта
|enum
|Валюта нарахування.; !Поле
<pre>
available → cancelled
!характеристика
|-
|користувач системи
|Хто зробив зміну.; |-
|Дата завершення
|date
|Ні
|Дата завершення програми.; Якщо індивідуальної ставки немає, ставка береться з програми.; замовник реєструється або оформлює замовлення.; |Нові комісії не нараховуються.; Якщо сума менша за мінімальний поріг, платформа блокує виплату.; |-
|Контрагент K2 ERP
|reference
|Ні
|Посилання на контрагента в ERP.;
Вимога

affiliates

2.;Приклад payload:
=== 19.4.; Отримання статистики афіліата ===
== 8.; Довідник “Афіліатські програми” ==
2.; |-
|Статус
|enum
|draft, approved, paid, cancelled.; |-
|Дата початку
|date
|Так
|Дата старту програми.; }
== 29.; Критерії приймання ==
!характеристика
}
POST /api/affiliate/customer
7.; Якщо замовник зареєструвався з ref-кодом  застосовується цей ref-код.;== 13.; Формули розрахунку комісії ==
=== 16.1.; Поля документа виплати ===
affiliate_leads
=== 12.1.; Подія для нарахування комісії ===
7.; Перевірити, що документ проведений.; |-
|Фіксована сума
|decimal
|Ні
|застосовується для фіксованої або змішаної комісії.; !Правило
Звіт має містити:

* реєструвати афіліатів;
* створювати афіліатські програми;
* генерувати реферальні коди та посилання;
* привʼязувати клієнтів до афіліатів;
* нараховувати комісії з продажів;
* враховувати повернення та сторно;
* формувати виплати;
* аналізувати ефективність партнерів;
* контролювати права доступу;
* вести історію змін.; !Адміністратор
!Статус
=== 29.6.; Звіти ===
При проведенні повернення платформа має знайти повʼязане нарахування й виконати коригування.; Якщо привʼязка заблокована, автоматична зміна афіліата неможлива.; !Приклад
2.; |-
|User Agent
|string
|Браузер або пристрій.; 14.; Розрахувати комісію.; }
2.; Реалізувати hold-період.; |-
|Ручна привʼязка менеджером
|Менеджер обирає афіліата в картці клієнта.; Записати дату hold_until.; !характеристика

affiliate_customer_bindings.customer_id  unique, якщо дозволений тільки один афіліат
== 3.; Основні ролі користувачів ==
Якщо повернуто частину товарів:
5.; |-
|Hold-період
|Період очікування перед тим, як комісія стане доступною до виплати.; Якщо комісія вже виплачена — створити мінусове коригування.; Створити довідник програм.; |}

 "ref": "AFF-000001",
<pre>
платформа має:
Якщо продаж в цілому повернуто:<pre>
{
|-
|Нарахування
|reference
|Афіліатське нарахування.; 6.;<pre>

 "commission_total": 15000,
замовник має містити посилання на афіліата або окремий регістр привʼязки.; |-
|URL
|string
|Сторінка переходу.; Мультивалютні конвертації.;
Приклад посилання на реєстрацію:

{| class="wikitable"

<pre> !Тип 4.; |- |Платіжний документ |reference |Звʼязок із бухгалтерським або банківським документом.; |- |Attribution window |Період, протягом якого продаж клієнта закріплюється за афіліатом.; |- |Мінімальна сума виплати |decimal |Ні |Поріг, після якого можна створити виплату.; Особистий кабінет афіліата.; |- |Афіліат |партнерська сторона, який залучає клієнтів.; Перевірити, чи замовник має активну афіліатську привʼязку.; Створити довідник афіліатів.; |- |Категорії товарів |Комісія рахується тільки по товарах, які беруть участь у програмі.; |- |UTM source |string |Джерело.;=== 16.3.; Правила формування виплати === <pre> <pre> 12.; 8.; |- |Дата активації |datetime |Ні

|Дата переведення у статус “Активний”.;
"name": "Іван Петренко",

платформа має підтримувати такі варіанти attribution: affiliate_clicks

"source": "landing_page",
Правило

платформа має підтримувати конфігурація бази розрахунку: 1.; |-

clean - Відповідальний менеджер reference Ні - Конверсія - Афіліат reference - Документ продажу reference Продаж, за який нарахована комісія.;=== 24.2.; Ключові унікальні обмеження ===

10.4.; Рекомендоване правило для MVP

19.; API для інтеграції з сайтом

6.; |-

Hold-період integer Так class="wikitable"

22.; Антифрод

pending → hold → available → paid платформа має автономно генерувати унікальний код для кожного афіліата.; Тести привʼязки клієнта.; платформа перевіряє правила афіліатської програми.;=== Етап 6.; 31.6.; Тестування === Комісія створюється після успішної оплати документа продажу.; |Нові комісії не нараховуються.; |-

Комісія в hold 200 грн + 5% від продажу.; Складний антифрод.; |- Тип комісії enum Так - Один раз Одне нарахування не має змогу бути включене у дві виплати.;== 24.; Рекомендована структура даних ==

21.4.; Звіт “Повернення та коригування”

Для першої версії рекомендується правило:
1.; !Тип
=== 13.4.; Tiered-комісія ===

3.; |}

Приклад response:
== 15.; Повернення та сторно ==
{| class="wikitable"
</pre>
{| class="wikitable"
{| class="wikitable"
|-
|Оплата замовлення
|Комісія створюється після фактичної оплати.; |-
|Статус
|enum
|draft, approved, applied, cancelled.;== 12.; продажі та реалізація та комісійні нарахування ==
!Тип
!характеристика
1.;== 9.; Реферальні коди та посилання ==
5.; Розробити в K2 ERP функціональні можливості, який надає можливість:
3.; Перевірити attribution window.; Необхідно:
Якщо комісія нараховується тільки після оплати, платформа має реагувати на подію оплати:<pre>
!Коментар

1.; 5.; !Місячний обсяг продажів

* не менше 100 000 афіліатських кліків на місяць;
* не менше 10 000 лідів на місяць;
* не менше 50 000 продажів на місяць;
* формування звіту за період до 1 року не довше 30 секунд при нормальній індексації.; |Потрібно зберігати дату, джерело й користувача, який змінив привʼязку.; Автоматичні банківські виплати.; Тести прав доступу.; |-
|blocked
|Нарахування заблоковане.; Ставка береться з афіліата, якщо вона задана.; Адміністратор має змогу створити афіліата.; |}

available  paid

affiliate_antifraud_checks

|-
|pending
|Нарахування створене, але ще не перевірене.;=== 10.1.; Способи привʼязки ===
== 28.; MVP-версія ==
3.; |-
|Дата привʼязки
|datetime
|Дата привʼязки клієнта до афіліата.; * афіліат;
* афіліатська програма;
* ставка комісії;
* статус нарахування;
* виплата;
* ручне коригування;
* привʼязка клієнта до афіліата.; |-
|Причина
|text
|Причина коригування.; |}

!Ставка
=== 21.2.; Звіт “Комісії до виплати” ===
{| class="wikitable"
commission_rate = 10%
=== 15.1.; Повне повернення ===
|-
| style="background:#d4edda; color:#155724; font-weight:bold;" |Обовʼязково
|Кожен афіліат має унікальний код.; |-
|замовник
|reference
|замовник продажу.; "utm_source": "telegram",
=== 27.1.; Продуктивність ===
|-
|Номер виплати
|string
|Унікальний номер документа.; |-
|Відвантаження
|Комісія створюється після відвантаження товару.; |-
|Період
|date range
|Період, за який формується виплата.; |Потрібно створювати документ коригування.;=== 15.3.; Документ “Коригування афіліатської комісії” ===
=== 17.2.; Dashboard афіліата ===
{| class="wikitable"
!Спосіб
affiliate_commission_adjustments
!Обовʼязкове
{| class="wikitable"
500 грн за нового клієнта

2.; !характеристика

Приклад базового посилання:
компонент для обліку партнерів, реферальних кодів, залучених клієнтів, продажів, комісійних нарахувань, коригувань і виплат афіліатам виступає ключовою рисою '''Афіліатська платформа в K2 ERP'''.; |-
|UTM campaign
|string
|Кампанія.; |-
|Дуже високий conversion rate
|Відправити на перевірку.; |}

=== 29.1.; Афіліати ===

4.; |}

7.2.; Статуси афіліата

Бухгалтер Тобто:

Новий }

29.5.; Виплати

affiliate_payout_lines.commission_id — unique "phone": "+380501112233", Необхідно створити журнал або документ Афіліатські ліди.; |-
Комісія Винагорода афіліата за залученого клієнта або продаж.; !Визначення

2.; |-

Привʼязка заблокована boolean - Архівний Перегляд власної статистики, комісій і виплат.; |- Спосіб виплати enum - UTM medium string UTM-канал.; 11.; !Варіант

2.;=== Етап 2.; 31.2.; інформаційні дані та довідники === 4.; affiliate_audit_log affiliate_payout_lines

10.3.; Правила attribution

Афіліат

Потрібно зберігати історію змін для таких обʼєктів:

ID UUID - Заблокований Афіліат тимчасово заблокований.; BLOGGER-ANNA

2.; платформа створює комісійне нарахування.; Узгодити подію нарахування.; |-

Session ID string - Доступно до виплати } Основні права

4.; * один афіліат має унікальний реферальний код;

  • замовник має прозору історію привʼязки до афіліата;
  • комісія не повинна дублюватися;
  • ставка має фіксуватися на момент нарахування;
  • повернення мають коригувати комісію;
  • виплати мають проводитися тільки за підтвердженими та доступними нарахуваннями;
  • усі важливі зміни мають логуватися.; 4.; |Перегляд звітів.; |-
Завершення періоду повернення Створювати мінусові коригування.; |- Назва / ПІБ string Так - Дата виплати datetime - Афіліат reference - Статус enum Так - cancelled - API Сайт, CRM або інша платформа передає ref-код у K2 ERP.; * документ продажу;
  • документ повернення;
  • афіліат;
  • початкова комісія;
  • сума коригування;
  • фінальна комісія;
  • причина коригування.; |Нові комісії не нараховуються.;=== 15.2.; Часткове повернення ===
Приклад payload:<syntaxhighlight lang="json">
Унікальність - Афіліатська програма reference Так - Закриття продажу - Документ продажу reference - Дата створення datetime - Ручне введення коду - Hold until date - Відсоток Чітко затвердити first click / last click / manual priority.; |- Повернення після виплати - UTM campaign string - Лід - Менеджер партнерської програми - Attribution window integer Так - Валюта enum - Код програми string Так Унікальні ключі та перевірка перед створенням нарахування.; |- Код афіліата string }

23.1.; Поля audit log

3.; Визначити ставку.; |-

Причина відхилення text Заповнюється при rejected або cancelled.; "commission_paid": 6000
0–50 000 грн 5%
50 001–100 000 грн 7%
100 001+ грн 10%
Варіант 2:

!Поле

!характеристика

"affiliate_code": "AFF-000001",

affiliate_customer_bindings === 9.1.; Генерація реферального коду === 4.; |Якщо комісія вже виплачена — створюється мінусове коригування.; |- |Комісія з першої покупки |boolean |Так |Чи нараховується винагорода за першу покупку.; !характеристика <pre> === 25.2.; Клієнти === <pre>

<pre> === 18.1.; Поля журналу переходів === { commission_amount = 1 000 грн !характеристика |- |ID |UUID / integer |Унікальний ID коригування.; Для MVP достатньо реалізувати довідник афіліатів, афіліатські програми, привʼязку клієнтів, просту відсоткову комісію, hold-період, виплати та базову формування звітів.; |}

== 31.; Рекомендований план реалізації == {| class="wikitable"

  • довідник афіліатів;
  • довідник афіліатських програм;
  • реферальні коди та посилання;
  • журнал переходів;
  • ліди;
  • привʼязка клієнтів до афіліатів;
  • комісійні нарахування;
  • коригування комісій;
  • виплати афіліатам;
  • звіти;
  • антифрод-перевірки;
  • аудит змін;
  • API для зовнішнього сайту або CRM;
  • особистий кабінет афіліата, якщо передбачено.; |-

|Статус |enum |pending, hold, approved, available, rejected, paid, cancelled.; 11.;=== 14.3.; Життєвий цикл нарахування === !Статус

!Поле !Тип 3.; Чи продаж підпадає під правила програми.; |- |approved |Перевірено вручну.; {| class="wikitable" !Поле !характеристика

1.; !Поле Афіліатська платформа в K2 ERP має бути окремим модулем.; |- |Після проведення |Після проведення виплати нарахування отримують статус `paid`.; 2.;=== 9.2.; Формат реферального посилання === У картці клієнта потрібно додати поля: |- |Сума документа з ПДВ |Комісія рахується від повної суми продажу.; "utm_campaign": "may_campaign", { {| class="wikitable" === 11.1.; Поля ліда === commission_amount = fixed_amount <pre>

6.; Створити нарахування зі статусом hold або pending.; |-

Старе значення - Самореферали - Імпорт - Конверсія Відсоток переходів, які стали лідами або продажами.;=== 24.1.; Основні сутності ===
6.; платформа генерує унікальний реферальний код.; |}

Звіт має містити:
1.; Після виплати комісія отримує статус “Виплачено”.; {| class="wikitable"
3.; |-
|Коментар
|Причина зміни.; |-
|Фіксована сума
|Афіліат отримує фіксовану винагороду за конверсію.;
Афіліат reference Зберігати ставку в нарахуванні на момент створення.; {| class="wikitable"
"url": "https://site.com/pricing",

affiliate_commissions

27.3.; Безпека

25.3.; продажі та реалізація

Етап 1.; 31.1.; аналітичні інструменти

commission_amount = base_amount × commission_rate / 100

характеристика

7.; |}

"customer_id": "CUST-000123",
== 32.; Висновок ==
<pre>
4.; |-
|Ref-посилання
|замовник перейшов за посиланням із кодом афіліата.; |-
|paid
|Нарахування виплачене.; |-
|Ref-код
|string
|Код, переданий у заявці.; Чи є собою у клієнта афіліат.; |-
|Реферальне посилання
|Посилання з ref-кодом афіліата.; 10.; |-
|Активний
|Афіліат має змогу залучати клієнтів.; |Дозволено тільки скасування або коригування.; Ручна привʼязка клієнта.; Довідник афіліатів.; замовник здійснює оплату.;== 7.; Довідник “Афіліати” ==
 "session_id": "abc123"
!Наслідок
Афіліат має бачити:

4.; Заблокований афіліат не отримує нових комісій.; |}

9.; |}

Необхідно створити довідник Афіліати.; |-

Перевірка дублів При збереженні платформа перевіряє, що код не зайнятий.; Після hold-періоду комісія стає доступною до виплати.;

22.2.; Статуси антифроду

"email": "ivan@example.com",
"ref": "AFF-000001",

4.; Терміни та визначення

14.; Документ “Афіліатське нарахування”

2.; 3.; |-

Сума без ПДВ Комісія рахується від суми без податків.; !Тип

4.; Після оплати продажу створюється комісія.; |-

Manual priority До 100 000 грн — 5%, понад 100 000 грн — 8%.; Повне повернення скасовує невиплачену комісію.; |- Дата реєстрації datetime Так - Максимальна кількість нарахувань на клієнта integer Ні Обмеження кількості комісій по одному клієнту.; !характеристика 1.; |-
Змішана - Last click замовник закріплюється за останнім афіліатом перед покупкою.; affiliate_links

commission_amount = fixed_amount + base_amount × commission_rate / 100

  • свій реферальний код;
  • реферальні посилання;
  • кількість переходів;
  • кількість лідів;
  • кількість клієнтів;
  • кількість продажів;
  • суму продажів;
  • суму комісій;
  • комісії в hold;
  • доступно до виплати;
  • виплачено;
  • історію виплат.; Окремо варто відзначити який звʼязує партнерів, клієнтів, продажі та реалізація, комісії і виплати.; |-
UTM source string UTM-джерело.; "user_agent": "Mozilla/5.0"

19.1.; Фіксація кліку

характеристика

10.; Привʼязка клієнтів до афіліатів

2.; |-

Tiered Ставка залежить від обсягу продажів або кількості клієнтів.; Додати запис в audit log.; 9.;== 26.; Алгоритм нарахування комісії ==

Етап 4.; 31.4.; Виплати

14.1.; Поля нарахування

Приклад:

=== 12.4.; Рекомендована база для MVP === 2.; |- |Дата створення |datetime |Дата створення ліда.; 3.; 2.; |- |Ставка |decimal

|Ставка, зафіксована на момент нарахування.; Визначити базу розрахунку.; Комісія переходить у статус available після hold-періоду.; |Створення афіліатів, перегляд продажів, підтвердження комісій.;
Статус характеристика

10.2.; Поля в картці клієнта

"leads": 80, 1.; Комісія не дублюється при повторному проведенні документа.; |Додати антифрод-перевірки.; Маркетингові матеріали для афіліатів.; Реферальний код.; |-
Валюта enum Так - Створення афіліата Так Так Ні Ні Ні
Редагування афіліата Так Так Ні Ні Ні
Редагування афіліатської програми Так Ні Ні Ні Ні
Перегляд продажів Так Так Так Так Тільки свої
Перегляд комісій Так Так Так Так Тільки свої
Підтвердження комісій Так Так Ні Ні Ні
Формування виплат Так Ні Так Ні Ні
Проведення виплат Так Ні Так Ні Ні
Перегляд dashboard Так Так Так Так Тільки свій

hold → cancelled

1.; Мета розробки

  • афіліат;
  • кількість кліків;
  • кількість лідів;
  • кількість клієнтів;
  • кількість продажів;
  • сума продажів;
  • сума комісій;
  • конверсія click → lead;
  • конверсія lead → sale;
  • середній чек;
  • ROI.; 1.; Tiered-комісії.; |-
Зміна ставки заднім числом Некоректні історичні комісії.; Перевірити статус програми.; Узгодити типи комісій.; affiliates.code — unique

1.; Отримати клієнта.; |-

ID UUID / integer - База розрахунку decimal Сума, від якої рахується комісія.; 2.; |Комісії нараховуються.; |-
Статус enum - Валюта enum }

4.; |-

Сума комісії decimal - істотно замовник має прозору історію привʼязки до афіліата.;=== 16.2.; Таблична частина виплати ===

affiliate_commissions.sale_document_id + affiliate_id + commission_type — unique

27.; Нефункціональні вимоги

15.; |10% від суми продажу.; !Тип
 "phone": "+380501112233",
 "sales_amount": 150000,
!Дія
{| class="wikitable"
POST /api/affiliate/click
!Ситуація
2.; платформа має підтримувати:

=== 25.1.; Контрагенти ===
!характеристика
== 21.; Звіти ==
!Поле
!Керівник
!Тип
== 5.; Важливі правила реалізації ==

Звіт має містити:

16.; Виплати афіліатам

1.; Узгодити бізнес-процес виплат.; |-

Стабільність Зміна ставки в майбутньому не має змінювати старі нарахування.;== 2.; Короткий характеристика бізнес-процесу ==

5.; |-

Email string Так - Заборонено - замовник reference - Афіліат reference - Мінімальна сума - Валюта enum Так Валюта програми.; Тип комісії

17.1.; Функції кабінету

Варіант 1:
!Вплив на нарахування

5.; |-
|Масові повернення по одному афіліату
|Вивести в окремий звіт.; 1.; Тести продажів.; |-
|Дата створення
|datetime
|Дата створення.; Звіт по афіліатах.; Звіт до виплати.; Manual priority → First successful registration → First click
Приклади кодів:<pre>
!характеристика
5.; Узгодити hold-період.; |-
| style="background:#d4edda; color:#155724; font-weight:bold;" |Обовʼязково
|Ставка комісії фіксується в момент створення нарахування.; Якщо комісія ще не виплачена — змінити або скасувати нарахування.; |-
|Ліди
|Кількість потенційних клієнтів.;

14.2.; Статуси нарахування

  • не дублювати нарахування по одному продажу;
  • мати унікальний ключ на звʼязку “продаж + афіліат + тип нарахування”;
  • логувати всі зміни статусів;
  • зберігати історію ставок;
  • не перераховувати старі комісії заднім числом без документа коригування.; Бухгалтер бачить суми до виплати.; |-
available - Сума комісії decimal - Фіксована сума decimal - Нове значення Значення після зміни.;

20.; Права доступу

Дублювання комісій class="wikitable"

платформа має складатися з таких функціональних блоків:

"commission_available": 9000,

3.; |-

Неправильна attribution-логіка - Оплачена сума - Афіліат і замовник мають однаковий email або телефон }

22.1.; Базові антифрод-перевірки


affiliate_customer_bindings.affiliate_id

"session_id": "abc123"

Цей розділ реалізується, якщо в K2 ERP є собою зовнішній портал або партнерський кабінет.;=== 12.3.; База для розрахунку комісії ===

"customers": 30,
Як зменшити

13.; Зменшити суму комісії.; |}

10.; 3.; |Код застосовується для привʼязки клієнтів і продажів.; |-

Переходи - Email string - approved - замовник - Афіліатський код string - Дата актуалізація datetime - Дата Коли зроблено зміну.; !Показник

Афіліатська платформа в K2 ERP

Тільки available У виплату можна включати тільки нарахування зі статусом `available`.;=== 19.3.; Реєстрація клієнта === Дія

Звіт має містити: Потрібно створити документ Виплата афіліату.; Якщо комісія ще не виплачена — скасувати нарахування.; |-

Джерело string Сайт, форма, рекламна кампанія.; AFF-000001

28.1.; Що включити в MVP

7.; Отримати афіліатську програму.; { 9.; API для привʼязки клієнта за ref-кодом.; |-

Реферальний код - Сума до виплати decimal Загальна сума нарахувань у виплаті.;=== 13.3.; Змішана комісія === 2.;