Как отобразить все варианты товара в OpenCart, не учитывая его наличие?

Как можно настроить отображение всей размерной сетки с остатками на странице товара в магазине обуви? В данный момент у нас отображаются все доступные опции, но информация об остатках товаров отключена. Можете поделиться инструкцией по данной настройке?
  • 20 ноября 2023 г. 13:32
Ответы на вопрос 3
Чтобы отобразить все варианты товара в OpenCart, независимо от его наличия, вам понадобится внести некоторые изменения в код шаблона и базу данных.

1. Откройте файл catalog/controller/product/product.php и найдите следующую строку:

```php
$data['stock'] = $product_info['quantity'] > 0;
```

Замените ее на:

```php
$data['stock'] = true;
```

2. Затем откройте файл catalog/model/catalog/product.php и найдите следующую строку:

```php
$query = $this->db->query("SELECT option_id, option_value_id FROM " . DB_PREFIX . "product_option_value WHERE product_id = '" . (int)$product_id . "'");

```

После этой строки добавьте:

```php
$data['options'] = array();

$results = $this->db->query("SELECT DISTINCT pov.option_id, od.name, ovd.name as value FROM " . DB_PREFIX . "product_option_value pov LEFT JOIN " . DB_PREFIX . "option_description od ON (pov.option_id = od.option_id) LEFT JOIN " . DB_PREFIX . "option_value_description ovd ON (pov.option_value_id = ovd.option_value_id) WHERE pov.product_id = '" . (int)$product_id . "' AND od.language_id = '" . (int)$this->config->get('config_language_id') . "' AND ovd.language_id = '" . (int)$this->config->get('config_language_id') . "'");
```


3. Откройте файл catalog/view/theme/your_theme/template/product/product.tpl и найдите следующий код:

```php
<?php if ($stock) { ?>
    <span class="stock"><?php echo $text_instock; ?></span>
<?php } else { ?>
    <span class="stock"><?php echo $text_outstock; ?></span>
<?php } ?>
```

Замените его на:

```php
<?php if ($stock) { ?>
    <span class="stock"><?php echo $text_instock; ?></span>
<?php } ?>
```

После проведения этих изменений все варианты товара будут отображаться независимо от его наличия.

Чтобы отображать информацию об остатках на странице товара, вам также потребуется настроить соответствующие настройки товара в административной панели OpenCart.

1. Войдите в административную панель OpenCart.
2. Перейдите в каталог и выберите нужный товар.
3. Нажмите на вкладку "Опции товара".
4. Для каждого варианта опции укажите количество остатков.
5. Сохраните изменения.

После этого информация об остатках будет отображаться на странице товара в магазине обуви.
Включить остатки продуктов? Не понятно, о чем идет речь. 
 Как правильно использовать остатки продуктов?
Похожие вопросы