Въведение
Tekra API предоставя удобен начин за интеграция с нашата система за управление на поръчки. Тази документация ще ви запознае с основните методи за работа с API-то, включително създаване на поръчки и проверка на техния статус.
Endpoints
Production Endpoint | Метод | Описание |
---|---|---|
https://tekra.bg/api/v1/orders/create |
POST | Създава нова поръчка. |
https://tekra.bg/api/v1/orders/status |
GET | Връща статуса на поръчка. |
Test Endpoint | Метод | Описание |
https://tekra.bg/api/v1/test/orders/create |
POST | Създава нова поръчка. |
https://tekra.bg/api/v1/test/orders/status |
GET | Връща статуса на поръчка. |
Headers
За да използвате API-то, трябва да включите следните headers във вашите заявки:
X-TekraClientID
: Вашият клиентски ID.X-TekraAPIKey
: Вашият API ключ.
Създаване на поръчка
За да създадете поръчка, изпратете POST заявка към /orders/create
със следните данни:
{
"contact_person": {
"name": "Иван",
"surname": "Иванов",
"phone": "+359888123456"
},
"shipping_address": {
"city": "София",
"address": "ул. Примерна",
"address_num": "10",
"zip_code": "1000"
},
"products": [
{
"product": "PRODUCT_2",
"qty": 2
}
],
"note": "Бележка към поръчката"
}
Проверка на статус
За да проверите статуса на поръчка, изпратете GET заявка към /orders/status
със следните данни:
{
"order_number": "55504"
}
Грешки
Код на грешка | Описание | Тип |
---|---|---|
1000 | Грешка при комуникация със сървъра. Моля, опитайте отново по-късно. | error |
1001 | Методът на заявката не е позволен. Моля, уверете се, че използвате правилния HTTP метод. | error |
1002 | Неоторизиран достъп. Моля, проверете вашите идентификационни данни и опитайте отново. | error |
1003 | Липсва задължително поле в заявката. Моля, попълнете всички изисквани полета. | error |
1004 | Невалиден формат на телефонен номер. Моля, въведете валиден телефонен номер. | error |
1005 | Липсва име или фамилия. Моля, попълнете и двете полета. | error |
1006 | Липсва адрес или номер на адрес. Моля, попълнете необходимите полета за адреса. | error |
1007 | Невалиден формат на пощенски код. Моля, въведете правилен пощенски код. | error |
1008 | Полето "products" трябва да съдържа непразен масив от продукти. | error |
1009 | Липсва "product" за един от продуктите. Моля, уверете се, че сте предоставили правилен идентификатор за всеки продукт. | error |
1010 | Невалидно или липсващо количество за продукт. Моля, уверете се, че количеството е зададено правилно. | error |
1011 | Продуктът не е намерен. Моля, проверете идентификатора на продукта и опитайте отново. | error |
1012 | Бележката не може да надвишава 130 символа. Моля, намалете броя на символите в бележката. | error |
1013 | Частично приемане на поръчка поради грешка в комуникацията. Моля, свържете се с търговеца за повече информация. | error |
1014 | Поръчката не може да бъде приета поради натрупани задължения. Свържете се с търговеца за изясняване на ситуацията. | error |
1015 | Грешка при комуникация със сървъра. Моля, свържете се с търговеца за помощ. | error |
1016 | Липсва задължителен header: X-TekraClientID или X-TekraAPIKey. Моля, уверете се, че тези стойности са предоставени в заглавките на заявката. | error |
1017 | Поръчката не е намерена. Моля, проверете номер на поръчката и опитайте отново. | error |
2001 | Поръчката е приета, но някои от заявените количества надвишават складовата наличност. Търговец ще се свърже за уточнение. | success |
Поръчката е създадена успешно. | success |
Примерен PHP код
Примерен PHP код за изпращане на заявка за създаване на поръчка:
<?php
$url = "https://tekra.bg/api/v1/test/orders/create";
$data = [
"contact_person" => [
"name" => "Иван",
"surname" => "Иванов",
"phone" => "+359888123456"
],
"shipping_address" => [
"city" => "София",
"address" => "ул. Примерна",
"address_num" => "10",
"zip_code" => "1000"
],
"products" => [
[
"product" => "PRODUCT_2",
"qty" => 2
]
],
"note" => "Бележка към поръчката"
];
$headers = [
"X-TekraClientID: YOUR_CLIENT_ID",
"X-TekraAPIKey: YOUR_API_KEY",
"Content-Type: application/json"
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
Примерни отговори
Примерен отговор при успешно създаване на поръчка:
{
"data": {
"order_number": "55504",
"products": [
{
"product": "PRODUCT_2",
"stock": 10
}
]
},
"status": {
"type": "success",
"message": "Order created successfully."
}
}
Примерен отговор при проверка на статус:
{
"data": {
"order_number": 55504,
"status": "Приключена",
"tracking_number": "1234567890"
},
"status": {
"type": "success",
"message": ""
}
}
Обяснение на полетата:
Поле | Описание |
---|---|
order_number | Номер на поръчката. |
products | Масив от продукти, които са част от поръчката. |
product | Идентификатор на продукта. |
stock | Наличност на продукта. Това показва моментната наличност от продукта. |
status | Тип на отговора. В този случай, success, който показва, че поръчката е създадена успешно. |
message | Допълнително пояснение. |
Примерен отговор при грешка:
{
"data": [],
"status": {
"type": "error",
"message": "Missing required field: contact_person",
"error_code": 1003
}
}
Обяснение на полетата при грешка:
Поле | Описание |
---|---|
data | Масив, съдържащ данни, които са върнати от сървъра. В случай на грешка, този масив обикновено ще бъде празен. За грешка с код #1013, в масива ще бъде включен order_number, който съдържа номера на поръчката, за която е възникнала грешката. |
status | |
type | Статус на заявката. В случая е "error", което показва, че е възникнала грешка. |
message | Съобщение, което обяснява каква е грешката. В този пример, липсващо задължително поле "contact_person". |
error_code | Уникален код за грешката, който помага при идентифицирането на проблема. |
Тестови продукти
Product | Наличност |
---|---|
PRODUCT_1 | 10 |
PRODUCT_2 | 3 |
PRODUCT_3 | 5 |