1
0
mirror of synced 2024-11-24 06:16:27 +03:00
PHP client for RetailCRM API
Go to file
2020-11-24 14:23:44 +03:00
.github/workflows Move CI to GitHub actions (#93) 2020-11-24 14:23:44 +03:00
lib/RetailCrm updated method 2020-09-24 13:55:04 +03:00
tests updated method 2020-09-24 13:55:04 +03:00
.gitignore fix for fileUpload & fileDownload 2020-02-11 10:57:17 +03:00
composer.json files methods 2019-08-30 14:10:52 +03:00
LICENSE Create LICENSE 2015-02-02 16:21:11 +03:00
phpunit.xml.dist files methods 2019-08-30 14:10:52 +03:00
README.md Move CI to GitHub actions (#93) 2020-11-24 14:23:44 +03:00

Build Status Covarage GitHub release Latest stable PHP from Packagist

retailCRM API PHP client

This is php retailCRM API client. This library allows to use all available API versions. API documentation

Requirements

  • PHP 5.4 and above
  • PHP's cURL support
  • PHP's JSON support
  • PHP's Fileinfo support

Install

  1. Get composer

  2. Run into your project directory:

composer require retailcrm/api-client-php ~5.0

If you have not used composer before, include autoloader into your project.

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

Usage

Get order

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

try {
    $response = $client->request->ordersGet('M-2342');
} catch (\RetailCrm\Exception\CurlException $e) {
    echo "Connection error: " . $e->getMessage();
}

if ($response->isSuccessful()) {
    echo $response->order['totalSumm'];
    // or $response['order']['totalSumm'];
    // or
    //    $order = $response->getOrder();
    //    $order['totalSumm'];
} else {
    echo sprintf(
        "Error: [HTTP-code %s] %s",
        $response->getStatusCode(),
        $response->getErrorMsg()
    );

    // error details
    //if (isset($response['errors'])) {
    //    print_r($response['errors']);
    //}
}

Create order


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

try {
    $response = $client->request->ordersCreate(array(
        'externalId' => 'some-shop-order-id',
        'firstName' => 'Vasily',
        'lastName' => 'Pupkin',
        'items' => array(
            //...
        ),
        'delivery' => array(
            'code' => 'russian-post',
        )
    ));
} catch (\RetailCrm\Exception\CurlException $e) {
    echo "Connection error: " . $e->getMessage();
}

if ($response->isSuccessful() && 201 === $response->getStatusCode()) {
    echo 'Order successfully created. Order ID into retailCRM = ' . $response->id;
        // or $response['id'];
        // or $response->getId();
} else {
    echo sprintf(
        "Error: [HTTP-code %s] %s",
        $response->getStatusCode(),
        $response->getErrorMsg()
    );

    // error details
    //if (isset($response['errors'])) {
    //    print_r($response['errors']);
    //}
}

Set custom headers and client timeout

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

$options = new \RetailCrm\Http\RequestOptions(
    ['X-Rlimit-Token' => 'example_token'], // array of custom headers
    10 // client timeout (in seconds)
);

$client->request->setOptions($options);

Documentation