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

Вывести наличие товара в категориях, модулях и прочих...


Recommended Posts

Подскажите, пожалуйста, как можно вывести строку с наличием товара в категории и модули, которая отображается в карточке товара?

пример:

вот так отображается в карточке товара:

 

iH9jld.png

 

надо что бы это было и тут:

 

LQhvvt.jpg

 

сайт tutdarom.ru

Змінено користувачем Vitaly2
Надіслати
Поділитися на інших сайтах


Здесь любой доброжелатель,который захочет помочь,запросто обяжет себя  "за спасибо" ,выполнить ещё и адаптацию под шаблон/фильтр/модули шаблона.Видимо в этом и причина молчания.

  • +1 1
Надіслати
Поділитися на інших сайтах

да мне не нужна адаптация.. я вижу что есть кусок кода в product.tpl который отвечает за вывод количества товара в карточке товара

<div class="stock">
        <?php if ($show_stock) { ?><span><?php echo $text_stock; ?></span> <?php echo $stock; ?><?php } ?>

</div>

 

если я его воткну в category.tpl в нужное место, то там вместо вывода остатков он выдает ошибку, которая ссылается на этот код...

как это исправить не могу понять..

Надіслати
Поділитися на інших сайтах


Это начало этой истории.Если есть желание то нужно ещё править контроллеры .Для категории например category.php

 

Дальше уже сам.

  • +1 1
Надіслати
Поділитися на інших сайтах

Спасибо, добрый Том! ))

Пробовал так же сделать и с куском кода с product.php воткнуть в category.php... но что-то видимо не так сделал... ошибка как была так и осталась...

Надіслати
Поділитися на інших сайтах


Спасибо, добрый Том! ))

Пробовал так же сделать и с куском кода с product.php воткнуть в category.php... но что-то видимо не так сделал... ошибка как была так и осталась...

 

В контроллер category.php нужно добавить не точно такой код, как в product.php

В category.php перед $data['products'][] = array( вставить

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

А после 'price'       => $price, добавить

'stock'	=> $data['stock'],

В файле catalog/view/theme/default/template/product/category.tpl в нужном месте вставить

<?php echo $product['stock']; ?>
  • +1 3
Надіслати
Поділитися на інших сайтах

 

В контроллер category.php нужно добавить не точно такой код, как в product.php

В category.php перед $data['products'][] = array( вставить

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

А после 'price'       => $price, добавить

'stock'	=> $data['stock'],

В файле catalog/view/theme/default/template/product/category.tpl в нужном месте вставить

<?php echo $product['stock']; ?>

 

 

уже пробовал так вчера...

говорит неопределенная переменная...

 

Notice: Undefined variable: product_info in /home/vidge/domains/tutdarom.ru/public_html/system/storage/modification/catalog/controller/product/category.php on line 180Notice: Undefined variable: product_info in /home/vidge/domains/tutdarom.ru/public_html/system/storage/modification/catalog/controller/product/category.php on line 181

 

180-    $data['stock'] = $result['quantity'];

181-    } else {

Змінено користувачем Vitaly2
Надіслати
Поділитися на інших сайтах


Посмотрите внимательно код.  product_info используется в контроллере карточки товара, а в контроллере категории $result. Вот этот кусок кода точно такой?

if ($result['quantity'] <= 0) {
	$data['stock'] = $result['stock_status'];
} elseif ($this->config->get('config_stock_display')) {
	$data['stock'] = $result['quantity'];
} else {
	$data['stock'] = $this->language->get('text_instock');
}
Надіслати
Поділитися на інших сайтах

Вы код вставили не в то место

Нужно внутри цикла набора массива products

И не забывайте обновлять модификаторы после каждой правки в файлах

Змінено користувачем thentru
  • +1 1
Надіслати
Поділитися на інших сайтах


Вы код вставили не в то место

Нужно внутри цикла набора массива products

И не забывайте обновлять модификаторы после каждой правки в файлах

 

эммм.. если я этот код помещю внутрь цикла, о вообще белая пустая страница...

 

так что ли?

 

2016092015_1265678_23357724.png

 

просто пустая страница в таком случае...

Надіслати
Поділитися на інших сайтах


Перед набором массива

$data['products'][] = array(
  'product_id'  => $result['product_id'],
  ...
);

вставляете вашу проверку

if ($result['quantity'] <= 0) {
  ...
}

причем в в этой проверке вам нужно записать данные в переменную, а не в массив data

$stock = $result['stock_status'];

и после эту переменную добавить в массив products

$data['products'][] = array(
  'stock' => $stock,
  'product_id'  => $result['product_id'],
  ...
);
  • +1 2
Надіслати
Поділитися на інших сайтах


Спасибо!!

Всё получилось!

Только всё же с data заработало... без data белый экран...

 

data['stock'] будет применяться ко всем товарам

это не совсем верно

  • +1 1
Надіслати
Поділитися на інших сайтах


data['stock'] будет применяться ко всем товарам

это не совсем верно

))) да.. при добавлении нового товара, количество в категориях не соответствует количеству в карточке товара..

получается во всей проверке надо убрать data?

Змінено користувачем Vitaly2
Надіслати
Поділитися на інших сайтах


Давно не заглядывал...Но количество постов вопрос/ответ ожидаемо...

  • +1 1
Надіслати
Поділитися на інших сайтах

Давно не заглядывал...Но количество постов вопрос/ответ ожидаемо...

 

не трольте меня.. ))

 

 

data['stock'] будет применяться ко всем товарам

это не совсем верно

 

но если я уберу data, то что же тогда прописать в tpl?

 

оставил так

 

2016092019_3352950_23360849.png

 

и в tpl такой код

<?php echo $stock; ?>

 

и получаю ошибку что переменная не определена..

Notice: Undefined variable: stock in /home/vidge/domains/tutdarom.ru/public_html/catalog/view/theme/fastfood/template/product/category.tpl on line 158

 

 

ой блин.. извиняюсь.. это я тупанул..

надо ж было так в тпл написать

<?php echo $product['stock']; ?>

 

всё заработало вобщем!

Спасибо ещё раз добрые люди!!

Змінено користувачем Vitaly2
Надіслати
Поділитися на інших сайтах


  • 4 years later...
В 19.09.2016 в 09:29, Bazilio сказал:

 

В контроллер category.php нужно добавить не точно такой код, как в product.php

В category.php перед $data['products'][] = array( вставить


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

А после 'price'       => $price, добавить


'stock'	=> $data['stock'],

В файле catalog/view/theme/default/template/product/category.tpl в нужном месте вставить


<?php echo $product['stock']; ?>

 

Для движка Version 2.1.0.2 (rs.1) рекомендую поставить как РЕШЕНИЕ - только что реализовал у себя с первой попытки.

Единственный момент: в настройках товара наличие должно быть настроено на вывод количеством, а не по факту "В наличии" или "Нет в наличии". Иначе те товары, которые есть в наличии выводят "text_instock".

Надіслати
Поділитися на інших сайтах


  • 1 year later...
20.09.2016 в 10:18, thentru сказал:

Перед набором массива

$data['products'][] = array(
  'product_id'  => $result['product_id'],
  ...
);

вставляете вашу проверку

if ($result['quantity'] <= 0) {
  ...
}

причем в в этой проверке вам нужно записать данные в переменную, а не в массив data

$stock = $result['stock_status'];

и после эту переменную добавить в массив products

$data['products'][] = array(
  'stock' => $stock,
  'product_id'  => $result['product_id'],
  ...
);

Спасибо добрый человек за помощь

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

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