PLLANO API
Документация по работе с PLLANO API, (*1)
PLLANO RESTful API — это бесплатный инструментарий для интеграции pllano.com в ваш продукт., (*2)
Вы можете ипользовать наш PLLANO PHP HTTP client или популярный PHP HTTP client Guzzle - Документация, (*3)
, (*4)
Новая сайт API быстрее в несколько раз за прошлый. Появилась возможность регистрации продавца при установке сайта., (*5)
Ресурсы PLLANO RESTful API
Сейчас доступны следующие ресурсы:
- /site - GET - Конфигурация сайта (Требует public_key)
- /price - GET - Товары и цены (Требует public_key)
- /order - GET POST PUT - Заказы (Требует public_key)
- /install - POST PUT - Установка сайта (Работает без public_key)
- /language - GET - Локализация (Работает без public_key)
- /stores_list - GET - Список типов магазинов (Работает без public_key)
- /templates_list - GET - Список шаблонов (Работает без public_key)
- /test - GET POST PUT PATCH DELETE - Тесты (Работает без public_key), (*6)
Список всех запланированных ресурсов PLLANO API, (*7)
PLLANO API потдерживает запросы:
-
POST /price Создание записи
-
POST /price/42 Ошибка
-
GET /price Список прайс-строк
-
GET /price/42 Данные конкретной прайс-строки
-
PUT /price Обновить данные прайс-строк
-
PUT /price/42 Обновить данные конкретной прайс-строки
-
DELETE /price Удалить все прайс-строки
-
DELETE /price/42 Удалить конкретную прайс-строку
URL PLLANO API
https://api.pllano.com/{resource}/{uid}
-
{resource} - ресурс к которому обращаемся. Например price или search
-
{id} - уникальный индефикатор
GET запрос к API
?public_key={public_key}&order={order}&sort={sort}&offset={offset}&limit={limit}
-
{public_key} - Ваш ключ к API
-
{limit} - Записей на страницу. По умолчанию 10
-
{offset} - Страница. По умолчанию 0
-
{order} - Тип сортировки. По умолчанию ASC
-
{sort} - Поле сортировки. По умолчанию id
API - Всегда возвращает код 200 даже при логических ошибках !
HTTP/1.1 200 OK, (*8)
Content-Type: application/json, (*9)
В теле ответа API вернет состояния HTTP или код ошибки.
Коды состояния HTTP, (*10)
Демо
Перейдите по ссылке https://api.pllano.com/price?public_key=test&order=asc&sort=uid&offset=0&limit=10, (*11)
, (*12)
Легкий старт
Скачайте файлы test.php и src/Api.php положите их в корень вашего сайта., (*13)
Запуск: http://example.com/test.php, (*14)
PLLANO REST API PHP обратится по адресу:, (*15)
https://api.pllano.com/price?public_key=test&order=asc&sort=uid&offset=0&limit=10, (*16)
В ответ получит массив json конвертирует его в массив PHP, (*17)
, (*18)
Установка PLLANO PHP HTTP client с помощью Composer, (*19)
Требования
PHP >= 5.3*, (*20)
$ composer require pllano/api
composer.json
``` json
"require": {
"pllano/api": "1.0.3"
}, (*21)
<a name="test"></a>
### Пример использования PLLANO PHP HTTP client
``` php
require '../vendor/autoload.php'; // Подключить Composer
// require_once __DIR__.'/Api.php';
$action = 'price'; // Название модели к которой мы обращаемся
$metod = 'curl'; // get = file_get_contents или curl
$id = null; // Уникальный индефикатор item. Если null выводим список.
$public_key = 'test'; // Публичный ключ авторизации. По умолчанию test для настройки API
$query = null; // Дублируем тип запроса. Имеет приоритет выше чем в самом запросе.
$order = null; // Сотрировка asc|desc По умолчанию asc
$sort = null; // Поле по которому сортируем. По умолчанию id
$offset = null; // Смещение. Начать с указанной страницы. По умолчанию 0
$limit = null; // Лимит вывода записей на страницу. По умолчанию 10
//Массив для GET запроса
$getArray = array(
"public_key" => $public_key,
"query" => $query,
"order" => $order,
"sort" => $sort,
"offset" => $offset,
"limit" => $limit
);
$api = new Pllano\Api('ua');
$records = $api->get($getArray, $action, $metod, $id);
if (isset($records['header']['code'])) {
if ($records['header']['code'] == '200') {
$count = count($records['price']['items']);
if ($count >= 1) {
foreach($records['price']['items'] as $item)
{
print_r($item['item']['id']);
}
}
}
}
Пример использования Guzzle
$ composer require guzzlehttp/guzzle
composer.json
``` json
"require": {
"guzzlehttp/guzzle": "^6.3"
}, (*22)
``` php
require '../vendor/autoload.php'; // Подключить Composer
use GuzzleHttp\Client as Guzzle;
// Подключаем Guzzle
$client = new Guzzle();
// Отправляем запрос
$response = $client->request('GET', 'https://ua.pllano.com/api/v1/json/price/?public_key=test');
// Получаем тело ответа
$output = $response->getBody();
$records = json_encode(json_decode($output, true), JSON_PRETTY_PRINT);
// Вывести на экран json
print_r($records);
Структура ответа API в json формате
{
"headers": {
"status": "200 OK",
"code": "200",
"message": "OK",
"message_id": "https:\/\/github.com\/pllano\/APIS-2018\/tree\/master\/http-codes\/200.md"
},
"response": {
"api": "v1.0",
"auth": "QueryKeyAuth",
"total": "1000"
},
"request": {
"query": "GET",
"resource": "price",
"limit": "10",
"offset": "0",
"order": "DESC",
"sort": "id",
"state": "1",
"type": "",
"brand": "",
"serie": "",
"articul": "",
"search": ""
},
"body": {
"items": [
{
"item": {
"product_id": "",
"parent_id": "",
"brand_id": "",
"price": "",
"oldprice": "",
"available": "",
"guarantee": "",
"ean": "",
"category": {
"id": "",
"parent_id": "",
"name": "",
"alias": ""
},
"supplier": {
"id": "",
"dropshipping": "",
"pay_online": ""
},
"seller": {
"id": "",
"name": ""
},
"delivery": {
"terms": ""
},
"currency": {
"currency_id": "UAH",
"short_sign": "₴",
"name": "грн.",
},
"name": "",
"type": "",
"brand": "",
"serie": "",
"articul": "",
"url": "",
"image": {
"1": "",
"2": ""
},
"description": "-",
"param": {
"Гарантия": "12 месяцев",
"Страна производитель": "Украина"
}
}
}
]
}
}
, (*23)
Поддержка, обратная связь, новости
Общайтесь с нами через почту api@pllano.com, (*24)
Если вы нашли баг в работе PLLANO REST API или PLLANO PHP HTTP client загляните в
issues, возможно, про него мы уже знаем и
чиним. Если нет, лучше всего сообщить о нём там. Там же вы можете оставлять свои
пожелания и предложения., (*25)
За новостями вы можете следить по
коммитам в этом репозитории.
RSS., (*26)
Лицензия на библиотеку PLLANO REST API PHP
The MIT License (MIT). Please see LICENSE for more information., (*27)