Импорт заказов
Заказы можно передавать двумя способами:
- Используя Platform API
- Через файлы
Через API
Надежный и удобный способ отправки заказов – Platform API v4.
Добавление
Приглашения оставить отзыв обычно отправляют клиентам, которые оплатили заказ и заказ уже доставлен. Поэтому рекомендуем в информацию о заказе добавлять как минимум статусы доставки и оплаты.
Если отзывы собираются о товарах, то в заказе необходимо указывать
идентификаторы заказанных товаров. Параметр product_id
в этом случае равен
аттрибуту offer.id
из YML файла.
Для добавления заказа используйте 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/orders \
-d '{
"data": {
"type": "orders",
"attributes": {
"number": "order-number-1386",
"consumer_name": "Александр Лукашенко",
"consumer_email": "luka@president.by",
"details": {
"payment_status": "not-paid",
"fulfillment_status": "packed",
"region": 74
},
"order_lines": [
{
"product_id": 45,
"name": "Ботинки ECCO 69",
"price": 6800
}
]
}
}
}'
<?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"=> "orders",
"attributes" => [
"number" => "order-number-1386",
"consumer_name" => "Александр Лукашенко",
"consumer_email" => "luka@president.by",
"details" => [
"payment_status" => "not-paid",
"fulfillment_status" => "packed",
"region" => 74
],
"order_lines" => [
[
"product_id" => 45,
"name" => "Ботинки ECCO 69",
"price" => 6800
]
]
]
]
];
$response = Unirest\Request::post(
"https://api.aplaut.io/v4/orders", $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: 'orders',
attributes: {
number: 'order-number-1386',
consumer_name: 'Александр Лукашенко',
consumer_email: 'luka@president.by',
details: {
payment_status: 'not-paid',
fulfillment_status: 'packed',
region: 74
},
order_lines: [
{
product_id: 45,
name: 'Ботинки ECCO 69',
price: 6800
}
]
}
}
}
response = Unirest.post 'https://api.aplaut.io/v4/orders', 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/orders/order-number-1386 \
-d '{
"data": {
"type": "orders",
"attributes": {
"details": {
"payment_status": "paid"
}
}
}
}'
<?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"=> "orders",
"attributes" => [
"details" => [
"payment_status" => "paid"
]
]
]
];
$response = Unirest\Request::put(
'https://api.aplaut.io/v4/orders/order-number-1386', $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: 'orders',
attributes: {
details: {
payment_status: 'paid'
}
}
}
}
response = Unirest.put 'https://api.aplaut.io/v4/orders/order-number-1386', headers, parameters
puts response.code
Если попытаться обновить заказ, которго нет в БД Aplaut, то будет создан новый
заказ с number
равным order-number-1386 (из примера). Подробнее читайте в
документации
к API.
Через файлы
В личном кабинете перейдите в раздел Настройки → Импорт данных → Заказы и загрузите файл CSV, XLSX в кодировке UTF-8.
Формат 1
В данном формате каждая строка это один заказ.
Переменная | Обязат. | Описание | Пример |
---|---|---|---|
number | Да | Номер заказа | |
consumer_email | Да | Е-mail клиента | |
consumer_name | Да | Полное имя клиента | |
created_at | Да | Дата создания заказа | 2014-01-01 00:11:22 |
product_ids | Да | ID товаров | 12232|32343|76348 |
Остальные колонки, кроме указанных выше, будут считаться дополнительными параметрами заказа (поле details объекта заказ). Например, поля payment_status или fulfillment_status.
Через файл можно также обновлять заказы. Например, можно обновить статусы оплаты``` или доставки и заново загрузить файл.
Формат 2
В данном формате каждая строка это одна позиция(товар в корзине) из заказа.
Например, если в заказе две позиции, то в файле будет две одинаковые строки,
которые отличаются только значением колонок product_…
Переменная | Обязат. | Описание | Пример |
---|---|---|---|
number | Да | Номер заказа | |
consumer_email | Да | Е-mail клиента | |
consumer_name | Да | Полное имя клиента | |
created_at | Да | Дата создания заказа | 2014-01-01 00:11:22 |
product_id | Да | ID одного товара | 12232 |
product_name | Нет | Название товара | Камера Sony a6400 |
product_url | Нет | URL карточки товара | https://shop.site/344 |
product_picture_url | Нет | URL картинки товара | https://shop.site/344/cover.jpg |
Если в файле вместе с колонкой product_id
заполнить
product_name, product_url, product_picture_url
, то вместе с заказом будут
созданы также товары. В этом случае для работы email кампаний,
каталог товаров можно не импортировать.
Остальные колонки, кроме указанных выше, будут считаться дополнительными параметрами заказа (поле details объекта заказ). Например, поля payment_status или fulfillment_status.
Через файл можно также обновлять заказы. Например, можно обновить статусы оплаты или доставки и заново загрузить файл.
По ссылке
Вы также можете указать URL файла для скачивания. В этом случае файл будет автоматически скачиваться раз в день по указанной в настройках ссылке.
Поддерживаются стандарты HTTP и FTP. t В URL можно использовать
шаблонизатор Liquid. Доступна только одна
переменная now
– время запуска очередного импорта.
Пример шаблона URL:
ftp://username:password@ftp.yoursite.ru:/orders/orders-{{ 'now' | date: '%Y-%m-%d' }}.csv
На момент начала импорта URL будет такой:
ftp://username:password@ftp.yoursite.ru:/orders/orders-2018-09-01.csv
Если у вас нет своего FTP сервера, напишите нам, мы сможем предоставить свой.