Нашел такое решение:
в файле catalog/model/catalog/product.php
после кода
foreach ($query->rows as $result) {
if( $product_id != $result['related_id'] )$product_data[$result['related_id']] = $this->getProduct($result['related_id']);
}
добавить
$max_related = 4;
$num_related = $max_related - count($product_data);
if($num_related > 0)
{
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_to_category p2c LEFT JOIN " . DB_PREFIX . "product p ON (p2c.product_id = p.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p2c.category_id IN (SELECT category_id FROM " . DB_PREFIX . "product_to_category WHERE product_id = '" . (int)$product_id . "') AND p.product_id != '" . (int)$product_id . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' ORDER BY RAND() LIMIT 0," . $num_related);
foreach ($query->rows as $result) {
$product_data[$result['product_id']] = $this->getProduct($result['product_id']);
}
}
$num_related = $max_related - count($product_data);
if($num_related > 0)
{
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p.manufacturer_id IN (SELECT manufacturer_id FROM " . DB_PREFIX . "product WHERE product_id = '" . (int)$product_id . "') AND p.product_id != '" . (int)$product_id . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' ORDER BY RAND() LIMIT 0," . $num_related);
foreach ($query->rows as $result)
$product_data[$result['product_id']] = $this->getProduct($result['product_id']);
return $product_data;
}
Товары появились, но ссылка на похожие товары получилась немного не правильная, т.е. в ссылке нет /категория/
Должно быть так:
сайт.ру/категория/товар.html
А на самом деле так:
сайт.ру/товар.html
Помогите пожалуйста исправить код! Спасибо!