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


Метка Наличия Товара В Корзине

товар товары в корзине

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 20

#1 odissei

odissei

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 382 сообщений
  • ГородАм. Область

Отправлено 17 Июль 2013 - 07:26

Здравствуйте. Нужна помощь :rolleyes:

Сделал на странице товара метку, которая появляется, если этот товар уже находится в корзине:
товар.jpg

Пытаюсь сделать подобную метку в шаблоне "Товары" - ничего не получается.
Хочу, чтобы товары, которые лежат в корзине, помечались галочкой:
товары.jpg

#2 miyako

miyako

    Активный участник

  • Модератоpы
  • 5 372 сообщений

Отправлено 17 Июль 2013 - 07:31

Просмотр сообщенияodissei (17 Июль 2013 - 07:26) писал:

Здравствуйте. Нужна помощь :rolleyes:

Сделал на странице товара метку, которая появляется, если этот товар уже находится в корзине:
Прикрепленный файл товар.jpg

Пытаюсь сделать подобную метку в шаблоне "Товары" - ничего не получается.
Хочу, чтобы товары, которые лежат в корзине, помечались галочкой:
Прикрепленный файл товары.jpg

Нужно обернуть в условие -
{% IF GOODS_MOD_REST_VALUE>0 %}Галочка{% ENDIF %}


#3 odissei

odissei

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 382 сообщений
  • ГородАм. Область

Отправлено 17 Июль 2013 - 08:08

Просмотр сообщенияmiyako (17 Июль 2013 - 07:31) писал:

Нужно обернуть в условие -
{% IF GOODS_MOD_REST_VALUE>0 %}Галочка{% ENDIF %}

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

В шаблоне "Товар" метка работает, а в "Товары" - нет.

Вот рабочий код в шаблоне "Товар":
<!-- Пометка отправленных в корзину -->
<div class="cartInfo" style = 'margin-top: -46px;margin-bottom: 31px; height: 20px;'>
  <ul onclick="document.location='{CART_URL}';">
	<li class="cartSumK " style="cursor: pointer;">
	  {% IF cart_count_empty %}	 
		&nbsp;	   
	  {% ELSE %}
		{% FOR cart_items %}			
		  {% IF cart_items.GOODS_MOD_ID=GOODS_MOD_ID %} 
<a title="Уже в корзине {cart_items.ORDER_LINE_QUANTITY} шт"><strong class="red fnt18i">&#10004;&nbsp;</strong><span class="red fnt12i">В корзине {cart_items.ORDER_LINE_QUANTITY} шт</span></a>   
		{% ENDIF %}			   
	  {% ENDFOR %}
	  {% ENDIF %}	   
	</li>  
  </ul>
</div>	  
<!-- Пометка отправленных в корзину-Конец -->

Сообщение отредактировал odissei: 17 Июль 2013 - 08:16


#4 miyako

miyako

    Активный участник

  • Модератоpы
  • 5 372 сообщений

Отправлено 17 Июль 2013 - 08:23

Просмотр сообщенияodissei (17 Июль 2013 - 08:08) писал:

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

В шаблоне "Товар" метка работает, а в "Товары" - нет.

Вот рабочий код в шаблоне "Товар":
<!-- Пометка отправленных в корзину -->
<div class="cartInfo" style = 'margin-top: -46px;margin-bottom: 31px; height: 20px;'>
<ul onclick="document.location='{CART_URL}';">
<li class="cartSumK " style="cursor: pointer;">
	 {% IF cart_count_empty %}	
	 &nbsp;	
	 {% ELSE %}
	 {% FOR cart_items %}			
		 {% IF cart_items.GOODS_MOD_ID=GOODS_MOD_ID %}
<a title="Уже в корзине {cart_items.ORDER_LINE_QUANTITY} шт"><strong class="red fnt18i">&#10004;&nbsp;</strong><span class="red fnt12i">В корзине {cart_items.ORDER_LINE_QUANTITY} шт</span></a>
	 {% ENDIF %}			
	 {% ENDFOR %}
	 {% ENDIF %}	
</li>
</ul>
</div>	
<!-- Пометка отправленных в корзину-Конец -->

Сначала неправильно поняла Ваш вопрос. В категории так сделать не получится поскольку у товара может быть множество модификаций. В коде определяется по условию -
{% IF cart_items.GOODS_MOD_ID=GOODS_MOD_ID %}
Если в корзине у товара модификация равна модификации товара.

#5 odissei

odissei

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 382 сообщений
  • ГородАм. Область

Отправлено 17 Июль 2013 - 08:30

Просмотр сообщенияmiyako (17 Июль 2013 - 08:23) писал:

Сначала неправильно поняла Ваш вопрос. В категории так сделать не получится поскольку у товара может быть множество модификаций. В коде определяется по условию -
{% IF cart_items.GOODS_MOD_ID=GOODS_MOD_ID %}
Если в корзине у товара модификация равна модификации товара.

Проблема в том, что условие для проверки корзины:
{% FOR cart_items %}
{% ENDFOR %}
не работает в коде товара:
{% FOR goods %}
{% ENDFOR %}

Как можно по-другому решить эту задачу?

#6 odissei

odissei

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 382 сообщений
  • ГородАм. Область

Отправлено 17 Июль 2013 - 09:19

Можно заставить работать подобное условие в "Товары"?
{% FOR cart_items %}			
  {% IF cart_items.GOODS_ID=goods.ID %} 
&#10004;  
  {% ENDIF %}			   
{% ENDFOR %}


#7 support

support

    Активный участник

  • Модераторы
  • 3 686 сообщений
  • ГородМосква

Отправлено 17 Июль 2013 - 10:05

Просмотр сообщенияodissei (17 Июль 2013 - 07:26) писал:

Здравствуйте. Нужна помощь :rolleyes:

Сделал на странице товара метку, которая появляется, если этот товар уже находится в корзине:
Прикрепленный файл товар.jpg

Пытаюсь сделать подобную метку в шаблоне "Товары" - ничего не получается.
Хочу, чтобы товары, которые лежат в корзине, помечались галочкой:
Прикрепленный файл товары.jpg

Для удобства работы добавили переменные во всех списках товаров, кроме самой корзины:
{goods.NB_GOODS_IN_CART}

На странице товара добавили переменную для текущей выбранной модификации товара:
{GOODS_MOD_NB_GOODS_IN_CART}
и для каждой модификации этого товара в виде массива:
{goods_modifications.NB_GOODS_IN_CART}

Попробуйте, думаю это облегчит жизнь :)

#8 odissei

odissei

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 382 сообщений
  • ГородАм. Область

Отправлено 17 Июль 2013 - 12:01

Спасибо большое!
А то я уже мозг сломал :D
А надо было, наверное, сразу к Вам обратиться.

#9 support

support

    Активный участник

  • Модераторы
  • 3 686 сообщений
  • ГородМосква

Отправлено 17 Июль 2013 - 12:22

Просмотр сообщенияodissei (17 Июль 2013 - 12:01) писал:

Спасибо большое!
А то я уже мозг сломал :D
А надо было, наверное, сразу к Вам обратиться.
Её просто сделать, не всегда реализовать предложение об усовершенствовании системы так просто :)

#10 velena168

velena168

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 1 643 сообщений
  • ГородСанкт- Петербург

Отправлено 17 Июль 2013 - 12:29

Просмотр сообщенияsupport (17 Июль 2013 - 10:05) писал:

Для удобства работы добавили переменные во всех списках товаров, кроме самой корзины:
{goods.NB_GOODS_IN_CART}

На странице товара добавили переменную для текущей выбранной модификации товара:
{GOODS_MOD_NB_GOODS_IN_CART}
и для каждой модификации этого товара в виде массива:
{goods_modifications.NB_GOODS_IN_CART}

Попробуйте, думаю это облегчит жизнь :)
О, какая фишка интересная, да полезная.
А, можно поподробней, для не таких продвинутых как Одиссей? Для Сияния. Куда что вставлять.

#11 sengun

sengun

    Активный участник

  • Модератоpы
  • 1 139 сообщений
  • ГородНижний Новгород

Отправлено 17 Июль 2013 - 14:10

Просмотр сообщенияvelena168 (17 Июль 2013 - 12:29) писал:

О, какая фишка интересная, да полезная.
А, можно поподробней, для не таких продвинутых как Одиссей? Для Сияния. Куда что вставлять.
В шаблон "Товар" вставьте код
{% IF GOODS_MOD_NB_GOODS_IN_CART > 0 %}
<span style="color:red; font-size: 12px; float: right; margin-bottom: -10px;">Товар уже в корзине, например</span>
{% ENDIF %}
После строчки
<font style="color:#909090;font-size:0.6em;  right:10px">   * Чтобы открыть/скрыть способ доставки, <br>кликнете мышкой по заголовку.</font></br>
А в шаблон "Товары" вставьте код
{% IF goods.NB_GOODS_IN_CART > 0 %}
				<div style="color: red; font-size: 12px;">Товар в корзине</div>
				{% ENDIF %}
Например, после такой строчки
<small class="goodsListItemName"><a href="{goods.URL}">{goods.NAME}</a></small>


#12 velena168

velena168

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 1 643 сообщений
  • ГородСанкт- Петербург

Отправлено 17 Июль 2013 - 15:11

Просмотр сообщенияsengun (17 Июль 2013 - 14:10) писал:

В шаблон "Товар" вставьте код
{% IF GOODS_MOD_NB_GOODS_IN_CART > 0 %}
<span style="color:red; font-size: 12px; float: right; margin-bottom: -10px;">Товар уже в корзине, например</span>
{% ENDIF %}
После строчки
<font style="color:#909090;font-size:0.6em; right:10px"> * Чтобы открыть/скрыть способ доставки, <br>кликнете мышкой по заголовку.</font></br>
А в шаблон "Товары" вставьте код
{% IF goods.NB_GOODS_IN_CART > 0 %}
			 <div style="color: red; font-size: 12px;">Товар в корзине</div>
			 {% ENDIF %}
Например, после такой строчки
<small class="goodsListItemName"><a href="{goods.URL}">{goods.NAME}</a></small>
Вот, спасибо!
В Товаре отлично получилось. А в каталоге цена немного выезжает за рамку. Но, в принципе, не критично.

Прикрепленные изображения

  • Снимок.JPG


#13 miyako

miyako

    Активный участник

  • Модератоpы
  • 5 372 сообщений

Отправлено 17 Июль 2013 - 15:49

Просмотр сообщенияvelena168 (17 Июль 2013 - 15:11) писал:

Вот, спасибо!
В Товаре отлично получилось. А в каталоге цена немного выезжает за рамку. Но, в принципе, не критично.

можно сделать длиннее категории, или разместить надпись иначе.

#14 sengun

sengun

    Активный участник

  • Модератоpы
  • 1 139 сообщений
  • ГородНижний Новгород

Отправлено 17 Июль 2013 - 16:38

Просмотр сообщенияvelena168 (17 Июль 2013 - 15:11) писал:

Вот, спасибо!
В Товаре отлично получилось. А в каталоге цена немного выезжает за рамку. Но, в принципе, не критично.
Это оттого, что в коде, который вы вставили
<a href="http://alinka1.ru/cart"<span style="color:red; font-size: small;"><br>✔Товар уже в корзине!</div>
В конце вместо закрывающегося тега </a> стоит </div>

#15 velena168

velena168

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 1 643 сообщений
  • ГородСанкт- Петербург

Отправлено 17 Июль 2013 - 16:54

Просмотр сообщенияsengun (17 Июль 2013 - 16:38) писал:

Это оттого, что в коде, который вы вставили
<a href="http://alinka1.ru/cart"<span style="color:red; font-size: small;"><br>✔Товар уже в корзине!</div>
В конце вместо закрывающегося тега </a> стоит </div>
Большое Вам спасибо, sengun.
Теперь все замечательно!

#16 Яндекс

Яндекс

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

  • Пользователи
  • PipPipPip
  • 107 сообщений

Отправлено 08 Апрель 2016 - 20:57

Здравствуйте.
Подскажите пожалуйста как сделать тоже самое для шаблона радость.

#17 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 353 сообщений

Отправлено 09 Апрель 2016 - 02:24

В шаблоне Товар найдите:
<li class="goodsPageSubmitButtonBlock" {% IF SETTINGS_GOODS_DONT_PUT_TO_CART_MORE_THAN_AVAILABLE==1 && GOODS_MOD_REST_VALUE==0 %}style="display:none;"{% ENDIF %}><a class="orangebut padd1 fnt11 fntarl dinline txtalgncnt fntupcase anone0" onclick="$('.goodsDataForm').submit(); return false;" title="Положить &laquo;{GOODS_NAME}&raquo; в корзину" href="#">Оформить заказ</a></li>

после него пропишите:
{% IF GOODS_MOD_NB_GOODS_IN_CART > 0 %}
<li><span style="color:red; font-size: 12px; float: right; margin-bottom: -10px;">Товар уже в корзине</span></li>
{% ENDIF %}

В шаблоне Товары перед:
<li><a href="{goods.URL}" title="Перейти на страницу &laquo;{goods.NAME}&raquo;">Подробная информация </a></li>
			   

вставьте:
{% IF goods.NB_GOODS_IN_CART > 0 %}<li> <div style="color: red; font-size: 12px;">Товар в корзине</div></li>{% ENDIF %}


#18 Яндекс

Яндекс

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

  • Пользователи
  • PipPipPip
  • 107 сообщений

Отправлено 09 Апрель 2016 - 11:18

Просмотр сообщенияVaccina (09 Апрель 2016 - 02:24) писал:

В шаблоне Товар найдите:
<li class="goodsPageSubmitButtonBlock" {% IF SETTINGS_GOODS_DONT_PUT_TO_CART_MORE_THAN_AVAILABLE==1 && GOODS_MOD_REST_VALUE==0 %}style="display:none;"{% ENDIF %}><a class="orangebut padd1 fnt11 fntarl dinline txtalgncnt fntupcase anone0" onclick="$('.goodsDataForm').submit(); return false;" title="Положить &laquo;{GOODS_NAME}&raquo; в корзину" href="#">Оформить заказ</a></li>

после него пропишите:
{% IF GOODS_MOD_NB_GOODS_IN_CART > 0 %}
<li><span style="color:red; font-size: 12px; float: right; margin-bottom: -10px;">Товар уже в корзине</span></li>
{% ENDIF %}

В шаблоне Товары перед:
<li><a href="{goods.URL}" title="Перейти на страницу &laquo;{goods.NAME}&raquo;">Подробная информация </a></li>
			

вставьте:
{% IF goods.NB_GOODS_IN_CART > 0 %}<li> <div style="color: red; font-size: 12px;">Товар в корзине</div></li>{% ENDIF %}
Отлично.
БОЛЬШОЕ СПАСИБО за помощь.

#19 Frontliner

Frontliner

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

  • Пользователи
  • PipPip
  • 43 сообщений

Отправлено 30 Январь 2017 - 09:55

Как-то недоделано всё. После этих манипуляций, во первым, после нажатия кнопки "В Корзину" надпись "Товар добавлен в корзину" не появляется. Она появится только после обновления страницы. Во вторых, надпись "Товар добавлен в корзину" будет отображаться для любой модификаций и при переборе модификаций не будет появляться или исчезать.

Я сделал так:

1. В шаблон "Товар" под блок модификаций добавил следующий блок:
<div class="is_in_cart fnt14b red" style="{% IF GOODS_MOD_NB_GOODS_IN_CART = 0 %} display: none; {% ENDIF %}">Этот товар добавлен в корзину.</div>
Это блок с именем is_in_cart, по этому имени мы потом будем этот блок скрывать или показывать при переборе модификаций. fnt14b, red - это мои классы жирного шрифта размером 14 красного цвета. Если товара в корзине нет, то блок скрывается стилем display: none;
2. Затем в шаблоне Товар находим блок:
{% FOR goods_modifications %}
<div class="ModificationsList" rel="{goods_modifications.PROPERTIES_SLUG}">
и добавляем туда строку:
<input type="hidden" name="nb_goods_in_cart" value="{goods_modifications.NB_GOODS_IN_CART}" />
3. Затем в файл main.js в функцию Добавление товара в корзину через ajax добавляем строчку:
$('div.is_in_cart').show(600);
4. В файл main.js после строки:
var slug = getSlugFromGoodsDataFormModificationsProperties(goodsDataProperties),
добавляем строки:
modificationInCartCount = parseInt(modificationBlock.find('[name="nb_goods_in_cart"]').val()),
inCartIndicator = $('.is_in_cart'),
5. Затем ниже в этой-же функции в условной обороте:
if(modificationBlock.length) {
добавляем строки:
// При переборе модикаций клиентом, информационный блок о наличии модификации в корзине будем скрывать или показывать.
if (modificationInCartCount>0)
inCartIndicator.show(600); // если есть, показываем это
else
inCartIndicator.hide(600); // если нет, то скрываем

Теперь у меня после добавления товара в корзину надпись "Этот товар в корзине" появляется сразу. И при переборе клиентом модификаций эта надпись появляется, если выбранная модификация есть в корзине, и исчезает, если выбранной модификации нет в корзине

#20 ID.Repin

ID.Repin

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

  • Пользователи
  • PipPipPip
  • 78 сообщений
  • ГородРязань

Отправлено 30 Январь 2017 - 17:26

Добрый вечер. Как сделать, что бы в товаре отображалось количество покупателей, которые уже добавили этот товар в корзину? Спасибо! Если конечно такое возможно...





Темы с аналогичным тегами товар товары, в корзине

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных