Баг с полем email, ломающий обмен с 1С и, возможно, что-то еще

Как оказалось, пользователь может оформить заказ поставив в конце email квадратную скобку “]”. Ну и наверное еще какие-нибудь символы, детально не тестировал.

В результате в CS-Cart никак это сразу не обрабатывает, позволяет ввести такой имейл. И позволяет оформить заказ, хоть и выдав пользователю зачем-то сообщение об ошибке, после оформления заказа(зачем это пользователю? А вот меня бы предупредили - не потратил бы может целый час на поиск проблемы).

И главное! Это ломает стандартный обмен с 1С! Причем не только выгрузку этого заказа, а вообще! 1С не предполагает что ей отдаются не корректные данные и выдает ошибку, не создавая вообще какие-либо заказы после.



я этот вопрос уже подымал давно.
Доля здравого смысла в ответе Ильи есть

Я думаю, если пользователь может введя не корректный email сломать обмен магазина с другими системами(а email передается в 1С/CRM/сервисы рассылки и т.д.) - это всё-таки баг, причем серьезный.

5 лайков

Можно невозбранно магазины конкурентов шатать

1 лайк

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

Просто оставлю это здесь

3 лайка

Здравствуйте.

Да, такая проблема действительно есть.

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

ValueError

Message
XMLWriter::writeElement(): Argument #2 ($content) must be a valid element name, "Паспорт(ДляФиз.Лиц)СерияНомер"

Это происходит, потому что согласно стандартам XML, имя ноды должно состоять из разрешённого списка символов:
#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]

Регулярку для email вряд ли будут писать, но проблему с символами при выгрузке решить нужно. Запостил как баг.

1 лайк