Вы можете отслеживать заказы, оплату и отгрузку товаров с магазина «1С-Битрикс: Управление сайтом» в вашем Битрикс24 с помощью специального приложения Обмен с 1С-Битрикс Управление сайтом. Для такой интеграции необходимо настроить сервер, на котором работает сайт с магазином.
Как это сделать
На большинстве серверах запрещено показывать страницы сайта в iframe-ах на сторонних ресурсах.
Вам нужно создать правило на сервере, которое разрешает открывать страницы в iframe на сторонних сайтах. Делается это с помощью добавления специального HTTP-заголовка Content-Security-Policy
к страницам административного раздела:
/bitrix/admin/sale_order.php /bitrix/admin/sale_order_create.php /bitrix/admin/sale_order_edit.php /bitrix/admin/sale_order_view.php /bitrix/admin/sale_order_payment_edit.php /bitrix/admin/sale_order_shipment_edit.php /bitrix/admin/sale_delivery_request_view.php /bitrix/admin/sale_delivery_request.php /bitrix/admin/sale_app_rest_sender.php
Например, в «1C-Битрикс: Виртуальная машина» версии 7.4.4 сделать это можно так:
- Создать файл /etc/nginx/bx/site_avaliable/bx_exclude_x_frame.conf с таким содержимым (замените адрес вашего Битрикс24 в коде):
location ~* ^/bitrix/admin/sale_(order|delivery|app_rest_sender).*\.php$ { add_header Content-Security-Policy "frame-ancestors https://адрес_вашего_Битрикс24;"; proxy_pass $proxyserver; }
Обратите внимание, что в целях безопасности мы указываем конкретные адреса Битрикс24, которым нужно разрешить доступ к страницам магазина в iframe – напримерhttps://portal1.bitrix24.ru
. Если нужно дать доступ нескольким Битрикс24, то их адреса указываются через пробел. Можно указать только домен, а можно и конкретный адрес (напримерhttps://portal1.bitrix24.ru/section/page.php
). -
Найти 2 конфигурационных файла вашего сайта в директории
/etc/nginx/bx/site_avaliable/
.Например, для сайта mysite.ru файлы настроек могут быть такие:
bx_ext_mysite.ru.conf – файл настроек сайта при http-подключении.
bx_ext_ssl_mysite.ru.conf – файл настроек сайта при https-подключении.И прописать в секцию
server
каждого файла код:include bx/site_avaliable/bx_exclude_x_frame.conf;
- Проверить, нет ли ошибок в конфигурационных файлах nginx:
nginx -t
-
Если все хорошо, далее нужно перезагрузить конфигурационные файлы nginx:
CentOS 6:service nginx reload
CentOS 7:systemctl reload nginx.service
Например, для сайта mysite.ru путь к файлу будет таким: /etc/nginx/bx/site_settings/mysite.ru/bx_exclude_x_frame.conf.
Если у вас свое окружение или хостинг, обратитесь к администратору или в поддержку вашего хостинга.
Проверьте также, включена ли у вас защита от фреймов в продукте «1С-Битрикс: Управление сайтом». Для этого в административной панели перейдите в раздел Настройки > Проактивная защита > Защита от фреймов. Если у вас включена защита от фреймов, то внесите страницы интеграции в Исключения:
Ошибки и их решение
Ошибка «Invalid csrf token» может возникать из-за значения параметра SameSite
в куки PHPSESSID – по умолчанию он имеет значение Lax
.
Для решения проблемы нужно обновить php до версии 7.3 и выше (php 7.4 рекомендуется) и прописать в php.ini параметры:
session.cookie_secure = On session.cookie_samesite="None"
Если нет возможности включить данные параметры в php.ini, то попробуйте прописать похожие параметры в файл .htaccess
:
Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure;SameSite=None
Советуем прочитать: