Столкнулась с тем, что использую рекомендуемые товары для 3 магазинов.
При этом для каждого из магазинов должен показываться свой список товаров (они могут и пересекаться), сам модуль ( я использую тот, что предустанавливается вместе с opencart) не очень умен. Он берет из конфига перечисление id шников товаров, а потом обрезает по лимиту архив получившихся id шников, не глядя на то какому магазину принадлежит товар.
Поэтому я его слегка допилила:
в model_catalog_product дописана функция возврата товаров по списку из конфига:
public function getProductFeatured($list){
$sql = "SELECT GROUP_CONCAT(product_id) as list FROM ". DB_PREFIX ."product_to_store WHERE product_id IN ($list) AND store_id = '".(int)$this->config->get('config_store_id')."'";
$query = $this->db->query($sql);
foreach ($query->rows as $result) {
$list = $result["list"];
}
return $list;
}
Результат запроса возвращает туже строку из товаров что и конфиг но только выкинув оттуда все товары, которые к этому магазину не привязаны.
соотв в файле featured.php (контроллер вывода товаров в каталоге)
меняем строку
$products = explode(',', $this->config->get('featured_product'));
на строку
$products = explode(',', $this->model_catalog_product->getProductFeatured($this->config->get('featured_product')));