И так поставлена задача вывести в каталог количество оставшегося товара на складе, рыл сеть, толком для 2.0.3.1 не нашел но пошел по следующему пути: 1. Подрубил языковой файл в category.php $this->load->language('product/product'); 2. Добавил Product_info в category.php if ($product_info['quantity'] <= 0) { $data['stock'] = $product_info['stock_status']; } elseif ($this->config->get('config_stock_display')) { $data['stock'] = $product_info['quantity']; } else { $data['stock'] = $this->language->get('text_instock'); } 3. Добавил в него же $data['text_stock'] = $this->language->get('text_stock'); По идее все верно и с ним я покончил далее перешел уже выводить на саму страницу добавил вот этот кусок кода в category.tpl <div class="first-text"> <div class="boss-small-detail"> <ul class="list-unstyled"> <li><span class="first-text"><?php echo $text_stock; ?></span><span class="boss-stock"> <?php echo $stock; ?></span></li> </ul></div> Этот кусок кода я выдрал с product.tpl и как мне подсказывает интуиция в этом и есть мой косяк То есть сама строка "Наличие" есть но вот количество не отображается ну и предупреждение естественно от том что где то провтыкал переменную "... Undefined variable: product_info in ..." Большая просьба подсказать где именно допущена ошибка ну и как ее исправить? Заранее всем огромное спасибо кто откликнется!
Странно, что вы смогли до всего этого додуматься, а такую мелочь не заметили. Посмотрите откуда у вас в категории берутся, например, названия товаров. Там нет массива $product_info, он есть только на странице товара. На групповых страницах товары выводятся циклом PHP: foreach ($products as $product) {/* вывод одного товара*/}
Да, как-то я всё в кучу свалил. Посмотрите /catalog/controller/product/category.php, там есть такая строка: PHP: $results = $this->model_catalog_product->getProducts($filter_data); А после неё циклом идёт обработка по каждому товару. А вы скопировали код из /catalog/controller/product/product.php, где подобного назначения строка выглядит так: PHP: $product_info = $this->model_catalog_product->getProduct($product_id); И обрабатывается результат без цикла, потому что там только один товар. В общем, вам надо переместить ваш код в цикл и заменить $product_info на $result. И $data['stock'] использовать нельзя. Массив $data глобальный для текущей страницы. В случае со страницей товара, где один товар, все значения относятся к этому товару, но в категориях товар не один, а вы таким образом запишите значение для одного товара, который обработается в цикле последним. В цикле есть вот такой код: PHP: $data['products'][] = array( 'product_id' => $result['product_id'], '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, 'minimum' => $result['minimum'] > 0 ? $result['minimum'] : 1, 'rating' => $result['rating'], 'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url) ); Всё, что нужно вывести для товара в категории дописывайте сюда.