Взаимодействие с API при ограничениях хостинга
Скопировать ссылку на статью
Скопировано

Возможна ситуация, когда ваш сайт работает на хостинге, который не удовлетворяет требованиям PHP-клиента для взаимодействия с API:

  • установлена старая версия PHP (5.2 и ниже)

  • отсутствует PHP-расширение cURL

В этом случае вы можете обращаться к API c помощью обычной функции file_get_contents. Ниже приведены примеры ее использования.

Не используйте нижеприведенные примеры, если ваш хостинг позволяет работать с официальным API-клиентом для PHP. Данные примеры не учитывают обработку ошибок и сетевых проблем.

Примеры

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

<?php

$crmDomain = 'https://some-crm.retailcrm.ru';
$crmKey = '4325fd34e1kVkahXL8XA3g3DEWIsQnwY';

$postData = http_build_query(array(
    'order' => json_encode(array(
        'firstName' => 'Имя',
        'phone' => 'Телефон',
        'email' => 'Имейл',
        'items' => array(
          array(
          'productName' => 'Наименование товара',
          'offer'=> array(
            'id' => 'Внутренний id торгового предложения',
            'externalId' => 'Внешний id торгового предложения',
            'xmlId' => 'id торгового предложения в складской системе',
            )),
            array(
            'productName' => 'Наименование товара',
            'offer'=> array(
            'id' => 'Внутренний id торгового предложения',
            'externalId' => 'Внешний id торгового предложения',
            'xmlId' => 'id торгового предложения в складской системе',
)))
        '...'
)),
    'apiKey' => $crmKey,
));

$opts = array('http' =>
    array(
        'method'  => 'POST',
        'header'  => 'Content-type: application/x-www-form-urlencoded',
        'content' => $postData
    )
);

$context  = stream_context_create($opts);
$result = json_decode(
    file_get_contents(
        $crmDomain . '/api/v5/orders/create', 
        false, 
        $context
    ),
    true
);

echo "ID созданного заказа = " . $result['id'];

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

<?php

$crmDomain = 'https://some-crm.retailcrm.ru';
$crmKey = '4325fd34e1kVkahXL8XA3g3DEWIsQnwY';

// пример
$orderId = 5;
$params = array(
    'by' => 'id',
    'apiKey' => $crmKey,
);

$result = json_decode(
    file_get_contents($crmDomain . '/api/v5/orders/' . $orderId . '?' . http_build_query($params)),
    true
);

if (isset($result['order'])) {
    // информация по заказу
    print_r($result['order']);
}

Получение статусов заказов

<?php

$crmDomain = 'https://some-crm.retailcrm.ru';
$crmKey = '4325fd34e1kVkahXL8XA3g3DEWIsQnwY';

// пример
$orderIds = array(1, 2, 3);
$params = array(
    'ids' => $orderIds,
    'apiKey' => $crmKey,
);

$result = json_decode(
    file_get_contents($crmDomain . '/api/v5/orders/statuses' . http_build_query($params)),
    true
);

if (isset($result['orders'])) {
    foreach ($result['orders'] as $order) {
        echo $order['id'];
        echo $order['status'];
    }
}
Благодарим за отзыв.
Была ли статья полезна?
Нет
  • Рекомендации не помогли
  • Нет ответа на мой вопрос
  • Текст трудно понять
  • Не нравится описанный функционал
Да
Предыдущая статья
Использование API для интеграции с Программой лояльности
Рассмотрим основные сценарии использования API для взаимодействия с Программой лояльности.
Следующая статья
Порядок интеграции сервиса рекомендаций через API
Для вывода желаемых сопутствующих товаров в заказе, вы можете использовать собственный сервис рекомендаций. В статье рассмотрим процесс его подключения.
Не нашли ответа на свой вопрос?
Получить помощь
Не нашли ответ на вопрос?
Специалист службы поддержки готов помочь!

Обратная связь

Нажимая на кнопку, вы соглашаетесь с условиями пользовательского соглашения

Сообщение отправлено!

В ближайшее время специалист службы поддержки изучит ваше обращение и ответит вам.

Сообщение не отправлено!

Произошла непредвиденная ошибка. Мы уже уведомлены об инциденте и в ближайшее время всё починим.