Передача заказов с помощью ресурса Generate event | Поддержка eSputnik

Пользовательские данные

Email

Омниканальность

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

Отслеживание событий и поведения

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

Для передачи данных о заказе используется ресурс Add orders, который имеет ряд ограничений:

  • фиксированное число полей, регламентированных спецификацией;
  • нет возможности добавлять пользовательские поля;
  • содержимое заказов нельзя использовать для построения сегментов.

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

Важно

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

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

Используя метод Generate event для передачи событий, вы можете:

  • Передавать больше данных, чем в методе Add orders, используя дополнительные поля.

  • Подключать сегментацию по событиям и их параметрам. Например, отсортировать клиентов, которые покупали определенный товар в течение недели. Подробнее о таких возможностях читайте в статье Как использовать сегментацию по событиям.

  • Расширять/получать RFM-сегментацию по заказам без дополнительного подключения Add orders.

Важно

Чтобы событие сохранилось с привязкой к контакту, необходимо знать, какой параметр в событии содержит идентификатор, по которому можно найти контакт. А также какое именно поле контакта используется в качестве идентификатора.

Если в событии не задан идентификатор контакта, система по умолчанию ищет следующие названия параметров события в порядке, указанном на вкладке “События” в настройках вашего аккаунта. На этой же вкладке вы можете задать кастомный параметр для привязки события к контакту.

Передача событий в eSputnik

Прислать заказ Generate event  можно только для уже существующего контакта у вас в базе. Если нужно передать заказ для нового клиента, необходимо предварительно импортировать этот контакт в систему используя методы:

Для отправки события по заказу нужно указать необходимый тип события (создание или обновление заказа) из указанных в таблице.

Тип события

Описание обработки

orderCreated

Создает заказ с одним из статусов, указанном в массиве: INITIALIZED, IN_PROGRESS, DELIVERED, CANCELLED, ABANDONED_SHOPPING_CART.

orderUpdated

Обновляет заказ.

orderDelivered

Изменяет статус заказа на DELIVERED.

orderCancelled

Изменяет статус заказа на CANCELLED.

orderCreated

Для создания заказа необходимо указать названия параметров как они указаны в документации, и ввести обязательные параметры. Если какой-либо из обязательных параметров пропущен, событие игнорируется и заказ не создается.

  • ${eventKey}  — ключ уникальности события, передаётся в поле externalOrderId. Используется как идентификатор заказа;
  • ${orderId}  — ID события в системе; параметр нужен для работы сценария.

В качестве идентификатора контакта должен использоваться один из следующих параметров:

  • ${externalCustomerId}  — внеший ID контакта;
  • ${email}  — адрес электронной почты контакта;
  • ${phone}  — номер телефона контакта.

Чтобы подставить значения параметров в сообщения, передавайте поля с параметрами события в виде массива.

  • Обязательные поля в массиве orders: 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, в соответствии со стандартом ISO 8601. Пример: 2020-05-14T10:11:00.
items Товары, входящие в заказ (необязательное поле). Если данное поле используется, то необходимо указывать обязательные поля для метода orderItem. Значения items необходимо передавать json строкой. Поддерживается вложенность до второго уровня включительно. Это значит, что если в массиве items передать еще один массив или объект, он останется сериализованным (экранированным). Такие данные мы не игнорируем, но в силу того, что это будет строка, работать с ней не получится.

orderUpdated

  • Обновляет заказ с указанным значением externalOrderId.

  • Если переданный заказ не существует, он создается.

  • Параметры должны быть указаны в соответствии с документацией. Если заказ создается, то применяются требования для orderCreated.

orderDelivered

  • Обновляет статус заказа externalOrderId на значение DELIVERED.

  • Если заказ не существует, он игнорируется.

Примечание

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

Исключения составляют заказы, полученные из мобильного SDK, — в таком случае по умолчанию в визуализации дохода учитываются статусы INITIALIZED и DELIVERED. При необходимости учет статусов INITIALIZED можно отключить – для этого обратитесь в нашу службу поддержки support@esputnik.com

orderCancelled

  • Обновляет статус заказа externalOrderId на значение CANCELLED.

  • Если заказ не существует, он игнорируется.

Остались вопросы?
Специалисты обязательно ответят и помогут решить вашу проблему!
Обратный звонок
Оставьте заявку – и наш специалист свяжется с вами в рабочее время.
Отправить заявку
Консультация в чате
Готовы к вашим вопросам!
Написать в чат
Электронная почта
Напишите в службу поддержки eSputnik.
Отправить email