Перейти к содержанию
polushkindenis

Автоматические стикеры для Предзаказ, Нет в наличии, В наличии, Скоро в продаже

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

Столкнулся с необходимостью выводить автоматические стикеры на товаре при просмотра каталога в зависимости от наличия товара на складе.

Реализовал такую возможность следующим способом.

Шаг №1.

../catalog/controller/product/category.php

Ищем код:

$this->data['products'][] = array(

'product_id' => $result['product_id'],

'thumb' => $image,

'stock_status' => $result['stock_status'], //+++ДОБАВЛЯЕМ ДЛЯ ОТОБРАЖЕНИЯ

'name' => $result['name'],

Шаг №2.

../catalog/view/theme/папка_шаблона/template/product/category.tpl

Ищем код:

...

<?php if ($product['special']) { ?>

<img class="special-tag" src="catalog/view/theme/geccoshop/image/sale.png" alt="Sale" />

<?php } ?>

после него вставляем:

<?php if ($product['stock_status']=="Скоро в продаже") { ?>

<img class="special-tag" src="catalog/view/theme/geccoshop/image/image-1.png" alt="Скоро в продаже" />

<?php } ?>

<?php if ($product['stock_status']=="Предзаказ") { ?>

<img class="special-tag" src="catalog/view/theme/geccoshop/image/image-2.png" alt="Предзаказ" />

<?php } ?>

<?php if ($product['stock_status']=="Нет в наличии") { ?>

<img class="special-tag" src="catalog/view/theme/geccoshop/image/image-3.png" alt="В наличии" />

<?php } ?>

<?php if ($product['stock_status']=="В наличии") { ?>

<img class="special-tag" src="catalog/view/theme/geccoshop/image/image-4.png" alt="Нет в наличии" />

<?php } ?>

Может кому то тоже будет полезно. Я новичок в OpenCart поэтому сильно не критикуйте. Благодарю за внимание.

  • +1 4

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


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

все сделал как написано. ничего не вышло (((

  • +1 1

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


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

все сделал как написано. ничего не вышло (((

Какая версия OpenCart?

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


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

1.5.4.1 Но сборка лажанутая, Макссторовская

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


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

/category.tpl точно в своем шаблоне правили а не в default?

пришлите мне в личку доступ по фтп к сайту и название вашего шаблона может у меня что-то получится

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


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

для какой версии Opencart описана данная правка?

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


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

хотелось бы ДЕМО чтобы видеь где выводятся стикеры

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


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

Была бы полезной функция! Пробовал реализовать - не получается версия ocStore Версия 1.5.5.1.1

Шаблон default

пути поменял с учётом этого, фото стикеров - залил 

 

и по-моему немного наоборот:

<?php if ($product['stock_status']=="Нет в наличии") { ?>
<img class="special-tag" src="catalog/view/theme/default/image/image-3.png" alt="В наличии" />   (Получается: если нету в наличии - показывать стикер, что есть??   :-D )

<?php } ?>

 

В category.tpl такой строки не нашёл, поэтому вкинул после:

 

        <?php if (!$product['special']) { ?>

        <?php echo $product['price']; ?>
        <?php } else { ?>
        <span class="price-old"><?php echo $product['price']; ?></span> <span class="price-new"><?php echo $product['special']; ?></span>
        <?php } ?>
        <?php if ($product['tax']) { ?>
        <br />
        <span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span>
        <?php } ?>
 
Тему предлагаю развивать! Ведь штука полезная! Автору: спасибо за идею - и просьба помочь разобраться - т.к. у меня это дело не пашет. Ждём ссапорта!  :geek:

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


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

<img class="special-tag" src="catalog/view/theme/default/image/image-1.png" alt="Ожидание 2-3 дня" />

<?php } ?>

И наконец - отобразилось! :oops: 

Общем спасибо за идейку! Получилось не хуже AStickers

А может и даже лучше! 

Сейчас буду испытывать на максисторе )  :eek:

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


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

не подскажете как таким же методом использовать не наличие, а цвета? например если у товара есть доп.цвета - добавить стикер (выбор цвета)???

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


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

$this->data['products'][] = array(
'product_id' => $result['product_id'],
'thumb' => $image,
'stock_status' => $result['stock_status'], //+++ДОБАВЛЯЕМ ДЛЯ ОТОБРАЖЕНИЯ
'name' => $result['name'],

Когда добавляю белый экран 

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


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

$this->data['products'][] = array(

'product_id' => $result['product_id'],

'thumb' => $image,

'stock_status' => $result['stock_status'], //+++ДОБАВЛЯЕМ ДЛЯ ОТОБРАЖЕНИЯ

'name' => $result['name'],

Когда добавляю белый экран 

В контроллере продукта или категории?

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


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

В контроллере продукта или категории?

/catalog/controller/product/category.php

 

в категорию когда захожу в магазине проста белый экран.

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


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

Ну а если ввести stock_status в поиск в модели продукта, есть там что-нибудь? :-)

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


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

Ну а если ввести stock_status в поиск в данном модели, есть там что-нибудь? :-)

Не понял? Я добавил эту строчку 'stock_status' => $result['stock_status'] между этими строчками 

$this->data['products'][] = array(

'product_id' => $result['product_id'],

'thumb' => $image,

'name' => $result['name'],

Или я не так понял? :( 

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


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

catalog\model\catalog\product.php вбить в поиск stock_status, что-нибудь найдётся?

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


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

catalog\model\catalog\product.php вбить в поиск stock_status, что-нибудь найдётся?

(SELECT ss.name FROM " . DB_PREFIX . "stock_status ss WHERE ss.stock_status_id = p.stock_status_id AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "') AS stock_status, (SELECT wcd.unit FROM " . DB_PREFIX . "weight_class_description wcd WHERE p.weight_class_id = wcd.weight_class_id AND wcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS weight_class, (SELECT lcd.unit FROM " . DB_PREFIX . "length_class_description lcd WHERE p.length_class_id = lcd.length_class_id AND lcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS length_class, (SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT COUNT(*) AS total FROM " . DB_PREFIX . "review r2 WHERE r2.product_id = p.product_id AND r2.status = '1' GROUP BY r2.product_id) AS reviews, p.sort_order FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) WHERE p.product_id = '" . (int)$product_id . "' AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= '" . $this->NOW . "' AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'");

Вот что нашлось

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


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

И больше нечего? вот такое например 'stock_status'     => $query->row['stock_status'],

 

php_value display_errors 1

в .htaccess вставить и зайти на страницу категории

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


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

php_value display_errors 1 в первую строчку надо вставить?Я вставил но все равно белый лист не пишет какие ошибки.

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


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

php_value display_errors 1 в первую строчку надо вставить?Я вставил но все равно белый лист не пишет какие ошибки.

 

Ну а лог ошибок пустой?

Пишите в личку в общем, ближе к ночи гляну, а то тут опять в гадалки долго играть..

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


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

Все еще белый экран когда добавляю строчку

'stock_status' => $result['stock_status']

Вот код из category.php

<?php 
class ControllerProductCategory extends Controller {  
	public function index() { 
		$this->language->load('product/category');
		
		$this->load->model('catalog/category');
		
		$this->load->model('catalog/product');
		
		$this->load->model('tool/image'); 
		
		if (isset($this->request->get['filter'])) {
			$filter = $this->request->get['filter'];
		} else {
			$filter = '';
		}

			
		if (isset($this->request->get['sort'])) {
			$sort = $this->request->get['sort'];
		} else {
			$sort = 'p.sort_order';
		}

		if (isset($this->request->get['order'])) {
			$order = $this->request->get['order'];
		} else {
			$order = 'ASC';
		}
		
		if (isset($this->request->get['page'])) {
			$page = $this->request->get['page'];
		} else { 
			$page = 1;
		}	
							
		if (isset($this->request->get['limit'])) {
			$limit = $this->request->get['limit'];
		} else {
			$limit = $this->config->get('config_catalog_limit');
		}

					
		$this->data['breadcrumbs'] = array();

   		$this->data['breadcrumbs'][] = array(
       		'text'      => $this->language->get('text_home'),
			'href'      => $this->url->link('common/home'),
       		'separator' => false
   		);	
			
		if (isset($this->request->get['path'])) {
			$url = '';
			
			if (isset($this->request->get['sort'])) {
				$url .= '&sort=' . $this->request->get['sort'];
			}	

			if (isset($this->request->get['order'])) {
				$url .= '&order=' . $this->request->get['order'];
			}	
			
			if (isset($this->request->get['limit'])) {
				$url .= '&limit=' . $this->request->get['limit'];
			}

				
			$path = '';
		
			$parts = explode('_', (string)$this->request->get['path']);
		
			$category_id = (int)array_pop($parts);

			foreach ($parts as $path_id) {
				if (!$path) {
					$path = (int)$path_id;
				} else {
					$path .= '_' . (int)$path_id;
				}
									
				$category_info = $this->model_catalog_category->getCategory($path_id);
				
				if ($category_info) {
	       			$this->data['breadcrumbs'][] = array(
   	    				'text'      => $category_info['name'],
						'href'      => $this->url->link('product/category', 'path=' . $path . $url),
        				'separator' => $this->language->get('text_separator')
        			);
				}

			}		
		
			
		} else {
			$category_id = 0;
		}

		
		$category_info = $this->model_catalog_category->getCategory($category_id);
	
		if ($category_info) {
			if ($category_info['seo_title']) {
		  		$this->document->setTitle($category_info['seo_title']);
			} else {
		  		$this->document->setTitle($category_info['name']);
			}

			$this->document->setDescription($category_info['meta_description']);
			$this->document->setKeywords($category_info['meta_keyword']);
			$this->document->addScript('catalog/view/javascript/jquery/jquery.total-storage.min.js');
			
			if ($category_info['seo_h1']) {
				$this->data['heading_title'] = $category_info['seo_h1'];
			} else {
				$this->data['heading_title'] = $category_info['name'];
			}
			
			$this->data['text_refine'] = $this->language->get('text_refine');
			$this->data['text_empty'] = $this->language->get('text_empty');			
			$this->data['text_quantity'] = $this->language->get('text_quantity');
			$this->data['text_manufacturer'] = $this->language->get('text_manufacturer');
			$this->data['text_model'] = $this->language->get('text_model');
			$this->data['text_price'] = $this->language->get('text_price');
			$this->data['text_tax'] = $this->language->get('text_tax');
			$this->data['text_points'] = $this->language->get('text_points');
			$this->data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0));
			$this->data['text_display'] = $this->language->get('text_display');
			$this->data['text_list'] = $this->language->get('text_list');
			$this->data['text_grid'] = $this->language->get('text_grid');
			$this->data['text_sort'] = $this->language->get('text_sort');
			$this->data['text_limit'] = $this->language->get('text_limit');
					
			$this->data['button_cart'] = $this->language->get('button_cart');
			$this->data['button_wishlist'] = $this->language->get('button_wishlist');
			$this->data['button_compare'] = $this->language->get('button_compare');
			$this->data['button_continue'] = $this->language->get('button_continue');
			
			// Set the last category breadcrumb		
			$url = '';
			
			if (isset($this->request->get['sort'])) {
				$url .= '&sort=' . $this->request->get['sort'];
			}	

			if (isset($this->request->get['order'])) {
				$url .= '&order=' . $this->request->get['order'];
			}	
			
			if (isset($this->request->get['page'])) {
				$url .= '&page=' . $this->request->get['page'];
			}
			
			if (isset($this->request->get['limit'])) {
				$url .= '&limit=' . $this->request->get['limit'];
			}
									
			$this->data['breadcrumbs'][] = array(
				'text'      => $category_info['name'],
				'href'      => $this->url->link('product/category', 'path=' . $this->request->get['path']),
				'separator' => $this->language->get('text_separator')
			);
								
					
			if ($category_info['image']) {
				$this->data['thumb'] = $this->model_tool_image->resize($category_info['image'], $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height'));
				$this->document->setOgImage($this->data['thumb']);
			} else {
				$this->data['thumb'] = '';
			}
									
			     if ($page == 1) {
                 $this->data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8');
                } else {
                 $this->data['description'] = "";
}
			$this->data['compare'] = $this->url->link('product/compare');
			
			$url = '';
			
			if (isset($this->request->get['filter'])) {
				$url .= '&filter=' . $this->request->get['filter'];
			}	

			if (isset($this->request->get['sort'])) {
				$url .= '&sort=' . $this->request->get['sort'];
			}	

			if (isset($this->request->get['order'])) {
				$url .= '&order=' . $this->request->get['order'];
			}	
			
			if (isset($this->request->get['limit'])) {
				$url .= '&limit=' . $this->request->get['limit'];
			}
								
			$this->data['categories'] = array();
			
			$results = $this->model_catalog_category->getCategories($category_id);
			
			foreach ($results as $result) {
				$data = array(
					'filter_category_id'  => $result['category_id'],
					'filter_sub_category' => true
				);
				
				$product_total = $this->model_catalog_product->getTotalProducts($data);				
				
				$this->data['categories'][] = array(
					'name'  => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''),
					'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url),
					'thumb' => $this->model_tool_image->resize(($result['image']=='' ? 'no_image.jpg' : $result['image']), $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height'))
				);
			}
			
			$this->data['products'] = array();
			
			$data = array(
				'filter_category_id' => $category_id,
				'filter_filter'      => $filter, 
				'sort'               => $sort,
				'order'              => $order,
				'start'              => ($page - 1) * $limit,
				'limit'              => $limit
			);
					
			$results = $this->model_catalog_product->getProducts($data);
			//Вызов метода getFoundProducts должен проводится сразу же после getProducts
			//только тогда он выдает правильное значения количества товаров
			$product_total = $this->model_catalog_product->getFoundProducts(); 
			
			foreach ($results as $result) {
				if ($result['image']) {
					$image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
				} else {
					$image = $this->model_tool_image->resize('no_image.jpg', $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
				}
				
				if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
					$price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));
				} else {
					$price = false;
				}
				
				if ((float)$result['special']) {
					$special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')));
				} else {
					$special = false;
				}	
				
				if ($this->config->get('config_tax')) {
					$tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']);
				} else {
					$tax = false;
				}				
				
				if ($this->config->get('config_review_status')) {
					$rating = (int)$result['rating'];
				} else {
					$rating = false;
				}
								
				$this->data['products'][] = array(
					'product_id'  => $result['product_id'],
					'thumb'       => $image,
					 'stock_status' => $result['stock_status'],
					'name'        => $result['name'],
					'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 300) . '..',
					'price'       => $price,
					'special'     => $special,
					'tax'         => $tax,
					'rating'      => $result['rating'],
					'reviews'     => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
					'href'        => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url)
				);
			}
			
			$url = '';
			
			if (isset($this->request->get['filter'])) {
				$url .= '&filter=' . $this->request->get['filter'];
			}
				
	
			if (isset($this->request->get['limit'])) {
				$url .= '&limit=' . $this->request->get['limit'];
			}
										
			$this->data['sorts'] = array();
			
			$this->data['sorts'][] = array(
				'text'  => $this->language->get('text_default'),
				'value' => 'p.sort_order-ASC',
				'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $url)
			);
			
			$this->data['sorts'][] = array(
				'text'  => $this->language->get('text_name_asc'),
				'value' => 'pd.name-ASC',
				'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC' . $url)
			);

			$this->data['sorts'][] = array(
				'text'  => $this->language->get('text_name_desc'),
				'value' => 'pd.name-DESC',
				'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC' . $url)
			);

			$this->data['sorts'][] = array(
				'text'  => $this->language->get('text_price_asc'),
				'value' => 'p.price-ASC',
				'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=ASC' . $url)
			); 

			$this->data['sorts'][] = array(
				'text'  => $this->language->get('text_price_desc'),
				'value' => 'p.price-DESC',
				'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=DESC' . $url)
			); 
			
			if ($this->config->get('config_review_status')) {
				$this->data['sorts'][] = array(
					'text'  => $this->language->get('text_rating_desc'),
					'value' => 'rating-DESC',
					'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=DESC' . $url)
				); 
				
				$this->data['sorts'][] = array(
					'text'  => $this->language->get('text_rating_asc'),
					'value' => 'rating-ASC',
					'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=ASC' . $url)
				);
			}
			
			$this->data['sorts'][] = array(
				'text'  => $this->language->get('text_model_asc'),
				'value' => 'p.model-ASC',
				'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=ASC' . $url)
			);

			$this->data['sorts'][] = array(
				'text'  => $this->language->get('text_model_desc'),
				'value' => 'p.model-DESC',
				'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=DESC' . $url)
			);
			
			$url = '';
			
			if (isset($this->request->get['filter'])) {
				$url .= '&filter=' . $this->request->get['filter'];
			}

			if (isset($this->request->get['sort'])) {
				$url .= '&sort=' . $this->request->get['sort'];
			}	

			if (isset($this->request->get['order'])) {
				$url .= '&order=' . $this->request->get['order'];
			}
			
			$this->data['limits'] = array();
			
	
			$limits = array_unique(array($this->config->get('config_catalog_limit'), 25, 50, 75, 100));
			
			sort($limits);
	
			foreach($limits as $limits){
				$this->data['limits'][] = array(
					'text'  => $limits,
					'value' => $limits,
					'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&limit=' . $limits)
				);
			}
			
			$url = '';
			

			if (isset($this->request->get['filter'])) {
				$url .= '&filter=' . $this->request->get['filter'];
			}

			
			if (isset($this->request->get['sort'])) {
				$url .= '&sort=' . $this->request->get['sort'];
			}	

			if (isset($this->request->get['order'])) {
				$url .= '&order=' . $this->request->get['order'];
			}
	
			if (isset($this->request->get['limit'])) {
				$url .= '&limit=' . $this->request->get['limit'];
			}
					
			$pagination = new Pagination();
			$pagination->total = $product_total;
			$pagination->page = $page;
			$pagination->limit = $limit;
			$pagination->text = $this->language->get('text_pagination');
			$pagination->url = $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&page={page}');
		
			$this->data['pagination'] = $pagination->render();
		
			$this->data['sort'] = $sort;
			$this->data['order'] = $order;
			$this->data['limit'] = $limit;
		
			$this->data['continue'] = $this->url->link('common/home');

			if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/category.tpl')) {
				$this->template = $this->config->get('config_template') . '/template/product/category.tpl';
			} else {
				$this->template = 'default/template/product/category.tpl';
			}
			
			$this->children = array(
				'common/column_left',
				'common/column_right',
				'common/content_top',
				'common/content_bottom',
				'common/footer',
				'common/header'
			);
				
			$this->response->setOutput($this->render());										
    	} else {
			$url = '';
			
			if (isset($this->request->get['path'])) {
				$url .= '&path=' . $this->request->get['path'];
			}
			
			if (isset($this->request->get['filter'])) {
				$url .= '&filter=' . $this->request->get['filter'];
			}
				
									
			if (isset($this->request->get['sort'])) {
				$url .= '&sort=' . $this->request->get['sort'];
			}	

			if (isset($this->request->get['order'])) {
				$url .= '&order=' . $this->request->get['order'];
			}
				
			if (isset($this->request->get['page'])) {
				$url .= '&page=' . $this->request->get['page'];
			}
						
			if (isset($this->request->get['limit'])) {
				$url .= '&limit=' . $this->request->get['limit'];
			}
						
			$this->data['breadcrumbs'][] = array(
				'text'      => $this->language->get('text_error'),
				'href'      => $this->url->link('product/category', $url),
				'separator' => $this->language->get('text_separator')
			);
				
			$this->document->setTitle($this->language->get('text_error'));

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

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

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

      		$this->data['continue'] = $this->url->link('common/home');

			if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/error/not_found.tpl')) {
				$this->template = $this->config->get('config_template') . '/template/error/not_found.tpl';
			} else {
				$this->template = 'default/template/error/not_found.tpl';
			}
			
			$this->children = array(
				'common/column_left',
				'common/column_right',
				'common/content_top',
				'common/content_bottom',
				'common/footer',
				'common/header'
			);
					
			$this->response->setOutput($this->render());
		}
  	}
}
?>

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


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

Здравствуйте подскажите пожалуйста все сделал по инструкции, добавил только вот это в тпл: 
 

<?php if ($product['stock_status']=="Нет в наличии") { ?>
<img class="special-tag" src="catalog/view/theme/and_sport/image/net_nalichie.png" alt="В наличии" />
<?php } ?>


Но стикер выводится у всех товаров в независимости от наличия.

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

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От Medialine
      350.00 руб
      Скачать/Купить дополнение


      Стикеры OpenCart
      Для пользователей, у которых поля JAN, ISBN, MPN в карточке товара не используются, есть отличная возможность задействовать их в дело. Модуль Stickers использует эти поля для вывода пользовательских стикеров в карточке товара, категории товара и всех типовых модулях Opencart, которые выводят товары. Плюсом данного модуля является то, что пользователь сам может прописать текст стикера в каждой карточке товара, так как особенности товаров могут существенно отличаться, а стикеры «Хит», «Новинка», «Акция» уже не несут капризному покупателю никакой смысловой нагрузки. Модуль тестировался на двух сборках: OpenCart 2.3.0.2 и Opencart 3.0.2.0. Ожидаю ваших пожеланий и рекомендаций. 
      Демо OpenCart 2.3.0.2
      Демо OpenCart 3.0.2.0
      Добавил Medialine Добавлено 01.12.2018 Категория Меню, дизайн, внешний вид Системные требования Сайт разработчика https://medialine.cc Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3 ocStore 3.0
      2.3 OpenCart.Pro, ocShop  
    • От Medialine
      Для пользователей, у которых поля JAN, ISBN, MPN в карточке товара не используются, есть отличная возможность задействовать их в дело. Модуль Stickers использует эти поля для вывода пользовательских стикеров в карточке товара, категории товара и всех типовых модулях Opencart, которые выводят товары. Плюсом данного модуля является то, что пользователь сам может прописать текст стикера в каждой карточке товара, так как особенности товаров могут существенно отличаться, а стикеры «Хит», «Новинка», «Акция» уже не несут капризному покупателю никакой смысловой нагрузки. Модуль тестировался на двух сборках: OpenCart 2.3.0.2 и Opencart 3.0.2.0. Ожидаю ваших пожеланий и рекомендаций. 
      Демо OpenCart 2.3.0.2
      Демо OpenCart 3.0.2.0
    • От tov
      800.00 руб
      Скачать/Купить дополнение


      Менеджер спецпредложений (подарки, таймер, стикеры)
      Модуль представляет из себя полноценный менеджер специальных предложений, позволяющий создавать разные типы акций для групп товаров, автоматически рассчитывать акционные цены, выводить соответствующие спецпредложению стикеры и многое другое.
       
      Основные возможности
      Создание различных акций для групп товаров. Отбор товаров используя фильтрацию по категориям, производителям, номеру SKU, наименованию. Различные стикеры для разных акций. Пересчет акционных цен для всех или отдельных товаров акции. Привязка к акции товара в качестве подарка.  Отображение таймера до завершения действия спецпредложения.  
      Описание работы модуля.
       
      Например, решили мы каждому покупателю ноутбука (может только определенных моделей ноутбуков) давать в подарок мышку.
       
      Создаем в админке новое спецпредложение. Вводим наименование акции (например, «Купи ноутбук и получи в подарок мышку»), вводим описание, выбираем тип спецпредложения (в данном случае «Плюс подарок»), задаем сроки акции, назначаем изображение акции и стикер. Так как выбран тип «Плюс подарок», то можно выбрать товар в качестве подарка. В нашем примере выбираем определенную мышку. В дальнейшем при покупке товаров участвующих в этой акции, подарок автоматически будет добавляться в корзину. Выбираем товар, участвующий в спецпредложении. Для этого в админке создан удобный инструмент с возможностью отбора товара по бренду, категории, SKU, наименованию. Найти и добавить необходимый товар – дело нескольких секунд. Тут же можно с помощью специального калькулятора пересчитать акционные цены на выбранные товар. Так же можно временно отключить/включить товар. Сохраняем спецпредожение. Внимание, абсолютно никаких изменений в базе не происходит, пока не нажать кнопку «Сохранить».  
      Теперь, посетитель кликнув по меню «Акции»,  попадет на страничку с описанием всех спецпредложений. Каждое спецпредложение отображается в виде карточки с изображением акции, названием, таймером обратного отсчета. Модуль отображает и завершившиеся акции (пока они не будут удалены в админке). Это дабы посетитель увидел упущенную выгоду и постарался в дальнейшем почаще заходить на сайт)
      Со странички спецпредложений посетитель может попасть на дефолтную страничку со всеми акционными товарами. Или подробней ознакомиться с конкретным спецпредложением и участвующими в нем товарами.
       
      Дополнительные изменения в витрине магазина.
      На страничках категорий, в модулях «Акции», «Новые поступления», «Рекомендуемые», «Хиты продаж» у акционных товаров будет отображен соответствующий стикер (если он был выбран в админке). Две цены акционная и обычная будут отображаться, только если эти цены различны, иначе будет показана одна цена. На страничке акционных товаров, в модуле «Акции», а также в карточке товара будут показаны таймеры до окончания действия спецпредложений. На страничке акционных товаров добавлена фильтрация по категориям.  При покупке товаров участвующих в акциях с подарком, выбранный подарок будет автоматически добавляться в корзину.    
      Установка
      Установка через OCMOD. Никакие стандартные файлы Опенкарт не заменяются. Инструкция по установке в файле INSTALLATION.txt
       
      Дополнительные услуги
      Дополнительные услуги, такие как помощь с подгонкой модуля под шаблон/дизайн сайта, согласование работы с другими сторонними модулями, изменение функционала могут быть оказаны за дополнительную плату 
       
      Демо OC2.3: http://opc-ru.tovmiracle.ru/
      Демо админпанели OC2.3: http://opc-ru.tovmiracle.ru/admin/index.php?route=extension/module/special_offer/offers    логин: demo, пароль: demo
      Добавил tov Добавлено 08.07.2018 Категория Цены, скидки, акции, подарки Системные требования Сайт разработчика Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0 ocStore 2.3
      2.1 OpenCart.Pro, ocShop Не проверялось  
    • От tov
      Модуль представляет из себя полноценный менеджер специальных предложений, позволяющий создавать разные типы акций для групп товаров, автоматически рассчитывать акционные цены, выводить соответствующие спецпредложению стикеры и многое другое.
       
      Основные возможности
      Создание различных акций для групп товаров. Отбор товаров используя фильтрацию по категориям, производителям, номеру SKU, наименованию. Различные стикеры для разных акций. Пересчет акционных цен для всех или отдельных товаров акции. Привязка к акции товара в качестве подарка.  Отображение таймера до завершения действия спецпредложения.  
      Описание работы модуля.
       
      Например, решили мы каждому покупателю ноутбука (может только определенных моделей ноутбуков) давать в подарок мышку.
       
      Создаем в админке новое спецпредложение. Вводим наименование акции (например, «Купи ноутбук и получи в подарок мышку»), вводим описание, выбираем тип спецпредложения (в данном случае «Плюс подарок»), задаем сроки акции, назначаем изображение акции и стикер. Так как выбран тип «Плюс подарок», то можно выбрать товар в качестве подарка. В нашем примере выбираем определенную мышку. В дальнейшем при покупке товаров участвующих в этой акции, подарок автоматически будет добавляться в корзину. Выбираем товар, участвующий в спецпредложении. Для этого в админке создан удобный инструмент с возможностью отбора товара по бренду, категории, SKU, наименованию. Найти и добавить необходимый товар – дело нескольких секунд. Тут же можно с помощью специального калькулятора пересчитать акционные цены на выбранные товар. Так же можно временно отключить/включить товар. Сохраняем спецпредожение. Внимание, абсолютно никаких изменений в базе не происходит, пока не нажать кнопку «Сохранить».  
      Теперь, посетитель кликнув по меню «Акции»,  попадет на страничку с описанием всех спецпредложений. Каждое спецпредложение отображается в виде карточки с изображением акции, названием, таймером обратного отсчета. Модуль отображает и завершившиеся акции (пока они не будут удалены в админке). Это дабы посетитель увидел упущенную выгоду и постарался в дальнейшем почаще заходить на сайт)
      Со странички спецпредложений посетитель может попасть на дефолтную страничку со всеми акционными товарами. Или подробней ознакомиться с конкретным спецпредложением и участвующими в нем товарами.
       
      Дополнительные изменения в витрине магазина.
      На страничках категорий, в модулях «Акции», «Новые поступления», «Рекомендуемые», «Хиты продаж» у акционных товаров будет отображен соответствующий стикер (если он был выбран в админке). Две цены акционная и обычная будут отображаться, только если эти цены различны, иначе будет показана одна цена. На страничке акционных товаров, в модуле «Акции», а также в карточке товара будут показаны таймеры до окончания действия спецпредложений. На страничке акционных товаров добавлена фильтрация по категориям.  При покупке товаров участвующих в акциях с подарком, выбранный подарок будет автоматически добавляться в корзину.    
      Установка
      Установка через OCMOD. Никакие стандартные файлы Опенкарт не заменяются. Инструкция по установке в файле INSTALLATION.txt
       
      Дополнительные услуги
      Дополнительные услуги, такие как помощь с подгонкой модуля под шаблон/дизайн сайта, согласование работы с другими сторонними модулями, изменение функционала могут быть оказаны за дополнительную плату 
       
      Демо OC2.3: http://opc-ru.tovmiracle.ru/
      Демо админпанели OC2.3: http://opc-ru.tovmiracle.ru/admin/index.php?route=extension/module/special_offer/offers    логин: demo, пароль: demo
    • От Wadamir
      Скачать/Купить дополнение


      XD Stickers - стикеры для Opencart
       
      Модуль XD Stickers позволяет устанавливать автоматические и кастомные стикеры для товаров.
       
      Автоматические стикеры:
      SOLD OUT (Продано) — стикер для товаров с нулевым остатком SALE (Распродажа) — стикер для товаров со скидками BESTSELLER (Хит продаж) — стикер для наиболее популярных товаров (по продажам) NOVELTY (Новинка) — стикер для новых товаров (по дате добавления товара) LAST (Последний) — стикер для товаров с маленьким остатком FREE SHIPPING (Бесплатная доставка) — стикер для товаров с ценой более XXX  
      Кастомные стикеры:
      Можно создать любые варианты стикеров и прикрепить их любому товару.
       
      Обратите внимание! Стикеры без проблем встанут на дефолтный шаблон. Для установки их на недефолтный шаблон скорее всего потребуется доработка.
       
      Посмотреть как работает можно тут: https://xdomus.ru/ocshop21/ и на любых других страницах этого магазина.
       
      Файл (xd_stickers_v.1.0.zip) содержит сразу 3 версии:
      Для Opencart 2.0.x, 2.1x — версия модуля 1.1.1 (имя файла — xd_stickers_v.1.1.1.ocmod.zip) Для Opencart 2.2.x — версия модуля 1.1.2 (имя файла — xd_stickers_v.1.1.2.ocmod.zip) Для Opencart 2.3.x — версия модуля 1.1.3 (имя файла — xd_stickers_v.1.1.3.ocmod.zip) Модуль поставляется as is (как есть), Вы устанавливаете его по собственному желанию и ответственность за него несёте Вы. Распространяется модуль по лицензии GNU GPL — Вы вправе его копировать, модифицировать и распространять (в том числе на коммерческой основе).
      Настройка стикеров:
      ПОРЯДОК УСТАНОВКИ
      Через админское меню -> Модули / Установка расширений
      Файлы не перезаписываются.
      Используется OCMod.
       

       
       

       

       
      ЕСЛИ ВАМ НРАВИТСЯ МОДУЛЬ, ВЫ МОЖЕТЕ ПОДДЕРЖАТЬ ЕГО РАЗВИТИЕ:
      https://money.yandex.ru/to/410014592945355
      Если не нравится - просто удалите  Деньги слать не надо 
       
      ЕСЛИ У ВАС ОСТАЛИСЬ ВОПРОСЫ
      Постарался собрать часто задаваемые вопросы сюда: https://xdomus.ru/opencart/stikery-dlya-opencart-2-ustanovka-i-nastrojka/
      Еще написал краткую инструкцию по OCMOD, в том числе и как адаптировать модуль под Ваш шаблон: https://xdomus.ru/opencart/ocmod-instruktsiya-dlya-razrabotchika/
       
      ПОДДЕРЖКА:
      Прежде чем писать, пожалуйста, прочитайте вышеуказанный FAQ! 
      Если всё же Вам по-прежнему нужна помощь в установке/редактировании - пожалуйста, сразу присылайте ссылку на магазин! Если Вы пробовали сами установить, но не получилось: пишите сразу что Вы сделали и что не получилось!
      Будьте готовы предоставить ftp-доступ и доступ в админку. Варианты удаленных рабочих столов, team viewer, "посмотреть экран через skype" и прочее подобное - не подходит.
       
      Указанная цена за услугу "Установка" включает в себя установку модуля в карточку товара и в категории.
       
      Вот пример сообщения в ЛС:
      Здравствуйте!
      Ставил Ваш модуль, но он не заработал (не появились стикеры, стикеры работают неправильно и т.п.).
      Ссылка на магазин: ocshop.xdomus.ru
      версия: такая-то
      шаблон: такой-то
      Не могли бы Вы мне помочь? Спасибо заранее!
      С уважением, пользователь такой-то
       
      Все доработки / установки / переделки / свистелки - платные (от 299 руб.)


      Добавил Wadamir Добавлено 27.07.2018 Категория Меню, дизайн, внешний вид Системные требования Сайт разработчика https://xdomus.ru Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
      2.2
      2.1
      2.0 ocStore 2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х  
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

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

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