126 lines
3.4 KiB
Markdown
126 lines
3.4 KiB
Markdown
[](https://github.com/retailcrm/api-client-php/actions)
|
|
[](https://codecov.io/gh/retailcrm/api-client-php)
|
|
[](https://packagist.org/packages/retailcrm/api-client-php)
|
|
[](https://packagist.org/packages/retailcrm/api-client-php)
|
|
|
|
|
|
# RetailCRM API PHP client
|
|
|
|
This is php RetailCRM API client. This library allows to use all available API versions. [API documentation](http://retailcrm.github.io/api-client-php)
|
|
|
|
## Requirements
|
|
|
|
* PHP 5.4 and above
|
|
* PHP's cURL support
|
|
* PHP's JSON support
|
|
* PHP's Fileinfo support
|
|
|
|
## Install
|
|
|
|
1) Get [composer](https://getcomposer.org/download/)
|
|
|
|
2) Run into your project directory:
|
|
```bash
|
|
composer require retailcrm/api-client-php ~5.0
|
|
```
|
|
|
|
If you have not used `composer` before, include autoloader into your project.
|
|
```php
|
|
require 'path/to/vendor/autoload.php';
|
|
```
|
|
|
|
## Usage
|
|
|
|
### Get order
|
|
```php
|
|
$client = new \RetailCrm\ApiClient(
|
|
'https://demo.retailcrm.pro',
|
|
'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
|
|
```php
|
|
|
|
$client = new \RetailCrm\ApiClient(
|
|
'https://demo.retailcrm.pro',
|
|
'T9DMPvuNt7FQJMszHUdG8Fkt6xHsqngH',
|
|
\RetailCrm\ApiClient::V5
|
|
);
|
|
|
|
try {
|
|
$response = $client->request->ordersCreate(array(
|
|
'externalId' => 'some-shop-order-id',
|
|
'firstName' => 'John',
|
|
'lastName' => 'Doe',
|
|
'items' => array(
|
|
//...
|
|
),
|
|
'delivery' => array(
|
|
'code' => 'fedex',
|
|
)
|
|
));
|
|
} 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
|
|
```php
|
|
$client = new \RetailCrm\ApiClient(
|
|
'https://demo.retailcrm.pro',
|
|
'T9DMPvuNt7FQJMszHUdG8Fkt6xHsqngH',
|
|
\RetailCrm\ApiClient::V5
|
|
);
|
|
|
|
$options = new \RetailCrm\Http\RequestOptions(
|
|
['X-Rlimit-Token' => 'example_token'], // array of custom headers
|
|
10 // client timeout (in seconds)
|
|
);
|
|
|
|
$client->request->setOptions($options);
|
|
```
|