Обновление статуса заказа по API
В ходе разработки интенет-магазина со сложной интеграцией с 1С и другими сервисами, возникла потребность изменять статусы в Битрикс не только в рамках стандартного обмена.
Документация: Ссылка для запроса : https://#сайт#/bitrix/tools/1c_status_update.php (Рабочий стол>КонтентСтруктура сайта>Файлы и папки>bitrix>tools>1c_status_update.php)
Метод запроса : POST
Необходимые данные в теле запроса :
login = #логин_пользователя_битрикс#
password = #пароль_пользователя_битрикс#
id = (id заказа интернет магазина в формате MYSHOP-#, например: MYSHOP-11)
status = (буквенный код статуса, обязательно в верхнем регистре, например: А )
###Ответы на запрос:
OK - запрос успешно выполнен
Authorization data except - не указан логин или пароль
Authorization failed - не правильно указан логин или пароль
Order ID mismutch - не корректно указан ID заказа
Wrong order status - не корректно указан код заказа
Status mismutch - такого статуса не существует в Bitrix
Order update error - ошибка на стороне Bitrix при обновлении заказа
*Строгое соответствие кодов статусов в 1С и Битрикс обязательно
Инструкция для 1с:
1. Создать и настроить узел обмена по документам (статусы обязательно привести к соответствию 1с с сайтом)
2. прописать в модуле объекта
"Процедура ПриЗаписи(Отказ)" процедуру к нашему модулю
R_Сервис.ОтправитьСтатусЗаказаБитрикс(ЭтотОбъект.Статус, ЭтотОбъект.НомерПоДаннымКлиента);
в модуль копируем содержимое из R_Сервис.txt в архиве
Нюанс: не заморачивался и прописал Настройка = ПланыОбмена.Б_ОбменССайтом.НайтиПоНаименованию("4 Основной обмен документами"); вам нужно свой прописать или модернизировать
Работает как часы, так же можно оформить через расширение, это уже программист 1с решит
В архиве код модуля 1c_status_update.php
и код модуля R_Сервис
Тестировалось на 1С:Предприятие 8.3 (8.3.13.1865) Управление торговлей, редакция 11 (11.3.3.231)