Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Recommended Posts

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

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

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

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

 

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

Link to post
Share on other sites

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

Link to post
Share on other sites

Цитата

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

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

Link to post
Share on other sites

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

Link to post
Share on other sites

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());
    }
}

 

 

Link to post
Share on other sites

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

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

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

Link to post
Share on other sites

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

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

Link to post
Share on other sites

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

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

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

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

Link to post
Share on other sites

так ну и догадайтесь что делать надо.

Link to post
Share on other sites

30 минут назад, nikifalex сказал:

так ну и догадайтесь что делать надо.

Ну так отключил я его и что? А сайт не будет долго грузиться без него?

Link to post
Share on other sites

Разобрался, всем спасибо кто откликнулся и помог <3

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.