There is however, a pagination issue when a Category filter is added. A replacement getTotalProducts() function is required in admin\model\catalog\product.php:
Code: Select all
public function getTotalProducts($data = array()) {
$sql = "SELECT COUNT(*) AS total FROM " . DB_PREFIX . "product p
LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id)
INNER JOIN " . DB_PREFIX . "product_to_category p2c ON p.product_id = p2c.product_id
WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "'";
if (isset($data['filter_name']) && !is_null($data['filter_name'])) {
$sql .= " AND LCASE(pd.name) LIKE '%" . $this->db->escape(strtolower($data['filter_name'])) . "%'";
}
if (isset($data['filter_model']) && !is_null($data['filter_model'])) {
$sql .= " AND LCASE(p.model) LIKE '%" . $this->db->escape(strtolower($data['filter_model'])) . "%'";
}
if (isset($data['filter_category']) && !is_null($data['filter_category'])) {
$sql .= " AND p2c.category_id = " . $this->db->escape($data['filter_category']);
}
if (isset($data['filter_quantity']) && !is_null($data['filter_quantity'])) {
$sql .= " AND p.quantity = '" . $this->db->escape($data['filter_quantity']) . "'";
}
if (isset($data['filter_status']) && !is_null($data['filter_status'])) {
$sql .= " AND p.status = '" . (int)$data['filter_status'] . "'";
}
$query = $this->db->query($sql);
return $query->row['total'];
}