Синхронизация данных
API Zenky.io позволяет импортировать данные каталога из внешних систем учёта (например, 1С).
Поддержка сущностей
Импорт производится с помощью отдельного API, на данный момент поддерживающий следующие сущности:
Работа со шлюзами обмена
Работа со шлюзами обмена, как и с основным API, проводится с использованием JSON-структур. Список требуемых полей для каждой сущности описан в документации к конкретным объектам.
Отправка данных должна производиться на специальные адреса API, которые указаны в документации к конкретным
сущностям. Список объектов должен находиться внутри массива payload
. Остальные поля запроса игнорируются.
Получение токена обмена
У каждого магазина имеется свой уникальный токен, который должен подставляться в адрес API. Просмотреть токен для своего магазина можно в разделе API панели управления магазином.
Ограничения и требования
В одном запросе можно отправлять не более 100 структур (кроме товаров - там действует ограничение в 20 структур). В случае, если количество данных превышает лимит, обработаны будут только первые 100 (или 20 для товаров) записей.
Все сущности должны иметь уникальные внешние идентификаторы (поля id
), которые не должны меняться для одного
и того же объекта. Идентификаторы могут повторяться для различных видов сущностей (к примеру, товар с ID 1
не будет конфликтовать с категорий 1).
Удаление данных
Для удаления тех или иных объектов из нашей базы (и всех связанных с ним данных!) необходимо установить поле
каждого такого объекта remove
в значение true
.
Ответы шлюзов
В ответе на каждый запрос все шлюзы отвечают стандартным ответом, структура которого указана ниже.
{
"data": {
"count": 15,
"created_count": 2,
"existed_count": 13,
"updated_count": 4,
"deleted_count": 0
}
}
Описание полей ответа
Удаление данных
Запросы на удаление данных заканчиваются ответом, структура которого указана ниже. В отличие от импорта данных, ответы удаления не предоставляют информацию о количестве удалённых данных.
{
"data": {
"queued": true
}
}
Алгоритм работы шлюзов
Каждая сущность, которая отправляется в шлюз обмена, должна иметь свой внешний идентификатор (поле id
со
значением идентификатора из вашей системы учёта). Этот идентификатор должен быть уникальным на уровне типа
сущности (с id
1 может быть только один товар, но, одновременно, может существовать категория с таким же id).
По этим идентификаторам мы связываем новые записи в нашей базе данных. Таким образом, после первичного сохранения данных, мы сможем обновлять информацию о существующих объектах (если она, конечно, изменилась).
Список полей, которые влияют на обновление сущности, представлен на страницах документации каждой сущности.