Перейти к содержанию

Импорт клиентов

Клиентов можно передавать двумя способами:

  1. Используя Platform API
  2. В файле

Через API

Надежный и удобный способ отправки клиентов – Platform API v4. Для работы с API рекомендуем использовать библиотеку Unirest.

Добавление

Для добавления клиента используйте HTTP метод POST. Ключ аутентификации можно посмотреть в личном кабинете.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
API_TOKEN=xxxxxxxxxxxx
curl -X POST -H "Content-Type: application/vnd.api+json" \
-H "Authorization: Token token=$API_TOKEN" \
--url http://api.shoppilot.ru/v4/consumers \
  -d '{
  "data": {
    "type": "consumers",
    "attributes": {
      "external_id": "347771386",
      "name": "Александр Лукашенко",
      "email": "luka@president.by",
      "custom_attributes": {
        "orders_count": "12",
        "ltv": "27456",
        "region": "74"
      }
    }
  }
}'
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?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.shoppilot.ru/v4/consumers", $headers, $parameters);

$response->code;        // HTTP Status code
?>
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 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.shoppilot.ru/v4/consumers', headers, parameters

puts response.code

Если попытаться создать клиента, который уже есть в БД Shoppilot, то вернется результат с кодом ошибки 422.

Если вы не знаете наверняка, добавлен ли был ранее клиент, то используйте метод API для обновления (см. ниже). Подробнее читайте в документации к API.

Обновление

Для обновления клиента (например, статусов) используйте HTTP метод PUT.

Пример обновления статуса оплаты для ранее добавленного клиента:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
API_TOKEN=xxxxxxxxxxxx
curl -X PUT -H "Content-Type: application/vnd.api+json" \
-H "Authorization: Token token=$API_TOKEN" \
--url http://api.shoppilot.ru/v4/consumers/347771386 \
  -d '{
  "data": {
    "type": "consumers",
    "attributes": {
      "custom_attributes": {
         "ltv": '37456'
      }
    }
  }
}'
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?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.shoppilot.ru/v4/consumers/347771386', $headers, $parameters);

$response->code;        // HTTP Status code
?>
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 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.shoppilot.ru/v4/consumers/347771386', headers, parameters

puts response.code

Если попытаться обновить клиента, которго нет в БД Shoppilot, то будет создан новый клиент с external_id равным 347771386 (из примера). Подробнее читайте в документации к API.

Через файл

В личном кабинете перейдите в раздел Настройки компании → Импорт данных → Клиенты.

Поддерживаемый формат файла: CSV, XLSX в кодировке UTF-8.

Обязательные колонки(первая строка таблицы):

  • external_id – внешний идентификатор
  • email – email
  • name – имя
  • phone – телефон
  • created_at – дата создания (формат: 2018-01-01 00:11:22)

Остальные колонки, кроме указанных выше, будут считаться пользовательскими атрибутами (custom_attributes).

Скачать пример

Через файл можно также обновлять клиентов.