Перейти к содержимому


Как вывести характеристики товаров в прайсе?

характеристики товар shopcms

  • Вы не можете ответить в тему
Сообщений в теме: 6

#1 bank911

    Пользователь

  • Пользователи
  • PipPip
  • 22 сообщений
Репутация: 0
Начинающий

Отправлено 29 April 2012 - 09:44 PM

Не могу разобраться сам, почему в прайсе не выводятся дополнительные характеристики по товарам. Делал по аналогии с кратким и подробным описанием (product_detailed.tpl.html, версия 3.1.2).

Понимаю, что эти переменные просто не запрашиваются в базе. У меня всего одна доп.характеристика, надеюсь кто-то поможет - на форуме ничего похожего не нашел, так что надеюсь тема будет полезной многим!
  • 0

#2 Dbus

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 1116 сообщений
Репутация: 174
Мастер
  • ГородОдесса

Отправлено 30 April 2012 - 10:47 AM

Понимаю, что эти переменные просто не запрашиваются в базе.

ну так добавь запрос переменных, в /core/includes/pricelist.php
  • 0
502 Bad Gateway

#3 bank911

    Пользователь

  • Пользователи
  • PipPip
  • 22 сообщений
Репутация: 0
Начинающий

Отправлено 30 April 2012 - 01:00 PM

Я не совсем понимаю, как работает связка mysql + smarty + tpl.html
Но за наводку спасибо - я этого файла сразу не нашел, потому не мог вписать запрос. Сейчас хоть есть где поколупаться!

Может поможете с запросом, если есть время? Боюсь напартачить, хотя вот же в коде идет вызов из базы и запихивание в переменную:


$q = db_query("select s.productID, s.categoryID, s.name, s.Price, s.brief_description, s.product_code,
	    s.default_picture, s.enabled, b.productID, t.filename FROM ".SPECIAL_OFFERS_TABLE."
	    AS b INNER JOIN ".PRODUCTS_TABLE." AS s on (b.productID=s.productID) INNER JOIN ".PRODUCT_PICTURES." AS t on (s.default_picture=t.photoID AND s.productID=t.productID) WHERE s.enabled=1 order by b.sort_order");
	    while ($row = db_fetch_row($q))
	    {
			  if (strlen($row["filename"])>0 && file_exists( "data/small/".$row["filename"])){
									    $row["default_picture"] = "small/".$row["filename"];
									    $row["cena"] = $row[3];
									    $row["Price"] = show_price($row[3]);									  
									    $result[] = $row;
																			    $extra[] = GetExtraParametrs($row['productID']);
			  }
	    }
	    $smarty->assign("special_offers",$result);
	    $smarty->assign("special_offers_extra",$extra);

Вот аналоггичный код вывода:


{section name=e loop=$special_offers_extra[i]}
<span style="fonte-size:14px; font-weight: bold;">{$special_offers_extra[i][e]}</span>
{/section}

Выводит пустое пространство...
  • 0

#4 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 30 April 2012 - 02:26 PM

Может поможете с запросом, если есть время?

Добавьте в запрос
LEFT JOIN ".PRODUCTS_OPTIONS_SET_TABLE." AS pos USE (productID)
LEFT JOIN ".PRODUCTS_OPTIONS_VALUES_VARIANTS_TABLE." AS povv USE (variantID)
перед оператором WHERE
и поле povv.option_value в список с нужными в выборке полями (после SELECT).
получите для каждого варианта характеристики отдельную строку товара в прайсе.
Если цены у вариантов разные, то надо добавить еше и поле pos.price_surplus
что с этими двумя новыми полями делать, думаю. догадаетесь сами.

PS. У меня в дефолтовом pricelist.php приведенного Вами кода нет. И мне кажется, что это не совсем от прайслиста код.

PPS. Если характеристик у товара нет, то строка будет всего одна, а эти поля будут NULL. Этот момент тоже надо обрабатывать, если Вы не уверены на все сто, что у каждого товара есть хотя бы одна характеристика.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#5 bank911

    Пользователь

  • Пользователи
  • PipPip
  • 22 сообщений
Репутация: 0
Начинающий

Отправлено 30 April 2012 - 02:33 PM

...


Спасибо за совет. Сейчас испытаем в работе и перепроверим pricelist.php
Скрипт брал в качестве уже готовой работы одного из своих клиентов - они там много перелопатили и добавили ряд возможностей. Сначала поставил в работу, а сейчас сижу ковыряю на радости :)
  • 0

#6 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 30 April 2012 - 04:03 PM

Скрипт брал в качестве уже готовой работы одного из своих клиентов

Тогда лучше поставьте куда-нибудь дефолтовый ShopCMS и правьте прайс в нем, чтобы понять что и как, там pricelist.php маленький и простенький.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#7 bank911

    Пользователь

  • Пользователи
  • PipPip
  • 22 сообщений
Репутация: 0
Начинающий

Отправлено 30 April 2012 - 10:19 PM

Скрипт брал в качестве уже готовой работы одного из своих клиентов

Тогда лучше поставьте куда-нибудь дефолтовый ShopCMS и правьте прайс в нем, чтобы понять что и как, там pricelist.php маленький и простенький.


Там очень много непонятного для меня - когда стоило учить php я в банке работал...
Наверное стукну к разработчикам, пусть напишут запросы и дадут в готовом виде, думаю с ними в 150 рублей вложусь и не буду себе парить мозг :)

Спасибо Вам большое за советы!
  • 0