<file path="catalog/model/catalog/product.php">
<operation>
<search><![CDATA[public function getProductAttributes($product_id)]]></search>
<add position="before"><![CDATA[public function getProductVariantproducts($product_id)
{
$variantproduct_data = array();
$sql = "
SELECT vd.title, (SELECT GROUP_CONCAT(v2p.product_id) FROM " . DB_PREFIX . "variantproducts_to_product v2p WHERE v.variantproduct_id = v2p.variantproduct_id AND v2p.product_id<>'" . (int)$product_id . "') prodIds
FROM " . DB_PREFIX . "variantproducts v
LEFT JOIN " . DB_PREFIX . "variantproducts_description vd ON (v.variantproduct_id = vd.variantproduct_id)
LEFT JOIN " . DB_PREFIX . "variantproducts_to_product v2p ON (v.variantproduct_id = v2p.variantproduct_id)
WHERE
v2p.product_id = '" . (int)$product_id . "' AND
vd.language_id = '" . $this->config->get('config_language_id') . "' AND
v.status = '1'
ORDER BY v.sort_order, v.variantproduct_id ASC
";
$variantproduct_query = $this->db->query($sql);
foreach ($variantproduct_query->rows as $variantproduct) {
$products = array();
if ($variantproduct['prodIds']) $products = $this->getPorudctsByIds(explode(',', $variantproduct['prodIds']));
$variantproduct_data[] = array(
'title' => $variantproduct['title'],
'products' => $products,
);
}
return $variantproduct_data;
}
public function getPorudctsByIds($ids)
{
$sql = "SELECT DISTINCT *, pd.name AS name, p.image, m.name AS manufacturer, (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 IN('" . implode("','", $ids) . "') AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' ORDER BY p.sort_order";
$query = $this->db->query($sql);
if ($query->num_rows) {
$products = array();
foreach ($query->rows as $row) {
$products[] = array(
'product_id' => $row['product_id'],
'name' => $row['name'],
'model' => $row['model'],
'image' => $row['image']
);
}
return $products;
} else {
return false;
}
}]]></add>
</operation>