Перейти к содержанию
cashfile

[ДОРАБОТКА] Добавление станд. аттрибутов в описание товара

Рекомендуемые сообщения

Материал взят с оф.сайта и переработан для легкого восприятия .

Например

post-70-1293741785,2514_thumb.jpg

1. Редактируем: catalog/controller/product/product.php

находим:

$product_info = $this->model_catalog_product->getProduct($product_id);
после добавляем:

$this->data['product_info'] = $product_info;
2. Редактируем: catalog/view/theme/YOURTHEME/template/product/product.tpl

находим:

<tr>  <td>[b]<?php echo $text_model; ?>[/b]</td>  <td><?php echo $model; ?></td></tr>
после добавляем:

<tr>  <td>[b]SKU:[/b]</td>  <td><?php echo $product_info['sku']; ?></td></tr>
Для добавления других стандартных аттрибутов заменяете строку:

<?php echo $product_info['xxx']; ?>
Где "xxx" будет принимать вид определенных имен переменных базы данных:

$product_info['weight']

$product_info['sku']

$product_info['location']

$product_info['length']

и т.п.

Изменено пользователем afwollis
edit -> save
  • +1 3

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...и больше одного атрибута не получается вставить.выдает ошибку:Notice: Undefined index: xxx in Z:homejew.locwwwcatalogviewthemeproducttemplateproductproduct.tpl on line 42

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А..., все, разобрался. Таким способом можно изменять стандартные значения. А как добавить еще стандартных значений своих, если не хватает тех, которые можно изменить? Там придется, так думаю, в базу добавлять значений типа $product_info['weight']$product_info['sku']$product_info['location']$product_info['length']...и в админке добавить полей с формами?...тока не очень понятно, как это сделать)

Изменено пользователем afwollis
edit -> save

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не понял как по русски добавить текст. Все рабоатет, толь вот в пхп написал

<tr>

<td>Расположение:</td>

<td><?php echo $product_info['sku']; ?></td>

</tr>

и оно очень коряво отображается..

Изменено пользователем afwollis
edit -> save

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

старадают херней админы ........ своими переносами форума уже не одну тему "засрали" , вот и в этой строку потеряли

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вместо того, чтобы панику разводить лучше бы просто написали в теме про обновление форума, что В ЭТОЙ ТЕМЕ "поплыли" сообщения :angry:

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В этой теме, показан пример - как можно вывести Вес товара на его странице. Точно таким же методом, можно отобразить "Габариты" (как автор топика показал) и практически все остальное. Изображение

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вместо того, чтобы панику разводить лучше бы просто написали в теме про обновление форума, что В ЭТОЙ ТЕМЕ "поплыли" сообщения :angry:

БЛАГОДАРЮ !

Кто подскажет , как станд. переменную weight показать на странице категории . Понимаю что нужно добавить в catalog/controller/product/category.php запись . Не силен в php поэтому метод тупой подстановки кода в этой теме для категорий не работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

catalog/controller/product/category.php
передаем в массив данных о товаре его вес

$this->data['products'][] = array(
	'name'    => $result['name'],
	'model'   => $result['model'],
	'rating'  => $rating,
	'stars'   => sprintf($this->language->get('text_stars'), $rating),
	'thumb'   => $this->model_tool_image->resize($image, $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')),
	'price'   => $price,
	'options' => $options,
	'special' => $special,
	'href'    => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product&path=' . $this->request->get['path'] . '&product_id=' . $result['product_id']),
	'add'	  => $add,
	'weight' => $result['weight'] /* вот он наш, т.е. товарный, вес */
);
после этого в category.tpl можно выводить

<br />
          <span style="color: #999; font-size: 11px;"><?php echo $products[$j]['weight']; ?></span>
однако данный способ не выводит единицу веса рядом с самим значением.

так что надо будет глянуть, можно ли без лишних функций получить эти данные.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

<br />

<span style="color: #999; font-size: 11px;"><?php echo $products[$j]['weight']; ?></span>[/code]

однако данный способ не выводит единицу веса рядом с самим значением.

так что надо будет глянуть, можно ли без лишних функций получить эти данные.

Респект , а если единица измерения одна для всех товаром- то можно самому дописать в коде.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Респект , а если единица измерения одна для всех товаром- то можно самому дописать в коде.

А если не одна ?

в общем массиве $product_info есть переменная weight_class_id, которая содержит id единицы измерения, которая используется. Тоже слаб в php, поэтому не могу сопоставить эти данные, чтобы выводился вес и единица измерения.. Подскажите ?

p.s. Пока делаю костыль типа

switch ($product_info['weight_class_id']) {

case "1":

echo "гр.";

break;

case "2":

echo "кг.";

break;

case "3":

echo "шт.";

break;

}

И жду помощи)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А у меня нифига не показывает габариты товара :( Подскажите, в чем дело? Version 0.1.7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как реализовать отображение наличия на странице категорий.

Добавил в catalog/controller/product/category.php

 

if (isset($this->request->get['product_id'])) {
            $product_id = $this->request->get['product_id'];
        } else {
            $product_id = 0;
        }
        
        $this->load->model('catalog/product');
$product_info = $this->model_catalog_product->getProduct($product_id);
$this->data['product_info'] = $product_info;
 

На странице категорий catalog/view/theme/default/template/product/category.tpl добавил

 

<?php if ($product_info['quantity'] > 0) { ?>
    <?php echo '<h2>Наличие: <span style="color:#0000FF">В наличии</span></h2>'; ?>
    <?php } else { ?>
    <?php echo '<h2>Наличие: <span style="color:#FF0000">Под заказ</span></h2>'; ?>
<?php } ?>
 

Отображение работает, но логика не выполняется. На странице с товаром та же самая логика работает. Почему в категориях не работает?


 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как реализовать отображение наличия на странице категорий.

Добавил в catalog/controller/product/category.php

 

if (isset($this->request->get['product_id'])) {

            $product_id = $this->request->get['product_id'];

        } else {

            $product_id = 0;

        }

        

        $this->load->model('catalog/product');

$product_info = $this->model_catalog_product->getProduct($product_id);

$this->data['product_info'] = $product_info;

 

На странице категорий catalog/view/theme/default/template/product/category.tpl добавил

 

<?php if ($product_info['quantity'] > 0) { ?>

    <?php echo '<h2>Наличие: <span style="color:#0000FF">В наличии</span></h2>'; ?>

    <?php } else { ?>

    <?php echo '<h2>Наличие: <span style="color:#FF0000">Под заказ</span></h2>'; ?>

<?php } ?>

 

Отображение работает, но логика не выполняется. На странице с товаром та же самая логика работает. Почему в категориях не работает?

попробуй в контроллере вот сюда добавить

 

$this->data['products'][] = array(

          'product_id' => $result['product_id'],

 'quantity' => $result['quantity']

);

а в tpl вместо ($product_info['quantity'] > 0) напиши ($product['quantity'] > 0)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.