Передача замовлень API-ресурсом Generate event | Підтримка eSputnik

Дані користувача

Email

Омніканальність

Автоматизація

Відстеження подій та поведінки

Передача замовлень API-ресурсом Generate event

Для передачі даних про замовлення в системі eSputnik використовується ресурс Add orders, що має низку обмежень:

  • фіксовану кількість полів, регламентованих специфікацією,
  • неможливість додавати власні поля,
  • вміст замовлень не можна використовувати для створення сегментів.

Ці обмеження відсутні у способі керування замовленнями за допомогою методу Generate event на основі подій. Цей метод можна використовувати замість Add orders або на додаток до нього.

Важливо

Замовлення, що передається за допомогою Generate event, у відповідь не повертає ідентифікатор створеного замовлення - orderId. Щоб отримати його, створіть замовлення за допомогою Add orders, після чого доповнюйте та оновлюйте статус замовлення за допомогою Generate event.

Використання Generate event для передачі замовлень

Використовуючи метод Generate event для передачі подій, ви можете:

  • Передавати більше даних, ніж у методі Add orders, використовуючи додаткові поля.
  • Підключати сегментацію за подіями та їх параметрами. Наприклад, відсортувати клієнтів, які купували певний товар упродовж тижня. Докладніше про такі можливості читайте у статті Як використовувати сегментацію за подіями.
  • Розширювати/отримувати RFM-сегментацію на замовлення без додаткового підключення Add orders.

Сегментація за подіями

Важливо

Щоб подія збереглася з прив'язкою до контакта, необхідно знати, який параметр у події містить ідентифікатор, за яким можна знайти контакт. А також яке саме поле контакта використовується в якості ідентифікатора.

Якщо ідентифікатор контакта не заданий у події, система за замовчуванням шукає наступні імена параметрів події в зазначеному на вкладці "Події" порядку. На цій же вкладці ви можете задати кастомний параметр для прив'язки події до контакту.

Налаштування відповідності

Надіслати замовлення Generate event можна лише для контакту, що вже є у вашій базі. Якщо потрібно передати замовлення для нового контакту, спочатку імпортуйте цей контакт до системи за допомогою одного з ресурсів:

Щоб надіслати замовлення, потрібно вказати тип події. Виберіть тип із таблиці нижче в залежності від статусу замовлення.

Тип події

Опис

orderCreated

Створює замовлення зі статусом, який зазначений в масиві: INITIALIZED, IN_PROGRESS, DELIVERED, CANCELLED, ABANDONED_SHOPPING_CART.

orderUpdated

Оновлює замовлення.

orderDelivered

Змінює статус замовлення на DELIVERED.

orderCancelled

Змінює статус замовлення на CANCELLED.

orderCreated

Для створення замовлення необхідно вказати назву параметрів саме ту, яку зазначено в документації, і заповнити обов'язкові параметри. Якщо пропустити будь-який з обов'язкових параметрів, подія проігнорується і замовлення не буде створено.

  • ${eventKey} — ключ унікальності замовлення. Передається в поле externalOrderId. Використовується як ідентифікатор замовлення;
  • ${orderId} — ID замовлення в системі; параметр потрібний для роботи сценарію.

Як ідентифікатор контакту повинен використовуватися один із таких параметрів:

  • ${externalCustomerId} — зовнішній ID контакту;
  • ${email} — email-адреса контакту;
  • ${phone} — номер телефону контакту.

Щоб замінити значення параметрів повідомлення, передавайте поля з параметрами події у вигляді масиву.

  • Обов'язкові поля у масиві ordes: externalOrderId, totalCost, status, date, externalCustomerId / email / phone.
  • Обов'язкові поля у масиві items: externalItemId, name, quantity, cost, url, imageUrl.

Примітка

Ціна переданих у замовленні товарів повинна співпадати з значенням totalCost (загальна сума замовлення). Якщо клієнт купляє товар зі знижкою, вона повинна враховуватись у полі items.cost для кожного товару.

Приклад:

{
	"eventTypeKey": "orderCreated",
	"keyValue": "380501234567",
	"params": [{
		"name": "phone",
		"value": "380501234567"
	}, {
		"name": "externalOrderId",
		"value": "12345679"
	}, {
		"name": "externalCustomerId",
		"value": "AV13760"
	}, {
		"name": "totalCost",
		"value": "258.0"
	}, {
		"name": "status",
		"value": "INITIALIZED"
	}, {
		"name": "date",
		"value": "2020-05-14T10:11:00"
	}, {
		"name": "currency",
		"value": "UAH"
	}, {
		"name": "items",
		"value": [{
			"externalItemId": "200600",
			"name": "Super Device",
			"category": "devices",
			"quantity": 1,
			"cost": 990,
			"url": "http://example.com/item/200600",
			"imageUrl": "http://example.com/item/200600/image.png",
			"description": "High quality"
		}]
	}]
}

Важливо!

Щоб подія збереглася з прив'язкою до контакту, необхідно знати, який параметр містить ідентифікатор для пошуку контакту. За замовчуванням система здійснює пошук таких параметрів, без урахування регістру: ContactId, Contact_id, Email, EmailAddress, UserEmail, ContactEmail, Phone, SMS, PhoneNumber, PushToken, ContactKey, Contact_key. Всі значення, крім email-адреси, зіставляються з урахуванням регістру.

Ім'я поля

Опис

status

Може бути одним з наступних: INITIALIZED, IN_PROGRESS, DELIVERED, CANCELLED, ABANDONED_SHOPPING_CART.

date Формат передавання дати YYYY-MM-ddTHH:mm:ss. Наприклад: 2020-05-14T10:11:00.
items Товари, що входять до замовлення (необов'язково, але при використанні частина полів є обов’язковою). Значення items слід передавати у вигляді рядка JSON. Підтримується вкладеність до другого рівня включно. Це означає, що якщо ви передасте ще один масив або об’єкт у масив items, він залишиться серіалізованим (екранованим). Такі дані не ігноруються, але ви не зможете їх використовувати, оскільки вони передаються у рядку.

orderUpdated

  • Оновлює замовлення зі вказаним значенням externalOrderId.
  • Якщо переданого замовлення немає в системі, воно все одно створюється.
  • Параметри повинні мати назву, яка вказана в документації. Якщо замовлення потрібно створити, то застосовуються вимоги до orderCreated.

orderDelivered

  • Змінює статус замовлення externalOrderId на значення DELIVERED.
  • Якщо замовлення не існує, воно ігнорується.

Примітка

Для формування RFM-таблиці та візуалізації доходу від розсилок на вкладці "Звіти" використовуються тільки замовлення зі статусом DELIVERED.

orderCancelled

  • Змінює статус замовлення externalOrderId на значення CANCELLED.
  • Якщо замовлення не існує, воно ігнорується.
Залишилися питання?
Спеціалісти обов'язково нададуть відповідь та допоможуть вирішити вашу проблему!
Зворотний дзвінок
Залишіть заявку – і наш спеціаліст зв'яжеться з вами в робочий час.
Відправити заявку
Консультація в чаті
Готові до ваших запитань!
Написати в чат
Електронна пошта
Напишіть в службу підтримки eSputnik.
Надіслати email