Місток
Документація

Аналітика і точки відмови

Швидкий старт новеАрхітектураШлюзиHTTP APIПередоплата і правилаФіскалізаціяСповіщення і CRMПосилання на оплатуАналітика новеПольщаНативний шлюз ShopifyБезпека нове

Місток пише подію на кожному кроці — від створення замовлення до оплати — і показує, де саме і скільки грошей зійшло з рейок.

Що збирається

ПодіяКолиАтрибути
order_createdвебхук orders/create (наші методи та накладений)країна, область, місто з адреси доставки, сума, спосіб
pay_clickпокупець натиснув кнопку (/pay)+ пристрій (mobile/desktop), країна за IP (Cloudflare/nginx), мова
redirectedрахунок створено, редірект на PSPшлюз, сума, правило передоплати
returnedповернувся зі сторінки PSP
paid / prepaid / failed / expired / cancelled / reversed / refunded / reminder_sent / link_openedвідповідні переходипричина відмови від шлюзу

Точки відмови

Для кожної точки дашборд показує кількість і суму втрачених грошей, а таблиця «зависли сьогодні» — конкретні замовлення, які ще можна дотиснути дзвінком чи повідомленням.

Аномалії, що підсвічуються

Географія

Країна/область/місто — з адреси доставки Shopify (надійніше за IP); країна за IP додається як окремий атрибут для виявлення покупців з-за кордону, що замовляють в Україну. Таблиці: країни (конверсія, виручка), області/воєводства, міста.

Дашборд: /admin/dashboard?key=…&days=7|30|90. JSON: /admin/api/stats. Telegram: /today.

Модуль аналітики (/admin/analytics)

Дашборд відповідає на «де втрачаємо гроші», модуль аналітики — на «звідки гроші приходять і чи повертаються покупці». Працює на тих самих даних Містка, без GA і без cookie-банерів.

БлокЗвідки даніЩо показує
📣 Джерела трафікуlanding_site / referring_site / source_name з вебхука orders/create та customerJourneySummary із Admin APIutm_source / utm_medium (напр. google / cpc), інакше хост реферера (instagram.com), інакше джерело Shopify (POS, чернетка). Замовлення, оплати, конверсія, виручка, середній чек по кожному джерелу; UTM-кампанії окремо.
🔁 Нові vs повторніcustomer.numberOfOrders + історія оплат за email/телефономчастка повторних, середній чек нових і повторних, топ-10 покупців за сумою.
📦 Товаризнімок позицій замовлення в момент оплатитоп-15 за виручкою, штуки, середній кошик.
⏱️ Час до оплатистворення замовлення → оплатагістограма (< 2 хв … > 3 днів), медіана, p90 — підказка, коли слати нагадування.
🔔 Нагадуваннялічильник нагадувань на рахункускільки замовлень отримали нагадування, скільки з них оплачено, повернута виручка.
🌍×💳 Країна × провайдерадреса доставки + шлюзоплачено / замовлень у кожній клітинці — видно, де бракує локального методу.
🧑‍🤝‍🧑 Когортитиждень першої оплатичастка покупців, що купили ще раз (12 тижнів).

KPI зверху порівнюються з попереднім періодом такої ж довжини (▲▼). Висновки формуються автоматично: падіння конверсії ≥ 15 %, слабке джерело, ефективність нагадувань, частка повторних, надто довгий час до оплати. Експорт: /admin/analytics.csv?days=30 (секції source / campaign / product / weekday / country_provider / cohort), JSON: /admin/api/analytics?days=30.

💸 Комісії провайдерів і 📬 тижневий дайджест

Блок «Комісії провайдерів» показує, скільки з’їдає еквайринг: фактична комісія береться з виписки mono (/api/merchant/statement, раз на поллінг), зі статусів LiqPay (receiver_commission), WayForPay (fee) і Fondy; для решти — оцінка за тарифом (FEE_RATE_<PROVIDER> у .env). KPI «чистими» = виручка − комісії; висновок підсвічує найдорожчий шлюз.

нове Для оцінки там, де PSP не повідомляє комісію, є правила FEE_RULES (Налаштування → «Комісії еквайрингу» або .env): масив {provider, country, currency, minAmount, maxAmount, rate, fixed, note}, перше збіжне правило виграє; provider — код, список через кому або *; rate у %, fixed у копійках за операцію. Приклад: [{"provider":"stripe","currency":"PLN","rate":1.5,"fixed":100},{"provider":"*","country":"PL","rate":2.9}]. Під таблицею провайдерів — розбивка комісій за ринками (країна × валюта).

Щопонеділка о 09:00 (Київ) бот надсилає дайджест тижня: виручка, конверсія, середній чек і покупці зі стрілками проти минулого тижня, джерела, втрати, провайдери, нагадування, висновки. DIGEST=off вимикає, DIGEST_DOW/DIGEST_HOUR змінюють час, /digest у боті — на вимогу.

Джерела та товари зберігаються для замовлень, створених після оновлення; старі замовлення показуються як «прямий / невідомо». У пісочниці всі блоки заповнені вигаданими даними.