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

что подразумевается под тормозит? время между появления попап а нажатием кнопки?
Поставьте бесплатны модуль “полет в корзину” и “тормоз” станет вполне логичным и даже необходимым.

Давно стоит, но это костыль. Тормозить от того не перестает, несколько товаров от того добавить последовательно в корзину не проще.

2 лайка

Последнее время вырезаем данный popup, создает впечатление подвисание выполнения функций.

2 лайка

А если без него, то товар сразу появляется в корзине без лага?

0.3-0.5 сек ajax прелоадер и всплывашка нотификации в углу, что товар добавлен.

Если кому требуется быстрый фикс, для 481 и выше (скорее всего)

/app/controllers/frontend/checkout.php

Ищем и комментируем строки (примерно 84 строка)

// $msg = Tygh::$app['view']->fetch('views/checkout/components/product_notification.tpl');
// fn_set_notification('I', __($product_cnt > 1 ? 'products_added_to_cart' : 'product_added_to_cart'), $msg, 'I');

Вставляем
fn_set_notification('N', __('notice'), __('product_added_to_cart'));

*Создайте языковую переменную для product_added_to_cart

Кстати, где-то на форуме уже всплывала тема.

12 лайков

не подскажите какую языковую переменную нужно создать? И Где?

Администрирование - Языки - Переводы.

Укажите значение product_added_to_cart
Перевод, например: Товар добавлен в корзину.

Наконец-то дошли руки, спасибо, теперь добавление просто летает ))

Добрый день.
Я открыл checkout.php и там уже есть все эти строки:

Отличие только в названии языковой переменной. Может этот фикс вставили в базу cs-cart? Или я не там смотрю? Заранее спасибо.

из вашего куска первые две строки комментируются и вместо них вставляется третья - читайте внимательно выше:

Добрый день. Спасибо, а как комментировать эти строки, какими знаками? Заранее спасибо

в показанном примере они и закомментированы - два слэша в начале строки

1 лайк

Этот код не работает долго, основная проблем в том, что при добавлении в корзину запускается функция:
fn_calculate_cart_content(&$cart, $auth, $calculate_shipping = ‘A’, $calculate_taxes = true, $options_style = ‘F’, $apply_cart_promotions = true)

вот с такими параметрами:
fn_calculate_cart_content($cart, $auth, ‘S’, true, ‘F’, true);

конкретно $calculate_shipping = F -означает что при добавлении в корзину из карточки товара не должна пересчитываться стоимость доставки. Но внутри функции нет проверок на эту переменную а идет проверка на другую переменную if (!empty($cart[‘calculate_shipping’])) в итоге вызывается функция Shippings::calculateRates($shippings); и если у вас подключены сторонние службы доставки то при добавлении в корзину товара запрашиваются тарифы на стоимости доставки для корзины от сторонних API в следствии тормозит добавление корзины

Позже отпишуть как своими силами поправить

Конкретно стоит обратить внимание на вот этот участок кода функции fn_calculate_cart_content:

    if (!empty($cart['calculate_shipping'])) {
        $rates = Shippings::calculateRates($shippings);

        foreach ($rates as $rate) {
            $g_key = $rate['keys']['group_key'];
            $sh_id = $rate['keys']['shipping_id'];

            if ($rate['price'] !== false) {
                $rate['price'] += !empty($product_groups[$g_key]['package_info']['shipping_freight']) ? $product_groups[$g_key]['package_info']['shipping_freight'] : 0;
                $product_groups[$g_key]['shippings'][$sh_id]['rate'] = empty($product_groups[$g_key]['shippings'][$sh_id]['free_shipping']) ? $rate['price'] : 0;
            } else {
                unset($product_groups[$g_key]['shippings'][$sh_id]);
            }

            if (!empty($rate['service_delivery_time'])) {
                $product_groups[$g_key]['shippings'][$sh_id]['service_delivery_time'] = $rate['service_delivery_time'];
            }
        }
    }
6 лайков

Есть готовое решение?

Полгода назад обещали отписаться как своими силами поправить. Не дождались :frowning:

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

А можете скрины показать с новым чекаутом,как edost выглядит ? карта с ПВЗ сразу открывается ?

Edost обрабатывает на своих серверах информацию, как я понял. За счёт этого уходят тормоза с сайта. Самовывоз стандартный - на него Edost никак не влияет, карта такая же. Можно настраивать какие-то способы доставки через этот сервис, другие через стандартный модуль (если карта предпочтительней). Например, СДЭК и Боксбери - выдаётся список пунктов в городе без возможности выбора на карте. Пикпоинт - через Edost открывается стандартный виджет этой службы доставки с картой точек.

Из плюсов - можно регулировать срок доставки (+- дни), наценку или наоборот скидку. И решает нашу главную проблему - тормоза. Из минусов - ежемесячный тариф в зависимости от количества способов доставки.

Вам советую для начала попробовать отключить стандартные модули с расчётом стоимости\срока доставки и посмотреть на результат.

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