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']
);
}
}
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),
//
);
}