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


Кнопка в корзину для рекомендуемых товаров

рекомендуемые товары корзина

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

#1 Jeck2000

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

  • Assistent vsupport.club
  • PipPipPip
  • 159 сообщений
Репутация: 8
Начинающий
  • ГородСанкт-Петербург

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

Может кто знает, как сделать, чтобы у каждого рекомендуемого товара была кнопочка "Добавить в корзину". понимаю, что не сложно должно быть, но как чего не крутил, фигня какая-то выходит :(
  • 0

#2 Matit

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

  • Download User
  • PipPipPip
  • 104 сообщений
Репутация: 2
Начинающий

Отправлено 23 April 2012 - 08:20 PM

Может кто знает, как сделать, чтобы у каждого рекомендуемого товара была кнопочка "Добавить в корзину". понимаю, что не сложно должно быть, но как чего не крутил, фигня какая-то выходит :(

Вот код кнопки купить:
<input type="submit" onclick="doLoad('do=cart&amp;addproduct={$product_related[i].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[i].option_type eq 1}{section name=s loop=$product_extra[i].option_show_times}&amp;option_select_hidden_{counter name=select_counter_hidden}='+document.HiddenFieldsForm.option_select_hidden_{counter name=select_counter_hidden_extra}.value+'{/section}{/if}{/section}&amp;xcart=yes&amp;multyaddcount='+document.HiddenFieldsForm.multyaddcount.value+''); return false" value="Купить">
его нужно вставить внутри
{section name=i loop=$product_related}
здесь код
{/section}

можно также вставить рядом поле инпут с именем, например, multyaddcount1 для количества товара и изменить в коде выше multyaddcount на multyaddcount1
  • 0
Все "спасибо" в репутацию :)

#3 Jeck2000

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

  • Assistent vsupport.club
  • PipPipPip
  • 159 сообщений
Репутация: 8
Начинающий
  • ГородСанкт-Петербург

Отправлено 23 April 2012 - 08:39 PM

Может кто знает, как сделать, чтобы у каждого рекомендуемого товара была кнопочка "Добавить в корзину". понимаю, что не сложно должно быть, но как чего не крутил, фигня какая-то выходит :(

Вот код кнопки купить:
<input type="submit" onclick="doLoad('do=cart&amp;addproduct={$product_related[i].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[i].option_type eq 1}{section name=s loop=$product_extra[i].option_show_times}&amp;option_select_hidden_{counter name=select_counter_hidden}='+document.HiddenFieldsForm.option_select_hidden_{counter name=select_counter_hidden_extra}.value+'{/section}{/if}{/section}&amp;xcart=yes&amp;multyaddcount='+document.HiddenFieldsForm.multyaddcount.value+''); return false" value="Купить">
его нужно вставить внутри
{section name=i loop=$product_related}
здесь код
{/section}

можно также вставить рядом поле инпут с именем, например, multyaddcount1 для количества товара и изменить в коде выше multyaddcount на multyaddcount1


Вот именно это то я и понимаю, что нужно вставить в section, но не получается. Куда бы я этот код кнопки не вставлял, пропадают все рекомендуемые кроме одного и зато ему она вводится ему. Вот мой код, может подскажешь, как правильно сюда эту кнопку вштырить .


{section name=i loop=$product_related}

{if $smarty.section.i.index is div by 4}<tr>{/if}
<td width="{math equation="100 / x" x=4 format="%d"}%" align="center" valign="top" style="padding:8px;">
<div class="">
{if $verifi eq 1}{else}{assign var="verifi" value=1}{/if}
{if $product_related[i][3]}
<a href="{if $smarty.const.CONF_MOD_REWRITE eq 1}product_{$product_related[i].productID}.html{else}index.php?productID={$product_related[i].productID}{/if}" target="_blank"><img src="data/small/{$product_related[i][3]}"></a>

{/if}
<p>{$product_related[i].Price}<br></div>
<div class="relh">
<a href="{if $smarty.const.CONF_MOD_REWRITE eq 1}product_{$product_related[i].productID}.html{else}index.php?productID={$product_related[i].productID}{/if}" target="_blank">{$product_related[i].name}</a></span>

</div>
</td>
{if ($smarty.section.i.index+1) is div by 4}
</tr>{/if}
{/section}
  • 0

#4 Matit

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

  • Download User
  • PipPipPip
  • 104 сообщений
Репутация: 2
Начинающий

Отправлено 23 April 2012 - 08:57 PM

Jeck2000, попробуйте так:
<input type="submit" onclick="doLoad('do=cart&amp;addproduct={$product_related[i].productID}&amp;xcart=yes&amp;multyaddcount='+document.HiddenFieldsForm.multyaddcount.value+''); return false" value="Купить">
у меня работает!

Но дополнительные свойства учитываться не будут.

а зачем закрывающий тег </span> после названия товара?

полный код :)
{section name=i loop=$product_related}
{if $smarty.section.i.index is div by 4}<tr>{/if}
<td width="{math equation="100 / x" x=4 format="%d"}%" align="center" valign="top" style="padding:8px;">
<div class="">
{if $verifi eq 1}{else}{assign var="verifi" value=1}{/if}
{if $product_related[i][3]}
<a href="{if $smarty.const.CONF_MOD_REWRITE eq 1}product_{$product_related[i].productID}.html{else}index.php?productID={$product_related[i].productID}{/if}" target="_blank"><img src="data/small/{$product_related[i][3]}"></a>
{/if}
<p>{$product_related[i].Price}</p></div>
<div class="relh">
<a href="{if $smarty.const.CONF_MOD_REWRITE eq 1}product_{$product_related[i].productID}.html{else}index.php?productID={$product_related[i].productID}{/if}" target="_blank">{$product_related[i].name}</a></div>
<div>
<input type="submit" onclick="doLoad('do=cart&amp;addproduct={$product_related[i].productID}&amp;xcart=yes&amp;multyaddcount='+document.HiddenFieldsForm.multyaddcount.value+''); return false" value="Купить">
</div>
</td>
{if ($smarty.section.i.index+1) is div by 4}
</tr>{/if}
{/section}

  • 0
Все "спасибо" в репутацию :)

#5 Jeck2000

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

  • Assistent vsupport.club
  • PipPipPip
  • 159 сообщений
Репутация: 8
Начинающий
  • ГородСанкт-Петербург

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

Matit, Мерсибокукствую ! Всё заработало !. А /span там действительно от кого-то за слэшем прятался видимо :)

у меня работает! Но дополнительные свойства учитываться не будут.


Так, хорошо, ну а если не стандартную кнопку, а картинку (ну или просто ту же надпись "в корзину"). У меня этот код выглядит вот так

<a href="#" onclick="open_window('index.php?do=cart&amp;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[i].option_type eq 1}{section name=s loop=$product_extra[i].option_show_times}&amp;option_select_hidden_{counter name=select_counter_hidden}='+document.HiddenFieldsForm.option_select_hidden_{counter name=select_counter_hidden_extra}.value+'{/section}{/if}{/section}&amp;multyaddcount='+document.HiddenFieldsForm.multyaddcount.value+'',550,300);"><img src="data/{$smarty.const.TPL}/crt.gif" alt=""></a>

и если его тупо поставить на место предложенного тобой кода кнопки (который исправно работает), то как раз и получается, что выводиться только один товар с картинкой crt соответственно, а остальные рекомендуемые нет. (естественно я в этом коде выше заменяю {$product_info.productID} на {$product_related[i].productID} ). Как бы тут правильно поступить ?
  • 0

#6 Dbus

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

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

Отправлено 23 April 2012 - 11:14 PM

Может кто знает, как сделать, чтобы у каждого рекомендуемого товара была кнопочка "Добавить в корзину". понимаю, что не сложно должно быть, но как чего не крутил, фигня какая-то выходит :(


так а пункт "Возможность заказа товаров с главной страницы" в общих настройках - это не оно ?
  • 0
502 Bad Gateway

#7 Jeck2000

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

  • Assistent vsupport.club
  • PipPipPip
  • 159 сообщений
Репутация: 8
Начинающий
  • ГородСанкт-Петербург

Отправлено 23 April 2012 - 11:39 PM

Может кто знает, как сделать, чтобы у каждого рекомендуемого товара была кнопочка "Добавить в корзину". понимаю, что не сложно должно быть, но как чего не крутил, фигня какая-то выходит :(


так а пункт "Возможность заказа товаров с главной страницы" в общих настройках - это не оно ?


Dbus

, вроде сообщений то так много, был бы ты новенький, подумал бы что накрутка сообщений :)

Конечно это совсем не оно. Эта галочка трогает только спец предложения, да и рекомендуемые товары вообще на главной не выводятся
  • 0

#8 Dbus

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

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

Отправлено 23 April 2012 - 11:42 PM

а, затупил. я почему-то отловился что рекомендуемые это и есть спец предложения. сплю, пардоньте :)
  • 0
502 Bad Gateway

#9 Matit

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

  • Download User
  • PipPipPip
  • 104 сообщений
Репутация: 2
Начинающий

Отправлено 24 April 2012 - 05:40 PM

Так, хорошо, ну а если не стандартную кнопку, а картинку (ну или просто ту же надпись "в корзину"). У меня этот код выглядит вот так

а какая разница-то какую кнопку делать? Я же написал что доп. свойства учитываться не будут поэтумоу в коде отсутствует вот эта часть в onclick="":
{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[i].option_type eq 1}{section name=s loop=$product_extra[i].option_show_times}&amp;option_select_hidden_{counter name=select_counter_hidden}='+document.HiddenFieldsForm.option_select_hidden_{counter name=select_counter_hidden_extra}.value+'{/section}{/if}{/section}
можно написать так:
<a onclick="doLoad('do=cart&amp;addproduct={$product_related[i].productID}&amp;xcart=yes&amp;multyaddcount='+document.HiddenFieldsForm.multyaddcount.value+''); return false"><img src="data/{$smarty.const.TPL}/crt.gif" alt=""></a>
или так:
<img src="data/{$smarty.const.TPL}/crt.gif" onclick="doLoad('do=cart&amp;addproduct={$product_related[i].productID}&amp;xcart=yes&amp;multyaddcount='+document.HiddenFieldsForm.multyaddcount.value+''); return false" alt="">
а лучше всего вот так: (указать класс с помощью class="" и оставить значение value пустым!)
<input class="указать тут класс в котором прописаны свойства для картинки" type="submit" onclick="doLoad('do=cart&amp;addproduct={$product_related[i].productID}&amp;xcart=yes&amp;multyaddcount='+document.HiddenFieldsForm.multyaddcount.value+''); return false" value="">

  • 0
Все "спасибо" в репутацию :)

#10 Pioneer

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

  • Download User
  • PipPipPip
  • 36 сообщений
Репутация: 1
Начинающий

Отправлено 21 July 2013 - 09:19 AM

Так, хорошо, ну а если не стандартную кнопку, а картинку (ну или просто ту же надпись "в корзину"). У меня этот код выглядит вот так

а какая разница-то какую кнопку делать? Я же написал что доп. свойства учитываться не будут поэтумоу в коде отсутствует вот эта часть в onclick="":

а лучше всего вот так: (указать класс с помощью class="" и оставить значение value пустым!)
<input class="указать тут класс в котором прописаны свойства для картинки" type="submit" onclick="doLoad('do=cart&amp;addproduct={$product_related[i].productID}&amp;xcart=yes&amp;multyaddcount='+document.HiddenFieldsForm.multyaddcount.value+''); return false" value="">



А в случае работы корзины в стандартном режиме ( то есть товар добавляется в корзину и сразу переходит на страницу корзины), добавил такой код:


<input type="hidden" name="cart_{$product_related[i].productID}_x" value="{$product_related[i].productID}">
<a href="#" onclick="document.getElementById('HiddenFieldsForm_{$product_related[i].productID}').submit(); return false"><img src="data/{$smarty.const.TPL}/crt.gif" alt=""></a></td>
<input type={if $smarty.const.CONF_MULTYCART==0}hidden{else}text{/if} value="2" name="multyaddcount" {if $smarty.const.CONF_MULTYCART==1}size="2" style="margin-right: 10px; width: 16px;"{/if}
<a href="#" onclick="document.getElementById('HiddenFieldsForm_{$product_related[i].productID}').submit(); return false">{$smarty.const.ADD_TO_CART_STRING}</a>

но почему-то при нажатии на ссылку "купить", просто идет переход на товар, но добавления в корзину не происходит, где ошибся с кодом ?
  • 0

#11 zcz

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

  • Assistent vsupport.club
  • PipPipPip
  • 104 сообщений
Репутация: 62
Продвинутый

Отправлено 26 July 2013 - 05:32 PM

ну что вы мозги то компостируете?
Берете обычное добавление из home.tpl или product_brief.tpl и вставляете, заменяя название секции на нужную.

{if $product_related_number > 0}
	  <h3>С этим товаром покупают</h3>
   <ul class="products simple">
		    {section name=i loop=$product_related}
		    {if $smarty.section.i.index ne 0}{/if}
		    <li class="gradient">
			    <div class="img"><a href="{if $smarty.const.CONF_MOD_REWRITE eq 1}product_{$product_related[i].productID}.html{else}index.php?productID={$product_related[i].productID}{/if}"><img src="data/small/{$product_related[i].filename}" style="width: 149px; height: 146px;" /></a></div>
			    <a class="product_title" href="{if $smarty.const.CONF_MOD_REWRITE eq 1}product_{$product_related[i].productID}.html{else}index.php?productID={$product_related[i].productID}{/if}">{$product_related[i].name}</a>
			    <div class="product_price">
				    <form action="index.php?productID={$product_related[i].productID}" method=post id="HiddenFieldsForm_{$product_related[i].productID}" name="HiddenFieldsForm_{$product_related[i].productID}">
					    {if $smarty.const.CONF_OPEN_SHOPPING_CART_IN_NEW_WINDOW eq 1}
		 <a class="to_cart" href="#" onclick="open_window('index.php?do=cart&amp;addproduct={$product_related[i].productID}&amp;multyaddcount='+document.HiddenFieldsForm_{$product_related[i].productID}.multyaddcount.value+'',400,300);">{$product_related[i].Price}</a>
	  <input type="hidden" value="1" name="multyaddcount">
	  {else}
	  {if $smarty.const.CONF_CART_METHOD eq 2}
	  <a class="to_cart" href="#" onclick="doLoad('do=cart&amp;addproduct={$product_related[i].productID}&amp;xcart=yes&amp;multyaddcount='+document.HiddenFieldsForm_{$product_related[i].productID}.multyaddcount.value+''); return false">{$product_related[i].Price}</a>
	  <input type="hidden" value="1" name="multyaddcount">
	  {else}
	  <a class="to_cart" href="#" onclick="document.getElementById('HiddenFieldsForm_{$product_related[i].productID}').submit(); return false">{$product_related[i].Price}</a>
	  <input type="hidden" value="1" name="multyaddcount">
	  <input type="hidden" name="cart_{$product_related[i].productID}_x" value="{$product_related[i].productID}">
	    {/if}
		 {/if}
	   </form>
			    </div>
		    </li>
		    {/section}
   </ul> 
	  {/if}

кусок кода с сайта http://apple-store-rf.ru/
переделывайте под себя как надо.
  • 0
Пишу, устанавливаю, натягиваю))) pix-art.ru

#12 Pioneer

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

  • Download User
  • PipPipPip
  • 36 сообщений
Репутация: 1
Начинающий

Отправлено 27 July 2013 - 12:43 AM

ну что вы мозги то компостируете?
Берете обычное добавление из home.tpl или product_brief.tpl и вставляете, заменяя название секции на нужную.


Так и сделал,вышеприведенный код, как раз из product_brief.tpl с замененным на $product_related[i]

{if $product_related_number > 0}
	  <h3>С этим товаром покупают</h3>
   <ul class="products simple">
			{section name=i loop=$product_related}
			{if $smarty.section.i.index ne 0}{/if}
			<li class="gradient">
				<div class="img"><a href="{if $smarty.const.CONF_MOD_REWRITE eq 1}product_{$product_related[i].productID}.html{else}index.php?productID={$product_related[i].productID}{/if}"><img src="data/small/{$product_related[i].filename}" style="width: 149px; height: 146px;" /></a></div>
				<a class="product_title" href="{if $smarty.const.CONF_MOD_REWRITE eq 1}product_{$product_related[i].productID}.html{else}index.php?productID={$product_related[i].productID}{/if}">{$product_related[i].name}</a>
				<div class="product_price">
					<form action="index.php?productID={$product_related[i].productID}" method=post id="HiddenFieldsForm_{$product_related[i].productID}" name="HiddenFieldsForm_{$product_related[i].productID}">
						{if $smarty.const.CONF_OPEN_SHOPPING_CART_IN_NEW_WINDOW eq 1}
		 <a class="to_cart" href="#" onclick="open_window('index.php?do=cart&amp;addproduct={$product_related[i].productID}&amp;multyaddcount='+document.HiddenFieldsForm_{$product_related[i].productID}.multyaddcount.value+'',400,300);">{$product_related[i].Price}</a>
	  <input type="hidden" value="1" name="multyaddcount">
	  {else}
	  {if $smarty.const.CONF_CART_METHOD eq 2}
	  <a class="to_cart" href="#" onclick="doLoad('do=cart&amp;addproduct={$product_related[i].productID}&amp;xcart=yes&amp;multyaddcount='+document.HiddenFieldsForm_{$product_related[i].productID}.multyaddcount.value+''); return false">{$product_related[i].Price}</a>
	  <input type="hidden" value="1" name="multyaddcount">
	  {else}
	  <a class="to_cart" href="#" onclick="document.getElementById('HiddenFieldsForm_{$product_related[i].productID}').submit(); return false">{$product_related[i].Price}</a>
	  <input type="hidden" value="1" name="multyaddcount">
	  <input type="hidden" name="cart_{$product_related[i].productID}_x" value="{$product_related[i].productID}">
		{/if}
		 {/if}
	   </form>
				</div>
			</li>
			{/section}
   </ul>
	  {/if}


Данный код работает нормально при методе корзины Ajax, при стандартном методе почему-то просто переходит на страницу товара и все.

кусок кода с сайта http://apple-store-rf.ru/
переделывайте под себя как надо.

Пытался , не получилось, поэтому и спросил.
  • 0

#13 Lada

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

  • Download User
  • PipPipPip
  • 107 сообщений
Репутация: 7
Начинающий
  • ГородЧита

Отправлено 28 February 2015 - 11:01 PM

Вопрос работы кнопки В корзину при стандартном методе так и не решился? Просто то же нужно вставить кнопку "В корзину" в блок Новые товары - статика...
  • 0

#14 zcz

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

  • Assistent vsupport.club
  • PipPipPip
  • 104 сообщений
Репутация: 62
Продвинутый

Отправлено 01 March 2015 - 09:14 AM

для newprstatic.tpl.html

<form action="index.php?categoryID={$new_products[i].categoryID}&amp;prdID={$new_products[i].productID}" method=post id="HiddenFieldsForm_{$new_products[i].productID}" name="HiddenFieldsForm_{$new_products[i].productID}">
    {if $smarty.const.CONF_OPEN_SHOPPING_CART_IN_NEW_WINDOW eq 1}
    <table cellspacing="0" cellpadding="0">
      <tr>
        <td><a href="#" onclick="open_window('index.php?do=cart&amp;addproduct={$new_products[i].productID}&amp;multyaddcount='+document.HiddenFieldsForm_{$new_products[i].productID}.multyaddcount.value+'',400,300);"><img src="data/{$smarty.const.TPL}/crt.gif" alt=""></a></td>
        <td style="padding-left: 4px;"><input type={if $smarty.const.CONF_MULTYCART==0}hidden{else}text{/if} value="1" name="multyaddcount" {if $smarty.const.CONF_MULTYCART==1}size="2" style="margin-right: 4px; width: 16px;"{/if}><a href="#" onclick="open_window('index.php?do=cart&amp;addproduct={$new_products[i].productID}&amp;multyaddcount='+document.HiddenFieldsForm_{$new_products[i].productID}.multyaddcount.value+'',400,300);">{$smarty.const.ADD_TO_CART_STRING}</a></td>
      </tr>
    </table>
    {else}
      {if $smarty.const.CONF_CART_METHOD eq 2}
      <table cellspacing="0" cellpadding="0">
        <tr>
          <td><a href="#" onclick="doLoad('do=cart&amp;addproduct={$new_products[i].productID}&amp;xcart=yes&amp;multyaddcount='+document.HiddenFieldsForm_{$new_products[i].productID}.multyaddcount.value+''); return false"><img src="data/{$smarty.const.TPL}/crt.gif" alt=""></a></td>
          <td style="padding-left: 4px;"><input type={if $smarty.const.CONF_MULTYCART==0}hidden{else}text{/if} value="1" name="multyaddcount" {if $smarty.const.CONF_MULTYCART==1}size="2" style="margin-right: 4px; width: 16px;"{/if}><a href="#" onclick="doLoad('do=cart&amp;addproduct={$new_products[i].productID}&amp;xcart=yes&amp;multyaddcount='+document.HiddenFieldsForm_{$new_products[i].productID}.multyaddcount.value+''); return false">{$smarty.const.ADD_TO_CART_STRING}</a></td>
        </tr>
      </table>
      {else}
      <table cellspacing="0" cellpadding="0">
        <tr>
          <td><a href="#" onclick="document.getElementById('HiddenFieldsForm_{$new_products[i].productID}').submit(); return false"><img src="data/{$smarty.const.TPL}/crt.gif" alt=""></a></td>
          <td style="padding-left: 4px;"><input type={if $smarty.const.CONF_MULTYCART==0}hidden{else}text{/if} value="1" name="multyaddcount" {if $smarty.const.CONF_MULTYCART==1}size="2" style="margin-right: 4px; width: 16px;"{/if}><input type="hidden" name="cart_{$new_products[i].productID}_x" value="{$new_products[i].productID}"><a href="#" onclick="document.getElementById('HiddenFieldsForm_{$new_products[i].productID}').submit(); return false">{$smarty.const.ADD_TO_CART_STRING}</a></td>
        </tr>
      </table>
      {/if}
    {/if}
</form>

для popularstatic.tpl.html

<form action="index.php?categoryID={$popular_products[i].categoryID}&amp;prdID={$popular_products[i].productID}" method=post id="HiddenFieldsForm_{$popular_products[i].productID}" name="HiddenFieldsForm_{$popular_products[i].productID}">
{if $smarty.const.CONF_OPEN_SHOPPING_CART_IN_NEW_WINDOW eq 1}
<table cellspacing="0" cellpadding="0">
   <tr>
  <td><a href="#" onclick="open_window('index.php?do=cart&amp;addproduct={$popular_products[i].productID}&amp;multyaddcount='+document.HiddenFieldsForm_{$popular_products[i].productID}.multyaddcount.value+'',400,300);"><img src="data/{$smarty.const.TPL}/crt.gif" alt=""></a></td>
  <td style="padding-left: 4px;"><input type={if $smarty.const.CONF_MULTYCART==0}hidden{else}text{/if} value="1" name="multyaddcount" {if $smarty.const.CONF_MULTYCART==1}size="2" style="margin-right: 4px; width: 16px;"{/if}><a href="#" onclick="open_window('index.php?do=cart&amp;addproduct={$popular_products[i].productID}&amp;multyaddcount='+document.HiddenFieldsForm_{$popular_products[i].productID}.multyaddcount.value+'',400,300);">{$smarty.const.ADD_TO_CART_STRING}</a></td>
   </tr>
</table>
{else}
   {if $smarty.const.CONF_CART_METHOD eq 2}
   <table cellspacing="0" cellpadding="0">
  <tr>
    <td><a href="#" onclick="doLoad('do=cart&amp;addproduct={$popular_products[i].productID}&amp;xcart=yes&amp;multyaddcount='+document.HiddenFieldsForm_{$popular_products[i].productID}.multyaddcount.value+''); return false"><img src="data/{$smarty.const.TPL}/crt.gif" alt=""></a></td>
    <td style="padding-left: 4px;"><input type={if $smarty.const.CONF_MULTYCART==0}hidden{else}text{/if} value="1" name="multyaddcount" {if $smarty.const.CONF_MULTYCART==1}size="2" style="margin-right: 4px; width: 16px;"{/if}><a href="#" onclick="doLoad('do=cart&amp;addproduct={$popular_products[i].productID}&amp;xcart=yes&amp;multyaddcount='+document.HiddenFieldsForm_{$popular_products[i].productID}.multyaddcount.value+''); return false">{$smarty.const.ADD_TO_CART_STRING}</a></td>
  </tr>
   </table>
   {else}
   <table cellspacing="0" cellpadding="0">
  <tr>
    <td><a href="#" onclick="document.getElementById('HiddenFieldsForm_{$popular_products[i].productID}').submit(); return false"><img src="data/{$smarty.const.TPL}/crt.gif" alt=""></a></td>
    <td style="padding-left: 4px;"><input type={if $smarty.const.CONF_MULTYCART==0}hidden{else}text{/if} value="1" name="multyaddcount" {if $smarty.const.CONF_MULTYCART==1}size="2" style="margin-right: 4px; width: 16px;"{/if}><input type="hidden" name="cart_{$popular_products[i].productID}_x" value="{$popular_products[i].productID}"><a href="#" onclick="document.getElementById('HiddenFieldsForm_{$popular_products[i].productID}').submit(); return false">{$smarty.const.ADD_TO_CART_STRING}</a></td>
  </tr>
   </table>
   {/if}
{/if}
</form>

И еще 1 момент:
Если у вас новинки, популярные и спец.предложения (или 2 любых из этих сочитаний) выводятся на 1 странице, то id и name формы надо переименовывать (и все что с ними связано). Иначе при наличии 2ух одинаковых товаров приведет к ошибке и добавляться не будет.
  • 1
Пишу, устанавливаю, натягиваю))) pix-art.ru

#15 badisoft

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

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

Отправлено 01 March 2015 - 01:57 PM

А я переделал нафиг этот штатный развесистый HTML, где для каждого типа корзины на 99% повторяется один и тот же код, т.е. для каждой переделки кнопки "Купить" надо делать одни и те же изменения в трех местах. Вынес разницу в коде в smarty.capture

{capture name=onclick}
{if $smarty.const.CONF_OPEN_SHOPPING_CART_IN_NEW_WINDOW eq 1}
open_window('index.php?do=cart&amp;addproduct={$special_offers[i].productID}&amp;multyaddcount='+document.HiddenFieldsForm_{$special_offers[i].productID}.multyaddcount.value+'',400,300);
{elseif $smarty.const.CONF_CART_METHOD eq 2}
doLoad('do=cart&amp;addproduct={$special_offers[i].productID}&amp;xcart=yes&amp;multyaddcount='+document.HiddenFieldsForm_{$special_offers[i].productID}.multyaddcount.value+'');return false;
{else}
document.getElementById('HiddenFieldsForm_{$special_offers[i].productID}').submit(); return false;
{/if}
{capture}

<form action="index.php?categoryID={$special_offers[i].categoryID}&amp;prdID={$special_offers[i].productID}" method=post id="HiddenFieldsForm_{$special_offers[i].productID}" name="HiddenFieldsForm_{$special_offers[i].productID}">
<table cellspacing="0" cellpadding="0">
<tr>
<td><a href="#" onclick="{$smarty.capture.onclick}"><img src="data/{$smarty.const.TPL}/cart.gif" alt=""></a></td>
<td>
<input type={if $smarty.const.CONF_MULTYCART==0}"hidden"{else}"text" size="2"{/if} name="multyaddcount" value="1">
<input type="hidden" name="cart_{$special_offers[i].productID}_x" value="{$special_offers[i].productID}">
</td>
<td><a href="#" onclick="{$smarty.capture.onclick}">{$smarty.const.ADD_TO_CART_STRING}</a></td>
</tr>
</table>
</form>

Это для спецпредложений, но идея, думаю, понятна.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#16 fastik

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

  • Assistent vsupport.club
  • PipPipPip
  • 161 сообщений
Репутация: 11
Начинающий
  • ГородТирасполь

Отправлено 07 January 2016 - 01:15 PM

Кто может подсказать, почему все-таки при работе со стандартным методом добавления в корзину товар не добавляется, а открывается карточка рекомендуемого товара?
  • 0

#17 badisoft

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

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

Отправлено 07 January 2016 - 02:33 PM

Кто может подсказать, почему все-таки при работе со стандартным методом добавления в корзину товар не добавляется, а открывается карточка рекомендуемого товара?

Кнопка при стандартном методе выглядит как ссылка

<a href="#" onclick="document.getElementById('HiddenFieldsForm_{$popular_products[i].productID}').submit(); return false">

Штатно должен выполниться submit() для формы с id='HiddenFieldsForm_{$popular_products.productID}', т.е. произойти переход по ссылке, указанной в action этой формы. Но если элемент с id='HiddenFieldsForm_{$popular_products.productID}' на странице отсутствует, то функция getElementById() будет выполнена с ошибкой, исполнение скрипта прервется, до submit() дело не дойдет и будет выполнен переход по href="#", т.е. перезагрузка текущей страницы.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#18 fastik

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

  • Assistent vsupport.club
  • PipPipPip
  • 161 сообщений
Репутация: 11
Начинающий
  • ГородТирасполь

Отправлено 13 January 2016 - 09:01 PM

Спасибо за ответ, не заметил раньше.
Но в том то и дело, что элемент с данным айди есть) и происходит не перезагрузка страницы, а переход на карточку рекомендуемого товара.
<form action="index.php?productID={$product_related[0].productID}" method=post id="HiddenFieldsForm_{$product_related[0].productID}" name="HiddenFieldsForm_{$product_related[0].productID}">
	<input type="hidden" value="1" name="multyaddcount">
<input type="hidden" name="cart_{$product_related[0].productID}_x" value="{$product_related[0].productID}">
<a href="#" onclick="document.getElementById('HiddenFieldsForm_{$product_related[0].productID}').submit(); return false"><img src="data/{$smarty.const.TPL}/buy.png" alt=""></a>
</form>

Заработало)))

Оказывается, что имя скрытого поля <input type="hidden" name="cart_{$product_related[0].productID}_x" value="{$product_related[0].productID}"> не нужно менять)

Вот этот код работает.
<form action="index.php?productID={$product_related[0].productID}" method=post id="HiddenFieldsForm_{$product_related[0].productID}" name="HiddenFieldsForm_{$product_related[0].productID}">
	<input type="hidden" value="1" name="multyaddcount">
<input type="hidden" name="cart_x" value="{$product_related[0].productID}">
<a href="#" onclick="document.getElementById('HiddenFieldsForm_{$product_related[0].productID}').submit(); return false"><img src="data/{$smarty.const.TPL}/buy.png" alt=""></a>
</form>

Дело не в ID оказалось, а в Name
badisoft подскажите где все-таки обрабатываются данные с этой формы? спасибо.
  • 0

#19 badisoft

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

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

Отправлено 13 January 2016 - 09:50 PM

подскажите где все-таки обрабатываются данные с этой формы?

Штатно у "рекомендуемых товаров" кнопки "купить" нет.
Эта тема как раз о том, как ее добавить.
Я не делал ни разу такой доработки (или не помню) так что подсказать не могу.
Ну а штатно, повторюсь, никакой обработки нет. Но это и так понятно.
Другими словами, добавить кнопку "купить" к "рекомендуемым" не сложно (просто, чего уж там), но готового решения у меня нет.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#20 Pioneer

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

  • Download User
  • PipPipPip
  • 36 сообщений
Репутация: 1
Начинающий

Отправлено 14 January 2016 - 02:34 PM

badisoft , хочу в очередной раз обратиться к Вам как к Гуру :) Сделал блок популярные товары, используя $rand_products[i]. Но в выдачу, естественно, попадают и товары с нулевой ценой "под заказ". Как сделать чтобы исключить их из выдачи ? Затемнять научился,
{if $rand_products[i].cena <= 0}
<div style="opacity: 0.50">
{else}
{/if}
А так чтобы выдало, товар с не нулевой ценой, например следующий по порядку, пока не получилось.
  • 0