Периодически слетают курсы валют в значение по умолчанию. Доллар 30 евро 40. Когда такое происходит уходим в убытки. Всегда когда происходит такой глюк появляется мастер настройки вэбасиста. По нему теперь и определяем что произошел глюк. Сегодня например такое произошло аж дважды за день, до этого с недели полторы назад.
Поддержка пишет что На появление этого экрана влияет наличие в таблице wa_app_settings записи 'welcome' для приложения shop в базе данных MySQL
Но у меня такой записи нет и она не появляется даже тогда когда случается очередной сбой. Может кто то сталкивался с проблемой. Как решали?
14 комментариев
Могу предположить такой эффект, если зайти в админке на экран "добро пожаловать" (т.е. ?action=welcome) и нажать кнопку "Начать работу". Если нажать "пропустить автоматическую настройку", ничего с валютами не произойдёт. Эта кнопка - единственный известный мне способ сбросить курсы валют на 30 и 40. В-общем, что бы ни случилось, не нажимайте кнопку :)
Почему так получается, что человека перенаправляет на "добро пожаловать", у меня тоже единственная версия. Повторно запускается install.php в приложении shop. Если исключить злонамеренное действие пользователя админки (на экран welcome можно попасть и по прямой ссылке), то других способов нет.
Почему повторно запускается install.php, у меня версий нет. Я не смог придумать ни одного варианта, даже предполагая ошибки файловой системы на хостинге. Интуиция подсказывает, что как-то связано с записью update_time в wa_app_settings для приложения shop: update_time обнуляется, магазин думает, что это его первый запуск и перенаправляет на welcome. Но, опять-таки, я не могу предложить реалистичную версию, почему обнуляется update_time...
Не исключено, что сервер баз данных работает нестабильно на хостинге, из-за чего иногда возникает ошибка вроде MySQL server has gone away и фреймворк "считает", что отсутствует таблица с настройками приложений, в том числе Shop-Script (а именно при этом условии запускается первоначальная настройка магазина). Насколько мне известно, во фреймворке обработка таких ситуаций будет добавлена только в следующем обновлении (которое обещают выпустить через две недели).
Да тоже подумал что может что то с сервером случается, но если не будет найдена таблица с настройками приложений, будет ли при этом перезаписаны курсы валют.
Если это бл вопрос, то будет, только если нажать на зелёную кнопку для выполнения настроек на странице первоначальной настройки, которая при этом появляется в браузере. Если пропустить настройки с помощью ссылки рядом с зелёной кнопкой, то ваши настройки все останутся без изменений.
Но совершенно точно что курсы слетают без нажатия на эту зелёную кнопку. В этом и есть засада.
Временное решение пока такое поменять курсы по умолчанию на те которые действуют в данный момент. Меняются в файле wa-apps/shop/lib/config/data/welcome/country_rus.php
Я не могу представить, каким образом курсы слетают без нажатия на кнопку.
Обработчик кнопки находится вот тут:
wa-apps/shop/lib/actions/backend/shopBackendWelcome.action.php
Предлагаю воткнуть в начале метода setup() что-то вроде такого:
waLog::log('Attempt to complete Welcome setup. Contact_id='.wa()->getUser()->getId(), 'shop_welcome.log');
return $this->redirect('?action=orders');
И следить за логом
wa-log/shop_welcome.log
После такой модификации нажатие кнопки перестанет менять курсы валют.
Ещё предлагаю установить курсы в country_rus.php такие, чтобы они немного отличались от обычных ваших. Если заметите, что курсы поменялись, значит, они поменялись без кнопки и я кругом неправ. Но это знание мне не сильно поможет, потому что я в принципе не знаю других возможностей...
Курсы на самом деле это не единстенное что меняется. Так же плагин "моя посылка" отключается. Как сказал разработчик вот в этой ветке http://old.webasyst.ru/forum/viewtopic.php?id=2457... сам плагин не причём. Сбивается округление курсов в значение по умолчанию.
А что такое произошло мы узнаём очень просто. Как только появился синий кружок с воцклицательным знаком (значёк мастера первичной настройки) значит случилось.
Кстати говоря периодически этот мастер стал появляться ещё на старом SS5 , но косяк с курсами при этом появляться начал только после перехода на 6 версию.
т.е. вместо
private function setup()
{
if ($country = waRequest::post('country')) { .........................
Должно быть:
private function setup()
{
waLog::log('Attempt to complete Welcome setup. Contact_id='.wa()->getUser()->getId(), 'shop_welcome.log');return $this->redirect('?action=orders');
if ($country = waRequest::post('country')) { ........................
Или как то иначе? Боюсь ошибиться
Другие симптомы, которые вы описываете, тоже все указывают на применение первоначальной настройки на странице "добро пожаловать".
Да, код похож на правду. Цена ошибки, кстати, не очень велика: максимум ну перестанет у вас работать страница Welcome :)
Можно ещё вот так сделать (защита от "дурака" - скрываем кнопку "начать работу"):
1. Находим файл: public_html/wa-apps/shop/templates/actions/backend/BackendWelcome.html
2. Закомменчиваем вот эту часть строки:
<input type="submit" class="button green" value="[`Start selling online`]"> [`or`]
Получаем:
{* <input type="submit" class="button green" value="[`Start selling online`]"> [`or`] *}
Только вот где поддержка и разработчики? Я эту проблему обозначил ещё 20 апреля!!! До сих пор никто пальцем не пошевелил. Мои заказчики после последнего обновления, когда файл перезаписался и курс снова улетел, потеряли много денег и мне стоило усилий, чтобы они просто не подали иск к webasyst, т.к. это Ваш косяк, который не решается, а при слете курса у продавцов идут жесткие потери. Для средних и крупных продавцов дешевле становится затаскать вас по судам, чем попадать каждый раз на такие деньги.
Подыму тему. К сожалению практически каждый день рамдомно у одного из менеджеров появляется окно welcome. И хорошо если он нажал "пропустить" а не "начать". Как вылечить эту проблему раз и навсегда?
В Инсталлере установлены все обновления? Номера версий вручную не меняли нигде, чтобы не получать уведомления об обновлениях?
Михаил, здравствуйте!
Вашей команде программистов клиенты вообще нужны? Почему проблема до сих пор не решена? В службу поддержки обращались несколько раз: "бла-бла-бла", - результатов ноль! На форуме о проблеме Вам пишут уже больше года: результатов - ноль! Вы понимаете, что при слете валют и проводке онлайн оплаты компании теряют суммы в разы большие, чем стоит ваш гребаный движок! Я думаю, что раз вам так наплевать на мнение Ваших клиентов и по хорошему Вы ничего делать не желаете, то мы начинаем подготовку коллективного иска. У меня с десяток клиентов, которые так либо иначе попали на данную проблему. С этого дня компании, с которыми я работаю, пострадавшие от ошибки Вашего скрипта, начинают фиксировать каждый случай "упущенной выгоды по вине Webasyst" и Вы получите коллективный иск по результатам накопленных прецедентов.
Я бы очень хотел вам помочь. Правда. Я изучил этот баг вдоль и поперёк, и у меня нет никаких идей, что происходит и почему. Имеет место какой-то хитрый сбой файловой системы хостинга, который ни на наших серверах не воспроизводится, ни у клиентов мы его поймать не можем.
В какой-то момент магазин на секунду теряет все свои настройки и решает, что надо показать юзеру экран "Добро пожаловать". Если менеджер просто обновит страницу, то всё вернётся как было. Но интуитивное человеческое желание - нажать зелёную кнопку "Начать работу". Кнопка сбрасывает некоторые настройки магазина, включая валюты.
Лучшее, что я сейчас могу сделать - это убрать сброс настроек валют после нажатия этой кнопки на экране "Добро пожаловать". Начиная с версии магазина 7.0.4 курс существующих валют там сбрасываться не будет.
Лучшее, что вы сейчас можете сделать - это проинструктировать менеджеров не нажимать на кнопку "Начать работу" на экране "Добро пожаловать".