1
0
mirror of synced 2024-11-24 22:36:06 +03:00
api-client-php/README.md

105 lines
3.6 KiB
Markdown
Raw Normal View History

2014-11-07 11:31:33 +03:00
# PHP-клиент для retailCRM API
2013-07-02 12:37:54 +04:00
2016-03-09 02:34:13 +03:00
PHP-клиент для работы с [retailCRM API](http://www.retailcrm.ru/docs/Developers/ApiVersion3).
2013-07-03 18:13:25 +04:00
2014-11-13 13:22:26 +03:00
Рекомендуем обращаться к [документации](http://retailcrm.github.io/api-client-php) по библиотеке, в частности по классу [RetailCrm\ApiClient](http://retailcrm.github.io/api-client-php/class-RetailCrm.ApiClient.html).
2014-11-13 13:04:11 +03:00
2014-11-07 11:31:33 +03:00
## Обязательные требования
2013-07-03 18:13:25 +04:00
2014-11-07 11:31:33 +03:00
* PHP версии 5.3 и выше
* PHP-расширение cURL
2013-07-04 12:44:41 +04:00
2014-11-07 11:31:33 +03:00
## Установка
2013-07-04 12:44:41 +04:00
2014-11-07 11:31:33 +03:00
1) Установите [composer](https://getcomposer.org/download/)
2013-07-04 12:44:41 +04:00
2014-11-07 11:31:33 +03:00
2) Выполните в папке проекта:
```bash
2014-11-06 17:24:44 +03:00
composer require retailcrm/api-client-php ~3.0.0
2013-10-08 11:19:38 +04:00
```
2014-11-06 02:55:09 +03:00
2014-11-07 11:31:33 +03:00
В конфиг `composer.json` вашего проекта будет добавлена библиотека `retailcrm/api-client-php`, которая установится в папку `vendor/`. При отсутствии файла конфига или папки с вендорами они будут созданы.
2014-11-06 02:55:09 +03:00
2014-11-07 13:05:40 +03:00
В случае, если до этого в вашем проекте не использовался `composer`, подключите файл автозагрузки вендоров. Для этого укажите в коде проекта:
```php
require 'path/to/vendor/autoload.php';
```
2014-11-07 11:31:33 +03:00
## Примеры использования
2014-11-06 02:55:09 +03:00
2014-11-07 11:31:33 +03:00
### Получение информации о заказе
```php
2014-11-06 02:55:09 +03:00
$client = new \RetailCrm\ApiClient(
2014-11-17 00:12:48 +03:00
'https://demo.retailcrm.ru',
2014-11-06 02:55:09 +03:00
'T9DMPvuNt7FQJMszHUdG8Fkt6xHsqngH'
);
2014-11-07 11:31:33 +03:00
2014-11-06 02:55:09 +03:00
try {
$response = $client->ordersGet('M-2342');
} catch (\RetailCrm\Exception\CurlException $e) {
2014-11-07 11:31:33 +03:00
echo "Сетевые проблемы. Ошибка подключения к retailCRM: " . $e->getMessage();
2014-11-06 02:55:09 +03:00
}
if ($response->isSuccessful()) {
echo $response->order['totalSumm'];
2014-11-07 11:31:33 +03:00
// или $response['order']['totalSumm'];
2016-03-09 02:34:13 +03:00
// или
2014-11-06 02:55:09 +03:00
// $order = $response->getOrder();
// $order['totalSumm'];
2014-11-06 11:31:47 +03:00
} else {
echo sprintf(
2016-03-09 02:34:13 +03:00
"Ошибка получения информации о заказа: [Статус HTTP-ответа %s] %s",
2014-11-06 11:31:47 +03:00
$response->getStatusCode(),
$response->getErrorMsg()
);
2016-03-09 02:34:13 +03:00
2014-11-07 11:34:54 +03:00
// получить детализацию ошибок
//if (isset($response['errors'])) {
// print_r($response['errors']);
//}
2014-11-06 02:55:09 +03:00
}
2014-11-06 03:18:39 +03:00
```
2014-11-07 11:31:33 +03:00
### Создание заказа
2014-11-06 03:18:39 +03:00
```php
$client = new \RetailCrm\ApiClient(
2014-11-17 00:12:48 +03:00
'https://demo.retailcrm.ru',
2014-11-06 03:18:39 +03:00
'T9DMPvuNt7FQJMszHUdG8Fkt6xHsqngH'
);
try {
$response = $client->ordersCreate(array(
'externalId' => 'some-shop-order-id',
'firstName' => 'Vasily',
'lastName' => 'Pupkin',
'items' => array(
//...
),
2014-11-06 03:20:32 +03:00
'delivery' => array(
2014-11-06 03:18:39 +03:00
'code' => 'russian-post',
)
));
} catch (\RetailCrm\Exception\CurlException $e) {
2014-11-07 11:31:33 +03:00
echo "Сетевые проблемы. Ошибка подключения к retailCRM: " . $e->getMessage();
2014-11-06 03:18:39 +03:00
}
2014-11-06 19:15:51 +03:00
if ($response->isSuccessful() && 201 === $response->getStatusCode()) {
2014-11-07 11:31:33 +03:00
echo 'Заказ успешно создан. ID заказа в retailCRM = ' . $response->id;
// или $response['id'];
// или $response->getId();
2014-11-06 11:31:47 +03:00
} else {
echo sprintf(
2016-03-09 02:34:13 +03:00
"Ошибка создания заказа: [Статус HTTP-ответа %s] %s",
2014-11-06 11:31:47 +03:00
$response->getStatusCode(),
$response->getErrorMsg()
);
2014-11-07 11:34:54 +03:00
// получить детализацию ошибок
//if (isset($response['errors'])) {
// print_r($response['errors']);
//}
2014-11-06 03:18:39 +03:00
}
2014-11-06 17:24:44 +03:00
```