а если так home.php (чуть поправил!):
<?php
/*****************************************************************************
* *
* Shop-Script FREE *
* Copyright (c) 2005 WebAsyst LLC. All rights reserved. *
* *
****************************************************************************/
// front-end homepage
if (!$categoryID && !isset($productID))
{
$f = file("./core/aux_pages/index");
$out = implode("", $f);
$smarty->assign("index", $out);
//special offers
$idp=0;
$result = array();
$q = db_query('SELECT pt.productID, name, picture, Price,list_price, brief_description, hurl FROM '.SPECIAL_OFFERS_TABLE." as st left join ".PRODUCTS_TABLE." as pt on pt.productID=st.productID where picture!='' order by sort_order") or die (db_error());
while ($row1 = db_assoc_q($q))
{
if (file_exists("./products_pictures/".$row1['picture']))
{
$s = rtrim($row1['picture'], '.jpg');
$row1['picture'] = $s."-S.jpg";
$row1['Price'] = round($row1['Price']/CURRENCY_val,2);
$row1['Price'] = show_price($row1['Price']);
$row1['list_price'] = round($row1['list_price']/CURRENCY_val,2);
$row1['list_price'] = show_price($row1['list_price']);
if ($row1['hurl'] != "" && CONF_CHPU) {$row1['hurl'] = REDIRECT_PRODUCT."/".$row1['hurl'];} else {$row1['hurl'] = "index.php?productID=".$row1['productID'];}
$result[] = $row1;
}
$idp .=$row1['productID'].',';
}
$idp='('.substr($idp, 0, strlen($idp)-1).')';
$sql_p="SELECT pov.`productID` FROM `".PRODUCTS_TABLE."` as p,".PRODUCT_OPTIONS_V_TABLE." as pov where p.`productID`=pov.`productID` and p.`productID` in ".$idp." group by p.`productID`";
$q_p = db_query($sql_p); $pi=0;
$p=db_arAll($sql_p); $optname=array();
foreach ($p as $pvalue)
{
$sql2="SELECT po.* FROM ".PRODUCT_OPTIONS_TABLE." as po,".PRODUCT_OPTIONS_V_TABLE." as pov where po.`optionID`=pov.`optionID` and pov.productID=".$pvalue["productID"]." group by po.`optionID` order by po.sort_order";
$p2=db_arAll($sql2); $variant=array();
foreach ($p2 as $opions)
{
$sql_v= "select ovv.name,pov.* from ".PRODUCT_OPTIONS_VAL_TABLE." as ovv,".PRODUCT_OPTIONS_V_TABLE." as pov where ovv.variantID = pov.`variantID` and ovv.optionID =".$opions['optionID']." AND pov.productID =".$pvalue['productID']." GROUP BY ovv.`variantID` order by ovv.sort_order";
$variant[$opions['optionID']]['var']=db_arAll($sql_v);
$variant[$opions['optionID']]['name']=$opions["name"];
if (!in_array($opions['name'],$optname))
$optname[] =$opions["name"];
# $variant[$opions['optionID']]['name']=$opions['optionID'];
}
$rez[$pvalue['productID']]=$variant;
$sql_p="select picture from ".PRODUCT_OPTIONS_V_TABLE." where `default`=1 and `picture` is not NULL AND `picture` != '' and `productID`=".$pvalue["productID"].' LIMIT 1';
$rezult=db_query($sql_p);
$rezult=mysql_fetch_row($rezult);
$p_default[$pvalue['productID']]=$rezult[0];
unset($variant,$sql_v);
}
$smarty->assign("options", $rez);
$smarty->assign("special_offers",$result);
}
?>
то есть по аналогии category.php и из product_brief.tpl.html взять вывод доп.опций
{assign var="id" value=$special_offer.productID}
{foreach from=$options[$id] item=option key=key name=option}
<b>{$option.name}:</b>
{$option.var.0.name}
{/foreach}
и не забываем бэкапится перед использованием.