Перейти к содержанию
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

Поделиться сообщением


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

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

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

 

Поделиться сообщением


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

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

Цитата

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