Два дня войны с выгрузкой заказов, а причина проста оказалась у меня. Дело в том, что раньше работали с другой CMS. При отправке получалось, что Битрикс слал заказы с номерами которые уже есть в 1С. В интеграции с 1С указал префикс, пробежал по уже созданным заказам и просто пересохранил. 1С с радостью приняла заказы.
Вот с какой штукой столкнулся. Битрикс подставляет к html class="bx-no-touch ..." если мы заходим с не с мобильного и class="bx-touch" если с мобильного. Для чистоты эксперимента ставим интернет-магазин из "коробки" и больше ничего. Заходим на него с хрома в консоли видим
Код
<ht ml xml:lang="ru" lang="ru" class="bx-no-touch bx-core bx-no-retina bx-chrome">
С мозилы
Код
<ht ml xml:lang="ru" class="bx-no-touch bx-core bx-no-retina bx-firefox" lang="ru">
C 11 ИЕ
Код
<ht ml class="bx-no-touch bx-core bx-no-retina bx-ie bx-ie11" lang="ru" xml:lang="ru">
Прикидываемся ios
Код
<ht ml xml:lang="ru" lang="ru" class="bx-touch bx-core bx-ios bx-retina bx-chrome" g_init="2210393201705171220">
Прикидываемся Android
Код
<ht ml xml:lang="ru" lang="ru" class="bx-touch bx-core bx-android bx-retina bx-chrome" g_init="2210393201705171220">
Вроде все отлично и проблем нет. Но тут у меня в руках появляется вот такой ТАИТИ И у меня возник вопрос, как Битрикс определит это устройство. С одной стороны это обычный ноут, а с другой планшет. Проводим те же тесты, но уже с ТАИТИ и сталкиваемся вот с чем, во всех браузерах кроме ИЕ результат прежний, но в ИЕ вот что:
Код
<ht ml lang="ru" xml:lang="ru">
класс не присвоен и шаблон отображается не так как задумано разработчиками. Я не думаю, что появится клиент с таким зверем, да еще и на ИЕ, но факт есть факт. Да и кроме ТАИТИ есть еще ряд таких устройств. Так вот собственно вопрос: какой скрипт занимается этим определением? Как выйти из этой ситуации? Можно просто накидать варианты. Я давно имею привычку делать так http://mobiledetect.net/