Обмен заказами через CommerceML выдает "ошибку сервера 500"

Случилась такая ситуация. Используем новый модуль для обмена с 1с, начиная с 15 числа перестали с сайта в 1с приходить заказы. 1с в журнале показывала ошибку “ответ сервера = 500

Журнал CommerceML при попытках обмена заказами (обмен товарами происходит у нас отдельно и работает) просто показывает следующее:

Запрос на экспорт заказов получен
Запрос на сеанс обмена получен
Запрос на сеанс обмена обработан. ID сеанса: 717710d55600258590758d8f289ea033-1-C
Запрос на сеанс обмена получен
Запрос на сеанс обмена обработан. ID сеанса: 6eacd7240f5ce03bb5d5c98fd7278341-1-C

На сервере начали логировать ошибки PHP, записалась ошибка:

ValueError: XMLWriter::writeElement(): Argument #2 ($content) must be a valid element name, “НазваниеОрганизации(ЕслиНеобходимо)” given in /var/www/www-root/data/www/radiomir-s.ru/public_html/app/addons/commerceml/src/Xml/XmlWritter.php:85
Stack trace:
#0 /var/www/www-root/data/www/radiomir-s.ru/public_html/app/addons/commerceml/src/Xml/XmlWritter.php(85): XMLWriter->writeElement(‘\xD0\x9D\xD0\xB0\xD0\xB7\xD0\xB2\xD0\xB0\xD0\xBD\xD0\xB8\xD0…’, ‘\xD0\x9E\xD0\x90\xD0\x9E "\xD0\x9B\xD0\xB8\xD0\xB3\xD0…’)
#1 /var/www/www-root/data/www/radiomir-s.ru/public_html/app/addons/commerceml/src/Xml/XmlWritter.php(79): Tygh\Addons\CommerceML\Xml\XmlWritter->convertArrayToXml(Array)
#2 /var/www/www-root/data/www/radiomir-s.ru/public_html/app/addons/commerceml/src/Xml/XmlWritter.php(79): Tygh\Addons\CommerceML\Xml\XmlWritter->convertArrayToXml(Array)
#3 /var/www/www-root/data/www/radiomir-s.ru/public_html/app/addons/commerceml/src/Xml/XmlWritter.php(79): Tygh\Addons\CommerceML\Xml\XmlWritter->convertArrayToXml(Array)
#4 /var/www/www-root/data/www/radiomir-s.ru/public_html/app/addons/commerceml/src/Formators/OrderFormator.php(160): Tygh\Addons\CommerceML\Xml\XmlWritter->convertArrayToXml(Array)
#5 /var/www/www-root/data/www/radiomir-s.ru/public_html/app/addons/commerceml/src/Commands/ExportOrdersCommandHandler.php(108): Tygh\Addons\CommerceML\Formators\OrderFormator->form(Object(XMLWriter), Array)
#6 /var/www/www-root/data/www/radiomir-s.ru/public_html/app/addons/commerceml/schemas/cml/commands.php(77): Tygh\Addons\CommerceML\Commands\ExportOrdersCommandHandler->handle(Object(Tygh\Addons\CommerceML\Commands\ExportOrdersCommand))
#7 /var/www/www-root/data/www/radiomir-s.ru/public_html/app/addons/commerceml/src/CommandBus.php(132): {closure}(Object(Tygh\Addons\CommerceML\Commands\ExportOrdersCommand))
#8 /var/www/www-root/data/www/radiomir-s.ru/public_html/app/addons/commerceml/src/CommandBus.php(56): Tygh\Addons\CommerceML\CommandBus->handleCommand(Object(Tygh\Addons\CommerceML\Commands\ExportOrdersCommand))
#9 /var/www/www-root/data/www/radiomir-s.ru/public_html/app/addons/commerceml/controllers/frontend/commerceml.php(311): Tygh\Addons\CommerceML\CommandBus->dispatch(Object(Tygh\Addons\CommerceML\Commands\ExportOrdersCommand))
#10 /var/www/www-root/data/www/radiomir-s.ru/public_html/app/functions/fn.control.php(722): include(‘/var/www/www-ro…’)
#11 /var/www/www-root/data/www/radiomir-s.ru/public_html/app/functions/fn.control.php(458): fn_run_controller(‘/var/www/www-ro…’, ‘commerceml’, ‘sale_query’, ‘’, ‘’)
#12 /var/www/www-root/data/www/radiomir-s.ru/public_html/index.php(25): fn_dispatch()
#13 {main}


То есть в скрипте XmlWritter.php передается “**НазваниеОрганизации(ЕслиНеобходимо)**” вместо валидного содержимого, допустимого имени элемента.

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

Второй день пытаемся победить проблему, не понимаем уже куда копать. Если кто-то сталкивался с подобным - толкните куда копать...

Попробовал полностью удалить модуль для обмена на сайте, затем настроить с нуля
Тоже самое делал в 1с - результат такой же.

Обмен товарами идет стабильно и без проблем, а в заказах что-то пошло не так

Добрый день.
Была абсолютно такая же ошибка, обратился в тех поддержку cs-cart, и вот как она решилась, цитата ответа тп:
Я встретил следующую ошибку при обращении к URL https://detlit.ru/commerceml?mode=query&type=sale

ValueError

Message
XMLWriter::writeElement(): Argument #2 ($content) must be a valid element name, "Организация(ПолноеНаименование)" given

Название пользовательского поля профиля, которое выгружается в CommerceML, не должно содержать никаких символов. Поэтому наличие скобок в названии поля Организация(ПолноеНаименование) вызывает ошибку.

Для тестирования я изменил названия полей профиля с Организация(ПолноеНаименование) на Организация. Полное Наименование , после чего выполнил экспорт заказов:
https://detlit.ru/commerceml?mode=query&type=sale

Как видно, ошибки больше не возникают.

При такой структуре документа символы не допустимы для имени XML-элемента. То есть на данный момент экспорт пользовательских полей реализован таким образом, поэтому если поле отмечено для экспорта в CommerceML, в его названии не должно быть символов.

Надеюсь, это разъясняет ситуацию. Пожалуйста, проверьте, и если возникнут вопросы, сообщите.

2 лайка