Тормозит кнопка добавления В корзину, у всех


#23

Модуль Деловые линии у меня тормозит безбожно - 11-13 секунд ему нужно на обработку


#24

Я оставил только CДЭК. Деловые и пек тормозит сильно.


#25

Я так понял @myway уже за меня ответил:

Я отключил все стандартные модули расчёта стоимости\срока доставки (BoxBerry, СДЭК и т.д.) и настроил всё это через Edost. Больше не тормозит.

Думаю в текущих версиях CS-Cart это уже поправили.


#26

Действительно, в текущей версии вместо

if (!empty($cart['calculate_shipping'])) {

стоит

if ($cart['calculate_shipping']) {

Так как мы не можем перейти пока на новую версию, попробовал заменить, посмотрю, что получится.


#27

с точки зрения логики выполнения программы эти два выражения аналогичны, просто второе более простое и короткое, разницы между ними ни какой.

Решение есть, Ну и изменяя эти файлы после обновления они будут затёрты, надеюсь в будущих версиях это исправят, ну и соответственно изменяя эти файл вы берёте всю ответственность на себя.

Надо отредактировать 2 файла:

  • файл app/controllers/frontend/checkout.php примерно на 69 строчке внутри условия $mode == ‘add’

     fn_calculate_cart_content($cart, $auth, 'E', true, 'F', true);
    

поменять букву ‘E’ на ‘S’

  • файл app/functions/fn.cart.php, соответственно внутри функции fn_calculate_cart_content надо закомментировать код в 2 местах и добавить 1 условие:

вот это закомменитровать (скорее всего разработчики это в будущем удалят):

// FIXME: Backward compatibility: If the 'calculate_shipping' property is true, shipping calculation will be forced
    //if ($cart['calculate_shipping'] === true) {
    //    $calculate_shipping = 'A';
    //}

и вот это:

    // If shipping methods were changed, shipping recalculation is forced
    // Registry::registerCache(['checkout', $shipping_cache_key], $shipping_cache_tables, Registry::cacheLevel('user'));
    // if ($calculate_shipping === 'S' && !Registry::isExist('calculated_shipping_rates')) {
    //     $calculate_shipping = 'A';
    // }

а так же изменить условие примерно на 3715 строчке с такого:

if ($cart['calculate_shipping']) {

на такое:

if ($cart['calculate_shipping'] && $calculate_shipping != 'S') {

Тогда при добавлении в корзину товара расчёта доставки не будет, соответственно и тормоза тоже должный пропасть. И когда вы заходите в корзину или переходите на страницу оформления заказа, уже только там будет происходить расчёт стоимости доставки. Кайфуйте.


#28

Ещё в файле app/controllers/frontend/checkout.php примерно на 569 строчке внутри условия $mode == ‘checkout’ поменять строчку:

$shipping_calculation_type = fn_checkout_get_shippping_calculation_type($cart, $is_location_changed);

на

// $shipping_calculation_type = fn_checkout_get_shippping_calculation_type($cart, $is_location_changed);
$shipping_calculation_type = 'A';

на всякий случай. Так как функция fn_checkout_get_shippping_calculation_type возвращает либо A либо S. А нам надо обязательно чтобы при заходе в корзину всегда 1 раз рассчитались все цены на доставку.


#29

Проблема просчета доставок при каждом добавлении товара есть в последней версии цс карт, кто то знает?
Если кто то из цс карта читает, прокомментируйте хотя бы, зачем оно вообще там считает доставки, если они нигде не видны и не выводятся? Жесть какая то, достаточно это всё делать по какой то кнопке или только в чекауте.


#30

@ikoshkin, @imac обратите, пожалуйста, внимание. Ну это только в CS-Cart добавление товара в корзину визуально происходит так долго, что отпадает желание, что либо дальше покупать в магазине, если такой же товар есть в другом магазине по той же цене. Во всех CMS добавление товара в корзину происходит моментально. Почему в CS-Cart так реализовано все? Могли бы вы улучшить экспириенс взаимодействия пользователя с сайтом? Например, все необходимые функции после добавления товара в корзину выполнять в фоне, незаметно для пользователя, а уведомление о добавлении товара в корзину, чтобы показывалось моментально.


#31

Эта проблема уже достала… Уже 4 года на cs-cart и все никак не исправят!!!


#32

Добавлю немного позитива - скорее всего зависит от конфигурации, настроек сервера и CS-Cart У клиентов такого не замечал. В принципе даже на старых версиях с кучей костылей вполне нормальная скорость добавления в корзину.


#33

У меня тоже это было одно время, тормозило до нескольких секунд. С тех пор убрал всплывающее окно подтверждения, перешёл на более мощный тариф на хостинге, обновлял версии Карта. Теперь всё нормально, но в чём причина, не известно.


#34

Такой проблемы не замечаю. Всплывающее окошко притормаживает на доли секунды, не заметно.


#35

Ну а что вы хотите. Это раньше было: сайт страницу отдал, браузер страницу показал. Сейчас страница это не просто текст, это программный код, способный к интерактивности без перезагрузки (получения новой страницы). Движок сайта - это компилятор программного кода, который по определенным внешним условиям собирает этот код, а браузер - интерпретатор, который обрабатывает и взаимодействует с этим кодом. Так что многое зависит еще и от возможностей компьютера пользователя, который работает с вашим магазином. Другой вопрос: отсеивать пользователей со старыми маломощными компьютерами или ноутбуками (мобильные не берем, там можно турбо страницы), или нет - решать уже самостоятельно


#36

Ого. Все гораздо проще. Дебажте код. Если тормозит значит есть узкое место. Добавление в корзину, писали в другой ветке. Если есть динамические доставки, на них виснет. Есть баг, и ЦС карт на каждое добавление виснет на ответе при доставок. Для теста просто выключите все такие доставки и заметьте скорость ответа xhr запроса в консоли.