Jump to content

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


Recommended Posts

всем привет!

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

есть такой шаблон: 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>

Link to post
Share on other sites

а вот этот код который я обнаружил он для чего предназначался? подскажите, пожалуйста.

Link to post
Share on other sites

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


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

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

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

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

Link to post
Share on other sites

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

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

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

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

Link to post
Share on other sites

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

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

в файле /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 товара. Вроде работает норм. (проблем не замечено). но всё же.. интересно мнение автора.

Link to post
Share on other sites

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

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

Link to post
Share on other sites

та не за что.

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

Чтобы не переполнять листинг инфой, в моём запросе стоит 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]

Link to post
Share on other sites
  • 2 years later...

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

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

Link to post
Share on other sites

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

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

Link to post
Share on other sites
  • 4 years later...
8 часов назад, Zempik сказал:

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

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

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

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

Link to post
Share on other sites
  • 2 years later...
7 часов назад, IIT сказал:

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

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

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...