Как импортировать данные через Platform API
Регулярное добавление и обновление заказов и клиентов через Platform API v4 — примеры запросов curl.
Передавайте заказы и клиентов через Platform API, если на вашей стороне есть разработка и данные нужно обновлять регулярно. Для разовой загрузки API не нужен, файл проще залить в личном кабинете.
Что понадобится
- Ключ OAuth, созданный в разделе Настройки → Разработчикам личного кабинета.
- Базовый адрес
https://api.aplaut.io/v4. - Заголовки
Content-Type: application/vnd.api+jsonиAuthorization: Bearer {TOKEN}в каждом запросе.
Что передавать
- Заказы
- Клиенты
Коллекция orders, идентификатор заказа — поле number. Заказы запускают UGC-кампании по сбору отзывов и опросы.
Передавайте вместе с заказом статусы оплаты и доставки (payment_status, fulfillment_status): по ним настраиваются условия запуска email-кампаний.
В каждой строке заказа передавайте product_id. Его значение должно совпадать с атрибутом offer.id товара из вашего YML-каталога. Заказ без него импортируется, но собрать по нему отзыв о товаре не получится.
Коллекция consumers, идентификатор клиента — поле external_id. Клиентов добавляют, чтобы проводить среди них опросы.
Произвольные данные о клиенте складывайте в объект custom_attributes: количество заказов, LTV, регион. По ним сегментируются опросы.
Добавление
- Заказы
- Клиенты
POST /v4/orders
curl -X POST -H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer {TOKEN}" \
--url https://api.aplaut.io/v4/orders \
-d '{
"data": {
"type": "orders",
"attributes": {
"number": "order-number-1386",
"consumer_name": "Иван Петров",
"consumer_email": "ivan@example.com",
"details": {
"payment_status": "not-paid",
"fulfillment_status": "packed",
"region": 74
},
"order_lines": [
{ "product_id": 45, "name": "Ботинки ECCO 69", "price": 6800 }
]
}
}
}'
POST /v4/consumers
curl -X POST -H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer {TOKEN}" \
--url https://api.aplaut.io/v4/consumers \
-d '{
"data": {
"type": "consumers",
"attributes": {
"external_id": "347771386",
"name": "Иван Петров",
"email": "ivan@example.com",
"custom_attributes": {
"orders_count": "12",
"ltv": "27456",
"region": "74"
}
}
}
}'
Обновление
- Заказы
- Клиенты
PUT /v4/orders/{number} — так меняют статусы оплаты и доставки.
curl -X PUT -H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer {TOKEN}" \
--url https://api.aplaut.io/v4/orders/order-number-1386 \
-d '{
"data": {
"type": "orders",
"attributes": {
"details": { "payment_status": "paid" }
}
}
}'
PUT /v4/consumers/{external_id} — так обновляют произвольные атрибуты клиента.
curl -X PUT -H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer {TOKEN}" \
--url https://api.aplaut.io/v4/consumers/347771386 \
-d '{
"data": {
"type": "consumers",
"attributes": {
"custom_attributes": { "ltv": "37456" }
}
}
}'
Проверка результата
Успешный запрос возвращает код 2xx, история операций видна в журнале событий.
Два ответа стоит обработать отдельно:
POSTзаписи, которая уже есть в базе Aplaut, возвращает422.PUTзаписи, которой в базе нет, создаёт новую с указанным идентификатором.
Поэтому, когда вы не знаете наверняка, добавлялась ли запись раньше, отправляйте PUT: он закрывает оба случая.