💰 Подія order_item_snapshot — Unit-економіка продажів
order_item_snapshot — подія, яку SellerIQ відправляє в Mixpanel для аналізу
юніт-економіки продажів — прибутковості кожної проданої одиниці товару.
Кожен івент — це «знімок економіки» однієї одиниці товару в межах замовлення:
- за якою ціною товар був проданий;
- яка в нього собівартість;
- які знижки та комісії застосовувалися;
- яка частина доставки припала на цю одиницю;
- який підсумковий прибуток (у сумі та у відсотках);
- які додаткові параметри були враховані (зокрема через
@siq).
⚠️ Статус: BETA / у розробці Подія вже доступна для тестових користувачів. Структура і набір показників можуть доповнюватися й уточнюватися.
ℹ️ Дані з SalesDrive і KeyCRM SellerIQ підключається до двох CRM-систем — 🔗 SalesDrive і 🔗 KeyCRM. Ці CRM віддають різний набір даних про замовлення, тому частина властивостей події доступна лише для однієї з них. У кожній таблиці нижче є колонки SalesDrive і KeyCRM — ✅ означає, що властивість заповнюється реальними даними для цієї CRM, ❌ — що вона завжди порожня (
null,0абоfalse). Джерело конкретного запису видно у властивостіcrm_provider("salesdrive"або"keycrm") — за нею можна фільтрувати звіти.
🧠 Загальний принцип роботи
SellerIQ аналізує кожну продану одиницю товару окремо, навіть якщо в замовленні кілька однакових товарів.
Приклад:
- У замовленні: 1 товар × 3 штуки
- У Mixpanel буде відправлено 3 окремі події
- Кожна подія відповідає одній одиниці товару
🏷 Назва події в Mixpanel
Технічна назва події:
order_item_snapshot
Рекомендований Display name у Mixpanel, наприклад:
Unit-економіка продажів
🧱 Структура події
Нижче описані всі властивості, які SellerIQ передає в події order_item_snapshot.
1. Ідентифікація замовлення і товару
| Властивість | Тип | SalesDrive | KeyCRM | Опис | Приклад |
|---|---|---|---|---|---|
crm_provider | string | ✅ | ✅ | Джерело даних — з якої CRM прийшло замовлення | "salesdrive" / "keycrm" |
crm_account_id | string | ✅ | ✅ | ID підключеного CRM-акаунту в SellerIQ (якщо їх декілька) | "7" |
order_internal_id | string | ✅ | ✅ | Внутрішній ID замовлення в CRM | "123456" |
order_external_id | string | ✅ | ✅ | Номер замовлення із зовнішнього джерела (Rozetka, Prom тощо) | "RZ-9845123" |
product_internal_id | string | ✅ | ✅ | Внутрішній ID товару в CRM | "54321" |
product_crm_id | string | ✅ | ✅ | Код товару, як він вказаний у CRM (SKU) | "108089307" |
stock_id | string | ✅ | ✅ | ID складу/залишку (якщо є) | "12" |
unit_index | number | ✅ | ✅ | Номер одиниці товару всередині позиції (1..N) | 2 |
quantity | number | ✅ | ✅ | Кількість у цій події (завжди 1) | 1 |
2. Контекст замовлення (дати, статус, тип)
| Властивість | Тип | SalesDrive | KeyCRM | Опис | Приклад |
|---|---|---|---|---|---|
order_created_at | string | ✅ | ✅ | Дата/час створення замовлення | "2026-01-21 10:20:00" |
order_updated_at | string | ✅ | ✅ | Дата/час оновлення замовлення | "2026-01-21 12:35:10" |
order_status_id | string | ✅ | ✅ | ID статусу замовлення в CRM | "3" |
order_status_name | string | ✅ | ✅ | Назва статусу замовлення | "В обработке" |
order_type_id | string | ✅ | ✅ | ID типу замовлення в CRM | "1" |
order_type_name | string | ✅ | ✅ | Назва типу замовлення | "Интернет-заказ" |
ℹ️ Для KeyCRM окремого поля «тип замовлення» немає — замість нього використовується стадія воронки продажів, до якої належить поточний статус замовлення. Значення не збігається за змістом із SalesDrive: воно змінюється разом зі статусом, а не задається один раз як окремий тип.
3. Організація, канал продажів, менеджер
| Властивість | Тип | SalesDrive | KeyCRM | Опис | Приклад |
|---|---|---|---|---|---|
organization_id | string | ✅ | ❌ | ID організації | "10" |
organization_name | string | ✅ | ❌ | Назва організації | "SellerIQ LLC" |
site_id | string | ✅ | ✅ | ID сайту/каналу продажів у CRM | "2" |
site_name | string | ✅ | ✅ | Назва сайту/каналу продажів | "Rozetka" |
sales_channel | string | ✅ | ✅ | Канал продажів (як текст) | "Rozetka" |
manager_id | string | ✅ | ✅ | ID менеджера | "15" |
manager_name | string | ✅ | ✅ | Ім’я менеджера | "Алексей" |
4. Доставка
Вартість доставки враховується на рівні замовлення, після чого розподіляється між товарами (пропорційно вартості товарів у замовленні).
Приклад розподілу:
- Вартість доставки замовлення: 300 ₴
- Товари в замовленні:
- Товар A — 2000 ₴
- Товар B — 1000 ₴
Результат:
- Товар A → 200 ₴ доставки
- Товар B → 100 ₴ доставки
Якщо товар продається в кількох одиницях, його частка доставки рівномірно розподіляється між одиницями.
| Властивість | Тип | SalesDrive | KeyCRM | Опис | Приклад |
|---|---|---|---|---|---|
delivery_method_id | string | ✅ | ✅ | ID способу доставки | "4" |
delivery_method_name | string | ✅ | ✅ | Назва способу доставки | "Новая Почта" |
product_shipping_costs | number | ✅ | ✅ | Частина доставки, віднесена до одиниці товару | 120 |
delivery_provider | string | ✅ | ✅ | Провайдер доставки (як у CRM) | "novaposhta" |
delivery_sender_id | string | ✅ | ❌ | ID відправника (як у CRM) | "123" |
delivery_type | string | ✅ | ❌ | Тип доставки (як у CRM) | "warehouse" |
delivery_payer | string | ✅ | ❌ | Хто оплачує доставку | "buyer" |
delivery_city | string | ✅ | ✅ | Місто доставки | "Киев" |
delivery_region | string | ✅ | ✅ | Регіон/область | "Киевская" |
delivery_branch_number | string | ✅ | ❌ | Номер відділення | "24" |
delivery_address_raw | string | ✅ | ✅ | Адреса (як рядок із CRM) | "ул. ..." |
has_postpay | boolean | ✅ | ❌ | Є післяплата (у KeyCRM завжди false — даних про накладений платіж CRM не віддає) | true |
delivery_postpay_sum | number | ✅ | ❌ | Сума післяплати (у KeyCRM завжди 0) | 500 |
tracking_number | string | ✅ | ✅ | Трек-номер | "20400012345678" |
has_delivery_data | boolean | ✅ | ✅ | У замовленні є дані доставки | true |
5. Оплата
| Властивість | Тип | SalesDrive | KeyCRM | Опис | Приклад |
|---|---|---|---|---|---|
payment_method_id | string | ✅ | ✅ | ID способу оплати | "2" |
payment_method_name | string | ✅ | ✅ | Назва способу оплати | "Оплата картой" |
payment_status_id | string | ✅ | ❌ | ID статусу оплати (у KeyCRM доступна тільки назва статусу, без ID) | "1" |
payment_status_name | string | ✅ | ✅ | Назва статусу оплати | "Оплачено" |
payment_date | string | ✅ | ✅ | Дата оплати (якщо є) | "2026-01-21 11:05:00" |
6. Дані товару (картка)
| Властивість | Тип | SalesDrive | KeyCRM | Опис | Приклад |
|---|---|---|---|---|---|
product_name | string | ✅ | ✅ | Назва товару | "Apple iPhone 13 128GB" |
product_category | string | ✅ | ❌ | Категорія товару | "Смартфоны" |
product_manufacturer | string | ✅ | ❌ | Виробник | "Apple" |
product_barcode | string | ✅ | ✅ | Штрихкод | "194252707564" |
product_sku | string | ✅ | ✅ | Артикул товару в CRM | "SKU-001" |
7. База товару (як прийшло з CRM)
Ці поля показують «базові» значення, які SellerIQ використовує як основу для розрахунків.
| Властивість | Тип | SalesDrive | KeyCRM | Опис | Приклад |
|---|---|---|---|---|---|
base_price | number | ✅ | ✅ | Базова ціна | 20999 |
base_costPrice | number | ✅ | ✅ | Базова собівартість | 14500 |
8. Ціна, знижки та комісії (по одиниці)
| Властивість | Тип | SalesDrive | KeyCRM | Опис | Приклад |
|---|---|---|---|---|---|
product_price | number | ✅ | ✅ | Ціна продажу одиниці товару | 19999 |
product_cost | number | ✅ | ✅ | Собівартість одиниці | 14500 |
product_discount_amount | number | ✅ | ✅ | Знижка в сумі | 1000 |
product_discount_percent | number | ✅ | ✅ | Знижка у відсотках | 5 |
product_commission_amount | number | ✅ | ✅ | Комісія в сумі | 600 |
product_commission_percent | number | ✅ | ✅ | Комісія у відсотках | 3 |
product_other_expenses_amount | number | ❌ | ✅ | Інші витрати на замовлення, які CRM показує окремо від комісії маркетплейса — доставка, пакування, зарплата, комісія за прийом оплати тощо (для SalesDrive завжди null, бо в SalesDrive таких витрат в API немає) | 85 |
ℹ️ Комісія маркетплейса (
product_commission_amount/product_commission_percent) розраховується по-різному залежно від CRM, але доступна для обох: у SalesDrive вона приходить готовим полем на товарі, у KeyCRM — вираховується з витрат замовлення, позначених у CRM як комісія майданчика.
9. Підсумкова економіка одиниці
| Властивість | Тип | SalesDrive | KeyCRM | Опис | Приклад |
|---|---|---|---|---|---|
product_gross_margin_amount | number | ✅ | ✅ | Валова маржа (₴) | 4500 |
product_gross_margin_percent | number | ✅ | ✅ | Валова маржа (%) | 22.5 |
product_net_profit_amount | number | ✅ | ✅ | Чистий прибуток (₴) | 3780 |
product_net_profit_percent | number | ✅ | ✅ | Чистий прибуток (%) | 18.9 |
10. Маркетинг (UTM-мітки та кампанія)
| Властивість | Тип | SalesDrive | KeyCRM | Опис | Приклад |
|---|---|---|---|---|---|
utm_source | string | ✅ | ✅ | UTM source | "google" |
utm_medium | string | ✅ | ✅ | UTM medium | "cpc" |
utm_campaign | string | ✅ | ✅ | UTM campaign | "winter_sale" |
utm_content | string | ✅ | ✅ | UTM content | "banner_1" |
utm_term | string | ✅ | ✅ | UTM term | "iphone 13" |
utm_page | string | ✅ | ❌ | Сторінка | "/product/123" |
campaign_id | string | ✅ | ❌ | ID маркетингової кампанії в CRM — не плутати з рекламною кампанією Rozetka з розділу 12 | "7" |
campaign_name | string | ✅ | ❌ | Назва маркетингової кампанії в CRM | "Winter Sale" |
has_utm | boolean | ✅ | ✅ | У замовленні присутні UTM-мітки | true |
11. Клієнт і рейтинг (якщо доступно)
| Властивість | Тип | SalesDrive | KeyCRM | Опис | Приклад |
|---|---|---|---|---|---|
client_id | string | ✅ | ✅ | ID клієнта | "999" |
client_created_at | string | ✅ | ✅ | Дата створення клієнта | "2025-11-02" |
client_buyout_percent | number | ✅ | ❌ | % викупу | 82 |
client_buyout_level | number | ✅ | ❌ | Рівень викупу | 3 |
client_unpicked_count | number | ✅ | ❌ | К-сть невикупів | 1 |
client_canceled_count | number | ✅ | ❌ | К-сть скасувань | 0 |
has_client_rating | boolean | ✅ | ❌ | Є рейтинг клієнта (у KeyCRM завжди false — рейтингу викупу там немає) | true |
ℹ️ Рейтинг викупу клієнта — функція SalesDrive. У KeyCRM такого показника немає взагалі, тому
client_buyout_percent,client_buyout_level,client_unpicked_count,client_canceled_countзавждиnullдля замовлень з KeyCRM.
12. Реклама Rozetka
Якщо замовлення прийшло через рекламу Rozetka (Rozetka Підйом), SellerIQ збагачує подію даними про рекламні витрати, прив’язані до цього продажу.
ℹ️ Рекламні витрати вираховуються за принципом «з моменту останнього замовлення» — тобто враховуються покази, кліки та витрати на товар у рекламній кампанії з дня попереднього продажу до дня поточного. Це дозволяє оцінити реальну вартість залучення кожного конкретного замовлення.
Поля
ad_cost,ad_views,ad_clicksмасштабуються пропорційно частці виручки конкретного товару в замовленні — щоб SUM в Mixpanel давав коректні підсумки.
| Властивість | Тип | SalesDrive | KeyCRM | Опис | Приклад |
|---|---|---|---|---|---|
is_ad | boolean | ✅ | ✅ | Замовлення прийшло через рекламу Rozetka (utm_campaign=Rozetka + utm_medium=cpc) | true |
ad_cost | number | ✅ | ✅ | Витрати на рекламу (₴), масштабовані на частку товару | 45.20 |
ad_views | number | ✅ | ✅ | Покази в рекламі, масштабовані на частку товару | 312 |
ad_clicks | number | ✅ | ✅ | Кліки в рекламі, масштабовані на частку товару | 8 |
ad_cpo | number | ✅ | ✅ | Вартість замовлення (CPO) — витрати / кількість транзакцій | 45.20 |
ad_cpc | number | ✅ | ✅ | Вартість кліку (CPC) — витрати / кількість кліків | 5.65 |
ad_ctr | number | ✅ | ✅ | CTR — кліки / покази | 0.026 |
ad_views_per_order | number | ✅ | ✅ | Кількість показів на одне замовлення, масштабована на частку товару | 312 |
ad_clicks_per_order | number | ✅ | ✅ | Кількість кліків на одне замовлення, масштабована на частку товару | 8 |
ℹ️ Для замовлень без реклами (
is_ad = false) всі поляad_*будутьnullабо0. Полеis_adприсутнє в кожній події.
Для детального аналізу рекламних витрат по плейсментах і кампаніях — дивіться подію
🔗 ad_item_snapshot.
13. Додаткові витрати, доходи та параметри (123siq)
SellerIQ дозволяє передавати додаткові дані через коментар до замовлення в CRM
за допомогою спеціальних директив 123siq.
Система читає коментар замовлення, знаходить директиви 123siq, застосовує їх до конкретного товару
або до всього замовлення, за потреби розподіляє значення між одиницями товару
і передає результат у подію order_item_snapshot.
ℹ️ Який саме коментар читається — залежить від CRM: у SalesDrive це загальний коментар до замовлення; у KeyCRM — коментар менеджера (
manager_comment), а не коментар клієнта. Синтаксис директив і логіка обробки однакові для обох CRM.
Загальний формат директив
@siq параметр=значення@siq параметр.КОД_ТОВАРУ=значення
Де:
параметр— довільне ім’я (наприкладads_cost,promo_name);КОД_ТОВАРУ— код товару (SKU) з CRM (опційно);значення— число або текст.
Коментар замовлення може містити будь-який текст — SellerIQ обробляє
тільки рядки з директивами @siq.
Типи значень
📉 Витрата (зменшує прибуток)
Приклад:
@siq ads_cost=-300
Витрата 300 відноситься до всього замовлення, розподіляється між усіма товарами пропорційно їх виручці, за наявності кількох одиниць товару — розподіляється між усіма одиницями і зменшує чистий прибуток.
📈 Дохід (збільшує прибуток)
Приклад:
@siq extra_income=+150
Дохід 150 відноситься до всього замовлення, розподіляється між усіма товарами пропорційно їх виручці, за наявності кількох одиниць товару — розподіляється між усіма одиницями і збільшує чистий прибуток.
Важливо: будь-які доходи і витрати без вказання коду товару завжди розподіляються між усіма товарами замовлення.
🏷 Параметр без впливу на прибуток
Приклад:
@siq promo_name=BlackFriday
Параметр застосовується до всього замовлення, передається в усі події order_item_snapshot
усіх товарів цього замовлення, не впливає на розрахунок прибутку
і може використовуватися для фільтрації та сегментації в Mixpanel.
Прив’язка до конкретного товару
Приклад:
@siq packaging_cost.108089307=-50
Параметр застосовується тільки до товару з кодом 108089307,
розподіляється між усіма одиницями цього товару
і не зачіпає інші товари замовлення.
Як директиви передаються в аналітику
Кожна директива @siq стає окремою властивістю події order_item_snapshot.
- для витрат і доходів передається значення, розраховане для конкретної одиниці товару;
- параметри без впливу на прибуток передаються однаковими в усі події товарів замовлення.
Усі параметри, передані через @siq, доступні в Mixpanel
для фільтрів, сегментації, формул, звітів і сповіщень.
Перевизначення базових значень (override)
Деякі параметри без знака + або -
використовуються як перевизначення базових значень
і змінюють основу розрахунків unit-економіки.
⚠️ Назви override-параметрів залежать від CRM — вони збігаються з тим, як поле називається у відповідній CRM, тому для SalesDrive і KeyCRM це різні набори назв. Параметр, якого немає у списку для вашої CRM, просто не спрацює.
SalesDrive — для товару (з вказанням коду товару):
pricecostPricecommissionpercentCommissiondiscountpercentDiscount
SalesDrive — для замовлення (без вказання коду товару):
shipping_costs
KeyCRM — для товару (з вказанням коду товару):
pricepurchased_pricediscount_amountdiscount_percent
KeyCRM — для замовлення (без вказання коду товару):
shipping_priceother_expenses— перевизначає суму інших витрат (див. секцію 8,product_other_expenses_amount)
ℹ️ У KeyCRM комісія маркетплейса (
commission/percentCommission) більше не переозначається через@siq— вона завжди береться з реальних витрат замовлення в CRM.
Приклад перевизначення базової ціни товару (SalesDrive):
@siq price.108089307=19999
Приклад перевизначення вартості доставки замовлення (SalesDrive):
@siq shipping_costs=300
Приклад перевизначення вартості доставки замовлення (KeyCRM):
@siq shipping_price=300
Ці значення використовуються як база для всіх подальших розрахунків unit-економіки.
🔀 SalesDrive і KeyCRM — на що звертати увагу
Наявність кожної властивості по CRM позначена у відповідній таблиці вище колонками SalesDrive / KeyCRM. Окремо варто пам’ятати про дві речі, які колонками ✅/❌ не показати — там властивість присутня в обох CRM, але означає різне:
order_type_id/order_type_name— для SalesDrive це окремий тип замовлення, для KeyCRM — стадія воронки, до якої належить поточний статус (див. секцію 2);- override-параметри
@siq— назви параметрів різні для кожної CRM (див. секцію 13).
💡 Щоб відфільтрувати звіт лише по одній CRM — використовуйте
crm_provider IS "salesdrive"абоcrm_provider IS "keycrm"(див. секцію 1).