Заказы нужно добавлять в сервис, чтобы запускать и автоматизировать различные UGC-кампании (рассылки). Самый удобный способ отправки заказов — API.
Важно: для сбора отзывов о товарах, в передаваемых заказах необходимо обязательно указывать идентификаторы заказанных товаров — product_id
. В этом случае этот параметр должен быть равен аттрибуту offer.id
из вашего YML файла / каталога с товарами.
Также рекомендуется при импорте/добавлении информации о заказах добавлять как минимум статусы доставки и оплаты ваших клиентов.
Надежный и удобный способ отправки заказов – Platform API v4.
Для добавления заказа используйте HTTP метод POST
. Ключ аутентификации можно посмотреть в личном кабинете, в разделе "Разработчикам".
Пример для Shell:
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:
<?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
?>
Пример для Ruby:
# 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
. Вот пример обновления статуса оплаты для ранее добавленного заказа:
Пример для Shell:
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:
<?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
?>
Пример для Ruby:
# 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.