Автор Тема: Проблема с обновлением корзины  (Прочитано 521 раз)

29 Май 2017, 08:31:35
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Когда добавляю в корзину товар , при переходе в саму корзину (на страницу /quick-order), он не отображается в самой корзине, появляется только если обновить страницу (F5). Даже если там товары есть добавляешь еще при переходе они не отображаются , пока не нажмешь F5 ....  Как решить сей баг, или куда капать? подскажите люди добрый
29 Май 2017, 09:38:04
Ответ #1
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Версия prestashop какая? Тема стандартная? Шаблоны корзины меняли?
29 Май 2017, 15:10:54
Ответ #2
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Версия prestashop какая? Тема стандартная? Шаблоны корзины меняли?

presta 1.6.1.4, тема стандарт, шаблон корзины немного видоизменил ... убрал некоторые поля
29 Май 2017, 15:33:05
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 1614
  • Репутация: +32/-1
  • Сообщество PrestaShop
    • Просмотр профиля
шаблон корзины немного видоизменил ... убрал некоторые поля
Вот в этом причина. Тестировать нужно изменения, искать ошибку. Из-за ошибки в коде прерывается выполнение скрипта и корщина не обновляется по ajax. Поэтому приходится перегружать страницу.
29 Май 2017, 15:51:09
Ответ #4
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
шаблон корзины немного видоизменил ... убрал некоторые поля
Вот в этом причина. Тестировать нужно изменения, искать ошибку. Из-за ошибки в коде прерывается выполнение скрипта и корщина не обновляется по ajax. Поэтому приходится перегружать страницу.

Хорошо, допустим, а есть ли софт какой которым можно поэтапно проследить результаты выполнения после нажатия кнопки (т.е. отследить какой скрипт вызывается и где он обрывает выполнение)?
29 Май 2017, 16:25:38
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 1614
  • Репутация: +32/-1
  • Сообщество PrestaShop
    • Просмотр профиля
В браузерах есть консоль веб мастера. В ней можно проследить изменения переменных  javascript.
В prestashop тоже встроены функции отладки.
http://doc.prestashop.com/display/PS16/PrestaShop%27s+developer+tools
29 Май 2017, 17:45:25
Ответ #6
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Другой вопрос, какой скрипт отвечает за обновление quick-order .... \default-bootstrap\modules\blockcart\ajax-cart.js или \default-bootstrap\js\order-carrier.js и какая конкретно функция, просто посмотреть где обрывается выполнение кода
29 Май 2017, 18:31:29
Ответ #7
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
При одностраничном заказе много скриптов на обной странице. Каждый за свой блок отвечает. Все они видны в инструментах вебмастера браузера. Чтобы проследить где начинается, где заканчивается нужно проставить breakpoint в отладчике.
31 Май 2017, 03:49:40
Ответ #8
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Хех, вообщем последовал всем советам. Восстановил шаблоны, не помогло, проследил все события после нажатия кнопки. Выдало 1у ошибку (не критичная) скрипт не прерывает, все выполняется. Поломал голову, и нашел решение... вернее понял почему , забыл из htaccess удалить кэшиирование на стороне клиента.

Собственно сам код (нашел на просторах интернета) . И сразу вопрос, это код помог поднять скорость загрузки страницы. Но не позволяет обновляться корзине, я не спец в htaccess, мб кто поможет добавить что-то в этот код, чтобы quick-order не кэшиировался?

# кеширование в браузере на стороне пользователя
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access 7 days"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
ExpiresByType text/html "access plus 7 day"
ExpiresByType text/x-javascript "access 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/x-icon "access 1 year"
ExpiresByType application/x-shockwave-flash "access 1 year"
</IfModule>
# Cache-Control
<ifModule mod_headers.c>
# 30 дней
<filesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>

# 30 дней
<filesMatch "\.(css|js)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>

# 2 дня
<filesMatch "\.(xml|txt)$">
Header set Cache-Control "max-age=172800, public, must-revalidate"
</filesMatch>

# 1 день
<filesMatch "\.(html|htm|php)$">
Header set Cache-Control "max-age=172800, private, must-revalidate"
</filesMatch>

</ifModule>
31 Май 2017, 09:48:50
Ответ #9
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Можно  передать параметр "11111" с файлом, в этом параметре передавать время изменения файла скрипта в unixtime формате
<script src="cart.js?11111"></script>
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.