Пороблемы с корзиной

Статус
В этой теме нельзя размещать новые ответы.

Leozzz

Писатель
Регистрация
19 Апр 2008
Сообщения
2
Реакции
0
:bn:Возникла проблемка с изменением дизайна Shop Script Premium.
При изменении местоположения кнопки "Добавить в корзину" в файле "product_detailed.tpl.html" конфигуратор начинает работать некоректно.

Допустим есть 3 опции конфигуратора:
10 гр.(по умолчанию)
20 гр.
50 гр.

По умолчанию кнопка "добавить в корзину" находится над дополнительными характерисктиками товаров. Если код кнопки расположить под кодом "дополнительных хар-ик" то при добавлении в корзину по умолчанию (без изменения опций конфигуратора) добавляется не 10, а 20 гр. и перестает отображаться значение "цена с учётом выбранных опций"

Я предпологаю, что код кнопки "добавить в корзину":
<form action="index.php?productID={$product_info.productID}"
method=post name="HiddenFieldsForm">

{if $smarty.const.CONF_OPEN_SHOPPING_CART_IN_NEW_WINDOW eq 0}

{* shopping cart page is shown in the same window - in this cart 'add to cart' button is a form submit button *}

{if $product_info.Price>0 && ( $smarty.const.CONF_SHOW_ADD2CART eq 1 ) &&
( $smarty.const.CONF_CHECKSTOCK==0 || $product_info.in_stock > 0 ) }
<input name='cart' type=image src="images/cart_big.gif"
alt="{$smarty.const.ADD_TO_CART_STRING}">
{else}
&nbsp;
{/if}

{else}

{* show shopping cart page in a new window => add hidden values as FORM elements and to the cart.php URL *}

{if $product_info.Price>0 && ( $smarty.const.CONF_SHOW_ADD2CART eq 1 ) &&
( $smarty.const.CONF_CHECKSTOCK==0 || $product_info.in_stock > 0 ) }
<a href="javascript:eek:pen_window('cart.php?addproduct={$product_info.productID}{counter name='select_counter_hidden' start=0 skip=1 print=false}{counter name='select_counter_hidden_extra' start=0 skip=1 print=false}{section name=i loop=$product_extra}{if $product_extra.option_type eq 1}{section name=s loop=$product_extra.option_show_times}&option_select_hidden_{counter name=select_counter_hidden}='+document.HiddenFieldsForm.option_select_hidden_{counter name=select_counter_hidden_extra}.value+'{/section}{/if}{/section}',400,300);"><img border=0 src="images/cart_big.gif"
alt="{$smarty.const.ADD_TO_CART_STRING}"></a>

{else}
&nbsp;
{/if}

{/if}
{counter name='select_counter_hidden' start=0 skip=1 print=false}
{section name=i loop=$product_extra}
{if $product_extra.option_type eq 1}
{section name=s loop=$product_extra.option_show_times}
<input type=hidden
name='option_select_hidden_{counter name=select_counter_hidden}'
value='1'>
{/section}
{/if}
{/section}

</form>


А код конфигуратора (доп. хар. тов-ов:(
<form action="index.php?productID={$product_info.productID}" method=post
name="MainForm">

{* extra parameters *}
<p>
<table cellpadding="0" cellspacing="0">
{counter name='select_counter' start=0 skip=1 print=false assign='select_counter_var'}
{section name=i loop=$product_extra}
{if $product_extra.option_type eq 0 }
<tr>
<td>
{$product_extra.name}:
</td>
<td>
<b>{$product_extra.option_value}</b><br>
</td>
<td>
&nbsp;
</td>
</tr>
{else}
{counter name='option_show_times' start=0 skip=1 print=false}
{section name=k loop=$product_extra.option_show_times}
<tr>
<td>
{$product_extra.name}{if $product_extra.option_show_times > 1 }
({counter name=option_show_times}:({else}:{/if}
</td>
<td>
{counter name=select_counter}
{if $smarty.section.k.index == 0}
<select name='option_select_{$select_counter_var}'
onchange='JavaScript:GetCurrentCurrency();'>
{section name=j loop=$product_extra.values_to_select}
{if $product_extra.values_to_select[j].variantID eq $product_extra.variantID}
<option value='{$product_extra.values_to_select[j].price_surplus}:{$product_extra.values_to_select[j].variantID}' selected>
{else}
<option value='{$product_extra.values_to_select[j].price_surplus}:{$product_extra.values_to_select[j].variantID}'>
{/if}
{$product_extra.values_to_select[j].option_value}
</option>
{/section}
</select>
{else}
<select name='option_select_{$select_counter_var}'
onchange='JavaScript:GetCurrentCurrency();'>
<option value='0:-1'>{$smarty.const.NOT_DEFINED}</option>
{section name=j loop=$product_extra.values_to_select}
<option value='{$product_extra.values_to_select[j].price_surplus}:{$product_extra.values_to_select[j].variantID}'>
{$product_extra.values_to_select[j].option_value}
</option>
{/section}
</select>
{/if}
</td>
</tr>
{/section}
{/if}
{/section}
</table>

{if $select_counter_var != 0}
<b>
{$smarty.const.CURRENT_PRICE_OPTION}:
<input type=hidden value="{php}echo(getPriceUnit());{/php}"
name="priceUnit">
{if $product_info.Price <= 0}
<input type=hidden value="" id="optionPrice">
<input type=text value="n/a"
class=totalPrice
readonly >
{else}
<input type=text value=""
class=totalPrice
readonly
id="optionPrice" >
{/if}
</b>

{literal}
<script langauge='JavaScript'>
document.MainForm.optionPrice.readOnly = true;

function _formatPrice( _price )
{

_pointIndex = -1;
for( i=0; i< _price.length; i++ )
if ( _price.charAt(i) == '.' )
{
_pointIndex = i;
break;
}

if ( _pointIndex == -1 )
_price = _price + ".00";
else if ( _price.length-1 - _pointIndex == 1 )
_price = _price + "0";

_res = "";

i=0;
for( i=_price.length-1; i >= 0; i-- )
{
if ( _price.charAt(i) == '.' )
break;
else
_res = _price.charAt(i) + _res;
}

_res = "." + _res;

i--;
_digitCounter = 0;
for( ; i>=0; i-- )
{
_digitCounter ++;
_res = _price.charAt(i) + _res;
if ( _digitCounter == 3 && i != 0 )
{
_res = "," + _res;
_digitCounter = 0;
}
}

return _res;
}

function GetCurrentCurrency()
{
{/literal}
_selectionCount={$select_counter_var};
_sum = {$product_info.PriceWithOutUnit};

{counter name='select_counter2' start=1 skip=1 print=false
assign='select_counter_var2'}
{section name=i loop=$product_extra}
{section name=k loop=$product_extra.option_show_times}

_value =
document.MainForm.option_select_{$select_counter_var2}.value;
price_surplus = ( _value.split(":") )[0];
_sum += new Number( price_surplus );
variantID = ( _value.split(":") )[1];
document.HiddenFieldsForm.option_select_hidden_{$select_counter_var2}.value =
variantID;

{counter name=select_counter2}

{/section}
{/section}

_sumStr = new String(_sum);
_commaIndex = _sumStr.indexOf(".");
if ( _commaIndex == -1 )
_sumStr = _sum;
else
_sumStr = _sumStr.substr(0, _commaIndex + 3);
{php}
echo("locationPriceUnit=".getLocationPriceUnit().";\n");
echo("priceUnit='".getPriceUnit()."';\n");
{/php}

_sumStr = _formatPrice( _sumStr );

if ( locationPriceUnit )
document.MainForm.optionPrice.value =
_sumStr + document.MainForm.priceUnit.value;
else
document.MainForm.optionPrice.value =
document.MainForm.priceUnit.value + _sumStr;
{literal}
}
{/literal}
GetCurrentCurrency();
</script>


</form>{/if}


Я просто меняю их местами друг с другом...:ah:
Подскажите плз где я допускаю ошибку?:thenks:
Извиняюсь зарание если задал мегоглупый вопрос но своими силами я ничего поделать не могу:bn:
 
Вроде это все изза каунтера, он у тебя оказывается не инициированным и потому возникает ошибка.
 
А как бы сдеать чтобы он был инициирован?

м.б. кто знает какойнить шаблон для shop script где кнопка добавить в корзину нахдится под конфигуратором?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху