Post by Mycr0 » Thu Oct 08, 2015 8:29 pm

Opencart 1.5.5.1 version.
Right now in this module special offers are displayed by their name ascending http://prntscr.com/8p2kog
From admin I can only activate or dezactivate the module, I want to be able to choose which products with special offers to display exactly like the featured module. http://prntscr.com/8p2lhh

I made a duplicate of featured module and tried to get only the special products instead off all products.

admin/controller
I tried to change getProduct to getProductSpecials which is a function from model/catalog/product which get all special products.

Code: Select all

		$this->load->model('catalog/product');
				
		if (isset($this->request->post['featured_product'])) {
			$products = explode(',', $this->request->post['featured_product']);
		} else {		
			$products = explode(',', $this->config->get('featured_product'));
		}
		
		$this->data['products'] = array();
		
		foreach ($products as $product_id) {
			$product_info = $this->model_catalog_product->getProduct($product_id);
			
			if ($product_info) {
				$this->data['products'][] = array(
					'product_id' => $product_info['product_id'],
					'name'       => $product_info['name']
				);
			}
		}
catalog/controller
Here same thing getProduct changed to getProductSpecials but nothing happened.

Code: Select all

$this->load->model('catalog/product'); 
		
		$this->load->model('tool/image');

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

		$products = explode(',', $this->config->get('featured_product'));		

		if (empty($setting['limit'])) {
			$setting['limit'] = 5;
		}
		
		$products = array_slice($products, 0, (int)$setting['limit']);
		
		foreach ($products as $product_id) {
			$product_info = $this->model_catalog_product->getProduct($product_id);
			
			if ($product_info) {
				if ($product_info['image']) {
					$image = $this->model_tool_image->resize($product_info['image'], $setting['image_width'], $setting['image_height']);
				} else {
					$image = false;
				}
				
				//this for swap image
				
				$images = $this->model_catalog_product->getProductImages($product_info['product_id']);

            if(isset($images[0]['image']) && !empty($images[0]['image'])){
                  $images =$images[0]['image'];
               } 
			   
				//

				if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
					$price = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')));
				} else {
					$price = false;
				}
						
				if ((float)$product_info['special']) {
					$special = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')));
				} else {
					$special = false;
				}
				
				if ($this->config->get('config_review_status')) {
					$rating = $product_info['rating'];
				} else {
					$rating = false;
				}
					
				$this->data['products'][] = array(
					'product_id' => $product_info['product_id'],
					'thumb'   	 => $image,
					'name'    	 => $product_info['name'],
					'price'   	 => $price,
					'special' 	 => $special,
					'rating'     => $rating,
					'reviews'    => sprintf($this->language->get('text_reviews'), (int)$product_info['reviews']),
					'href'    	 => $this->url->link('product/product', 'product_id=' . $product_info['product_id']),
					// for swap image
				'thumb_swap'  => $this->model_tool_image->resize($images, $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')), 
				//
				// for saving percentage
				'saving'	=> round((($product_info['price'] - $product_info['special'])/$product_info['price'])*100, 0),
				//
				);
			}

Newbie

Posts

Joined
Thu Oct 08, 2015 7:54 pm
Who is online

Users browsing this forum: No registered users and 40 guests