Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


anque

Recommended Posts

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

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

<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 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.