IT-КУБиК-Сервис • Форум 1С
Абстрактный тёмно-синий фон с мягкими геометрическими линиями и оранжевыми акцентами, создающий технологичную атмосферу

Агрегатор публикаций с Инфостарта по 1С:Предприятие — обработки, расширения, конфигурации, интеграции и администрирование. Сообщество специалистов 1С.

Прием заказов из WordPress в 1С через HTTP-сервис

Связка сайта на WordPress с 1С позволяет автоматически передавать заказы, покупателей и состав корзины в учетную систему. Вместо ручного переноса менеджер получает документ или предварительную запись уже в 1С, где можно запустить проверку остатков, расчет доставки и дальнейшую обработку.

Оптимальный вариант для такой интеграции — собственный HTTP-сервис в конфигурации 1С и REST-точка на WordPress. Сайт отправляет данные методом POST в формате JSON, а 1С проверяет запрос, преобразует его в структуру данных и создает заказ. Ниже рассмотрены архитектура, настройка, безопасность и типовые ошибки.

Компонент Назначение Рекомендуемый подход
WordPress Формирование события заказа Плагин или собственный обработчик
REST API Передача данных POST с JSON
HTTP-сервис 1С Прием внешнего запроса Отдельный URL-шаблон
Обмен данными Сопоставление полей Уникальный номер заказа
Безопасность Защита endpoint Токен, HTTPS, проверка IP
Результат Ответ сайту JSON со статусом и идентификатором

Архитектура обмена между сайтом и 1С

После оформления заказа WooCommerce или другой компонент WordPress формирует JSON-документ. В него обычно включают номер заказа, дату, данные покупателя, телефон, электронную почту, адрес доставки, товары, количество, цены, скидки и итоговую сумму.

Запрос отправляется на URL HTTP-сервиса 1С. Обработчик получает тело запроса, проверяет авторизацию и корректность структуры, затем ищет заказ с таким же внешним идентификатором. Если запись уже была создана, сервис возвращает успешный ответ без повторного формирования документа.

Такой принцип делает обмен устойчивым к повторной отправке. Она возможна при сетевом сбое, повторном нажатии кнопки или автоматическом повторе запроса со стороны WordPress.

Создание HTTP-сервиса в конфигураторе

В конфигурации 1С создайте объект HTTP-сервис и задайте понятное имя, например ОбменСайтом. Для него указывается корневой URL, после чего добавляется шаблон /orders. В шаблоне настраивается метод POST и обработчик, который будет выполняться при обращении к адресу.

В серверном модуле HTTP-сервиса доступны объект запроса и объект ответа. Из запроса необходимо получить заголовки и тело сообщения, а в ответе установить код HTTP, заголовок Content-Type и JSON с результатом обработки. Успешную операцию обычно завершают кодом 200 или 201, ошибку формата обозначают кодом 400, а проблему авторизации — 401 или 403.

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

Формат JSON и соответствие реквизитов

Структуру сообщения лучше зафиксировать заранее. Пример объекта может содержать поля external_id, customer, phone, email, delivery, items и total. У каждой товарной позиции должны быть внешний код или артикул, наименование, количество и цена.

В 1С внешний код товара следует сопоставлять с артикулом или отдельным реквизитом номенклатуры. Поиск только по наименованию ненадежен: названия могут отличаться по регистру, содержать лишние символы или быть изменены сотрудником. Если товар не найден, сервис должен зафиксировать ошибку и вернуть понятное сообщение.

Для разбора тела запроса применяется стандартная работу с JSON, доступная в используемой версии платформы. Данные нужно проверять по типам и обязательности: номер заказа не должен быть пустым, количество — отрицательным, а сумма — нечисловой. При необходимости можно передавать в JSON идентификаторы характеристик, складов и вариантов доставки.

Формирование заказа в информационной базе

В зависимости от конфигурации заказ можно записывать как документ Заказ клиента, Заказ покупателя или во временную таблицу обмена. Универсального алгоритма нет: состав реквизитов и табличных частей отличается в УТ, КА, ERP и отраслевых решениях.

Перед созданием документа найдите контрагента или партнера по телефону, электронной почте либо сохраненному внешнему идентификатору. Если политика учета допускает автоматическое создание нового клиента, эту операцию лучше выполнять отдельно и журналировать ее результат. Автоматическое объединение записей по одному имени может привести к ошибкам в клиентской базе.

После заполнения документа можно установить нужный статус, организацию, склад и вид цен. Проведение следует выполнять только после проверки остатков, договора, способа оплаты и прочих требований конкретной конфигурации. Во многих проектах безопаснее сначала создавать непроведенный заказ, а проведение оставлять регламентному заданию или менеджеру.

Безопасность и защита endpoint

HTTP-сервис нельзя оставлять доступным без проверки источника. Минимальный вариант — секретный токен в заголовке запроса, например Authorization или отдельном заголовке интеграции. Значение должно храниться в настройках WordPress и 1С, а не в открытом коде страницы.

Передача должна выполняться только по HTTPS. Также полезно ограничить размер тела запроса, проверять допустимый метод, вести журнал неудачных обращений и закрыть служебные диагностические данные от внешнего пользователя. Полный текст исключения не следует возвращать сайту: технические подробности должны оставаться в журнале 1С.

Если сервер доступен через интернет, настройте обратный прокси, межсетевой экран и ограничение частоты запросов. Фильтрация по IP может быть дополнительной мерой, но не заменяет токен: у облачного хостинга и CDN адреса источника способны меняться.

Обработка ошибок и контроль обмена

Ответ сервиса должен быть предсказуемым. При успехе можно вернуть success: true, внешний номер заказа и ссылку или идентификатор созданного объекта в 1С. При ошибке полезно передавать код, краткое описание и признак, нужно ли повторять запрос.

WordPress должен различать временные и постоянные ошибки. Сбой соединения, тайм-аут или ответ 500 допускают повторную отправку. Ошибка в структуре JSON, отсутствие товара или неверный токен требуют исправления данных и не должны бесконечно запускать повторную очередь.

Для контроля добавьте журнал обмена с датой, внешним номером, результатом, текстом ошибки и идентификатором пользователя или заказа. После тестирования проверьте сценарии с двумя одинаковыми запросами, пустой корзиной, неизвестным товаром, неверной суммой и недоступным сервером 1С.

Настроить такой обмен можно постепенно: сначала принять тестовый JSON и записать журнал, затем добавить сопоставление номенклатуры, создание клиента и формирование заказа. Обсудите реализацию на профессиональном форуме по 1С, изучите готовые инструменты интеграции и оцените возможности KUBiK для автоматизации учета и бизнес-процессов.