Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Ошибка мини-корзины


Recommended Posts

Столкнулся с такой проблемкой:

После добавления товара в корзину и обновления страницы или перехода в другую категорию - количество товаров в мини корзине становится 0 

При добавлении еще одного во всплывающем окне отображаются оба товара. Закрываешь окно - есть 2 товара но при переходе на другую страницу опять 0 товаров в мини корзине
Если же зайти в оформление заказа то они будут отображаться.

Кто подскажет как победить данную проблему? Сайт - Wostok.by стоит модуль кэширования Lightining.

 

Помогите пожалуйста

Надіслати
Поділитися на інших сайтах


Кроме Lightning разве больше ничего не установлено? Нужно смотреть в контроллер корзины(в том числе в модификаторах), оттуда делать выводы. Логи тоже не помешает почитать. Может конфликт модификаторов быть

Надіслати
Поділитися на інших сайтах

Цитата

стоит модуль кэширования Lightining.

Ну так отключите и проверьте, похоже что он это кеширует

Надіслати
Поділитися на інших сайтах

46 минут назад, SGrWr_34 сказал:

Кроме Lightning разве больше ничего не установлено? Нужно смотреть в контроллер корзины(в том числе в модификаторах), оттуда делать выводы. Логи тоже не помешает почитать. Может конфликт модификаторов быть

Файл по адресу controller/common/cart.php | Посмотрите пожалуйста, я просто совсем деревянный в этом деле можете сказать что не так?

Спойлер

 

<?php
class ControllerCommonCart extends Controller {
    public function index() {
        $this->load->language('common/cart');

        // Totals
        $this->load->model('setting/extension');

        $totals = array();
        $taxes = $this->cart->getTaxes();
        $total = 0;

        // Because __call can not keep var references so we put them into an array.
        $total_data = array(
            'totals' => &$totals,
            'taxes'  => &$taxes,
            'total'  => &$total
        );
            
        // Display prices
        if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) {
            $sort_order = array();

            $results = $this->model_setting_extension->getExtensions('total');

            foreach ($results as $key => $value) {
                $sort_order[$key] = $this->config->get('total_' . $value['code'] . '_sort_order');
            }

            array_multisort($sort_order, SORT_ASC, $results);

            foreach ($results as $result) {
                if ($this->config->get('total_' . $result['code'] . '_status')) {
                    $this->load->model('extension/total/' . $result['code']);

                    // We have to put the totals in an array so that they pass by reference.
                    $this->{'model_extension_total_' . $result['code']}->getTotal($total_data);
                }
            }

            $sort_order = array();

            foreach ($totals as $key => $value) {
                $sort_order[$key] = $value['sort_order'];
            }

            array_multisort($sort_order, SORT_ASC, $totals);
        }

        $data['text_items'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total, $this->session->data['currency']));

        $this->load->model('tool/image');
        $this->load->model('tool/upload');

        $data['products'] = array();

        foreach ($this->cart->getProducts() as $product) {
            if ($product['image']) {
                $image = $this->model_tool_image->resize($product['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_cart_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_cart_height'));
            } else {
                $image = '';
            }

            $option_data = array();

            foreach ($product['option'] as $option) {
                if ($option['type'] != 'file') {
                    $value = $option['value'];
                } else {
                    $upload_info = $this->model_tool_upload->getUploadByCode($option['value']);

                    if ($upload_info) {
                        $value = $upload_info['name'];
                    } else {
                        $value = '';
                    }
                }

                $option_data[] = array(
                    'name'  => $option['name'],
                    'value' => (utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20) . '..' : $value),
                    'type'  => $option['type']
                );
            }

            // Display prices
            if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) {
                $unit_price = $this->tax->calculate($product['price'], $product['tax_class_id'], $this->config->get('config_tax'));
                
                $price = $this->currency->format($unit_price, $this->session->data['currency']);
                $total = $this->currency->format($unit_price * $product['quantity'], $this->session->data['currency']);
            } else {
                $price = false;
                $total = false;
            }

            $data['products'][] = array(
                'cart_id'   => $product['cart_id'],
                'thumb'     => $image,
                'name'      => $product['name'],
                'model'     => $product['model'],
                'option'    => $option_data,
                'recurring' => ($product['recurring'] ? $product['recurring']['name'] : ''),
                'quantity'  => $product['quantity'],
                'price'     => $price,
                'total'     => $total,
                'href'      => $this->url->link('product/product', 'product_id=' . $product['product_id'])
            );
        }

        // Gift Voucher
        $data['vouchers'] = array();

        if (!empty($this->session->data['vouchers'])) {
            foreach ($this->session->data['vouchers'] as $key => $voucher) {
                $data['vouchers'][] = array(
                    'key'         => $key,
                    'description' => $voucher['description'],
                    'amount'      => $this->currency->format($voucher['amount'], $this->session->data['currency'])
                );
            }
        }

        $data['totals'] = array();

        foreach ($totals as $total) {
            $data['totals'][] = array(
                'title' => $total['title'],
                'text'  => $this->currency->format($total['value'], $this->session->data['currency']),
            );
        }

        $data['cart'] = $this->url->link('checkout/cart');
        $data['checkout'] = $this->url->link('checkout/checkout', '', true);

        return $this->load->view('common/cart', $data);
    }

    public function info() {
        $this->response->setOutput($this->index());
    }
}

 

 

Надіслати
Поділитися на інших сайтах


42 минуты назад, AlexDW сказал:

начните с исправления ошибок js, которые видно в консоли браузера

А что именно? Я новичок в этом всём. Можете сказать конкретнее, если вам не сложно. Что нужно сделать?

Надіслати
Поділитися на інших сайтах


@Asp1r1n в вашем случае желательно в кеше модификаций смотреть. Какой нибудь модуль может изменения конфликтные вносить.

Как выше подсказали: Lightning отключать пробовали?

Надіслати
Поділитися на інших сайтах

5 минут назад, SGrWr_34 сказал:

@Asp1r1n в вашем случае желательно в кеше модификаций смотреть. Какой нибудь модуль может изменения конфликтные вносить.

Как выше подсказали: Lightning отключать пробовали?

Да действительно, отключил Lightning - корзина заработала как нужно. Но модуль то для ускорения нужен. Что делать? 
К тому же ещё одна проблема исчезла - "живой поиск" не работал на сайте. При отключении данного модуля и он заработал. WTF?

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.