Писать на форуме DIAFAN.CMS могут только зарегистрированные пользователи. Войдите или зарегистрируйтесь.

Форум Общие вопросы Ошибки DIAFAN.CMS Проблемы с Instagram


Любимов Павел (DIAFAN.CMS) 31805 февраля, вторник

Решил создать тему по мотивам этой ошибки в вишлисте.

САМА ОШИБКА:

Из обращения в ТП (32552):

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

---------------------------------------

От себя дополню, что (спасибо Роману, поправил) это компонент WebView, используемый приложениями на Android для отображения web-страниц. Кроме Instagram могу также отметить Telegram и Skype (тоже стали использовать этот компонент).

Однако, только Instagram использует этот компонент некорректно.

К сожалению, главный аргумент тут следующий: "У других ведь работает?!". Так что попробовать докопаться до причин и попробовать их исправить надо.

Теперь хотя бы есть определённость - где именно и как получают пустые корзины.

Сообщить об ошибке в Instagram.

Любимов Павел (DIAFAN.CMS) 31805 февраля, вторник, редакция 05 февраля, вторник

В вишлисте к сообщению прикреплены скриншоты с анализом компонента WebView на Android OS.
Архив со скриншотами.

Сами скриншоты (качество хуже).





В результате тестирования удалось выяснить, что проблема только на платформе Android и только в компоненте приложения Instagram.
Гипотезы, связанные с ситуацией, когда режим инкогнито (защита от отслеживания) блокировал ресурсы Яндекса (и не блокировал Google) не подтвердились. При использовании любого CDN (настройка в параметрах сайта) ошибка воспроизводится.

При этом работа JavaScript и AJAX не блокируется полностью. Форма быстрого заказа в каталоге корректно обрабатывает запросы и возвращает ответы, если поля были некорректно заполнены. Более того, быстрый заказ работает. И редирект на страницу завершения происходит и заказ в админку добавляется.

Также по-разному себя ведут и другие скрипты, обслуживающие "Отложенные" и прочие функции.

"Отложенные" работают в полном объёме.
Товары откладываются, сохраняются в сессии и выводятся на странице. Счётчик по ajax также обновляется. На странице "Отложенных" товары удаляются и добавляются в корзину.

Однако, корзина их перезаписывает.

"Сравнение" работает аналогично корзине. Товары добавляются к сравнению (и обновляют счётчик), но в рамках страницы. Если перейти на другую, либо на саму страницу сравнения, то там будет пусто.

И хоть сам компонент инстаграма не даёт абсолютно никакой аналитической информации, данные, изложенные выше, позволяют анализировать наши ajax-запросы хотя бы с точки зрения проходят/не проходят. Поэтому есть вероятность того, что проблему мы всё же решим до того, как разработчики с той стороны починят свой WebView.

Виталий (DIAFAN.CMS) 63405 февраля, вторник, редакция 05 февраля, вторник

Для начала надо понять закономерность, что именно не работает.
Что определил я:
1. не работает выдача яндекса в инстаграмме. Т.е. перейти по ссылке из серпа невозможно, реакции 0
2. На нашей цмс не пашет корзина и сравнение (но аякс в корзину и сравнение на странице работает, проблема при переходе, корзина пустая), но работает "купить в один клик" и пашет "Добавить в избранное".

Осталось только найти разницу в скриптах и понять, что именно блочит инста. Судя по Яндексу, что-то активное из JS

Сергей (universe) 7305 февраля, вторник, редакция 05 февраля, вторник

Предлагаю обратиться в РК и заблокировать инстаграммы и прочие приблуды ненужные рабоче-крестьянскому народу. Нет инсты - нет проблем с корзиной у диафана. И вообще нет проблем.. Люди наконец-таки делом займутся))

Любимов Павел (DIAFAN.CMS) 31805 февраля, вторник, редакция 05 февраля, вторник

Предлагаю обратиться в РК и заблокировать
Закроется банк, сдохнет кассовое оборудование во всех магазинах шаговой доступности. Отключится горячая вода, сломается бачок унитаза, а инстаграм продолжит работать.

Спасибо, нет!

Любимов Павел (DIAFAN.CMS) 31805 февраля, вторник

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

На морде разместил ссылку на Яндекс и Google. Оба работают.

Морду diafan.ru проверил, тоже всё вроде фурычит. В облаке сайт создаётся. А вот демо-версия - нет. Доходишь до кнопки запуска и всё.

Андрей (R4W) 6906 февраля, среда

У меня ПЦ гемор с этой херней. Я так не грустил уже очень и очень давно, по причине того что у клиента бешаный трафон с инсты.

Скоро тоже разверну площадку текстовую. От себя заметил следующее:

- не авторизуется
- не сохраняет корзину между переходами страниц.

как думаете, может он куки полностью сбрасывает каждый переход?

Привет (romaromk) 4706 февраля, среда

Как один из вариантов, про сброс куки.

Андрей (R4W) 6906 февраля, среда

Опытные разработчики - подключайтесь к исследованию. Сейчас с этой долбаной инстой народ работает мама не горюй и и трафон с нее льют бешеный.
Эта проблема не обойдет Вас стороной - будьте уверены. Такое дерьмо в Ваш адрес и адрес CMS полетит, мало не покажется.

Андрей (R4W) 6911 февраля, понедельник

Выяснил что куки в порядке и что с ними ничего не происходит.

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

Описываю сценарий:
1. заходим на сайт - в SESSIONS пусто
2. добавили товар - в SESSIONS появилась запись
3. перешли со страницы на страницу - данная и только данная запись в SESSONS очистилась

https://monosnap.com/file/sJvGeHsbPDiMYf0qSjlb0bGdrPjBsU

Андрей (R4W) 6911 февраля, понедельник

ПРОБЛЕМА РЕШЕНА!!!! Оказалось виной всему длина юзерагента инсты куда она пишет помимо всего чуть ли не цвет нижнего белья обладателя смартфона

В БД лимит на поле useragent стандартный 255 симв.

А useragent инсты более 255 симв в длину, итого мы не могли выполнить SELECT where useragent = потому что юзерагент при инсерте в БД обрезался, а SELECT делался уже с полным юзерагентом.


Заплатка "по быстрому":

ALTER TABLE `diafan_sessions`
MODIFY COLUMN `user_agent` varchar(999)


Напьюсь сегодня на радостях

Виталий (DIAFAN.CMS) 63411 февраля, понедельник

Всё верно! Или резать в select-e ;) Внесли уже в пакет для ближайшего обновлкния.

А на конференции Вам презенты за участие в решении! ;)

Андрей (R4W) 6911 февраля, понедельник

Под страхом миграции на bitrix еще и не то сделаешь

А на конференции Вам презенты за участие в решении! ;)


А я еще колебался ехать или нет )
Спасибо сказали: Сергей (universe)

Виталий (DIAFAN.CMS) 63411 февраля, понедельник, редакция 11 февраля, понедельник

Ууу! Мне кажется надо озвучить, сколько и какие сюрпризы ждут партнеров на конференции! В теме отпишем!
А то ишь, сомневаются они!)

Александра (Alexa0105) 16712 февраля, вторник

Виталий, интрига прямо.
Танцы тоже будут?

Дмитрий Афанасьев (DIAFAN.CMS) 5112 февраля, вторник

Пританцовывать, надеюсь, будут все на протяжении всей конференции )
На дискотеки, конечно, не будет

Привет (romaromk) 4711 февраля, понедельник

Лицензию, этому господину :)

Любимов Павел (DIAFAN.CMS) 318Сегодня, 01:34

Дали две стандартных.

Валерий Викторович (Sherrlok) 14612 февраля, вторник

Спасибо!
правда, если запустить Восстановление БД, опять возвращает 255. А так, вроде все отлично

Павел (kpv77725) 812 февраля, вторник

Подправьте
includes\demo.php
Код
DB::query("CREATE TABLE {sessions} (
`user_id` int(11) unsigned NOT NULL DEFAULT '0',
`session_id` varchar(64) NOT NULL DEFAULT '',
`hostname` varchar(128) NOT NULL DEFAULT '',
`user_agent` varchar(255) NOT NULL DEFAULT '',
`timestamp` int(10) unsigned NOT NULL,
`session` text NOT NULL,
PRIMARY KEY (`session_id`),
KEY `user_id` (`user_id`)
) CHARSET=utf8;");