1
0
mirror of synced 2024-11-23 22:06:09 +03:00
PHP client for RetailCRM API
Go to file
Ilyas Salikhov 2098ad3bf2 Merge pull request #6 from gwinn/master
Методы `/orders/packs/history`, `/stores/inventories`, `/stores/inventories/upload`.
2015-05-20 11:41:17 +03:00
lib/RetailCrm Update Client.php 2015-05-20 11:31:07 +03:00
tests packs & inventories, improve curl connection timeout handler 2015-05-04 18:47:14 +03:00
.gitignore add apigen doc, minor changes in code for phpcs approval 2014-11-10 03:12:50 +03:00
apigen.neon Added sites methods, Added site parameter to order/customer methods 2014-11-27 11:23:44 +03:00
composer.json Added sites methods, Added site parameter to order/customer methods 2014-11-27 11:23:44 +03:00
LICENSE Create LICENSE 2015-02-02 16:21:11 +03:00
phpunit.xml.dist Added sites methods, Added site parameter to order/customer methods 2014-11-27 11:23:44 +03:00
README.md Fix CRM domain 2014-11-17 00:12:48 +03:00

PHP-клиент для retailCRM API

PHP-клиент для работы с retailCRM API.

Рекомендуем обращаться к документации по библиотеке, в частности по классу RetailCrm\ApiClient.

Обязательные требования

  • PHP версии 5.3 и выше
  • PHP-расширение cURL

Установка

  1. Установите composer

  2. Выполните в папке проекта:

composer require retailcrm/api-client-php ~3.0.0

В конфиг composer.json вашего проекта будет добавлена библиотека retailcrm/api-client-php, которая установится в папку vendor/. При отсутствии файла конфига или папки с вендорами они будут созданы.

В случае, если до этого в вашем проекте не использовался composer, подключите файл автозагрузки вендоров. Для этого укажите в коде проекта:

require 'path/to/vendor/autoload.php';

Примеры использования

Получение информации о заказе

$client = new \RetailCrm\ApiClient(
    'https://demo.retailcrm.ru',
    'T9DMPvuNt7FQJMszHUdG8Fkt6xHsqngH'
);


try {
    $response = $client->ordersGet('M-2342');
} catch (\RetailCrm\Exception\CurlException $e) {
    echo "Сетевые проблемы. Ошибка подключения к retailCRM: " . $e->getMessage();
}

if ($response->isSuccessful()) {
    echo $response->order['totalSumm'];
    // или $response['order']['totalSumm'];
    // или 
    //    $order = $response->getOrder();
    //    $order['totalSumm'];
} else {
    echo sprintf(
        "Ошибка получения информации о заказа: [Статус HTTP-ответа %s] %s", 
        $response->getStatusCode(),
        $response->getErrorMsg()
    );
    
    // получить детализацию ошибок
    //if (isset($response['errors'])) {
    //    print_r($response['errors']);
    //}
}

Создание заказа


$client = new \RetailCrm\ApiClient(
    'https://demo.retailcrm.ru',
    'T9DMPvuNt7FQJMszHUdG8Fkt6xHsqngH'
);

try {
    $response = $client->ordersCreate(array(
        'externalId' => 'some-shop-order-id',
        'firstName' => 'Vasily',
        'lastName' => 'Pupkin',
        'items' => array(
            //...
        ),
        'delivery' => array(
            'code' => 'russian-post',
        )
    ));
} catch (\RetailCrm\Exception\CurlException $e) {
    echo "Сетевые проблемы. Ошибка подключения к retailCRM: " . $e->getMessage();
}

if ($response->isSuccessful() && 201 === $response->getStatusCode()) {
    echo 'Заказ успешно создан. ID заказа в retailCRM = ' . $response->id;
        // или $response['id'];
        // или $response->getId();
} else {
    echo sprintf(
        "Ошибка создания заказа: [Статус HTTP-ответа %s] %s", 
        $response->getStatusCode(),
        $response->getErrorMsg()
    );

    // получить детализацию ошибок
    //if (isset($response['errors'])) {
    //    print_r($response['errors']);
    //}
}