Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Получать информацию о товаре из корзины


Рекомендованные сообщения

Всем привет.

 

Задача - показывать количество определенного товара по id из корзины на страницах категорий, модулей, товара.

 

На примере категорий делаю:

Перед $data['products'][] = array(

 

Добавляю:

    $products = $this->cart->getProducts();
                foreach ($products as $product) {
                    if ($product['product_id'] == $result['product_id']) {
                        $cart_count = $product['quantity'];
      }
   } 

В массив 

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

    'cart_count' = cart_count,

.....

 

В шаблоне product['cart_count'] - вывод количества конкретного товара работает криво. В корзине 2 товара. У одного количество 1, у другого 2. На странице категории у обоих товаров показывается количество 2, а у всех остальных не в корзине - количество 1. Подскажите, чего не так сделал?


               

Ссылка на комментарий
Поделиться на других сайтах


перед перебором $cart_count  нужно обявить с пустым значением, иначе там всегда будет записано последнее значение, если хоть раз условие выполнено

$cart_count = '';

и $products не нужно создавать , а сразу форичить само значение

 foreach ( $this->cart->getProducts() as $product) {

а если создавать, то тогда уже не в теле цыкла а перед ним

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

2 минуты назад, Seriusis сказал:

перед перебором $cart_count  нужно обявить с пустым значением, иначе там всегда будет записано последнее значение, если хоть раз условие выполнено

$cart_count = '';

а то у вас 

и $products не нужно создавать , а сразу форичить само значение

 foreach ( $this->cart->getProducts() as $product) {

Благодарю Вас, помогли!

 

Решение для получения текущее количество товара в из корзины на примере категорий:

 

В контроллер перед     $data['products'][] = array(

 

    $cart_count = 0;
                foreach ($this->cart->getProducts()  as $product2) {
                    if ($product2['product_id'] == $result['product_id']) {
                        $cart_count = $product2['quantity'];
                    }
            }
                

В массив

    $data['products'][] = array(
                'product_id'  => $result['product_id'],
                'thumb'       => $image,
                'name'        => $result['name'],

                'cart_count' => $cart_count,

                ............

 

В шаблоне <?php echo $product['cart_count']; ?>

 

------------------------------------------------------------------------------------------

 

 

 

Ссылка на комментарий
Поделиться на других сайтах


Для страницы товара по аналогии:

 

Контроллер:

$data['cart_count'] = 0;
                foreach ($this->cart->getProducts()  as $product2) {
                    if ($product2['product_id'] == (int)$this->request->get['product_id']) {
                        $data['cart_count'] = $product2['quantity'];
                    }
            }

Шаблон:

<?php echo $cart_count; ?>

Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.