Подскажите в чем может быть ошибка. Уже больше года очень редко, но приходят совершенно пустые заказы. Есть обычная html форма. - есть кнопка Отправить заказ. По нажатию кнопки отправляется запрос (ajax). Введенные пользователем данные сохраняются в обычный файл. 99% все работает. Но примерно раз в месяц, приходят совершенно пустой заказ. Почему может так происходить. Не пойму. Может ли "бот" нажимать на кнопку ( хотя кнопка не доступна, пока данные не введены)
Пустые заказы бывают из-за сбоев в БД/скрипте. Дело в том, что сначала создается заказ, он как раз пустой, а потом к нему привязывается корзина. Так вот, если после создания заказа и до привязки произошел сбой (ошибка кода, или, что почти наверняка, сбой в БД), то заказ и останется пустым.
У меня корзина хранится в сессии, а так же данные введеные сохраняются в сессию (при вводе в текстовое поле - сразу же записывается) после нажатия кнопки отправить заказа, ajax ом вызывается php скрипт который сохраняет данные, он берет данные из сессии и сохраняет в файл. думаю сессия теряется в каких то случаях.. но в 99% все работает.
Евгений, отвечу Вам. Когда я создавал этот сайт, мне надо было сделать как можно быстрее. Небыло времени тогда разбираться с 1С битриксом. (на то время я только купил битрикс и всех возможностей я не знал) 1С битрикс использую только для импорта/экспорта, а так же для переноса всего сайта на локальный компьютер и для получения данных о товаре (API функциями битрикса). Вот только такой таблицы как на моем сайте - средствами битрикса не создать. т.к. все таблицы (в разных группах и подгруппах) они разные. Не хотел использовать API функции для добавления в товара в корзину. да нам это и не надо.. Сделал как умел. При добавлении в корзину сохраняю в сессию массив данных. Далее считываю из сессии на всех страницах где не обходимо.. но вот в каких то случаях, я так думаю.. товар и введенные пользователем на форме данные из сессии теряются. пробовал увеличить время сессии. еще раз повторяю, все работает на 99% хорошо. но вот иногда приходят пустые данные.
Аналогичная проблема возникла. Используется sale.order.ajax. Экспериментально установили, что проблема возникает при заказе от анонимного пользователя. Проблему пока не решили.
Дмитрий Селезнёв пишет: Аналогичная проблема возникла. Используется sale.order.ajax. Экспериментально установили, что проблема возникает при заказе от анонимного пользователя. Проблему пока не решили.
Аналогичная проблема, только закономерностей не понял еще.
Сергей Ващенко пишет: Кто нибудь писал по этой проблеме в техподдержку Битрикса? Наверное стоит написать, так как проблема актуальна у многих.
Писали. По конкретно нашему случаю, когда пустые заказы приходили от анонимных пользователей, в ТП посоветовали отключить опцию "Кодировать идентификатор пользователя магазина" в настройках модуля Интернет-магазин. Нам помогло.
Дмитрий Селезнёв пишет: По конкретно нашему случаю, когда пустые заказы приходили от анонимных пользователей, в ТП посоветовали отключить опцию "Кодировать идентификатор пользователя магазина" в настройках модуля Интернет-магазин. Нам помогло.
Было у меня такое. Я по-моему даже тоже вопрос на форуме задавал. Но я там сам был виноват я импортнул заказы и корзины а потом там несовпадало что-то. Короче на уровне mysql у заказа небыло корзины. Заказ в b_sale_order был а в поле BASKET было null и вот там что-то где-то было не так, от сюда я там тестировал прозванивал и решил, суть что то частный случай скорее, нужно исследовать
А йоу вспомнил. Короче у меня не хватало сессии, типа корзина, идентификатор корзины храниться в сессионной переменной и вот когда юзер ходит сессия у него заканчивается а потом оформляет заказ то вот такое происходило, я повысил время сессии и такого более нет. Но я такой был возмущённый как это так почему это не в базе как-то - это всё же важная вещь заказ.
Но вот есть такая зависимость размера сессии и пустых заказов.
Дмитрий Селезнёв пишет: Писали. По конкретно нашему случаю, когда пустые заказы приходили от анонимных пользователей, в ТП посоветовали отключить опцию "Кодировать идентификатор пользователя магазина" в настройках модуля Интернет-магазин. Нам помогло.
спасибо за подсказку
у меня так совпало, что обновил Битрикс + настроил второй сайт на этой же лицензии - после этого стали приходить пустые заказы с первого сайта-магазина. Одна из причин была: сбились настройки компонента после добавления второго сайта, поправил их на странице заказа 1 сайта, все заработало как надо (так мне казалось). А только что пришел заказ на ноль рублей - без товаров и самовывоз. Теперь отключил опцию "Кодировать идентификатор пользователя магазина", надеюсь поможет.
уже 2 раза такое встречал, действительно, отключение этой опции помогает избавиться от пустых заказов. Заметил, что происходит это в связки nginx + fastcgi, и когда у fastcgi не хватает памяти чтоб запуститься то как раз такое и происходит.
может кому поможет, когда включена опция кодировать идентификатор сессии и приходит пустой заказ то в массиве _SEESION[SALE_USER_ID] лежит integer(437062), хотя должно быть значение string("cd62ba73901dbfab27ed8")
Такая же ситуация. Но примерно 1 - 3 заказа из сотни приходят без товаров... Компонент стандартный (sale.order.ajax). Галочка "Кодировать идентификатор пользователя магазина:" снята. Ошибок по превышению времени или памяти нету ( что намекало бы, например, на огромное количество товаров в заказе и отсутствие возможности обработать такой большой заказа). Куда копать пока представить сложно...
Возникает такая же беда "человек оформляет заказ, но потом от него приходит еще один или несколько пустых заказов" - компонент стандартный (sale.order.ajax). Галочка "Кодировать идентификатор пользователя магазина:" снята. Может кто нашел причину этого??? Пожалуйста, подскажите. Заранее очень благодарна!
Не знаю тоже самое или нет, но заказ не совсем пустой, просто одна корзина на несколько заказов привязывается и отображается только в одном заказе. Насколько я понял это происходит если на сайте/сервере тормоза идут и клиент двойным кликом создает заказ. Т.е. первый еще не завелся окончательно(корзина еще не привязалась), а приходит повторный запрос и в итоге оба запроса выполняются. Я только одно решение нашел оптимизировать работу сайта/сервера и все-равно иногда проскакивают такие заказы.