pixel Отправка заказа битрикс в 1С во время оформления заказа

Отправка заказа битрикс в 1С во время оформления заказа

Как лучше отправить мгновенно заказ в 1С.

Для мгновенной отправки заказа на сервер 1С будем использовать событие 'OnSaleOrderSaved', которое происходит в конце сохранения, когда заказ и все связанные сущности уже сохранены.


use Bitrix\Main,
       Bitrix\Sale\Order;

Bitrix\Main\EventManager::getInstance()->addEventHandler(/**
 * @param Main\Event $event
 */
    'sale', 'OnSaleOrderSaved', function(Bitrix\Main\Event $event) {
    /** @var Order $order */
    $order = $event->getParameter("ENTITY");
    $isNew = $event->getParameter("IS_NEW");
    if ($isNew)
    {
         /** Функция отправки заказа */
        checkOrder($order);
    }
});

Для отправки используем клиентскую библиотеку сURL


/**
 * @param Order $order
 */
function checkOrder($order) : void
{
    //из  объекта $order получаем необходимые данные в массив 
    $order_prop = [];

    //доступ к серверу 1С
    $username = "username";
    $password = "password";
    $sign = "token";

    $cURL = curl_init();

    curl_setopt_array(
        $cURL,
        [
            CURLOPT_URL => "http://host",
            CURLOPT_CUSTOMREQUEST => "POST",
            CURLOPT_USERPWD => $username . ":" . $password,
            CURLOPT_POSTFIELDS => json_encode($order_prop, JSON_UNESCAPED_UNICODE),
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_FOLLOWLOCATION => true,
            CURLOPT_HTTPHEADER => [
                "Content-Type: application/json; charset=utf-8",
                "accept: application/json",
                "Content-Length: " . strlen(json_encode($order_prop, JSON_UNESCAPED_UNICODE)),
                "sign: " . $sign
            ]
        ]
    );
    curl_exec($cURL);
}

icon close

Заказать создание сайта или
консультацию!

Спасибо за обращение в нашу компанию. Мы свяжемся с Вами в самое ближайшее время!

Заполните форму:

Согласие на обработку персональных данных