Перейти к содержанию
Форум поддержки пользователей VamShop

спецификации в листинге товаров


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

всем привет!

такой вопросец: как на странице листинга товаров вывести спецификации товаров?

есть такой шаблон: product_listing_columns.html

в нём я обнаружил:


<div class="ProductsListListDesc">
{foreach name=params item=module_params from=$module_data.params}
{$module_params.name}:<strong>{$module_params.value} {$module_params.suff} </strong><br />
{/foreach}
</div>
[/CODE] вроде похоже на то, что мне нужно, но на сайте движок создает такой html:
[CODE]
<div class="ProductsListListDesc">
</div>

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

я так догадываюсь этот код заменили на:


{foreach item=extra_fields from=$module_data.EXTRA_FIELDS}
{$extra_fields.NAME}: {$extra_fields.VALUE}<br />
{/foreach}
[/CODE]

(это из шаблона vamshop2)

он выводит extra_fields - дополнительные поля

всё равно интересно, что этот код должен выводить (тот который в первом сообщении) :)

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

Такого кода, что Вы привели, по умолчанию нет сейчас.

Выводить можно только доп. поля, но не спецификации.

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

Кстати, добавьте пожелание такое, если не сложно - http://vamshop.ru/forum/tracker/

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

сделал временное решение, пока эта возможность не войдет в официальный релиз.

интересно, что вы скажите, Александр.

в файле /includes/classes/product.php

в функцию buildDataArray() я добавил:



$spec_fields_query = vamDBquery("SELECT `pr_spec`.`products_id`,
`spec_desc`.`specification_name` as `name`,
`spec_desc`.`specification_prefix` as `prefix`,
`pr_spec`.`specification` as `value`,
`spec_desc`.`specification_suffix` as `suffix`
FROM `products_specifications` as `pr_spec`
LEFT JOIN `specification_description` as `spec_desc` ON `spec_desc`.`specifications_id` = `pr_spec`.`specifications_id`
WHERE `pr_spec`.`products_id` = ' ".(int)$array['products_id']." '
LIMIT 0, 3");

while ($spec_fields = vam_db_fetch_array($spec_fields_query,true))
{

$spec_fields_data[] = array (
'NAME' => $spec_fields['name'],
'PREFIX' => $spec_fields['prefix'],
'VALUE' => $spec_fields['value'],
'SUFFIX' => $spec_fields['suffix']
);
}
[/CODE] а в массив для шаблонизатора (return array) я добавил:
[CODE]
'SPEC_FIELDS'=>$spec_fields_data,
в шаблоне шаблон/module/product_listing/product_listing_columns.html добавил:


{foreach item=spec_fields from=$module_data.SPEC_FIELDS}
{$spec_fields.NAME}: {$spec_fields.PREFIX} {$spec_fields.VALUE} {$spec_fields.SUFFIX}<br />
{/foreach}
[/code] делал по аналогии того, как выводятся дополнительные поля ака extra_fields, а запрос для бд изначально посмотрел в файлах спецификации, но не понял кучу вещей зачем нужны и написал свой запрос. для заметки, запрос я накопал следующий, который формируется на карточке товара:
[CODE]
select
ps.specification,
s.filter_display,
s.enter_values,
sd.specification_name,
sd.specification_prefix,
sd.specification_suffix,
s.specification_group_id,
sg.specification_group_name
from
products_specifications ps,
specifications s,
specification_description sd,
specification_groups sg,
specification_groups_to_categories sg2c
where
sg.show_products = 'True' and
s.show_products = 'True' and
s.specification_group_id = sg.specification_group_id and
sg.specification_group_id = sg2c.specification_group_id and
sg.specification_group_id = '6' and
sd.specifications_id = s.specifications_id and
ps.specifications_id = sd.specifications_id and
sg2c.categories_id = '83' and
ps.products_id = '3192' and
sd.language_id = '1' and
ps.language_id = '1'
order by s.specification_sort_order,sd.specification_name

с группами я заморочек не понял, с языками тоже. по этому писал свой запрос в надежде на то, что для того чтобы вывести спецификации товара в листинге достаточно будет знать id товара. Вроде работает норм. (проблем не замечено). но всё же.. интересно мнение автора.

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

Примерно так оно и делается.

Спасибо за код, наверное его и возьмём за основу, поправив чуть, если будет необходимость.

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

та не за что.

Один момент ещё, хочу добавить.

Чтобы не переполнять листинг инфой, в моём запросе стоит LIMIT на 3 строки.

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

итого, запрос в бд будет выглядеть так:


SELECT `pr_spec`.`products_id`,
`spec_desc`.`specification_name` as `name`,
`spec_desc`.`specification_prefix` as `prefix`,
`pr_spec`.`specification` as `value`,
`spec_desc`.`specification_suffix` as `suffix`,
`spec`.`specification_sort_order` as `sort`
FROM `products_specifications` as `pr_spec`
LEFT JOIN `specification_description` as `spec_desc` ON `spec_desc`.`specifications_id` = `pr_spec`.`specifications_id`
LEFT JOIN `specifications` as `spec` ON `spec`.`specifications_id` = `pr_spec`.`specifications_id`
WHERE `pr_spec`.`products_id` = '".(int)$array['products_id']."'
ORDER BY `sort` ASC
LIMIT 0, 3
[/CODE]

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

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

Добрый день Подскажите, внесены ли указанные дополнения?

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

Нет, в списке товара пока спецификаций нет.

Только фильтр выводит внутри категории.

Ссылка на сообщение
Поделиться на другие сайты
  • 4 years later...
8 часов назад, Zempik сказал:

Подскажите, сейчас есть возможно вывести спецификации на странице товара?

Конечно, по умолчанию они и выводятся.

Вот пример - http://demo.vamshop.ru/samsung-galaxy-note-3.html

Батарея, Вес, Память - это и есть спецификации.

Ссылка на сообщение
Поделиться на другие сайты
  • 2 years later...
7 часов назад, IIT сказал:

Подскажите, пожалуйста, как вывести спецификации не списком, а по одной?

Создайте тикет в тех. поддержку - https://forum.vamshop.ru/support/

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