Как в Opencart вывести 100 товаров, но с условием, только у категорий с id более 1077?

Для того чтобы вывести 100 товаров только у категорий с id более 1077 в Opencart, вам потребуется изменить код в соответствующем файле.

1. Откройте файл catalog/controller/product/category.php.

2. Найдите функцию index() и добавьте следующий код в начале функции:

if ($this->request->get['route'] == 'product/category' && isset($this->request->get['path']) && $this->request->get['path'] > 1077) {
    $limit = 100;
} else {
    $limit = $this->config->get('config_product_limit');
}

Этот код проверяет, если текущий маршрут является product/category и id категории больше 1077, то устанавливается лимит выводимых товаров в 100. Если условие не выполняется, используется лимит из настроек.

3. Найдите следующий код в той же функции:

$data['products'] = array();

И добавьте следующий код сразу после него:

$filter_data = array(
    'filter_category_id'  => $category_id,
    'filter_filter'       => $filter,
    'filter_sub_category' => true,
    'start'               => ($page - 1) * $limit,
    'limit'               => $limit
);

Этот код создает массив $filter_data, который содержит информацию о фильтрации, пагинации и лимите выводимых товаров.

4. Найдите следующий код в той же функции:

$product_total = $this->model_catalog_product->getTotalProducts($filter_data);

И замените его на:

if ($this->request->get['route'] == 'product/category' && isset($this->request->get['path']) && $this->request->get['path'] > 1077) {
    $product_total = 100;
} else {
    $product_total = $this->model_catalog_product->getTotalProducts($filter_data);
}

Этот код проверяет условие, и если id категории больше 1077, то устанавливает общее количество товаров в 100. Если условие не выполняется, используется общее количество товаров по фильтру.

5. Найдите следующий код в той же функции:

$results = $this->model_catalog_product->getProducts($filter_data);

И замените его на:

if ($this->request->get['route'] == 'product/category' && isset($this->request->get['path']) && $this->request->get['path'] > 1077) {
    $results = $this->model_catalog_product->getProductsByCategoryId($category_id, 100);
} else {
    $results = $this->model_catalog_product->getProducts($filter_data);
}

Этот код проверяет условие, и если id категории больше 1077, то получает только 100 товаров по конкретной категории, используя созданный метод getProductsByCategoryId(). Если условие не выполняется, используется метод getProducts().

6. Сохраните файл и обновите страницу с категорией в административной панели или чистый кэш браузера для применения изменений.

Теперь, при посещении категории с id больше 1077, будут выводиться только первые 100 товаров. В остальных случаях будут использоваться настройки лимита, указанные в настройках Opencart.