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

Наличие в страницах категорий


anque
 Поделиться

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

нужно добавить статус наличия каждому товару на страницах категорий.

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

<span><?php echo $text_stock; ?></span> <?php echo $stock; ?>

вставил это куда следует, но получил такое:

Цитата

Notice: Undefined variable: text_stock in 

 

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


надо добавить в контроллер 

$data['text_stock'] = $this->language->get('text_stock');

 

а у вас версия 1.5.* ? тогда так

$this->data['text_stock'] = $this->language->get('text_stock');

в языковой файл добавить 

$_['text_stock']        = 'Наличие:';

 

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

добавил это в контроллер (только с $this - $this->data['text_stock'] = $this->language->get('text_stock');), но проблема не решилась

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


теперь вопрос к 

Цитата

Undefined variable: stock in 

проблема в 

<?php echo $stock; ?>

 

upd: сделал по аналогии - добавил в контроллер аналогичную запись, однако теперь выводит строку "stock"

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


Потому что нет откуда грузить.

 

Для версии 2.х и выше:

 

// Text message stock status
$this->load->language('product/product');
$data['text_stock'] = $this->language->get('text_stock');

 

Дальше найти:

$results = $this->model_catalog_product->getProducts($filter_data);
            foreach ($results as $result) {

И вставить ниже:

 

if ($result['quantity'] <= 0) {
                $stock = $result['stock_status'];
            } elseif ($this->config->get('config_stock_display')) {
                $stock = $result['quantity'];
            } else {
                $stock = '';
            }

Ище ниже найти: 

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

после 'href' ..... вконце ставим запятую ,

 

и ниже вставляем:

 

'stock'		  => $stock

Чтоб было подобное: 

$data['products'][] = array(
					'product_id'  => $result['product_id'],
                    'label'  	  => $result['label'],
					'thumb'       => $image,
					'name'        => $result['name'],
					'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..',
					'price'       => $price,
					'special'     => $special,
					'tax'         => $tax,
					'rating'      => $result['rating'],
					'href'        => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url),
					'stock'		  => $stock
				);

 

Теперь на странице товара: 

<?php echo $product['stock']; ?> - Выведет количество или состояние на складе если нет.

<?php echo $text_stock; ?> - Выведет текст "Наличие: "

Или же с конкатенацией <?php echo $text_stock . $product['stock']; ?>

Изменено пользователем Eldaeron
Пример products array
Ссылка на комментарий
Поделиться на других сайтах

Вместо $data используйте $this->data

Остальное без изменений.

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

20 часов назад, Tom сказал:

 

сделал по этому примеру, но в итоге на всех товарах стоит "нет на складе", хотя внутри ( в карточке товара)  написано "есть в наличии"

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


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

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

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

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

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

Войти

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

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

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

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

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

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