Импорт клиентов
Клиентов можно передавать двумя способами:
- Используя Platform API
- В файле
Через API
Надежный и удобный способ отправки клиентов – Platform API v4. Для работы с API рекомендуем использовать библиотеку Unirest.
Добавление
Для добавления клиента используйте HTTP метод POST
. Ключ аутентификации можно посмотреть в личном кабинете.
API_TOKEN=xxxxxxxxxxxx
curl -X POST -H "Content-Type: application/vnd.api+json" \
-H "Authorization: Token token=$API_TOKEN" \
--url http://api.aplaut.io/v4/consumers \
-d '{
"data": {
"type": "consumers",
"attributes": {
"external_id": "347771386",
"name": "Александр Лукашенко",
"email": "luka@president.by",
"custom_attributes": {
"orders_count": "12",
"ltv": "27456",
"region": "74"
}
}
}
}'
<?php
//Install http://unirest.io/php.html
const API_TOKEN = "xxxxxxxxxxxx";
$headers = [
'Accept' => 'application/vnd.api+json',
'Content-Type' => 'application/vnd.api+json',
'Authorization' => "Token token=" . API_TOKEN
];
$parameters = [
"data" => [
"type"=> "consumers",
"attributes" => [
"external_id" => "347771386",
"name" => "Александр Лукашенко",
"email" => "luka@president.by",
"custom_attributes" => [
"orders_count" => "12",
"ltv" => "27456",
"region" => "74"
]
]
]
];
$response = Unirest\Request::post(
"https://api.aplaut.io/v4/consumers", $headers, $parameters);
$response->code; // HTTP Status code
?>
# gem install unirest
require 'unirest'
API_TOKEN = 'xxxxxxxxxxxx' # API Token
headers = {
'Accept': 'application/vnd.api+json',
'Content-Type': 'application/vnd.api+json',
'Authorization': "Token token=#{API_TOKEN}"
}
parameters = {
data: {
type: 'consumers',
attributes: {
external_id: '347771386',
name: 'Александр Лукашенко',
email: 'luka@president.by',
custom_attributes: {
payment_status: 'not-paid',
ltv: '27456',
region: '74'
}
}
}
}
response = Unirest.post 'https://api.aplaut.io/v4/consumers', headers, parameters
puts response.code
Если попытаться создать клиента, который уже есть в БД Aplaut, то вернется результат с кодом ошибки 422
.
Если вы не знаете наверняка, добавлен ли был ранее клиент, то используйте метод API для обновления (см. ниже). Подробнее читайте в документации к API.
Обновление
Для обновления клиента (например, статусов) используйте HTTP метод PUT
.
Пример обновления статуса оплаты для ранее добавленного клиента:
API_TOKEN=xxxxxxxxxxxx
curl -X PUT -H "Content-Type: application/vnd.api+json" \
-H "Authorization: Token token=$API_TOKEN" \
--url http://api.aplaut.io/v4/consumers/347771386 \
-d '{
"data": {
"type": "consumers",
"attributes": {
"custom_attributes": {
"ltv": '37456'
}
}
}
}'
<?php
//Instal http://unirest.io/php.html
const API_TOKEN = "xxxxxxxxxxxx";
$headers = array(
'Accept' => 'application/vnd.api+json',
'Content-Type' => 'application/vnd.api+json',
'Authorization' => "Token token=" . API_TOKEN);
$parameters = [
"data" => [
"type"=> "consumers",
"attributes" => [
"custom_attributes" => [
"ltv" => "37456"
]
]
]
];
$response = Unirest\Request::put(
'https://api.aplaut.io/v4/consumers/347771386', $headers, $parameters);
$response->code; // HTTP Status code
?>
# gem install unirest
require 'unirest'
API_TOKEN = 'xxxxxxxxxxxx' # API Token
headers = {
'Accept': 'application/vnd.api+json',
'Content-Type': 'application/vnd.api+json',
'Authorization': "Token token=#{API_TOKEN}"
}
parameters = {
data: {
type: 'consumers',
attributes: {
custom_attributes: {
ltv: '37456'
}
}
}
}
response = Unirest.put 'https://api.aplaut.io/v4/consumers/347771386', headers, parameters
puts response.code
Если попытаться обновить клиента, которго нет в БД Aplaut, то будет создан новый клиент с external_id
равным 347771386 (из примера). Подробнее читайте в документации к API.
Через файл
В личном кабинете перейдите в раздел Настройки компании → Импорт данных → Клиенты.
Поддерживаемый формат файла: CSV, XLSX в кодировке UTF-8.
Обязательные колонки(первая строка таблицы):
- external_id – внешний идентификатор
- email – email
- name – имя
- phone – телефон
- created_at – дата создания (формат: 2018-01-01 00:11:22)
Остальные колонки, кроме указанных выше, будут считаться пользовательскими атрибутами (custom_attributes).
Через файл можно также обновлять клиентов.