Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

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


Recommended Posts

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

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

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

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

 

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

Link to comment
Share on other sites


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

Link to comment
Share on other sites

Циии

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

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

Link to comment
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 comment
Share on other sites


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

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

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

Link to comment
Share on other sites


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

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

Link to comment
Share on other sites

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

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

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

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

Link to comment
Share on other sites


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

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

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

Link to comment
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
 Share

×
×
  • 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.