Перейти к основному содержимому

Синхронизация мастер-данных

Чтобы работать в оффлайн-режиме, выполните синхронизацию.

На заметку

Мы рекомендуем проводить синхронизацию раз в день, в начале дня, со стабильным интернетом.

Для синхронизации мастер-данных укажите токен, идентификатор агента, список магазинов и команду синхронизации.

Параметры запроса


DeepLinkConst.Parameters.TOKEN (String) : Обязательный. Идентификатор вызывающего приложения.


DeepLinkConst.Parameters.AGENT_ID (String) : Обязательный. Идентификатор агента. Если агент не найден, будет создан новый.


DeepLinkConst.Parameters.IC_COMMAND (String) : Обязательный. Управляющая команда. Для синхронизации используйте DeepLinkConst.Commands.IC_SYNC.


DeepLinkConst.Parameters.LIST_CUSTOMER_ID (Array<String>) : Обязательный (или STRING_CUSTOMER_ID). Массив строк с CUSTOMER_ID кодами магазинов для синхронизации данных по этим магазинам.


DeepLinkConst.Parameters.STRING_CUSTOMER_ID (String) : Обязательный (или LIST_CUSTOMER_ID). Альтернативный вариант. Строка с CUSTOMER_ID кодами, разделенными запятой (,) без пробелов. : Если заданы оба способа, приоритет отдается STRING_CUSTOMER_ID.


DeepLinkConst.Parameters.DEBUG (Boolean) : Опционально. Флаг для включения отладочного режима. Если true, в случае ошибки IC Camera 3 не закроется автоматически, а покажет экран с описанием ошибки. По умолчанию false.


Пример запроса

val launchIntent = Intent(DeepLinkConst.IC_CAMERA_LAUNCH_ACTION).apply {
putExtra(DeepLinkConst.Parameters.TOKEN, "YOUR_TOKEN")
putExtra(DeepLinkConst.Parameters.AGENT_ID, "YOUR_AGENT_ID")
putExtra(DeepLinkConst.Parameters.IC_COMMAND, DeepLinkConst.Commands.IC_SYNC)

// Передача списка магазинов
val listCustomerId = arrayOf("id1", "id2", "id3")
putExtra(DeepLinkConst.Parameters.LIST_CUSTOMER_ID, listCustomerId)

// Включение отладочного режима (опционально)
putExtra(DeepLinkConst.Parameters.DEBUG, true)
}

// Запуск через ранее созданный лаунчер
icCameraLauncher.launch(launchIntent)

Обработка ответа

Результат придет в callback вашего лаунчера.

private val icCameraLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
if (result.resultCode == Activity.RESULT_OK) {
val data = result.data ?: return@registerForActivityResult

val resultCode = data.getIntExtra(DeepLinkConst.Parameters.RESULT_CODE, 0)
val resultInfo = data.getStringExtra(DeepLinkConst.Parameters.RESULT_INFO)

when (resultCode) {
DeepLinkConst.ResultCode.SYNC_OK -> {
// Синхронизация успешно выполнена
}
DeepLinkConst.ResultCode.SYNC_ERR -> {
// Ошибка синхронизации (см. resultInfo)
}
}
} else {
// Результат не получен
}
}

Параметры ответа


DeepLinkConst.Parameters.RESULT_CODE (Int): Код результата операции:

  • SYNC_OK (3) - cинхронизация успешно выполнена.
  • SYNC_ERR (4) - синхронизация не выполнена.

DeepLinkConst.Parameters.RESULT_INFO(String): Описание ошибки или дополнительная информация.


Если у вас возникли вопросы или проблемы, обратитесь в техподдержку.