Как выводить единицы измерения в опенкарт?

Подскажите как выводить единицы измерения для опенкарт 2.3. Когда товар был в граммах, я просто дописывала после вывода веса - гр. А теперь мне нужно чтобы еще выводились и литры, и этот костыль себя изжил. Как обратится к переменной которая отвечает за вывод единиц (гр, кг, л)??

Вот так раньше выводила вес))

<?php if($product['weight']>0) { ?>
    <div class="weight">
        <?php echo $product['weight']; ?>гр.
    </div>
<?php } ?>

введите сюда описание изображения


Ответы (3 шт):

Автор решения: Евгений

Мне не совсем понятно для чего вообще нужен был костыль с гр. если в настройках (Система-Локализация-Единицы веса) можно указать любую интересующую вас единицу. 1) Добавляете новую единицу "веса" - литры. 2) Изменяете в карточке товара граммы/килограммы на литры. 3) Система-Настройки-Локализация - в поле вес указываете литрыЛитр фотоаппаратов.

→ Ссылка
Автор решения: Kirill

Как-то так:

Сперва набейте в базу все единицы измерения веса и объёма, которые будут использоваться на сайте, все они будут доступны для выбора во вкладке Data, в селекте Weight Class: введите сюда описание изображения

Редактируете запрос в методе getProduct() класса ModelCatalogProduct (catalog/model/catalog/product.php), в начале запроса добавить wcd.unit as wc_unit,

$query = $this->db->query("SELECT DISTINCT *, wcd.unit as wc_unit, ...

Далее, в этом же запросе, перед последним WHERE добавляете join на таблицу с юнитами мер весов

LEFT JOIN " . DB_PREFIX . "weight_class_description wcd ON (wcd.weight_class_id = p.weight_class_id)

Далее, в классе ControllerProductCategory (catalog/controller/product/category.php) добавляете вес в цикле формирования продуктов:

$data['products'][] = array(
    ...     
    'weight' => (float)$result['weight'] . $result['weight_unit']
);

И выводите просто - <?= $product['weight'] ?>

→ Ссылка
Автор решения: richnwa

Кирилл, все верно только еще момент для (catalog/model/catalog/product.php), в этом же методе getProduct() там где формируется массив

if ($query->num_rows) {
            return array(...

добавить ключ и передать значение

            'weight_unit'      => $query->row['unit'],

Тогда все отработает корректно

→ Ссылка