RetailCRM API Client

CustomFields extends AbstractApiResourceGroup

Class CustomFields

Tags
category

CustomFields

SuppressWarnings

(PHPMD.CouplingBetweenObjects)

Table of Contents

Methods

create()  : CustomFieldsCreateResponse
Makes POST "/api/v5/custom-fields/{entity}/create" request.
dictionaries()  : CustomFieldsDictionariesResponse
Makes GET "/api/v5/custom-fields/dictionaries" request.
dictionariesCreate()  : CustomDictionaryCreateResponse
Makes POST "/api/v5/custom-fields/dictionaries/create" request.
dictionariesEdit()  : CustomDictionaryCreateResponse
Makes POST "/api/v5/custom-fields/dictionaries/{code}/edit" request.
dictionariesGet()  : CustomDictionaryGetResponse
Makes GET "/api/v5/custom-fields/dictionaries/{code}" request.
edit()  : CustomFieldsEditResponse
Makes POST "/api/v5/custom-fields/{entity}/{code}/edit" request.
get()  : CustomFieldsGetResponse
Makes GET "/api/v5/custom-fields/{entity}/{code}" request.
list()  : CustomFieldsResponse
Makes GET "/api/v5/custom-fields" request.

Methods

create()

Makes POST "/api/v5/custom-fields/{entity}/create" request.

public create(string $entity, CustomFieldsCreateRequest $request) : CustomFieldsCreateResponse

Example:

use RetailCrm\Api\Enum\CustomFields\CustomFieldDisplayArea;
use RetailCrm\Api\Enum\CustomFields\CustomFieldEntity;
use RetailCrm\Api\Enum\CustomFields\CustomFieldType;
use RetailCrm\Api\Enum\CustomFields\CustomFieldViewMode;
use RetailCrm\Api\Interfaces\ApiExceptionInterface;
use RetailCrm\Api\Factory\SimpleClientFactory;
use RetailCrm\Api\Model\Entity\CustomFields\CustomField;
use RetailCrm\Api\Model\Request\CustomFields\CustomFieldsCreateRequest;

$client = SimpleClientFactory::createClient('https://test.retailcrm.pro', 'apiKey');

$field                 = new CustomField();
$field->name           = 'Description';
$field->code           = 'description';
$field->type           = CustomFieldType::STRING;
$field->ordering       = 10;
$field->displayArea    = CustomFieldDisplayArea::MAIN_DATA;
$field->viewMode       = CustomFieldViewMode::EDITABLE;
$field->inFilter       = true;
$field->inList         = true;
$field->inGroupActions = true;

try {
    $response = $client->customFields->create(
        CustomFieldEntity::CUSTOMER,
        new CustomFieldsCreateRequest($field)
    );
} catch (ApiExceptionInterface $exception) {
    echo sprintf(
        'Error from RetailCRM API (status code: %d): %s',
        $exception->getStatusCode(),
        $exception->getMessage()
    );

    if (count($exception->getErrorResponse()->errors) > 0) {
        echo PHP_EOL . 'Errors: ' . implode(', ', $exception->getErrorResponse()->errors);
    }

    return;
}

echo 'Created field ' . print_r($response->code, true);
Parameters
$entity : string
$request : CustomFieldsCreateRequest
Tags
throws
ApiExceptionInterface
throws
ClientExceptionInterface
throws
AccountDoesNotExistException
throws
ApiErrorException
throws
MissingCredentialsException
throws
MissingParameterException
throws
ValidationException
throws
HandlerException
throws
HttpClientException
Return values
CustomFieldsCreateResponse

dictionaries()

Makes GET "/api/v5/custom-fields/dictionaries" request.

public dictionaries([CustomFieldsDictionariesRequest|null $request = null ]) : CustomFieldsDictionariesResponse

Example:

use RetailCrm\Api\Interfaces\ApiExceptionInterface;
use RetailCrm\Api\Factory\SimpleClientFactory;
use RetailCrm\Api\Model\Filter\CustomFields\CustomDictionaryFilter;
use RetailCrm\Api\Model\Request\CustomFields\CustomFieldsDictionariesRequest;
use RetailCrm\Api\Enum\PaginationLimit;

$client = SimpleClientFactory::createClient('https://test.retailcrm.pro', 'apiKey');

$request               = new CustomFieldsDictionariesRequest();
$request->page         = 1;
$request->limit        = PaginationLimit::LIMIT_20;
$request->filter       = new CustomDictionaryFilter();
$request->filter->code = 'test22';
$request->filter->name = 'test22';

try {
    $response = $client->customFields->dictionaries($request);
} catch (ApiExceptionInterface $exception) {
    echo sprintf(
        'Error from RetailCRM API (status code: %d): %s',
        $exception->getStatusCode(),
        $exception->getMessage()
    );

    if (count($exception->getErrorResponse()->errors) > 0) {
        echo PHP_EOL . 'Errors: ' . implode(', ', $exception->getErrorResponse()->errors);
    }

    return;
}

echo 'Received dictionaries: ' . print_r($response->customDictionaries, true);
Parameters
$request : CustomFieldsDictionariesRequest|null = null
Tags
throws
ApiExceptionInterface
throws
ClientExceptionInterface
throws
AccountDoesNotExistException
throws
ApiErrorException
throws
MissingCredentialsException
throws
MissingParameterException
throws
ValidationException
throws
HandlerException
throws
HttpClientException
Return values
CustomFieldsDictionariesResponse

dictionariesCreate()

Makes POST "/api/v5/custom-fields/dictionaries/create" request.

public dictionariesCreate(CustomDictionaryCreateRequest $request) : CustomDictionaryCreateResponse

Example:

use RetailCrm\Api\Interfaces\ApiExceptionInterface;
use RetailCrm\Api\Factory\SimpleClientFactory;
use RetailCrm\Api\Model\Entity\CustomFields\CustomDictionary;
use RetailCrm\Api\Model\Entity\CustomFields\SerializedCustomDictionaryElement;
use RetailCrm\Api\Model\Request\CustomFields\CustomDictionaryCreateRequest;

$client = SimpleClientFactory::createClient('https://test.retailcrm.pro', 'apiKey');

$dictionary                = new CustomDictionary();
$element                   = new SerializedCustomDictionaryElement();
$element->name             = 'test_1';
$element->code             = 'test_1';
$element->ordering         = 10;
$dictionary->name          = 'TestDict';
$dictionary->code          = 'test_dict';
$dictionary->elements      = [$element];

try {
    $response = $client->customFields->dictionariesCreate(new CustomDictionaryCreateRequest($dictionary));
} catch (ApiExceptionInterface $exception) {
    echo sprintf(
        'Error from RetailCRM API (status code: %d): %s',
        $exception->getStatusCode(),
        $exception->getMessage()
    );

    if (count($exception->getErrorResponse()->errors) > 0) {
        echo PHP_EOL . 'Errors: ' . implode(', ', $exception->getErrorResponse()->errors);
    }

    return;
}

echo 'Created dictionary ' . $response->code;
Parameters
$request : CustomDictionaryCreateRequest
Tags
throws
ApiExceptionInterface
throws
ClientExceptionInterface
throws
AccountDoesNotExistException
throws
ApiErrorException
throws
MissingCredentialsException
throws
MissingParameterException
throws
ValidationException
throws
HandlerException
throws
HttpClientException
Return values
CustomDictionaryCreateResponse

dictionariesEdit()

Makes POST "/api/v5/custom-fields/dictionaries/{code}/edit" request.

public dictionariesEdit(string $code, CustomDictionaryCreateRequest $request) : CustomDictionaryCreateResponse

Example:

use RetailCrm\Api\Interfaces\ApiExceptionInterface;
use RetailCrm\Api\Factory\SimpleClientFactory;
use RetailCrm\Api\Model\Entity\CustomFields\CustomDictionary;
use RetailCrm\Api\Model\Entity\CustomFields\SerializedCustomDictionaryElement;
use RetailCrm\Api\Model\Request\CustomFields\CustomDictionaryCreateRequest;

$client = SimpleClientFactory::createClient('https://test.retailcrm.pro', 'apiKey');

$dictionary                = new CustomDictionary();
$element                   = new SerializedCustomDictionaryElement();
$element->name             = 'test_1';
$element->code             = 'test_1';
$element->ordering         = 10;
$dictionary->name          = 'TestDict';
$dictionary->elements      = [$element];

try {
    $response = $client->customFields->dictionariesEdit(
        'test_dict',
        new CustomDictionaryCreateRequest($dictionary)
    );
} catch (ApiExceptionInterface $exception) {
    echo sprintf(
        'Error from RetailCRM API (status code: %d): %s',
        $exception->getStatusCode(),
        $exception->getMessage()
    );

    if (count($exception->getErrorResponse()->errors) > 0) {
        echo PHP_EOL . 'Errors: ' . implode(', ', $exception->getErrorResponse()->errors);
    }

    return;
}
echo 'Edited dictionary ' . $response->code;
Parameters
$code : string
$request : CustomDictionaryCreateRequest
Tags
throws
ApiExceptionInterface
throws
ClientExceptionInterface
throws
AccountDoesNotExistException
throws
ApiErrorException
throws
MissingCredentialsException
throws
MissingParameterException
throws
ValidationException
throws
HandlerException
throws
HttpClientException
Return values
CustomDictionaryCreateResponse

dictionariesGet()

Makes GET "/api/v5/custom-fields/dictionaries/{code}" request.

public dictionariesGet(string $code) : CustomDictionaryGetResponse

Example:

use RetailCrm\Api\Interfaces\ApiExceptionInterface;
use RetailCrm\Api\Factory\SimpleClientFactory;

$client = SimpleClientFactory::createClient('https://test.retailcrm.pro', 'apiKey');

try {
    $response = $client->customFields->dictionariesGet('test');
} catch (ApiExceptionInterface $exception) {
    echo sprintf(
        'Error from RetailCRM API (status code: %d): %s',
        $exception->getStatusCode(),
        $exception->getMessage()
    );

    if (count($exception->getErrorResponse()->errors) > 0) {
        echo PHP_EOL . 'Errors: ' . implode(', ', $exception->getErrorResponse()->errors);
    }

    return;
}

echo 'Received dictionary ' . print_r($response->customDictionary, true);
Parameters
$code : string
Tags
throws
ApiExceptionInterface
throws
ClientExceptionInterface
throws
AccountDoesNotExistException
throws
ApiErrorException
throws
MissingCredentialsException
throws
MissingParameterException
throws
ValidationException
throws
HandlerException
throws
HttpClientException
Return values
CustomDictionaryGetResponse

edit()

Makes POST "/api/v5/custom-fields/{entity}/{code}/edit" request.

public edit(string $entity, string $code, CustomFieldsCreateRequest $request) : CustomFieldsEditResponse

Example:

use RetailCrm\Api\Enum\CustomFields\CustomFieldDisplayArea;
use RetailCrm\Api\Enum\CustomFields\CustomFieldEntity;
use RetailCrm\Api\Enum\CustomFields\CustomFieldType;
use RetailCrm\Api\Enum\CustomFields\CustomFieldViewMode;
use RetailCrm\Api\Interfaces\ApiExceptionInterface;
use RetailCrm\Api\Factory\SimpleClientFactory;
use RetailCrm\Api\Model\Entity\CustomFields\CustomField;
use RetailCrm\Api\Model\Request\CustomFields\CustomFieldsCreateRequest;

$client = SimpleClientFactory::createClient('https://test.retailcrm.pro', 'apiKey');

$field                 = new CustomField();
$field->name           = 'Description';
$field->type           = CustomFieldType::STRING;
$field->ordering       = 10;
$field->viewMode       = CustomFieldViewMode::EDITABLE;
$field->inFilter       = true;
$field->inList         = true;
$field->inGroupActions = true;

try {
    $response = $client->customFields->edit(
        CustomFieldEntity::CUSTOMER,
        'description',
        new CustomFieldsCreateRequest($field)
    );
} catch (ApiExceptionInterface $exception) {
    echo sprintf(
        'Error from RetailCRM API (status code: %d): %s',
        $exception->getStatusCode(),
        $exception->getMessage()
    );

    if (count($exception->getErrorResponse()->errors) > 0) {
        echo PHP_EOL . 'Errors: ' . implode(', ', $exception->getErrorResponse()->errors);
    }

    return;
}

echo 'Edited field ' . print_r($response->code, true);
Parameters
$entity : string
$code : string
$request : CustomFieldsCreateRequest
Tags
throws
ApiExceptionInterface
throws
ClientExceptionInterface
throws
AccountDoesNotExistException
throws
ApiErrorException
throws
MissingCredentialsException
throws
MissingParameterException
throws
ValidationException
throws
HandlerException
throws
HttpClientException
Return values
CustomFieldsEditResponse

get()

Makes GET "/api/v5/custom-fields/{entity}/{code}" request.

public get(string $entity, string $code) : CustomFieldsGetResponse

Example:

use RetailCrm\Api\Enum\CustomFields\CustomFieldEntity;
use RetailCrm\Api\Interfaces\ApiExceptionInterface;
use RetailCrm\Api\Factory\SimpleClientFactory;

$client = SimpleClientFactory::createClient('https://test.retailcrm.pro', 'apiKey');

try {
    $response = $client->customFields->get(CustomFieldEntity::ORDER, 'item');
} catch (ApiExceptionInterface $exception) {
    echo sprintf(
        'Error from RetailCRM API (status code: %d): %s',
        $exception->getStatusCode(),
        $exception->getMessage()
    );

    if (count($exception->getErrorResponse()->errors) > 0) {
        echo PHP_EOL . 'Errors: ' . implode(', ', $exception->getErrorResponse()->errors);
    }

    return;
}

echo 'Received field: ' . print_r($response->customField, true);
Parameters
$entity : string
$code : string
Tags
throws
ApiExceptionInterface
throws
ClientExceptionInterface
throws
AccountDoesNotExistException
throws
ApiErrorException
throws
MissingCredentialsException
throws
MissingParameterException
throws
ValidationException
throws
HandlerException
throws
HttpClientException
Return values
CustomFieldsGetResponse

list()

Makes GET "/api/v5/custom-fields" request.

public list([CustomFieldsRequest|null $request = null ]) : CustomFieldsResponse

Example:

use RetailCrm\Api\Interfaces\ApiExceptionInterface;
use RetailCrm\Api\Factory\SimpleClientFactory;
use RetailCrm\Api\Model\Filter\CustomFields\CustomFieldFilter;
use RetailCrm\Api\Model\Request\CustomFields\CustomFieldsRequest;
use RetailCrm\Api\Enum\PaginationLimit;

$client = SimpleClientFactory::createClient('https://test.retailcrm.pro', 'apiKey');

$request                      = new CustomFieldsRequest();
$request->page                = 1;
$request->limit               = PaginationLimit::LIMIT_20;
$request->filter              = new CustomFieldFilter();
$request->filter->entity      = 'order';
$request->filter->viewMode    = ['editable'];
$request->filter->displayArea = ['customer'];
$request->filter->type        = ['string'];
$request->filter->code        = 'bonus';
$request->filter->name        = 'бонус';

try {
    $response = $client->customFields->list($request);
} catch (ApiExceptionInterface $exception) {
    echo sprintf(
        'Error from RetailCRM API (status code: %d): %s',
        $exception->getStatusCode(),
        $exception->getMessage()
    );

    if (count($exception->getErrorResponse()->errors) > 0) {
        echo PHP_EOL . 'Errors: ' . implode(', ', $exception->getErrorResponse()->errors);
    }

    return;
}

echo 'Received fields: ' . print_r($response->customFields, true);
Parameters
$request : CustomFieldsRequest|null = null
Tags
throws
ApiExceptionInterface
throws
ClientExceptionInterface
throws
AccountDoesNotExistException
throws
ApiErrorException
throws
MissingCredentialsException
throws
MissingParameterException
throws
ValidationException
throws
HandlerException
throws
HttpClientException
Return values
CustomFieldsResponse

        
On this page

Search results