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


Фото
- - - - -

Вывод артикула

артикул вывод артикула

Best Answer Kasha , 21.11.2016 - 01:37

<option value="{$v->id}" data-price="{$v->price|convert}&nbsp;{$currency->sign|escape}" data-compare-price="{$v->compare_price|convert}&nbsp;{$currency->sign|escape}">{$v->name}</option>

меняешь на 

<option value="{$v->id}" data-price="{$v->price|convert}&nbsp;{$currency->sign|escape}" data-sku="{$v->sku|escape}" data-compare-price="{$v->compare_price|convert}&nbsp;{$currency->sign|escape}">{$v->name}</option>

 

и дописать JS собственно добавить

 

// Выбор варианта
$('select[name=variant]').live('change', function(){
    price = $(this).find('option:selected').attr('data-price');
    sku = $(this).find('option:selected').attr('data-sku');
    compare_price = '';
    if(typeof $(this).find('option:selected').attr('data-compare-price') == 'string')
        compare_price = $(this).find('option:selected').attr('data-compare-price');
    $(this).closest('form.variants').find('.prc-new').html(price);
    $(this).closest('form.variants').find('.sku*').html(sku);
    $(this).closest('form.variants').find('.prc-old').html(compare_price);
    return false;
});  
 

Где sku* - название класса в который записан артикул в шаблоне. в приведенном вами коде этого просто нет, по этому не могу указать точно.

Перейти к посту


  • Чтобы отвечать, сперва войдите на форум
2 ответов в теме

#1 -=NICROSS=-

-=NICROSS=-
  • Пользователь
  • 113 сообщений
  • Дизайн, Верстка, SEO
  • Версия CMS:1.x, 2.x
  • Откуда:Москва

Опубликовано 19.11.2016 - 15:47

Добрый день друзья!

 

Сделал варианты товаров выпадающим списком таким образом. 

 

html разметка:

<!-- Выбор варианта товара -->
<form class="variants" action="/cart">
	<div class="price">
		<div class="prc-old">
			{$product->variant->compare_price|convert}&nbsp;{$currency->sign|escape}
		</div>
		<div class="prc-new">
			{$product->variant->price|convert}&nbsp;{$currency->sign|escape}
		</div>
	</div>
	<div class="cart">
		{if $product->variants|count > 0}
			{if $product->variants|count>1}
			<select name="variant">
				{foreach $product->variants as $v}
				<option value="{$v->id}" data-price="{$v->price|convert}&nbsp;{$currency->sign|escape}" data-compare-price="{$v->compare_price|convert}&nbsp;{$currency->sign|escape}">{$v->name}</option>
				{/foreach}
			</select>
			{else}
			<input name="variant" value="{$product->variant->id}" type="radio" checked style="display:none!important;"/>
			{/if}
			<input class="button" type="submit" value="В корзину"/>
		{else}
			Нет в наличии
		{/if}
	</div>
</form>
<!-- end -->

 

JS

// Выбор варианта
$('select[name=variant]').live('change', function(){
	price = $(this).find('option:selected').attr('data-price');
	compare_price = '';
	if(typeof $(this).find('option:selected').attr('data-compare-price') == 'string')
		compare_price = $(this).find('option:selected').attr('data-compare-price');
	$(this).closest('form.variants').find('.prc-new').html(price);
	$(this).closest('form.variants').find('.prc-old').html(compare_price);
	return false;
});  

Теперь встал вопрос. Хочу вывести артикулы товаров на странице товара и каталога. Чтобы при выборе варианта при смене цены, так же менялся артикул.

 

Подскажите, пожалуйста, как? Предполагаю, что нужно дописывать JS по аналогии с ценой, но в том не силен.

 



#2 Kasha

Kasha

    Поддержка пользователей

  • Администратор
  • 1 687 сообщений
  • Дизайн, Программирование, Верстка, SEO
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 21.11.2016 - 01:37   Best Answer

<option value="{$v->id}" data-price="{$v->price|convert}&nbsp;{$currency->sign|escape}" data-compare-price="{$v->compare_price|convert}&nbsp;{$currency->sign|escape}">{$v->name}</option>

меняешь на 

<option value="{$v->id}" data-price="{$v->price|convert}&nbsp;{$currency->sign|escape}" data-sku="{$v->sku|escape}" data-compare-price="{$v->compare_price|convert}&nbsp;{$currency->sign|escape}">{$v->name}</option>

 

и дописать JS собственно добавить

 

// Выбор варианта
$('select[name=variant]').live('change', function(){
    price = $(this).find('option:selected').attr('data-price');
    sku = $(this).find('option:selected').attr('data-sku');
    compare_price = '';
    if(typeof $(this).find('option:selected').attr('data-compare-price') == 'string')
        compare_price = $(this).find('option:selected').attr('data-compare-price');
    $(this).closest('form.variants').find('.prc-new').html(price);
    $(this).closest('form.variants').find('.sku*').html(sku);
    $(this).closest('form.variants').find('.prc-old').html(compare_price);
    return false;
});  
 

Где sku* - название класса в который записан артикул в шаблоне. в приведенном вами коде этого просто нет, по этому не могу указать точно.



#3 -=NICROSS=-

-=NICROSS=-
  • Пользователь
  • 113 сообщений
  • Дизайн, Верстка, SEO
  • Версия CMS:1.x, 2.x
  • Откуда:Москва

Опубликовано 22.11.2016 - 16:20

Все работает. Спасибо большое!







Также с меткой «артикул, вывод артикула»

0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых