Ошибка при оформлении заказа ocStore 3.0.2.0

Тема в разделе "Ошибки и их решения", создана пользователем marph51by, 11 фев 2021.

  1. marph51by

    marph51by Новичок

    Сообщения:
    11
    Симпатии:
    2
    Здравствуйте! Версия ocStore 3.0.2.0. Периодически возникает ошибка при оформлении заказа.

    Undefined index: guest in /var/www/sporteks/data/www/sporteks.by/store/catalog/controller/checkout/guest_shipping.php on line 70

    Чем она вызвана и как можно исправить? Модуль оформления заказа стандартный. Скрины во вложении undefined index line 70.jpg Без названия.png
     
  2. Ravilr

    Ravilr Специалист

    Сообщения:
    3.863
    Симпатии:
    1.059
    А у вас есть в форме настраиваемые поля? Если нет, то можно просто закоментировать строку.
     
  3. marph51by

    marph51by Новичок

    Сообщения:
    11
    Симпатии:
    2
    Нет, так, к сожалению, не получится. На основании введенной локации следующим шагом рассчитывается стоимость доставки.
     
  4. Ravilr

    Ravilr Специалист

    Сообщения:
    3.863
    Симпатии:
    1.059
    Так вы попробуйте. Тут главное пока сделать, а потом уже понять, почему нет нужного индекса в сессии. От того, что запись неправильна или действительно пропадает.
     
  5. marph51by

    marph51by Новичок

    Сообщения:
    11
    Симпатии:
    2
    Попробовать не проблема... Internal server error на этапе оформления заказа с закоментированной строчкой
     
  6. Ravilr

    Ravilr Специалист

    Сообщения:
    3.863
    Симпатии:
    1.059
    перебор массива $custom_fields тоже закомментируйте..
     
  7. Ravilr

    Ravilr Специалист

    Сообщения:
    3.863
    Симпатии:
    1.059
    перебор массива $custom_fields тоже закомментируйте..
     
  8. marph51by

    marph51by Новичок

    Сообщения:
    11
    Симпатии:
    2
    ok. Попробую. Но меня смущает, что эта ошибка возникает только когда в поле город выбираешь москву или питер. Соответственно прописывается данная ошибка, не загружается карта с выбором Пунктов выдачи заказов, даже если выбрать самовывоз - заказ все равно валится и админка валится - снова просит авторизацию.
     
  9. Ravilr

    Ravilr Специалист

    Сообщения:
    3.863
    Симпатии:
    1.059
    Выбираете где, в поле Регион?

    А это откуда? Возможно как раз модуль и обнулялет сессию.
     
  10. marph51by

    marph51by Новичок

    Сообщения:
    11
    Симпатии:
    2
    Все построено следующим образом. На доставку в систему интегрировано два модуля: DPD и CDEK. При заказе покупатель вводит город, выпадает список - выбирается нужный, страна, как правило меняется автоматически в соответствии с выбранным городом. Регион, либо автоматом, либо вручную. На следующем шаге система дает на выбор способ доставки уже с рассчитанными суммами, либо самовывоз. Так вот, при выборе доставки до терминала у DPD есть кнопка, при нажатии на которую должна появиться карта выбранного нас пункта с отмеченными на карте пунктами самовывоза и возможностью их выбора. Приблизительно такой же сценарий и у CDEK. Посмотреть как это работает можно тут, оформив какой-нибудь заказ http://sporteks.by/store. Далее, если все хорошо, следующим шагом данные подытоживаются и в конце концов перевод на страницу оплаты.
    Так вот при выборе Москвы либо Санкт-Петербурга и переходе на способы доставки суммы рассчитываются верно, но при нажатии на кнопку Выбор ПВЗ e DPD... висим... и ничего не происходит, либо при нажатии на "выбрать пункт выдачи" у CDEK получаем окошко "Нет списка пвз". Теперь, если нажать на предыдущее окошко "Шаг 3 Адрес доставки" то видим ошибку, собственно этот скрин я и прикрепил. Ну и при переходе в админ панель - запрос авторизации, то есть все обнулилось. Поддержка модуля доставки сообщает что модуль здесь ни при чем "При расчете в Москву и Санкт-Петербург модуль не получает вызова на расчет от ядра OpenCart, т.е до модуля даже не доходит дело".
    Странно то, что никаких изменений никуда не вносилось, никакие доп. плагины не устанавливались. Все работало и в один момент частично перестало...
     
  11. Ravilr

    Ravilr Специалист

    Сообщения:
    3.863
    Симпатии:
    1.059
    Да у вас вообще какая то общая проблема с сессиями и не только. У вас все в порядке с правами на директории? Место на хостинге есть? Виртуальный хостинг у вас или какой?
     
  12. marph51by

    marph51by Новичок

    Сообщения:
    11
    Симпатии:
    2
    cloudpark.by
    Права не изменялись, но могу еще раз все перепроверить.
    Места достаточно (скрин)
     

    Вложения:

    • 003.png
      003.png
      Размер файла:
      71,7 КБ
      Просмотров:
      3
  13. Ravilr

    Ravilr Специалист

    Сообщения:
    3.863
    Симпатии:
    1.059
    Да, все проверьте. Так как при попытки оформить заказ, вышла ошибка о проблеме удаления файла в кеше. Напишите хостеру, может они что то сделали... бывает такое.
     
  14. marph51by

    marph51by Новичок

    Сообщения:
    11
    Симпатии:
    2
    config.php и admin/config.php -644
    system/storage/cache/ -755
    system/storage/logs/ -755
    system/storage/download/ -755
    system/storage/upload/ -755
    system/storage/modification/ -755
    image/ -755
    image/cache/ -755
    image/catalog/ -755
     
  15. Ravilr

    Ravilr Специалист

    Сообщения:
    3.863
    Симпатии:
    1.059
    Права нормальные. Значит хостер. Если сами ничего не трогали и нет вареза, то тресите хостера, пусть разбираются что натворили.
     
  16. marph51by

    marph51by Новичок

    Сообщения:
    11
    Симпатии:
    2
    попробую развернуть локально.
     
  17. marph51by

    marph51by Новичок

    Сообщения:
    11
    Симпатии:
    2
    РЕШЕНО. Проблема была в модуле CDEK. а из-за него и модуль DPD работал некорректно. Решается следующим образом:

    Надо отредактировать файлы в версии модуля для OpenCart 3.xsystem/config/catalog.php, system/config/default.phpизменив в нем строку$_['session_engine'] = 'db';на$_['session_engine'] = 'file';
    Тем самым, включив в качестве сессионного движка файловое хранилище

    Спасибо, что пытались помочь!
     
    karpov нравится это.
  18. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    хм... интересно, а зачем хранилище менять?

    Скорей всего надо было изменить тип поля data
     
  19. marph51by

    marph51by Новичок

    Сообщения:
    11
    Симпатии:
    2
    Есть и другое, альтернативное решение:
    необходимо зайти в менеджер базы данных сайта, на которой располагается Opencart 3, найти таблицу DB_PREFIX_session (значение DB_PREFIX можно посмотреть в корне сайта в файле config.php) И изменить тип поля data со значения TEXT на LONGTEXT
     
    Chukcha нравится это.
  20. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    именно это я и сказал